aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/libcpp
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2012-10-01 10:30:31 -0700
committerBen Cheng <bccheng@google.com>2012-10-01 10:30:31 -0700
commit82bcbebce43f0227f506d75a5b764b6847041bae (patch)
treefe9f8597b48a430c4daeb5123e3e8eb28e6f9da9 /gcc-4.7/libcpp
parent3c052de3bb16ac53b6b6ed659ec7557eb84c7590 (diff)
downloadtoolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.tar.gz
toolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.tar.bz2
toolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.zip
Initial check-in of gcc 4.7.2.
Change-Id: I4a2f5a921c21741a0e18bda986d77e5f1bef0365
Diffstat (limited to 'gcc-4.7/libcpp')
-rw-r--r--gcc-4.7/libcpp/ChangeLog2806
-rw-r--r--gcc-4.7/libcpp/Makefile.in285
-rw-r--r--gcc-4.7/libcpp/aclocal.m424
-rw-r--r--gcc-4.7/libcpp/charset.c1797
-rw-r--r--gcc-4.7/libcpp/config.in351
-rwxr-xr-xgcc-4.7/libcpp/configure8706
-rw-r--r--gcc-4.7/libcpp/configure.ac193
-rw-r--r--gcc-4.7/libcpp/directives-only.c241
-rw-r--r--gcc-4.7/libcpp/directives.c2591
-rw-r--r--gcc-4.7/libcpp/errors.c238
-rw-r--r--gcc-4.7/libcpp/expr.c1956
-rw-r--r--gcc-4.7/libcpp/files.c1840
-rw-r--r--gcc-4.7/libcpp/identifiers.c121
-rw-r--r--gcc-4.7/libcpp/include/cpp-id-data.h81
-rw-r--r--gcc-4.7/libcpp/include/cpplib.h1046
-rw-r--r--gcc-4.7/libcpp/include/line-map.h718
-rw-r--r--gcc-4.7/libcpp/include/mkdeps.h79
-rw-r--r--gcc-4.7/libcpp/include/symtab.h104
-rw-r--r--gcc-4.7/libcpp/init.c747
-rw-r--r--gcc-4.7/libcpp/internal.h867
-rw-r--r--gcc-4.7/libcpp/lex.c2921
-rw-r--r--gcc-4.7/libcpp/line-map.c1346
-rw-r--r--gcc-4.7/libcpp/macro.c3212
-rw-r--r--gcc-4.7/libcpp/makeucnid.c342
-rw-r--r--gcc-4.7/libcpp/mkdeps.c430
-rw-r--r--gcc-4.7/libcpp/pch.c890
-rw-r--r--gcc-4.7/libcpp/po/ChangeLog497
-rw-r--r--gcc-4.7/libcpp/po/be.gmobin0 -> 1003 bytes
-rw-r--r--gcc-4.7/libcpp/po/be.po3004
-rw-r--r--gcc-4.7/libcpp/po/ca.gmobin0 -> 18195 bytes
-rw-r--r--gcc-4.7/libcpp/po/ca.po1025
-rw-r--r--gcc-4.7/libcpp/po/cpplib.pot990
-rw-r--r--gcc-4.7/libcpp/po/da.gmobin0 -> 14425 bytes
-rw-r--r--gcc-4.7/libcpp/po/da.po16288
-rw-r--r--gcc-4.7/libcpp/po/de.gmobin0 -> 22417 bytes
-rw-r--r--gcc-4.7/libcpp/po/de.po6611
-rw-r--r--gcc-4.7/libcpp/po/el.gmobin0 -> 703 bytes
-rw-r--r--gcc-4.7/libcpp/po/el.po5317
-rw-r--r--gcc-4.7/libcpp/po/es.gmobin0 -> 22945 bytes
-rw-r--r--gcc-4.7/libcpp/po/es.po980
-rw-r--r--gcc-4.7/libcpp/po/fi.gmobin0 -> 23080 bytes
-rw-r--r--gcc-4.7/libcpp/po/fi.po966
-rw-r--r--gcc-4.7/libcpp/po/fr.gmobin0 -> 21443 bytes
-rw-r--r--gcc-4.7/libcpp/po/fr.po20035
-rw-r--r--gcc-4.7/libcpp/po/id.gmobin0 -> 22050 bytes
-rw-r--r--gcc-4.7/libcpp/po/id.po978
-rw-r--r--gcc-4.7/libcpp/po/ja.gmobin0 -> 24920 bytes
-rw-r--r--gcc-4.7/libcpp/po/ja.po959
-rw-r--r--gcc-4.7/libcpp/po/nl.gmobin0 -> 22215 bytes
-rw-r--r--gcc-4.7/libcpp/po/nl.po984
-rw-r--r--gcc-4.7/libcpp/po/ru.gmobin0 -> 29770 bytes
-rw-r--r--gcc-4.7/libcpp/po/ru.po957
-rw-r--r--gcc-4.7/libcpp/po/sr.gmobin0 -> 28047 bytes
-rw-r--r--gcc-4.7/libcpp/po/sr.po955
-rw-r--r--gcc-4.7/libcpp/po/sv.gmobin0 -> 21478 bytes
-rw-r--r--gcc-4.7/libcpp/po/sv.po958
-rw-r--r--gcc-4.7/libcpp/po/tr.gmobin0 -> 19463 bytes
-rw-r--r--gcc-4.7/libcpp/po/tr.po1012
-rw-r--r--gcc-4.7/libcpp/po/uk.gmobin0 -> 29084 bytes
-rw-r--r--gcc-4.7/libcpp/po/uk.po980
-rw-r--r--gcc-4.7/libcpp/po/vi.gmobin0 -> 26049 bytes
-rw-r--r--gcc-4.7/libcpp/po/vi.po961
-rw-r--r--gcc-4.7/libcpp/po/zh_CN.gmobin0 -> 20555 bytes
-rw-r--r--gcc-4.7/libcpp/po/zh_CN.po981
-rw-r--r--gcc-4.7/libcpp/po/zh_TW.gmobin0 -> 17440 bytes
-rw-r--r--gcc-4.7/libcpp/po/zh_TW.po1016
-rw-r--r--gcc-4.7/libcpp/symtab.c363
-rw-r--r--gcc-4.7/libcpp/system.h445
-rw-r--r--gcc-4.7/libcpp/traditional.c1170
-rw-r--r--gcc-4.7/libcpp/ucnid.h801
-rw-r--r--gcc-4.7/libcpp/ucnid.tab211
71 files changed, 103376 insertions, 0 deletions
diff --git a/gcc-4.7/libcpp/ChangeLog b/gcc-4.7/libcpp/ChangeLog
new file mode 100644
index 000000000..450e811d3
--- /dev/null
+++ b/gcc-4.7/libcpp/ChangeLog
@@ -0,0 +1,2806 @@
+2012-09-20 Release Manager
+
+ * GCC 4.7.2 released.
+
+2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+
+2012-03-22 Release Manager
+
+ * GCC 4.7.0 released.
+
+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.7/libcpp/Makefile.in b/gcc-4.7/libcpp/Makefile.in
new file mode 100644
index 000000000..d6df46d62
--- /dev/null
+++ b/gcc-4.7/libcpp/Makefile.in
@@ -0,0 +1,285 @@
+# @configure_input@
+# Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in
+
+# Copyright (C) 2004, 2008, 2009, 2010 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@
+
+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)
+ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
+ $(CPPFLAGS)
+
+# The name of the compiler to use.
+ENABLE_BUILD_WITH_CXX = @ENABLE_BUILD_WITH_CXX@
+ifneq ($(ENABLE_BUILD_WITH_CXX),yes)
+COMPILER = $(CC)
+COMPILER_FLAGS = $(ALL_CFLAGS)
+DEPMODE = $(CCDEPMODE)
+else
+COMPILER = $(CXX)
+COMPILER_FLAGS = $(ALL_CXXFLAGS)
+DEPMODE = $(CXXDEPMODE)
+endif
+
+
+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.7/libcpp/aclocal.m4 b/gcc-4.7/libcpp/aclocal.m4
new file mode 100644
index 000000000..c3a9f037a
--- /dev/null
+++ b/gcc-4.7/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.7/libcpp/charset.c b/gcc-4.7/libcpp/charset.c
new file mode 100644
index 000000000..cba19a671
--- /dev/null
+++ b/gcc-4.7/libcpp/charset.c
@@ -0,0 +1,1797 @@
+/* CPP Library - charsets
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2008, 2009,
+ 2010 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? */
+ DIG = 2,
+ /* Valid in a C++ identifier? */
+ CXX = 4,
+ /* NFC representation is not valid in an identifier? */
+ CID = 8,
+ /* Might be valid NFC form? */
+ NFC = 16,
+ /* Might be valid NFKC form? */
+ NKC = 32,
+ /* Certain preceding characters might make it not valid NFC/NKFC form? */
+ CTX = 64
+};
+
+static const struct {
+ /* Bitmap of flags above. */
+ unsigned char flags;
+ /* Combining class of the character. */
+ unsigned char combine;
+ /* Last character in the range described by this entry. */
+ unsigned short end;
+} ucnranges[] = {
+#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;
+
+ if (c > 0xFFFF)
+ 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 C++98 and C99. */
+ if (! (ucnranges[mn].flags & (C99 | CXX)))
+ return 0;
+
+ if (CPP_PEDANTIC (pfile)
+ && ((CPP_OPTION (pfile, c99) && !(ucnranges[mn].flags & C99))
+ || (CPP_OPTION (pfile, cplusplus)
+ && !(ucnranges[mn].flags & CXX))))
+ return 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;
+
+ /* Easy cases from Bengali, Oriya, Tamil, Jannada, and Malayalam. */
+ if (c == 0x09BE)
+ safe = p != 0x09C7; /* Use 09CB instead of 09C7 09BE. */
+ else if (c == 0x0B3E)
+ safe = p != 0x0B47; /* Use 0B4B instead of 0B47 0B3E. */
+ else if (c == 0x0BBE)
+ safe = p != 0x0BC6 && p != 0x0BC7; /* Use 0BCA/0BCB instead. */
+ else if (c == 0x0CC2)
+ safe = p != 0x0CC6; /* Use 0CCA instead of 0CC6 0CC2. */
+ else if (c == 0x0D3E)
+ safe = p != 0x0D46 && p != 0x0D47; /* Use 0D4A/0D4B instead. */
+ /* 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. */
+ else 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
+ {
+ /* Uh-oh, someone updated ucnid.h without updating this code. */
+ cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
+ safe = true;
+ }
+ if (!safe && c < 0x1161)
+ nst->level = normalized_none;
+ else if (!safe)
+ nst->level = MAX (nst->level, normalized_identifier_C);
+ }
+ 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;
+ nst->previous = c;
+ nst->prev_class = ucnranges[mn].combine;
+
+ /* In C99, UCN digits may not begin identifiers. */
+ if (CPP_OPTION (pfile, c99) && (ucnranges[mn].flags & DIG))
+ 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);
+ }
+ 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. */
+ if (to.len + 4096 < to.asize || to.len >= to.asize)
+ to.text = XRESIZEVEC (uchar, to.text, to.len + 1);
+
+ /* 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.7/libcpp/config.in b/gcc-4.7/libcpp/config.in
new file mode 100644
index 000000000..05542fe37
--- /dev/null
+++ b/gcc-4.7/libcpp/config.in
@@ -0,0 +1,351 @@
+/* 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 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 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.7/libcpp/configure b/gcc-4.7/libcpp/configure
new file mode 100755
index 000000000..fb5654de5
--- /dev/null
+++ b/gcc-4.7/libcpp/configure
@@ -0,0 +1,8706 @@
+#! /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
+MAINT
+USED_CATALOGS
+PACKAGE
+LTLIBICONV
+LIBICONV
+CATOBJEXT
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATALOGS
+POSUB
+GMSGFMT
+XGETTEXT
+INCINTL
+LIBINTL_DEP
+LIBINTL
+USE_NLS
+ALLOCA
+LIBOBJS
+CXXDEPMODE
+CCDEPMODE
+DEPDIR
+am__leading_dot
+WERROR
+noexception_flags
+WARN_PEDANTIC
+c_warn
+warn
+AUTOHEADER
+AUTOCONF
+ACLOCAL
+ENABLE_BUILD_WITH_CXX
+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_build_with_cxx
+enable_werror_always
+with_gnu_ld
+enable_rpath
+with_libiconv_prefix
+enable_maintainer_mode
+enable_checking
+'
+ 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-build-with-cxx build with C++ compiler instead of C compiler
+ --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 enable expensive run-time checks
+
+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
+
+
+# See if we are building gcc with C++.
+# Do this early so setting lang to C++ affects following tests
+# Check whether --enable-build-with-cxx was given.
+if test "${enable_build_with_cxx+set}" = set; then :
+ enableval=$enable_build_with_cxx; ENABLE_BUILD_WITH_CXX=$enableval
+else
+ ENABLE_BUILD_WITH_CXX=no
+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"
+
+
+if test "$ENABLE_BUILD_WITH_CXX" = "no"; then
+depcc="$CC" 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_CC_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_CC_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_CC_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_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+if test x${am_cv_CC_dependencies_compiler_type-none} = xnone
+then as_fn_error "no usable dependency style found" "$LINENO" 5
+else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+fi
+
+else
+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
+
+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.
+
+ 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
+
+
+if test "$ENABLE_BUILD_WITH_CXX" = "yes"; then :
+ 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
+
+
+
+
+
+
+ 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
+
+else
+
+
+
+
+
+ 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_c_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_c_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_c_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
+
+fi
+
+# 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
+
+
+# Check whether --enable-checking was given.
+if test "${enable_checking+set}" = set; then :
+ enableval=$enable_checking;
+else
+ enable_checking=no
+fi
+
+
+if test $enable_checking != no ; then
+
+$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h
+
+fi
+
+
+case $target in
+ alpha*-*-* | \
+ arm*-*-*eabi* | \
+ arm*-*-symbianelf* | \
+ 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
+
+# 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.7/libcpp/configure.ac b/gcc-4.7/libcpp/configure.ac
new file mode 100644
index 000000000..070ab633d
--- /dev/null
+++ b/gcc-4.7/libcpp/configure.ac
@@ -0,0 +1,193 @@
+# -*- 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
+
+# See if we are building gcc with C++.
+# Do this early so setting lang to C++ affects following tests
+AC_ARG_ENABLE(build-with-cxx,
+[ --enable-build-with-cxx build with C++ compiler instead of C compiler],
+ENABLE_BUILD_WITH_CXX=$enableval,
+ENABLE_BUILD_WITH_CXX=no)
+AC_SUBST(ENABLE_BUILD_WITH_CXX)
+
+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
+if test "$ENABLE_BUILD_WITH_CXX" = "no"; then
+ZW_PROG_COMPILER_DEPENDENCIES([CC])
+else
+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])
+fi
+
+# 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.
+AS_IF([test "$ENABLE_BUILD_WITH_CXX" = "yes"],
+ [AC_LANG_PUSH([C++])
+ AM_ICONV
+ AC_LANG_POP([C++])],
+ [AM_ICONV])
+
+# 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)
+
+AC_ARG_ENABLE(checking,
+[ --enable-checking enable expensive run-time checks],,
+enable_checking=no)
+
+if test $enable_checking != no ; then
+ AC_DEFINE(ENABLE_CHECKING, 1,
+[Define if you want more run-time sanity checks.])
+fi
+
+m4_changequote(,)
+case $target in
+ alpha*-*-* | \
+ arm*-*-*eabi* | \
+ arm*-*-symbianelf* | \
+ 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
+
+# Output.
+
+AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])
+AC_CONFIG_FILES(Makefile)
+AC_OUTPUT
diff --git a/gcc-4.7/libcpp/directives-only.c b/gcc-4.7/libcpp/directives-only.c
new file mode 100644
index 000000000..c6772afb8
--- /dev/null
+++ b/gcc-4.7/libcpp/directives-only.c
@@ -0,0 +1,241 @@
+/* CPP Library - directive only preprocessing for distributed compilation.
+ Copyright (C) 2007, 2009
+ 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.7/libcpp/directives.c b/gcc-4.7/libcpp/directives.c
new file mode 100644
index 000000000..0510c6e3a
--- /dev/null
+++ b/gcc-4.7/libcpp/directives.c
@@ -0,0 +1,2591 @@
+/* CPP Library. (Directive handling.)
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2007, 2008, 2009, 2010, 2011 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_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 preceed 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);
+}
+
+/* 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 = pfile->cur_token;
+ cpp_token ns_token;
+ unsigned int count = 1;
+
+ pfile->state.prevent_expansion++;
+
+ token = cpp_get_token (pfile);
+ 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--;
+ /*
+ Kludge ahead.
+
+ Consider this code snippet:
+
+ #define P parallel
+ #pragma omp P for
+ ... a for loop ...
+
+ Once we parsed the 'omp' namespace of the #pragma
+ directive, we then parse the 'P' token that represents the
+ pragma name. P being a macro, it is expanded into the
+ resulting 'parallel' token.
+
+ At this point the 'p' variable contains the 'parallel'
+ pragma name. And pfile->context->macro is non-null
+ because we are still right at the end of the macro
+ context of 'P'. The problem is, if we are being
+ (indirectly) called by cpp_get_token_with_location,
+ that function might test pfile->context->macro to see
+ if we are in the context of a macro expansion, (and we
+ are) and then use pfile->invocation_location as the
+ location of the macro invocation. So we must instruct
+ cpp_get_token below to set
+ pfile->invocation_location. */
+ pfile->set_invocation_location = true;
+ }
+
+ 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->src_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);
+}
+
+/* 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 = XNEW (cpp_context);
+ pfile->context->c.macro = 0;
+ pfile->context->prev = 0;
+ pfile->context->next = 0;
+
+ /* 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;
+
+ /* 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;
+
+ 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);
+
+ _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.7/libcpp/errors.c b/gcc-4.7/libcpp/errors.c
new file mode 100644
index 000000000..c586749ab
--- /dev/null
+++ b/gcc-4.7/libcpp/errors.c
@@ -0,0 +1,238 @@
+/* Default error handlers for CPP Library.
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
+ 2001, 2002, 2004, 2008, 2009, 2010 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.7/libcpp/expr.c b/gcc-4.7/libcpp/expr.c
new file mode 100644
index 000000000..d56e56a63
--- /dev/null
+++ b/gcc-4.7/libcpp/expr.c
@@ -0,0 +1,1956 @@
+/* Parse C expressions for cpplib.
+ Copyright (C) 1987, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2004, 2008, 2009, 2010, 2011 Free Software Foundation.
+ 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 *);
+static struct op *reduce (cpp_reader *, struct op *, enum cpp_ttype);
+static unsigned int interpret_float_suffix (const uchar *, size_t);
+static unsigned int interpret_int_suffix (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)
+
+/* 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 (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;
+ }
+ }
+
+ /* Recognize a fixed-point suffix. */
+ 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;
+
+ 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 (const char *s, size_t len)
+{
+ return interpret_float_suffix ((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 (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;
+
+ 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 (const char *s, size_t len)
+{
+ return interpret_int_suffix ((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. In C++0X if UD_SUFFIX is non null it will be
+ assigned any unrecognized suffix for a user-defined literal. */
+unsigned int
+cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
+ const char **ud_suffix)
+{
+ 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;
+
+ 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;
+
+ /* 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')
+ && (str[1] == '.' || ISXDIGIT (str[1])))
+ {
+ radix = 16;
+ str++;
+ }
+ else if ((*str == 'b' || *str == 'B') && (str[1] == '0' || str[1] == '1'))
+ {
+ radix = 2;
+ str++;
+ }
+ }
+
+ /* Now scan for a well-formed integer or float. */
+ for (;;)
+ {
+ unsigned int c = *str++;
+
+ if (ISDIGIT (c) || (ISXDIGIT (c) && radix == 16))
+ {
+ seen_digit = true;
+ c = hex_value (c);
+ if (c > max_digit)
+ max_digit = c;
+ }
+ else if (c == '.')
+ {
+ if (float_flag == NOT_FLOAT)
+ float_flag = AFTER_POINT;
+ else
+ SYNTAX_ERROR ("too many decimal points in number");
+ }
+ else if ((radix <= 10 && (c == 'e' || c == 'E'))
+ || (radix == 16 && (c == 'p' || c == 'P')))
+ {
+ float_flag = AFTER_EXPON;
+ break;
+ }
+ else
+ {
+ /* Start of suffix. */
+ str--;
+ break;
+ }
+ }
+
+ /* The suffix may be for decimal fixed-point constants without exponent. */
+ if (radix != 16 && float_flag == NOT_FLOAT)
+ {
+ result = interpret_float_suffix (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 (pfile, CPP_DL_PEDWARN,
+ "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 ("invalid digit \"%c\" in binary constant", '0' + max_digit);
+ else
+ SYNTAX_ERROR2 ("invalid digit \"%c\" in octal constant", '0' + max_digit);
+ }
+
+ if (float_flag != NOT_FLOAT)
+ {
+ if (radix == 2)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "invalid prefix \"0b\" for floating constant");
+ return CPP_N_INVALID;
+ }
+
+ if (radix == 16 && !seen_digit)
+ SYNTAX_ERROR ("no digits in hexadecimal floating constant");
+
+ if (radix == 16 && CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, c99))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "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))
+ SYNTAX_ERROR ("exponent has no digits");
+
+ do
+ str++;
+ while (ISDIGIT (*str));
+ }
+ else if (radix == 16)
+ SYNTAX_ERROR ("hexadecimal floating constants require an exponent");
+
+ result = interpret_float_suffix (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 (pfile, CPP_DL_ERROR,
+ "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 (pfile, CPP_W_TRADITIONAL,
+ "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 (pfile, CPP_DL_PEDWARN,
+ "suffix for double constant is a GCC extension");
+
+ /* Radix must be 10 for decimal floats. */
+ if ((result & CPP_N_DFLOAT) && radix != 10)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "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 (pfile, CPP_DL_PEDWARN,
+ "fixed-point constants are a GCC extension");
+
+ if ((result & CPP_N_DFLOAT) && CPP_PEDANTIC (pfile))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "decimal float constants are a GCC extension");
+
+ result |= CPP_N_FLOATING;
+ }
+ else
+ {
+ result = interpret_int_suffix (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 (pfile, CPP_DL_ERROR,
+ "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 (pfile, large ? CPP_W_LONG_LONG : CPP_W_TRADITIONAL,
+ "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++0x long long integer constant")
+ : N_("use of C99 long long integer constant");
+
+ if (CPP_OPTION (pfile, c99))
+ cpp_warning (pfile, CPP_W_LONG_LONG, message);
+ else
+ cpp_pedwarning (pfile, CPP_W_LONG_LONG, message);
+ }
+
+ result |= CPP_N_INTEGER;
+ }
+
+ syntax_ok:
+ if ((result & CPP_N_IMAGINARY) && CPP_PEDANTIC (pfile))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "imaginary constants are a GCC extension");
+ if (radix == 2 && CPP_PEDANTIC (pfile))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "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
+ 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)
+{
+ 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);
+ 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 (pfile, CPP_DL_ERROR,
+ "floating constant in preprocessor expression");
+ break;
+ case CPP_N_INTEGER:
+ if (!(temp & CPP_N_IMAGINARY))
+ return cpp_interpret_integer (pfile, token, temp);
+ cpp_error (pfile, CPP_DL_ERROR,
+ "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 (pfile, CPP_W_UNDEF, "\"%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 (pfile, CPP_DL_PEDWARN,
+ "assertions are a GCC extension");
+ else if (CPP_OPTION (pfile, cpp_warn_deprecated))
+ cpp_warning (pfile, CPP_W_DEPRECATED,
+ "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;
+
+ 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 (pfile);
+ op.op = op.token->type;
+ op.loc = op.token->src_loc;
+
+ 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 ("missing binary operator before token \"%s\"",
+ cpp_token_as_text (pfile, op.token));
+ want_value = false;
+ top->value = eval_token (pfile, op.token);
+ 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 ("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 ("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 ("missing expression between '(' and ')'");
+
+ if (op.op == CPP_EOF && top->op == CPP_EOF)
+ SYNTAX_ERROR2 ("%s with no expression", is_if ? "#if" : "#elif");
+
+ if (top->op != CPP_EOF && top->op != CPP_OPEN_PAREN)
+ SYNTAX_ERROR2 ("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 ("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 (" ':' 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.token->src_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 (pfile, CPP_DL_ICE, "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:
+ rhs = num_negate (rhs, precision);
+ 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.7/libcpp/files.c b/gcc-4.7/libcpp/files.c
new file mode 100644
index 000000000..29ccf3b70
--- /dev/null
+++ b/gcc-4.7/libcpp/files.c
@@ -0,0 +1,1840 @@
+/* Part of CPP library. File handling.
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007, 2008, 2009, 2010, 2011, 2012 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;
+};
+
+/* 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)
+ 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;
+}
+
+/* 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 = htab_hash_string (path);
+ char *copy;
+ void **pp;
+
+ 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().
+*/
+_cpp_file *
+_cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool fake, int angle_brackets)
+{
+ struct file_hash_entry *entry, **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 = (struct file_hash_entry **)
+ 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 (*hash_slot, start_dir);
+ if (entry)
+ return entry->u.file;
+
+ file = make_cpp_file (pfile, start_dir, fname);
+
+ /* 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;
+ 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");
+ }
+ 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 (*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 = *hash_slot;
+ entry->start_dir = start_dir;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.file = file;
+ *hash_slot = 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 = *hash_slot;
+ entry->start_dir = pfile->bracket_include;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.file = file;
+ *hash_slot = entry;
+ }
+ if (saw_quote_include
+ && pfile->quote_include != start_dir
+ && found_in_cache != pfile->quote_include)
+ {
+ entry = new_file_hash_entry (pfile);
+ entry->next = *hash_slot;
+ entry->start_dir = pfile->quote_include;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.file = file;
+ *hash_slot = 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;
+
+ buf = XNEWVEC (uchar, size + 1);
+ 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 + 1);
+ }
+ }
+
+ if (count < 0)
+ {
+ cpp_errno (pfile, CPP_DL_ERROR, file->path);
+ 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, 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;
+
+ /* 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;
+
+ dir = search_path_head (pfile, fname, angle_brackets, type);
+ if (!dir)
+ return false;
+
+ file = _cpp_find_file (pfile, fname, dir, false, angle_brackets);
+
+ /* Compensate for the increment in linemap_add that occurs in
+ _cpp_stack_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)
+ pfile->line_table->highest_location--;
+
+ return _cpp_stack_file (pfile, file, type == IT_IMPORT);
+}
+
+/* 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);
+}
+
+/* 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);
+ 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);
+}
+
+/* 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)
+{
+ /* 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 (file->buffer_start)
+ {
+ free ((void *) file->buffer_start);
+ file->buffer_start = NULL;
+ file->buffer = NULL;
+ file->buffer_valid = false;
+ }
+}
+
+/* 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;
+
+ 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);
+ 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);
+
+ return fwrite (result, result_size, 1, fp) == 1;
+}
+
+/* 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.7/libcpp/identifiers.c b/gcc-4.7/libcpp/identifiers.c
new file mode 100644
index 000000000..8244f0c54
--- /dev/null
+++ b/gcc-4.7/libcpp/identifiers.c
@@ -0,0 +1,121 @@
+/* Hash tables for the CPP library.
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
+ 1999, 2000, 2001, 2002, 2007, 2009 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 (hash_table *);
+
+/* Return an identifier node for hashtable.c. Used by cpplib except
+ when integrated with the C front ends. */
+static hashnode
+alloc_node (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, 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.7/libcpp/include/cpp-id-data.h b/gcc-4.7/libcpp/include/cpp-id-data.h
new file mode 100644
index 000000000..a57edad52
--- /dev/null
+++ b/gcc-4.7/libcpp/include/cpp-id-data.h
@@ -0,0 +1,81 @@
+/* Structures that hang off cpp_identifier, for PCH.
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2009 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.7/libcpp/include/cpplib.h b/gcc-4.7/libcpp/include/cpplib.h
new file mode 100644
index 000000000..bf59d0162
--- /dev/null
+++ b/gcc-4.7/libcpp/include/cpplib.h
@@ -0,0 +1,1046 @@
+/* Definitions for CPP library.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005, 2007, 2008, 2009, 2010, 2011
+ 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_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 (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 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-defnied literals. */
+ unsigned char user_literals;
+
+ /* 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;
+};
+
+/* 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 **);
+
+/* Return the classification flags for a float suffix. */
+extern unsigned int cpp_interpret_float_suffix (const char *, size_t);
+
+/* Return the classification flags for an int suffix. */
+extern unsigned int cpp_interpret_int_suffix (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
+};
+
+/* 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 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.7/libcpp/include/line-map.h b/gcc-4.7/libcpp/include/line-map.h
new file mode 100644
index 000000000..4e3074259
--- /dev/null
+++ b/gcc-4.7/libcpp/include/line-map.h
@@ -0,0 +1,718 @@
+/* Map logical line numbers to (source file, line number) pairs.
+ Copyright (C) 2001, 2003, 2004, 2007, 2008, 2009, 2010, 2011
+ 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 0xFFFFFFFF
+
+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 accross 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((length ("2 * %h.n_tokens"))) 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;
+};
+
+/* 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;
+};
+
+/* 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 begining 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)
+
+/* 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 accross
+ 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;
+
+ /* 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 resturned 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 the the map of the returned
+ location. */
+source_location linemap_unwind_toward_expansion (struct line_maps *,
+ source_location loc,
+ const struct line_map **loc_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;
+};
+
+/* 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.7/libcpp/include/mkdeps.h b/gcc-4.7/libcpp/include/mkdeps.h
new file mode 100644
index 000000000..50bcee407
--- /dev/null
+++ b/gcc-4.7/libcpp/include/mkdeps.h
@@ -0,0 +1,79 @@
+/* Dependency generator for Makefile fragments.
+ Copyright (C) 2000, 2001, 2003, 2009 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.7/libcpp/include/symtab.h b/gcc-4.7/libcpp/include/symtab.h
new file mode 100644
index 000000000..4107a6f8a
--- /dev/null
+++ b/gcc-4.7/libcpp/include/symtab.h
@@ -0,0 +1,104 @@
+/* Hash tables.
+ Copyright (C) 2000, 2001, 2003, 2004, 2007, 2008, 2009, 2010
+ 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 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) (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 hash_table *ht_create (unsigned int order);
+
+/* Frees all memory associated with a hash table. */
+extern void ht_destroy (hash_table *);
+
+extern hashnode ht_lookup (hash_table *, const unsigned char *,
+ size_t, enum ht_lookup_option);
+extern hashnode ht_lookup_with_hash (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 (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 (hash_table *, ht_cb, const void *);
+
+/* Restore the hash table. */
+extern void ht_load (hash_table *ht, hashnode *entries,
+ unsigned int nslots, unsigned int nelements, bool own);
+
+/* Dump allocation statistics to stderr. */
+extern void ht_dump_statistics (hash_table *);
+
+#endif /* LIBCPP_SYMTAB_H */
diff --git a/gcc-4.7/libcpp/init.c b/gcc-4.7/libcpp/init.c
new file mode 100644
index 000000000..5fa82ca9c
--- /dev/null
+++ b/gcc-4.7/libcpp/init.c
@@ -0,0 +1,747 @@
+/* CPP Library.
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
+ 2009, 2010, 2011 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"
+
+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 std;
+ char cplusplus_comments;
+ char digraphs;
+ char uliterals;
+ char rliterals;
+ char user_literals;
+};
+
+static const struct lang_flags lang_defaults[] =
+{ /* c99 c++ xnum xid std // digr ulit rlit user_literals */
+ /* GNUC89 */ { 0, 0, 1, 0, 0, 1, 1, 0, 0, 0 },
+ /* GNUC99 */ { 1, 0, 1, 0, 0, 1, 1, 1, 1, 0 },
+ /* GNUC11 */ { 1, 0, 1, 0, 0, 1, 1, 1, 1, 0 },
+ /* STDC89 */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+ /* STDC94 */ { 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 },
+ /* STDC99 */ { 1, 0, 1, 0, 1, 1, 1, 0, 0, 0 },
+ /* STDC11 */ { 1, 0, 1, 0, 1, 1, 1, 1, 0, 0 },
+ /* GNUCXX */ { 0, 1, 1, 0, 0, 1, 1, 0, 0, 0 },
+ /* CXX98 */ { 0, 1, 1, 0, 1, 1, 1, 0, 0, 0 },
+ /* GNUCXX11 */ { 1, 1, 1, 0, 0, 1, 1, 1, 1, 1 },
+ /* CXX11 */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1 },
+ /* ASM */ { 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 }
+ /* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, and
+ CXX11 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, 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;
+}
+
+/* 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, 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;
+ CPP_OPTION (pfile, warn_normalize) = normalized_C;
+
+ /* 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_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);
+ 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.7/libcpp/internal.h b/gcc-4.7/libcpp/internal.h
new file mode 100644
index 000000000..5b3731bba
--- /dev/null
+++ b/gcc-4.7/libcpp/internal.h
@@ -0,0 +1,867 @@
+/* Part of CPP library.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007,
+ 2008, 2009, 2010, 2011, 2012 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 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};
+
+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. */
+
+ _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;
+
+ /* True if this call to cpp_get_token should consider setting
+ invocation_location. */
+ bool set_invocation_location;
+
+ /* 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 *, 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);
+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 *);
+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 character. */
+ cppchar_t previous;
+ /* The combining class of the previous character. */
+ 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 that matches ISIDNUM(), update a
+ normalize_state appropriately. */
+#define NORMALIZE_STATE_UPDATE_IDNUM(st) \
+ ((st)->previous = 0, (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.7/libcpp/lex.c b/gcc-4.7/libcpp/lex.c
new file mode 100644
index 000000000..0ad9660a7
--- /dev/null
+++ b/gcc-4.7/libcpp/lex.c
@@ -0,0 +1,2921 @@
+/* CPP Library - lexical analysis.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010,
+ 2011 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 8 assembler cannot assemble SSE2/SSE4.2 insns.
+ 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)
+ {
+ 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. */
+ __asm ("%vpcmpestri $0, (%1), %2"
+ : "=c"(index) : "r"(s), "x"(search), "a"(4), "d"(16));
+ 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. */
+ mask = __builtin_vec_lvsr(0, s);
+ mask = __builtin_vec_perm(zero, ones, mask);
+ 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))
+
+ typedef char check_count[(N == 2 || N == 4) * 2 - 1];
+ union {
+ vc v;
+ unsigned long l[N];
+ } 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. */
+ l = __builtin_clzl(l) >> 3;
+ return s + l;
+
+#undef N
+ }
+}
+
+#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);
+ }
+}
+
+/* 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++;
+ }
+ 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))
+ {
+ pfile->buffer->cur++;
+ NORMALIZE_STATE_UPDATE_IDNUM (nst);
+ }
+ } 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 == '.' || VALID_SIGN (*cur, cur[-1]))
+ {
+ cur++;
+ NORMALIZE_STATE_UPDATE_IDNUM (nst);
+ }
+
+ 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;
+}
+
+/* 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)
+{
+ const uchar *raw_prefix;
+ unsigned int raw_prefix_len = 0;
+ enum cpp_ttype type;
+ size_t total_len = 0;
+ _cpp_buff *first_buff = NULL, *last_buff = NULL;
+ _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);
+
+ raw_prefix = cur + 1;
+ while (raw_prefix_len < 16)
+ {
+ 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 '\'':
+ raw_prefix_len++;
+ continue;
+ }
+ break;
+ }
+
+ if (raw_prefix[raw_prefix_len] != '(')
+ {
+ int col = CPP_BUF_COLUMN (pfile->buffer, raw_prefix + raw_prefix_len)
+ + 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
+ 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 = raw_prefix - 1;
+ create_literal (pfile, token, base, raw_prefix - 1 - base, CPP_OTHER);
+ return;
+ }
+
+ cur = raw_prefix + raw_prefix_len + 1;
+ for (;;)
+ {
+#define BUF_APPEND(STR,LEN) \
+ do { \
+ bufring_append (pfile, (const uchar *)(STR), (LEN), \
+ &first_buff, &last_buff); \
+ total_len += (LEN); \
+ } while (0);
+
+ cppchar_t c;
+
+ /* If we previously performed any trigraph or line splicing
+ transformations, undo them within the body of the raw string. */
+ 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;
+ }
+ /* The ) from ??) could be part of the suffix. */
+ else if (type == ')'
+ && strncmp ((const char *) cur+1,
+ (const char *) raw_prefix,
+ raw_prefix_len) == 0
+ && cur[raw_prefix_len+1] == '"')
+ {
+ BUF_APPEND (")", 1);
+ base++;
+ cur += raw_prefix_len + 2;
+ goto break_outer_loop;
+ }
+ else
+ {
+ /* Skip the replacement character. */
+ base = ++cur;
+ BUF_APPEND (&type, 1);
+ }
+ }
+ else
+ abort ();
+ break;
+ }
+ }
+ c = *cur++;
+
+ if (c == ')'
+ && strncmp ((const char *) cur, (const char *) raw_prefix,
+ raw_prefix_len) == 0
+ && cur[raw_prefix_len] == '"')
+ {
+ cur += raw_prefix_len + 1;
+ break;
+ }
+ else if (c == '\n')
+ {
+ if (pfile->state.in_directive
+ || pfile->state.parsing_args
+ || pfile->state.in_deferred_pragma)
+ {
+ 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];
+ }
+ }
+ break_outer_loop:
+
+ if (CPP_OPTION (pfile, user_literals))
+ {
+ /* Grab user defined literal suffix. */
+ 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))
+ {
+ /* Grab user defined literal suffix. */
+ 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 == ':')
+ {
+ 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)));
+ 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);
+
+ base = XNEWVEC (unsigned char, len + sizeof (_cpp_buff));
+ result = (_cpp_buff *) (base + len);
+ 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;
+ free (buff->base);
+ }
+}
+
+/* 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 (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.7/libcpp/line-map.c b/gcc-4.7/libcpp/line-map.c
new file mode 100644
index 000000000..d7752bb4e
--- /dev/null
+++ b/gcc-4.7/libcpp/line-map.c
@@ -0,0 +1,1346 @@
+/* Map logical line numbers to (source file, line number) pairs.
+ Copyright (C) 2001, 2003, 2004, 2007, 2008, 2009, 2010, 2011
+ 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"
+
+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;
+
+/* 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;
+}
+
+/* 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;
+
+ line_map_realloc reallocator
+ = set->reallocator ? set->reallocator : 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 accross
+ 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;
+ line_map_realloc reallocator
+ = set->reallocator ? set->reallocator : 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;
+ set->max_column_hint = 0;
+
+ 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 > 0xC0000000)
+ {
+ /* 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 >0xF0000000)
+ 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 (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 (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;
+
+ 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 (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 (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;
+
+ location =
+ linemap_resolve_location (set, location, LRK_SPELLING_LOCATION, &map);
+
+ if (location < RESERVED_LOCATION_COUNT)
+ return false;
+
+ return LINEMAP_SYSP (map);
+}
+
+/* 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)
+{
+ 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 (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;
+
+ 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;
+
+ 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;
+
+ 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 location to the locus of
+ the expansion point of the macro.
+
+ * If LRK is set to LRK_SPELLING_LOCATION
+ -------------------------------------
+
+ The virtual location is resolved to the location 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_PARM_REPLACEMENT_POINT
+ --------------------------------------
+
+ 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 MAP is non-NULL, *MAP is set to the map of the resolved
+ location. Note that if the resturned 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 (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;
+
+ 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;
+}
+
+/* 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 (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 (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);
+}
+
+/* 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.7/libcpp/macro.c b/gcc-4.7/libcpp/macro.c
new file mode 100644
index 000000000..54de3e3fc
--- /dev/null
+++ b/gcc-4.7/libcpp/macro.c
@@ -0,0 +1,3212 @@
+/* Part of CPP library. (Macro and #define handling.)
+ Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007, 2008, 2009, 2010, 2011, 2012 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 accross
+ 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 *, 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 *);
+
+/* 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:
+ {
+ 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 (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. */
+static bool
+paste_tokens (cpp_reader *pfile, 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 (pfile, CPP_DL_ERROR,
+ "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;
+
+ 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, &lhs, rhs))
+ break;
+ }
+ while (rhs->flags & PASTE_LEFT);
+
+ /* Put the resulting token in its own context. */
+ _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;
+
+ 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);
+
+ 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)
+ {
+ if (CPP_OPTION (pfile, track_macro_expansion))
+ {
+ unsigned int i, count = macro->count;
+ 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, 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, count);
+ for (i = 0; i < 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,
+ count);
+ num_macro_tokens_counter += count;
+ }
+ else
+ {
+ unsigned tokens_count = macro_real_token_count (macro);
+ _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);
+ return 2;
+ }
+
+ return 1;
+ }
+
+ /* 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 accross 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
+ foward 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. */
+void
+_cpp_push_token_context (cpp_reader *pfile, cpp_hashnode *macro,
+ const cpp_token *first, unsigned int count)
+{
+ cpp_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. */
+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 = next_context (pfile);
+ macro_context *m;
+
+ 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 accross 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 accross
+ 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;
+}
+
+/* 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;
+
+ 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)
+ 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 accross 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;
+ bool can_set = pfile->set_invocation_location;
+ /* 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->set_invocation_location = false;
+
+ 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 (can_set && !context->c.macro)
+ 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)
+ && can_set
+ && pfile->context->c.macro != 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);
+ }
+ 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)
+{
+ const cpp_token *result;
+
+ pfile->set_invocation_location = true;
+ result = cpp_get_token_1 (pfile, loc);
+ return result;
+}
+
+/* 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 = 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.7/libcpp/makeucnid.c b/gcc-4.7/libcpp/makeucnid.c
new file mode 100644
index 000000000..50bc4e164
--- /dev/null
+++ b/gcc-4.7/libcpp/makeucnid.c
@@ -0,0 +1,342 @@
+/* Make ucnid.h from various sources.
+ Copyright (C) 2005, 2009 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,
+ digit = 4,
+ not_NFC = 8,
+ not_NFKC = 16,
+ maybe_not_NFC = 32
+};
+
+static unsigned flags[65536];
+static unsigned short decomp[65536][2];
+static unsigned char combining_value[65536];
+
+/* Die! */
+
+static void
+fail (const char *s)
+{
+ fprintf (stderr, "%s\n", s);
+ exit (1);
+}
+
+/* Read ucnid.tab and set the C99 and CXX flags 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, "[CXX]\n") == 0)
+ fl = CXX;
+ 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 > 0xFFFF)
+ 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 set the 'digit' flag, and
+ also 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 either C99 or CXX. */
+
+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;
+ 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 > 0xffff || ! (flags[codepoint] & (C99 | CXX)))
+ continue;
+
+ do {
+ l++;
+ } while (*l != ';');
+ /* Category value; things starting with 'N' are numbers of some
+ kind. */
+ if (*++l == 'N')
+ flags[codepoint] |= digit;
+
+ 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");
+ if (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 > 0xffff)
+ continue;
+ 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];
+
+ for (i = 1; i <= 65536; i++)
+ if (i == 65536
+ || (flags[i] != last_flag && ((flags[i] | last_flag) & (C99 | CXX)))
+ || really_safe != (decomp[i][0] == 0)
+ || combining_value[i] != last_combine)
+ {
+ printf ("{ %s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
+ last_flag & C99 ? "C99" : " 0",
+ last_flag & digit ? "DIG" : " 0",
+ last_flag & CXX ? "CXX" : " 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;
+ }
+}
+
+/* Print out the huge copyright notice. */
+
+static void
+write_copyright (void)
+{
+ static const char copyright[] = "\
+/* Unicode characters and various properties.\n\
+ Copyright (C) 2003, 2005 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 ();
+ return 0;
+}
diff --git a/gcc-4.7/libcpp/mkdeps.c b/gcc-4.7/libcpp/mkdeps.c
new file mode 100644
index 000000000..af11ac3a6
--- /dev/null
+++ b/gcc-4.7/libcpp/mkdeps.c
@@ -0,0 +1,430 @@
+/* Dependency generator for Makefile fragments.
+ Copyright (C) 2000, 2001, 2003, 2007, 2008, 2009
+ 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 = XNEWVEC (char, buf_size);
+
+ /* Number of dependences. */
+ if (fread (&count, 1, sizeof (count), fd) != sizeof (count))
+ return -1;
+
+ /* 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))
+ 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)
+ 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.7/libcpp/pch.c b/gcc-4.7/libcpp/pch.c
new file mode 100644
index 000000000..d278f1437
--- /dev/null
+++ b/gcc-4.7/libcpp/pch.c
@@ -0,0 +1,890 @@
+/* Part of CPP library. (Precompiled header reading/writing.)
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, 2010
+ 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);
+}
+
+/* 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, NULL);
+ 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 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");
+ return -1;
+
+ 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.7/libcpp/po/ChangeLog b/gcc-4.7/libcpp/po/ChangeLog
new file mode 100644
index 000000000..f9bead4c6
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ChangeLog
@@ -0,0 +1,497 @@
+2012-09-20 Release Manager
+
+ * GCC 4.7.2 released.
+
+2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+
+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-22 Release Manager
+
+ * GCC 4.7.0 released.
+
+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.7/libcpp/po/be.gmo b/gcc-4.7/libcpp/po/be.gmo
new file mode 100644
index 000000000..76d3b9875
--- /dev/null
+++ b/gcc-4.7/libcpp/po/be.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/be.po b/gcc-4.7/libcpp/po/be.po
new file mode 100644
index 000000000..542b49f64
--- /dev/null
+++ b/gcc-4.7/libcpp/po/be.po
@@ -0,0 +1,3004 @@
+# 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: 2012-01-27 16:12+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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr ""
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr ""
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr ""
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr ""
+
+#: charset.c:1046
+#, fuzzy, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr ""
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr ""
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr ""
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr ""
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr ""
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr ""
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr ""
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+#: charset.c:1321
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
+
+#: charset.c:1329
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%s'"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr ""
+
+#: charset.c:1509 charset.c:1573
+#, fuzzy
+#| msgid "character constant too long"
+msgid "character constant too long for its type"
+msgstr "ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта вельмі доўгаÑ"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "мнагаÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "пуÑÑ‚Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr ""
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr ""
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr ""
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr ""
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr ""
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr ""
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr ""
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr ""
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr ""
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr ""
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1095
+#, fuzzy, c-format
+msgid "invalid #%s directive"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr ""
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: directives.c:1188
+#, fuzzy, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr ""
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr ""
+
+#: directives.c:1485
+#, fuzzy
+msgid "invalid #pragma push_macro directive"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: directives.c:1540
+#, fuzzy
+msgid "invalid #pragma pop_macro directive"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: directives.c:1648
+#, fuzzy, c-format
+#| msgid "cannot find source %s"
+msgid "cannot find source file %s"
+msgstr "не магу знайÑці крыніцу %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr ""
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr ""
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr ""
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr ""
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr ""
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr ""
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr ""
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr ""
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ñ‹Ñ ÐºÐ°Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ‹Ñ–"
+
+#: errors.c:235
+msgid "stdout"
+msgstr ""
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr ""
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr ""
+
+#: expr.c:466
+#, fuzzy, c-format
+#| msgid "invalid string constant `%E'"
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: expr.c:468
+#, fuzzy, c-format
+#| msgid "invalid string constant `%E'"
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: expr.c:476
+#, fuzzy
+#| msgid "invalid string constant `%E'"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr ""
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr ""
+
+#: expr.c:515
+#, fuzzy, c-format
+#| msgid "invalid string constant `%E'"
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr ""
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr ""
+
+#: expr.c:569
+#, fuzzy, c-format
+#| msgid "invalid string constant `%E'"
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr ""
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr ""
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr ""
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr ""
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr ""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr ""
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr ""
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr ""
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr ""
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr ""
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120 expr.c:1149
+#, fuzzy, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "прапушчан прабел паÑÐ»Ñ Ð½ÑƒÐ¼Ð°Ñ€Ð° \"%.*s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr ""
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr ""
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr ""
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr ""
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr ""
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr ""
+
+#: expr.c:1222
+#, fuzzy, c-format
+#| msgid "unbalanced #endif"
+msgid "unbalanced stack in %s"
+msgstr "незбаланÑаваны #endif"
+
+#: expr.c:1242
+#, fuzzy, c-format
+#| msgid "impossible operator '%s'"
+msgid "impossible operator '%u'"
+msgstr "немагчымы апÑратар '%s'"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr ""
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr ""
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr ""
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr ""
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s - гÑта Ð±Ð»Ñ‘Ñ‡Ð½Ð°Ñ Ð¿Ñ€Ñ‹Ð»Ð°Ð´Ð°"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s - вельмі вÑлікі"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr ""
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr ""
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr ""
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: init.c:543
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr ""
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr ""
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr ""
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr ""
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr ""
+
+#: lex.c:1031
+#, fuzzy, c-format
+#| msgid "`%D' is not a function,"
+msgid "`%.*s' is not in NFC"
+msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, fuzzy, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта вельмі доўгаÑ"
+
+#: lex.c:1460 lex.c:1482
+#, fuzzy
+#| msgid "unterminated comment"
+msgid "unterminated raw string"
+msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ñ‹Ñ ÐºÐ°Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ‹Ñ–"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "прапушчан завÑршаючы Ñімвал %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr ""
+
+#: lex.c:2471
+#, fuzzy, c-format
+msgid "unspellable token %s"
+msgstr "немагу адчыніць файл \"%s\""
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr ""
+
+#: macro.c:260
+#, fuzzy
+msgid "could not determine file timestamp"
+msgstr "не магу знайÑці крыніцу %s\n"
+
+#: macro.c:358
+#, fuzzy
+#| msgid "Could not open data file %s.\n"
+msgid "could not determine date and time"
+msgstr "Ðемагчыма адчыніць файл з дадзенымі %s.\n"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr ""
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr ""
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: macro.c:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr ""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr ""
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2807
+#, fuzzy
+#| msgid "missing white space after number '%.*s'"
+msgid "missing whitespace after the macro name"
+msgstr "прапушчан прабел паÑÐ»Ñ Ð½ÑƒÐ¼Ð°Ñ€Ð° \"%.*s\""
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr ""
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:630
+#, fuzzy, c-format
+#| msgid "label `%s' used but not defined"
+msgid "%s: not used because `%.*s' not defined"
+msgstr "адмеціна `%s' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr ""
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: traditional.c:969
+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 "прапушчан ініцыÑлізатар"
+
+#~ 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.7/libcpp/po/ca.gmo b/gcc-4.7/libcpp/po/ca.gmo
new file mode 100644
index 000000000..f1dabf882
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ca.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/ca.po b/gcc-4.7/libcpp/po/ca.po
new file mode 100644
index 000000000..1d8e50dc1
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ca.po
@@ -0,0 +1,1025 @@
+# 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: 2012-01-27 16:12+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:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "el caràcter 0x%lx no és en el joc de caràcters de base\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "convertint al joc de caràcters d'execució"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "el caràcter 0x%lx no és mono octet en el joc de caràcters d'execució"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr ""
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "els noms de caràcter universals nomès són vàlids en C++ i C99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "el significat de \"\\%c\" és diferent en C tradicional"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "el nom de caràcter universal %.*s és incomplet"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s no és un caràcter universal vàlid"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "\"$\" en un identificador o un nombre"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "el nom de caràcter universal %.*s no és vàlid en un identificador"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "el nom de caràcter universal %.*s no és vàlid a l'inici d'un identificador"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "convertint UCN al joc font de caràcters"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "convertint UCN al joc de caràcters d'execució"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "el significat de \"\\x\" és diferent en C tradicional"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "es va usar \\x sense dígits hexadecimales a continuació"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "seqüència d'escapa hexadecimal fora de rang"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "seqüència d'escapa octal fora de rang"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "el significat de \"\\a\" és diferent en C tradicional"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "seqüència d'escapa que no és estàndard ISO, \"\\%c\""
+
+#: charset.c:1321
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "seqüència d'escapa \"\\%c\" desconeguda"
+
+#: charset.c:1329
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%s'"
+msgstr "seqüència d'escapa \"\\%c\" desconeguda"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "convertint una seqüència d'escapa al joc de caràcters d'execució"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "constant de caràcter massa gran pel seu tipus"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "constant de caràcter amb múltiples caràcters"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "constant de caràter buida"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "fallada convertint %s a %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "elements superflus al final de la directiva #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s és una extenció del GCC"
+
+#: directives.c:361
+#, 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:374
+msgid "suggest not using #elif in traditional C"
+msgstr "es suggereix no usar #elif en C tradicional"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C tradicional ignora #%s amb el # indentat"
+
+#: directives.c:381
+#, 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:407
+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:427
+msgid "style of line directive is a GCC extension"
+msgstr "la directiva d'estil de línia és una extenció del GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directiva de preprocessament #%s invàlida"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" no es pot usar com un nom de macro"
+
+#: directives.c:556
+#, 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:559
+#, 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:562
+msgid "macro names must be identifiers"
+msgstr "els noms de macro han de ser identificadors"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "esborrant la definició de \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "falta el caràcter de terminació >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nom de fitxer buit en #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include niat amb massa profunditat"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next en el fitxer font primari"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "indicador \"%s\" invàlid en la directiva de línia"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" desprès de #line no és un enter positiu"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "nombre de línia fora de rang"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" no és un nom de fitxer vàlid"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" desprès de # no és un enter positiu"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1095
+#, fuzzy, c-format
+#| msgid "invalid #ident directive"
+msgid "invalid #%s directive"
+msgstr "directiva #ident invàlida"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1167
+#, 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:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "ja s'ha desat #pragma %s %s"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "ja s'ha desat #pragma %s"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma una vegada en el fitxer principal"
+
+#: directives.c:1485
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "directiva #pragma de GCC enverinada invàlida"
+
+#: directives.c:1540
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "directiva #pragma de GCC enverinada invàlida"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "directiva #pragma de GCC enverinada invàlida"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "enverinant la macro existent \"%s\""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorat fora del fitxer d'inclusió"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "no es pot trobar la font %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "el fitxer actual és més vell que %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma pren una cadena literal entre parèntesis"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else sense #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else després de #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "el condicional va començar aquí"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif sense #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif després de #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif sense #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "falta \"(\" abans del predicat"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "falta \")\" per a completar la resposta"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "el predicat de la resposta està buit"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "afirmació sense predicat"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "el predicat ha de ser un identificador"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" reafirmat"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s sense acabar"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "comentari sense acabar"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "nombre amb massa punts decimals"
+
+#: expr.c:453 expr.c:547
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "fixed-point constants are a GCC extension"
+msgstr "les constants imaginàries són una extensió d'el GCC"
+
+#: expr.c:466
+#, fuzzy, c-format
+#| msgid "invalid digit \"%c\" in octal constant"
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "dígit \"%c\" invàlid en la constant octal"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "dígit \"%c\" invàlid en la constant octal"
+
+#: expr.c:476
+#, fuzzy
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "sufix \"%.*s\" invàlid en la constant de coma flotant"
+
+#: expr.c:481
+#, fuzzy
+#| msgid "use of C99 hexadecimal floating constant"
+msgid "no digits in hexadecimal floating constant"
+msgstr "ús d'una constant de coma flotant hexadecimal C99"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "ús d'una constant de coma flotant hexadecimal C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "exponent no té dígits"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "la constant de coma flotant hexadecimal requereix un exponent"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufix \"%.*s\" invàlid en la constant de coma flotant"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "el C tradicional rebutja el sufix \"%.*s\""
+
+#: expr.c:534
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "les constants imaginàries són una extensió d'el GCC"
+
+#: expr.c:540
+#, fuzzy, c-format
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "sufix \"%.*s\" invàlid en la constant de coma flotant"
+
+#: expr.c:551
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "decimal float constants are a GCC extension"
+msgstr "les constants imaginàries són una extensió d'el GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufix \"%.*s\" invàlid en constant entera"
+
+#: expr.c:593
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++0x long long integer constant"
+msgstr "ús d'una constant entera long long C99"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "ús d'una constant entera long long C99"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "les constants imaginàries són una extensió d'el GCC"
+
+#: expr.c:611
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "binary constants are a GCC extension"
+msgstr "les constants imaginàries són una extensió d'el GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "la constant entera és massa gran pel seu tipus"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "la constant entera és tan gran que és unsigned"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "\")\" faltant després de \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "l'operador \"defined\" requereix un identificador"
+
+#: expr.c:845
+#, 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:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "aquest ùs de \"defined\" podria no ser portable"
+
+#: expr.c:914
+#, 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:919
+msgid "floating constant in preprocessor expression"
+msgstr "constant de coma flotant en l'expressió del preprocessador"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "nombre imaginari en l'expressió del preprocessador"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" no és definit"
+
+#: expr.c:984
+#, fuzzy
+#| msgid "#%s is a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "#%s és una extenció del GCC"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "operador binari faltant abans de l'element \"%s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "l'element \"%s\" no és vàlid en les expressions del preprocesador"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "expressión faltant entre \"(\" i \")\""
+
+#: expr.c:1160
+#, fuzzy, c-format
+#| msgid "#if with no expression"
+msgid "%s with no expression"
+msgstr "#if sense expressió"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "l'operador \"%s\" no té operant de dreta"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "l'operador \"%s\" no té operant d'esquera"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " \":\" sense \"?\" precedent"
+
+#: expr.c:1222
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "pila desequilibrada en #if"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador \"%u\" impossible"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "\")\" faltant en l'expressió"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr " \"?\" sense el \":\" següent"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "desbordament d'enter en l'expressió del preprocessador"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "\"(\" faltant en l'expressió"
+
+#: expr.c:1419
+#, 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:1424
+#, 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:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "C tradicional rebutja l'operador unari més"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "operador coma en operant de #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "divisió per zero en #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "directori NULL en find_file"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "un o més fitxers PCH varen ser trobats, però varen ser invàlids"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "usi -Winvalid-pch per a més informació"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s és un dispositiu de blocs"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s és massa gran"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s és més curt qu'esperat"
+
+#: files.c:881
+#, 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:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Múltiples guàrdies d'inclusió poden ser útils per a:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t ha de ser d'un tipus unsigned"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "l'aritmètica del preprocesador té una precisió màxima de %lu bits; l'objectiu requereix %lu bits"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "l'aritmètica de CPP ha de ser almenys tan precisa com un int de l'objectiu"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "el char de l'objectiu té menys de 8 bits d'ampliaria"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "el wchar_t de l'objectiu és més estret qu'el char de l'objectiu"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "el int de l'objectiu és més estret qu'el char de l'objectiu"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "el half-integer de CPP és més estret que el caràcter de CPP"
+
+#: init.c:543
+#, 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 caràcter amples més enllà de %lu bits en aquest ordinador, però l'objectiu requereix %lu bits"
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr "barra invertida i fi de línia separats per un espai"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "barra invertida i nova línia al final del fitxer"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c convertit a %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "s'ignora el trigraph ??%c, usi -trigraphs per permetre-ho"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" dintre d'un comentari"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s en una directiva de preprocessament"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "caràter(es) nul(s) ignorats"
+
+#: lex.c:1028
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFKC"
+msgstr "\"%s\" no és definit"
+
+#: lex.c:1031
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFC"
+msgstr "\"%s\" no és definit"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "intent d'usar \"%s\" enverinat"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ solament pot aparèixer en l'expansió d'una macro variadic C99"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, 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 caràcter universal %.*s no és vàlid en un identificador"
+
+#: lex.c:1460 lex.c:1482
+#, fuzzy
+#| msgid "unterminated #%s"
+msgid "unterminated raw string"
+msgstr "#%s sense acabar"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "caràcter(es) nul(s) preservats en la literal"
+
+#: lex.c:1604
+#, fuzzy, c-format
+#| msgid "missing terminating > character"
+msgid "missing terminating %c character"
+msgstr "falta el caràcter de terminació >"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "els comentaris d'estil C++ no són permesos en ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(això es reportarà solament una vegada per cada fitxer d'entrada)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "comentari en múltiples línies"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "Element %s impronunciable"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "no s'usa la macro \"%s\""
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interna \"%s\" invàlida"
+
+#: macro.c:260
+#, 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:358
+msgid "could not determine date and time"
+msgstr "no es pot determinar la data i l'hora"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "cadena literal invàlida, s'ignora el \"\\\" final"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "enganxar \"%s\" i \"%s\" no dóna un element de preprocessament vàlid"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requereix que la resta dels arguments sigui usat"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "la macro \"%s\" requereix %u arguments, però només %u passats"
+
+#: macro.c:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\""
+
+#: macro.c:1026
+#, 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:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "paràmetre de macro \"%s\" duplicat"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" podria faltar en la llista de paràmetre de macro"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "els paràmetres de macro han de ser separats per comes"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "falta el nom del paràmetre"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "els macros variadic anònims es van introduir en C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C no permet macros variadic nomenats"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "\")\" faltant en la llista de paràmetres de macro"
+
+#: macro.c:2748
+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:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requereix espais en blanc després del nom de macro"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "espais en blanc faltant després del nom de macro"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "\"#\" no és seguit per un paràmetre de macro"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" re-definit"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "aquesta és la ubicació de la definició prèvia"
+
+#: macro.c:3066
+#, 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:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipus de hash %d invàlid en cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "mentre escrivint capçalera precompilada"
+
+#: pch.c:608
+#, 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:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: no utilitzat perquè \"%.*s\" no està definit"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: no utilitzat perquè \"%s\" és definit"
+
+#: pch.c:703
+#, 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:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "mentre llegint capçalera precompilada"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "whilst recursiu detectat en expandint la macro \"%s\""
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "error sintàctic en la llista de paràmetre de macro"
+
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "seqüència d'escapa desconeguda: '\\%03o'"
+
+#~ msgid "warning: "
+#~ msgstr "avís: "
+
+#~ msgid "internal error: "
+#~ msgstr "error intern: "
+
+#~ msgid "error: "
+#~ msgstr "error: "
+
+#~ msgid "no newline at end of file"
+#~ msgstr "no hi ha caràcter de fi de línia al final del fitxer"
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "En el fitxer inclòs dès de %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " dès de %s:%u"
diff --git a/gcc-4.7/libcpp/po/cpplib.pot b/gcc-4.7/libcpp/po/cpplib.pot
new file mode 100644
index 000000000..06c2b7f37
--- /dev/null
+++ b/gcc-4.7/libcpp/po/cpplib.pot
@@ -0,0 +1,990 @@
+# 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: 2012-01-27 16:12+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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr ""
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:798
+#: charset.c:1444
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr ""
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr ""
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr ""
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr ""
+
+#: charset.c:1056
+#: lex.c:1052
+msgid "'$' in identifier or number"
+msgstr ""
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr ""
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr ""
+
+#: charset.c:1102
+#: charset.c:1674
+msgid "converting UCN to source character set"
+msgstr ""
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr ""
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr ""
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr ""
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr ""
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr ""
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr ""
+
+#: charset.c:1509
+#: charset.c:1573
+msgid "character constant too long for its type"
+msgstr ""
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr ""
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr ""
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr ""
+
+#: directives.c:223
+#: directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr ""
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr ""
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr ""
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr ""
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr ""
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr ""
+
+#: directives.c:917
+#: directives.c:919
+msgid "line number out of range"
+msgstr ""
+
+#: directives.c:932
+#: directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr ""
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr ""
+
+#: directives.c:1067
+#: directives.c:1069
+#: directives.c:1071
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr ""
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr ""
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr ""
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr ""
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr ""
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr ""
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr ""
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr ""
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr ""
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr ""
+
+#: directives.c:1965
+#: directives.c:1998
+msgid "the conditional began here"
+msgstr ""
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr ""
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr ""
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr ""
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr ""
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr ""
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: directives-only.c:222
+#: lex.c:2133
+#: traditional.c:163
+msgid "unterminated comment"
+msgstr ""
+
+#: errors.c:235
+msgid "stdout"
+msgstr ""
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr ""
+
+#: expr.c:453
+#: expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr ""
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr ""
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr ""
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr ""
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr ""
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr ""
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr ""
+
+#: expr.c:526
+#: expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr ""
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr ""
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr ""
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr ""
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr ""
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr ""
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr ""
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr ""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr ""
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr ""
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr ""
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr ""
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr ""
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120
+#: expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr ""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr ""
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr ""
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr ""
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr ""
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr ""
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr ""
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr ""
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr ""
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr ""
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr ""
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr ""
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr ""
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr ""
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr ""
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr ""
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr ""
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr ""
+
+#: init.c:516
+#, c-format
+msgid ""
+"preprocessor arithmetic has maximum precision of %lu bits; target requires "
+"%lu bits"
+msgstr ""
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: init.c:543
+#, c-format
+msgid ""
+"CPP on this host cannot handle wide character constants over %lu bits, but "
+"the target requires %lu bits"
+msgstr ""
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr ""
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr ""
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr ""
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr ""
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr ""
+
+#: lex.c:1099
+#: lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: lex.c:1107
+#: lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: lex.c:1113
+#: lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr ""
+
+#: lex.c:1460
+#: lex.c:1482
+msgid "unterminated raw string"
+msgstr ""
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr ""
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr ""
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr ""
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: macro.c:226
+#: macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr ""
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr ""
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr ""
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr ""
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr ""
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: macro.c:886
+#: traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: macro.c:1694
+#, c-format
+msgid ""
+"invoking macro %s argument %d: empty macro arguments are undefined in ISO "
+"C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr ""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr ""
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr ""
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: pch.c:88
+#: pch.c:336
+#: pch.c:348
+#: pch.c:366
+#: pch.c:372
+#: pch.c:381
+#: pch.c:388
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr ""
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr ""
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:712
+#: pch.c:888
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr ""
diff --git a/gcc-4.7/libcpp/po/da.gmo b/gcc-4.7/libcpp/po/da.gmo
new file mode 100644
index 000000000..39e2d3bae
--- /dev/null
+++ b/gcc-4.7/libcpp/po/da.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/da.po b/gcc-4.7/libcpp/po/da.po
new file mode 100644
index 000000000..cc198167a
--- /dev/null
+++ b/gcc-4.7/libcpp/po/da.po
@@ -0,0 +1,16288 @@
+# Danish version of GCC strings.
+# Copyright (C) 2002, 03 Free Software Foundation, Inc.
+# Ole Laursen <olau@hardworking.dk>, 2001, 02, 03.
+#
+# Konventioner:
+#
+# ABI -> binær grænseflade
+# ANSI -> (har jeg tilladt mig at opdatere til (modsvarer Info-hjælpen)) 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 -> maskinkodeoversætter
+# assertion -> postulat
+# attribute -> egenskab
+# base class -> stamklasse
+# basic block -> basisblok (funktioner deles op i disse under oversættelsen)
+# braces -> krøllede paranteser
+# braced-group -> sætningsblok
+# branch -> forgrening
+# buffer -> mellemlager
+# cast -> typetildeling, omtvingelse af typen
+# con-/destructor -> kon-/destruktionsfunktion
+# conflicting -> modstridende
+# convert -> konvertere, omdanne
+# declared -> erklæret
+# defaults to -> antages at være
+# dereference -> følge
+# discard -> fjerne
+# discard -> kassere
+# driver -> styringsprogram
+# duplicate -> optræder mere end én gang; mangfoldiggøre
+# edge list -> kantliste
+# elt -> udtrykstræ
+# endian -> endet (fx storendet, lillendet)
+# endianness -> endethed
+# exception handling -> håndtering af undtagelser
+# excess -> for mange
+# expansion -> udfoldning
+# extra -> (ret ofte) overskydende
+# floating point -> kommatal
+# formals -> parametre
+# format string -> formateringsstreng
+# forward -> forhånd (f.eks. forhåndserklæring)
+# frame table -> rammetabel
+# friend -> ven(ne-)
+# gp (general purpose) register -> alment register (havde først brug- med, med det er overflødigt)
+# hard register -> hardware-register
+# have no effect -> udvirker intet
+# identifier -> kaldenavn
+# incompatible -> uforenelig, passer ikke
+# incomplete -> ufuldstændig
+# initialize -> tildele startværdi, klargøre
+# initializer -> startværdi
+# initializer list -> klargøringsliste
+# inline -> integrede, indbygges (eller som reserveret ord: inline)
+# instance -> instans (fx af en klasse)
+# issue (fx warnings) -> fremkom med
+# iterator -> løkkevariabel
+# junk -> ragelse
+# keyword -> reserveret ord
+# label -> etiket
+# linking -> sammenkædning
+# lvalue -> venstreværdi
+# macro -> makro
+# malformed -> forkert udformet, misdannet
+# member function/method -> [medlems]funktion (metode i Objective C)
+# mismatch -> passer ikke med
+# mmap -> indlæse
+# 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 ovenstående) -> instruktioner
+# out of range -> uden for det gyldige (til tider mulige) interval
+# overflow -> (til tider) løber over
+# overlap -> [interval]sammenfald
+# overloading -> flertydiggørelse
+# padding -> udfylning
+# pass -> overbringe (fx parametre), videregive
+# pointer -> henvisning[svariabel]
+# preprocessor -> præprocessor
+# profiling -> profilering
+# promote -> forfremme
+# request -> (til tider) forespørgsel
+# return -> returnerer
+# schedule -> planlæg
+# scope -> virkningsfelt
+# shadowing -> skygger for
+# shift -> skift
+# specified -> (oftest) angivet
+# specifier -> anvisning, angivelse
+# stab -> stik (?)
+# statement -> sætning
+# storage class -> lagringsklasse
+# strict -> nøje
+# string -> streng
+# subscript -> indeks, opslag
+# target -> mål[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 vilkårligt 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: 2012-01-27 16:12+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:674
+#, 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:677
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:781
+#, 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 står for '%c', som er en del af det basale kildekodetegnsæt"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr ""
+
+#: charset.c:994
+#, 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:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "betydningen af '\\%c' er anderledes i traditionel C"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1031
+#, fuzzy, c-format
+#| msgid "incomplete universal-character-name"
+msgid "incomplete universal character name %.*s"
+msgstr "ufuldstændigt universelt tegnnavn"
+
+#: charset.c:1046
+#, 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 erklærer"
+
+#: charset.c:1056 lex.c:1052
+#, fuzzy
+#| msgid "'$' character(s) in identifier or number"
+msgid "'$' in identifier or number"
+msgstr "'$'-tegn i kaldenavn eller tal"
+
+#: charset.c:1066
+#, 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:1070
+#, 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:1102 charset.c:1674
+#, fuzzy
+#| msgid "converting NULL to non-pointer type"
+msgid "converting UCN to source character set"
+msgstr "konverterer NULL til en ikke-henvisningstype"
+
+#: charset.c:1106
+#, fuzzy
+#| msgid "converting NULL to non-pointer type"
+msgid "converting UCN to execution character set"
+msgstr "konverterer NULL til en ikke-henvisningstype"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "betydningen af '\\x' er anderledes i traditionel C"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x angivet uden efterfølgende hexadecimale cifre"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "den oktale undvigesekvens er uden for det gyldige interval"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "betydningen af '\\a' er anderledes i traditionel C"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "undvigesekvensen '\\%c' er ikke ISO-standard"
+
+#: charset.c:1321
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "ukendt undvigesekvensen '\\%c'"
+
+#: charset.c:1329
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%s'"
+msgstr "ukendt undvigesekvensen '\\%c'"
+
+#: charset.c:1336
+#, 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:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "tegnkonstanten er for lang for dens type"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "flerbyte-tegnkonstant"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "tom tegnkonstant"
+
+#: charset.c:1721
+#, 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:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "ekstra symboler i slutningen af #%s-direktiv"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: directives.c:361
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "foreslår undladelse af brug af #elif i traditionel C"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionel C ignorerer #%s når '#' er indrykket"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "foreslår at skjule #%s fra traditionel C vha. indrykket '#'"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "indlejring af et direktiv inden i makroparametre er ikke portabelt"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "linjestilsdirektiv er en GCC-udvidelse"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ugyldigt præprocessordirektiv #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" kan ikke bruges som makronavn"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "intet makronavn angivet i direktivet #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "makronavne skal være kaldenavne"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "glemmer definitionen af \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "manglende afsluttende '>'-tegn"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s forventer \"FILNAVN\" eller <FILNAVN>"
+
+#: directives.c:771
+#, fuzzy, c-format
+#| msgid "empty file name in #%s"
+msgid "empty filename in #%s"
+msgstr "tomt filnavn i #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include indlejret for dybt"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next i den primære kildekodefil"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ugyldigt flag \"%s\" i linjedirektiv"
+
+#: directives.c:908
+#, fuzzy
+#| msgid "Tune expected memory latency"
+msgid "unexpected end of file after #line"
+msgstr "Justér den forventede hukommelsesventetid"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" efter #line er ikke et positivt heltal"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "linjenummer er uden for det gyldige interval"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" er ikke et ugyldigt filnavn"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" efter # er ikke et positivt heltal"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, fuzzy, c-format
+#| msgid "invalid #ident directive"
+msgid "invalid #%s directive"
+msgstr "ugyldigt #ident-direktiv"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1167
+#, 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 både et pragma og som et pragmanavnerum"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registrerer \"%s\" som både et pragma og som et pragmanavnerum"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s er allerede registreret"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s er allerede registreret"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "'#pragma once' i hovedfil"
+
+#: directives.c:1485
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1540
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "forgifter eksisterende makro \"%s\""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "'#pragma system_header' ignoreret uden for inkluderingsfil"
+
+#: directives.c:1648
+#, fuzzy, c-format
+#| msgid "cannot find source %s"
+msgid "cannot find source file %s"
+msgstr "kan ikke finde kilden %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuel fil er ældre end %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma tager en strengkonstant med paranteser omkring"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else uden #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else efter #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "betingelsen begyndte her"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif uden #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif efter #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif uden #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "manglende '(' efter udsagn"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "manglende ')' til at fuldføre svar"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "udsagnets svar et tomt"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "postulat uden udsagn"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "udsagn skal være et kaldenavn"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" genpostuleret"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "uafsluttet #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "uafsluttet kommentar"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "std-ud"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "for mange decimalkommaer i tal"
+
+#: expr.c:453 expr.c:547
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "fixed-point constants are a GCC extension"
+msgstr "imaginære konstanter er en GCC-udvidelse"
+
+#: expr.c:466
+#, fuzzy, c-format
+#| msgid "invalid digit \"%c\" in octal constant"
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "ugyldig ciffer \"%c\" i oktal konstant"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ugyldig ciffer \"%c\" i oktal konstant"
+
+#: expr.c:476
+#, fuzzy
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
+
+#: expr.c:481
+#, fuzzy
+#| msgid "use of C99 hexadecimal floating constant"
+msgid "no digits in hexadecimal floating constant"
+msgstr "brug af C99 hexadecimal kommatalskonstant"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "brug af C99 hexadecimal kommatalskonstant"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "der er ingen cifre i eksponent"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadecimal kommatalskonstant skal have en eksponent"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionel C tillader ikke endelsen \"%.*s\""
+
+#: expr.c:534
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "imaginære konstanter er en GCC-udvidelse"
+
+#: expr.c:540
+#, 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:551
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "decimal float constants are a GCC extension"
+msgstr "imaginære konstanter er en GCC-udvidelse"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ugyldig endelse \"%.*s\" i heltalskonstant"
+
+#: expr.c:593
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++0x long long integer constant"
+msgstr "brug af ISO C99 long long-heltalskonstanter"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "brug af ISO C99 long long-heltalskonstanter"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginære konstanter er en GCC-udvidelse"
+
+#: expr.c:611
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "binary constants are a GCC extension"
+msgstr "imaginære konstanter er en GCC-udvidelse"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "heltalskonstanten er for stor for dens type"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "heltalskonstanten er så stor at den er unsigned"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "manglende ')' efter \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "operatoren \"defined\" kræver et kaldenavn"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" er et alternativt symbol for \"%s\" i C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "denne brug af \"defined\" er muligvis ikke portabel"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "heltallet løber over i præprocessorudtrykket"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "kommatalskonstant i præprocessorudtryk"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginært tal i præprocessorudtryk"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" er ikke defineret"
+
+#: expr.c:984
+#, fuzzy
+#| msgid "#%s is a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "manglende binær operator før symbolet \"%s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "symbolet \"%s\" er ikke gyldigt i præprocessorudtryk"
+
+#: expr.c:1157
+#, fuzzy
+#| msgid "void expression between '(' and ')'"
+msgid "missing expression between '(' and ')'"
+msgstr "tomt udtryk mellem '(' og ')'"
+
+#: expr.c:1160
+#, fuzzy, c-format
+#| msgid "#if with no expression"
+msgid "%s with no expression"
+msgstr "#if uden noget udtryk"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "operatoren '%s' har ikke nogen højre operand"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "operatoren '%s' har ikke nogen venstre operand"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ':' uden forudgående '?'"
+
+#: expr.c:1222
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "uafbalanceret stak i #if"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "umulig operator '%u'"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "manglende ')' i udtryk"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' uden efterfølgende ':'"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "heltallet løber over i præprocessorudtrykket"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "manglende '(' i udtryk"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "den venstre operand til \"%s\" ændrer fortegn ved forfremmelse"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "den højre operand til \"%s\" ændrer fortegn ved forfremmelse"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionel C tillader ikke operatoren unær plus"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "kommeoperator i en operand til #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "division med nul i #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s er en blokenhed"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s er for stor"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s er kortere end forventet"
+
+#: files.c:881
+#, 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:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Flere inkluderingsvagter kan være nyttige til:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t skal være en unsigned type"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "præprocessorberegning har en maksimal præcision på %lu bit; målarkitektur kræver %lu bit"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-beregning skal være mindst lige så præcis som en målarkitekturs int"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "målarkitekturs char er mindre end 8 bit bred"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "målarkitekturs wchar_t er mindre end målarkitekturs char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "målarkitekturs int er mindre end målarkitekturs char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP-halvheltal er mindre end CPP-tegn"
+
+#: init.c:543
+#, 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 vært kan ikke håndtere bredtegnkonstanter over %lu bit, men målarkitekturen kræver %lu bit"
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr "omvendt skråstreg og linjeskift er adskilt af mellemrum"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "omvendt skråstreg efterfulgt af linjeskift ved slutningen af filen"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigrafen ??%c konverteret til %c"
+
+#: lex.c:875
+#, fuzzy, c-format
+#| msgid "trigraph ??%c ignored"
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigrafen ??%c ignoreret"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" i en kommentar"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s i præprocessordirektiv"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "nultegn ignoreret"
+
+#: lex.c:1028
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFKC"
+msgstr "\"%s\" er ikke defineret"
+
+#: lex.c:1031
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFC"
+msgstr "\"%s\" er ikke defineret"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "forsøg på at bruge forgiftet \"%s\""
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ kan kun optræde i udfoldelsen af en C99-makro med vilkårligt antal parametre"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, 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:1460 lex.c:1482
+#, fuzzy
+#| msgid "unterminated format string"
+msgid "unterminated raw string"
+msgstr "uafsluttet formateringsstreng"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "nultegn bevaret i strengkonstant"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "manglende afsluttende '%c'-tegn"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(dette rapporteres kun en enkelt gang per inddatafil)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "flerlinjers kommentar"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "symbol %s kan ikke staves"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makroen \"%s\" bliver ikke brugt"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ugyldig indbygget makro \"%s\""
+
+#: macro.c:260
+#, fuzzy
+#| msgid "could not determine date and time"
+msgid "could not determine file timestamp"
+msgstr "kunne ikke bestemme dato og tid"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "kunne ikke bestemme dato og tid"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "indsættelse af \"%s\" og \"%s\" giver ikke et gyldigt præprocessorsymbol"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 påkræver at restparametrene skal bruges"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makroen \"%s\" kræver %u parametre, men modtager kun %u"
+
+#: macro.c:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "uafsluttet parameterliste ved kald af makroen \"%s\""
+
+#: macro.c:1026
+#, 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:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "makroparameternavnet \"%s\" optræder mere end én gang"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" må ikke optræde i makroparameterliste"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametre skal være komma-adskilte"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "parameternavn mangler"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tillader ikke navngivne makroer med vilkårligt antal parametre"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "manglende ')' i makroparameterliste"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' må ikke optræde ved nogen af enderne i en makrokrop"
+
+#: macro.c:2783
+#, fuzzy
+#| msgid "ISO C requires whitespace after the macro name"
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C påkræver mellemrum efter makronavnet"
+
+#: macro.c:2807
+#, fuzzy
+#| msgid "ISO C requires whitespace after the macro name"
+msgid "missing whitespace after the macro name"
+msgstr "ISO C påkræver mellemrum efter makronavnet"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' efterfølges ikke af en makroparameter"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" omdefineret"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "den foregående definition er her"
+
+#: macro.c:3066
+#, 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:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ugyldig hashtype %d i cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:630
+#, 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:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:683
+#, 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:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "opdagede rekursion ved udfoldelse af makroen \"%s\""
+
+#: traditional.c:969
+#, fuzzy
+#| msgid "\"%s\" may not appear in macro parameter list"
+msgid "syntax error in macro parameter list"
+msgstr "\"%s\" må ikke optræde 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 grænserne af konstant streng"
+
+#~ msgid "second arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "den anden parameter til '__builtin_prefetch' skal være 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 være 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 understøttes ikke af denne målarkitektur"
+
+#~ msgid "argument of `__builtin_args_info' must be constant"
+#~ msgstr "parameteren til '__builtin_args_info' skal være 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 første 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-understøttet parameter til '__builtin_frame_address'"
+
+#~ msgid "unsupported arg to `__builtin_return_address'"
+#~ msgstr "ikke-understøttet parameter til '__builtin_return_address'"
+
+#~ msgid "second arg to `__builtin_expect' must be a constant"
+#~ msgstr "den anden parameter til '__builtin_expect' skal være en konstant"
+
+#~ msgid "__builtin_longjmp second argument must be 1"
+#~ msgstr "den anden paramter til '__builtin_longjmp' skal være 1"
+
+#~ msgid "built-in function `%s' not currently supported"
+#~ msgstr "den indbyggede funktion '%s' understøttes i øjeblikket ikke"
+
+#~ msgid "target format does not support infinity"
+#~ msgstr "målprocessoren understøtter 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 "strenglængden '%d' er større end den længde på '%d' som ISO C%d-oversættere er pålagt at understøtte"
+
+#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+#~ msgstr "sammensætning af strengkonstanter med __FUNCTION__ er forældet"
+
+#~ msgid "overflow in constant expression"
+#~ msgstr "overløb i konstant udtryk"
+
+#~ msgid "integer overflow in expression"
+#~ msgstr "heltalsoverløb i udtryk"
+
+#~ msgid "floating point overflow in expression"
+#~ msgstr "kommatalsoverløb i udtryk"
+
+#~ msgid "vector overflow in expression"
+#~ msgstr "vektoroverløb i udtryk"
+
+#~ msgid "large integer implicitly truncated to unsigned type"
+#~ msgstr "stort heltal forkortes underforstået til type uden fortegn"
+
+#~ msgid "negative integer implicitly converted to unsigned type"
+#~ msgstr "negativt heltal forkortes underforstået til type uden fortegn"
+
+#~ msgid "overflow in implicit constant conversion"
+#~ msgstr "overløb i underforstået 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 ufuldstændig 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 sandhedsværdiudtryk"
+
+#~ msgid "invalid operands to binary %s"
+#~ msgstr "ugyldige operander til binær %s"
+
+#~ msgid "comparison is always false due to limited range of data type"
+#~ msgstr "sammenligning er altid falsk på grund af den begrænsede rækkevidde af datatypen"
+
+#~ msgid "comparison is always true due to limited range of data type"
+#~ msgstr "sammenligning er altid sand på grund af den begrænsede rækkevidde 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 "værdi af struct-type angivet hvor skalar er påkrævet"
+
+#~ msgid "union type value used where scalar is required"
+#~ msgstr "værdi af union-type angivet hvor skalar er påkrævet"
+
+#~ msgid "array type value used where scalar is required"
+#~ msgstr "værdi af tabeltype angivet hvor skalar er påkrævet"
+
+#~ msgid "suggest parentheses around assignment used as truth value"
+#~ msgstr "foreslår paranteser omkring tildeling der er benyttet som boolsk værdi"
+
+#~ 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 ufuldstændig 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-værdier"
+
+#~ msgid "ISO C++ forbids range expressions in switch statements"
+#~ msgstr "ISO C++ forbyder intervaludtryk i switch-sætninger"
+
+#~ msgid "ISO C forbids range expressions in switch statements"
+#~ msgstr "ISO C forbyder intervaludtryk i switch-sætninger"
+
+#~ msgid "empty range specified"
+#~ msgstr "tomt interval angivet"
+
+#~ msgid "duplicate (or overlapping) case value"
+#~ msgstr "case-værdi optræder mere end én gang (måske pga. intervalsammenfald)"
+
+#~ msgid "this is the first entry overlapping that value"
+#~ msgstr "dette er det første punkt som falder sammen med den værdi"
+
+#~ msgid "duplicate case value"
+#~ msgstr "case-værdi optræder 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 første 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 "erklæring 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 erklæring"
+
+#~ 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 understøttes ikke på denne målarkitektur"
+
+#~ 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 både 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 være 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 være 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 størrelse 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 påkrævet (parameter %lu)"
+
+#~ msgid "void value not ignored as it ought to be"
+#~ msgstr "tom værdi er ikke ignoreret som den burde være"
+
+#~ 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 ufuldstændig ved virkefeltets afslutning her"
+
+#~ msgid "`union %s' incomplete in scope ending here"
+#~ msgstr "'union %s' er ufuldstændig ved virkefeltets afslutning her"
+
+#~ msgid "`enum %s' incomplete in scope ending here"
+#~ msgstr "'enum %s' er ufuldstændig 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' omerklæret som inline"
+
+#~ msgid "previous declaration of function `%s' with attribute noinline"
+#~ msgstr "tidligere erklæring af funktionen '%s' med egenskaben noinline"
+
+#~ msgid "function `%s' redeclared with attribute noinline"
+#~ msgstr "funktionen '%s' omerklæret med egenskaben noinline"
+
+#~ msgid "previous declaration of function `%s' was inline"
+#~ msgstr "tidligere erklæring 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 erklæret som noget der ikke er en funktion"
+
+#~ msgid "built-in function `%s' declared as non-function"
+#~ msgstr "den indbyggede funktion '%s' er erklæret som noget der ikke er en funktion"
+
+#~ msgid "`%s' redeclared as different kind of symbol"
+#~ msgstr "'%s' omerklæret som en anden form for symbol"
+
+#~ msgid "previous declaration of `%s'"
+#~ msgstr "'%s' er tidligere erklæret"
+
+#~ 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 erklæring 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 erklæring med en tom parameterliste"
+
+#~ msgid "thread-local declaration of `%s' follows non thread-local declaration"
+#~ msgstr "trådlokal erklæring af '%s' følger ikke-trådlokal erklæring"
+
+#~ msgid "non thread-local declaration of `%s' follows thread-local declaration"
+#~ msgstr "ikke-trådlokal erklæring af '%s' følger trådlokal erklæring"
+
+#~ msgid "redefinition of `%s'"
+#~ msgstr "omdefinering af '%s'"
+
+#~ msgid "redeclaration of `%s'"
+#~ msgstr "omerklæring af '%s'"
+
+#~ msgid "conflicting declarations of `%s'"
+#~ msgstr "modstridende erklæringer af '%s'"
+
+#~ msgid "prototype for `%s' follows"
+#~ msgstr "prototypen for '%s' følger"
+
+#~ 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' følger og antallet af parametre passer ikke"
+
+#~ msgid "prototype for `%s' follows and argument %d doesn't match"
+#~ msgstr "prototypen for '%s' følger og den %d. parameter passer ikke"
+
+#~ msgid "`%s' declared inline after being called"
+#~ msgstr "'%s' er erklæret inline efter at være blevet kaldt"
+
+#~ msgid "`%s' declared inline after its definition"
+#~ msgstr "'%s' er erklæret inline efter dens definition"
+
+# anden 'declaration' er underforstået i engelsk original
+#~ msgid "static declaration for `%s' follows non-static"
+#~ msgstr "static-erklæring af '%s' følger erklæring uden static"
+
+#~ msgid "non-static declaration for `%s' follows static"
+#~ msgstr "erklæring uden static af '%s' følger static-erklæring"
+
+#~ msgid "const declaration for `%s' follows non-const"
+#~ msgstr "const-erklæring af '%s' følger ikke-konstant erklæring"
+
+#~ msgid "type qualifiers for `%s' conflict with previous decl"
+#~ msgstr "typemodifikationer for '%s' strider mod tidligere erklæring"
+
+#~ msgid "redundant redeclaration of `%s' in same scope"
+#~ msgstr "overflødig omerklæring af '%s' i samme virkefelt"
+
+#~ msgid "declaration of `%s' shadows a parameter"
+#~ msgstr "erklæring af '%s' skygger for en parameter"
+
+#~ msgid "declaration of `%s' shadows a symbol from the parameter list"
+#~ msgstr "erklæring 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 erklæring"
+
+#~ msgid "nested extern declaration of `%s'"
+#~ msgstr "indlejret extern-erklæring af '%s'"
+
+#~ msgid "`%s' used prior to declaration"
+#~ msgstr "'%s' benyttes før erklæringen"
+
+#~ msgid "`%s' was declared implicitly `extern' and later `static'"
+#~ msgstr "'%s' blev underforstået erklæret 'extern' og derefter 'static'"
+
+#~ msgid "type mismatch with previous external decl"
+#~ msgstr "typen passer ikke med tidligere ekstern erklæring"
+
+#~ msgid "previous external decl of `%s'"
+#~ msgstr "tidligere ekstern erklæring af '%s'"
+
+#~ msgid "type mismatch with previous implicit declaration"
+#~ msgstr "typen passer ikke med tidligere underforstået erklæring"
+
+#~ msgid "previous implicit declaration of `%s'"
+#~ msgstr "tidligere underforstået erklæring af '%s'"
+
+#~ msgid "`%s' was previously implicitly declared to return `int'"
+#~ msgstr "'%s' blev tidligere underforstået erklæret til at returnere 'int'"
+
+#~ msgid "`%s' was declared `extern' and later `static'"
+#~ msgstr "'%s' blev erklæret 'extern' og derefter 'static'"
+
+#~ msgid "extern declaration of `%s' doesn't match global one"
+#~ msgstr "extern-erklæring 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 erklæret inden for en blok"
+
+#~ msgid "implicit declaration of function `%s'"
+#~ msgstr "underforstået erklæring 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 erklæret mere end én gang"
+
+#~ msgid "this is a previous declaration"
+#~ msgstr "dette er en tidligere erklæring"
+
+#~ 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 erklæring"
+
+#~ msgid "two types specified in one empty declaration"
+#~ msgstr "to typer angivet i én tom erklæring"
+
+#~ msgid "empty declaration"
+#~ msgstr "tom erklæring"
+
+#~ msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+#~ msgstr "ISO C90 understøtter ikke 'static' eller typemodifikationer i parametertabelerklæringer"
+
+#~ msgid "ISO C90 does not support `[*]' array declarators"
+#~ msgstr "ISO C90 understøtter ikke tabelerklæringer med '[*]'"
+
+#~ msgid "GCC does not yet properly implement `[*]' array declarators"
+#~ msgstr "GCC understøtter endnu ikke ordentligt tabelerklæringer med '[*]'"
+
+#~ msgid "static or type qualifiers in abstract declarator"
+#~ msgstr "static eller typemodifikationer i abstrakt erklæring"
+
+#~ msgid "`%s' is usually a function"
+#~ msgstr "'%s' er sædvanligvis en funktion"
+
+# init dækker over værditildeling her - samme for de næste mange
+#~ msgid "typedef `%s' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef '%s' bliver tildelt en værdi (benyt __typeof__ i stedet)"
+
+#~ msgid "function `%s' is initialized like a variable"
+#~ msgstr "funktionen '%s' bliver tildelt en startværdi som en variabel"
+
+#~ msgid "parameter `%s' is initialized"
+#~ msgstr "parameteren '%s' bliver tildelt en startværdi"
+
+#~ msgid "variable-sized object may not be initialized"
+#~ msgstr "et objekt af variabel størrelse må ikke tildeles en startværdi"
+
+#~ msgid "variable `%s' has initializer but incomplete type"
+#~ msgstr "variablen '%s' bliver tildelt en startværdi, men er af en ufuldstændig type"
+
+#~ msgid "elements of array `%s' have incomplete type"
+#~ msgstr "elementer i tabellen '%s' er af en ufuldstændig type"
+
+#~ msgid "declaration of `%s' has `extern' and is initialized"
+#~ msgstr "erklæringen af '%s' indeholder 'extern' og variablen bliver tildelt en startværdi"
+
+#~ msgid "inline function `%s' given attribute noinline"
+#~ msgstr "inline funktion '%s' givet egenskaben noinline"
+
+#~ msgid "initializer fails to determine size of `%s'"
+#~ msgstr "startværdien giver ikke størrelsen af '%s'"
+
+#~ msgid "array size missing in `%s'"
+#~ msgstr "tabelstørrelsen mangler i '%s'"
+
+#~ msgid "zero or negative size array `%s'"
+#~ msgstr "nul eller negativ størrelse for tabellen '%s'"
+
+#~ msgid "storage size of `%s' isn't known"
+#~ msgstr "lagringsstørrelsen af '%s' er ikke kendt"
+
+#~ msgid "storage size of `%s' isn't constant"
+#~ msgstr "lagringsstørrelsen 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 understøtter ikke 'long long'"
+
+#~ msgid "duplicate `%s'"
+#~ msgstr "'%s' optræder mere end én gang"
+
+#~ msgid "`__thread' before `extern'"
+#~ msgstr "'__thread' før 'extern'"
+
+#~ msgid "`__thread' before `static'"
+#~ msgstr "'__thread' før 'static'"
+
+#~ msgid "two or more data types in declaration of `%s'"
+#~ msgstr "mere end én datatype i erklæringen 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 være 'int' i erklæringen af '%s'"
+
+#~ msgid "both long and short specified for `%s'"
+#~ msgstr "både 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 "både 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 understøtter ikke komplekse typer"
+
+#~ msgid "ISO C does not support plain `complex' meaning `double complex'"
+#~ msgstr "ISO C understøtter ikke at blot 'complex' betyder 'double complex'"
+
+#~ msgid "ISO C does not support complex integer types"
+#~ msgstr "ISO C understøtter ikke komplekse heltalstyper"
+
+#~ msgid "duplicate `const'"
+#~ msgstr "'const' optræder mere end én gang"
+
+#~ msgid "duplicate `restrict'"
+#~ msgstr "'restrict' optræder mere end én gang"
+
+#~ msgid "duplicate `volatile'"
+#~ msgstr "'volatile' optræder mere end én gang"
+
+#~ msgid "multiple storage classes in declaration of `%s'"
+#~ msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
+
+#~ msgid "function definition declared `auto'"
+#~ msgstr "'auto' er påhæftet funktionsdefinitionen"
+
+#~ msgid "function definition declared `register'"
+#~ msgstr "'register' er påhæftet funktionsdefinitionen"
+
+#~ msgid "function definition declared `typedef'"
+#~ msgstr "'typedef' er påhæftet funktionsdefinitionen"
+
+#~ msgid "function definition declared `__thread'"
+#~ msgstr "'__thread' er påhæftet 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 startværdi og er samtidig erklæret 'extern'"
+
+#~ msgid "`%s' has both `extern' and initializer"
+#~ msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi"
+
+#~ msgid "top-level declaration of `%s' specifies `auto'"
+#~ msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
+
+#~ msgid "nested function `%s' declared `extern'"
+#~ msgstr "indlejret funktion '%s' er erklæret 'extern'"
+
+#~ msgid "function-scope `%s' implicitly auto and declared `__thread'"
+#~ msgstr "'%s' i funktionsvirkefelt underforstået auto og erklæret '__thread'"
+
+#~ msgid "static or type qualifiers in non-parameter array declarator"
+#~ msgstr "static eller typemodifikationer i ikke-parametertabelerklæring"
+
+#~ msgid "declaration of `%s' as array of voids"
+#~ msgstr "'%s' erklæret som en tabel af void"
+
+#~ msgid "declaration of `%s' as array of functions"
+#~ msgstr "'%s' erklæret 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 "størrelsen af tabellen '%s' er ikke af en heltalstype"
+
+#~ msgid "ISO C forbids zero-size array `%s'"
+#~ msgstr "ISO C forbyder tabellen '%s' med størrelsen nul"
+
+#~ msgid "size of array `%s' is negative"
+#~ msgstr "størrelsen af tabellen '%s' er negativ"
+
+#~ msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+#~ msgstr "ISO C90 forbyder tabellen '%s' hvis størrelse ikke kan bestemmes"
+
+#~ msgid "ISO C90 forbids variable-size array `%s'"
+#~ msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse"
+
+#~ msgid "size of array `%s' is too large"
+#~ msgstr "størrelsen af tabellen '%s' er for stor"
+
+#~ msgid "ISO C90 does not support flexible array members"
+#~ msgstr "ISO C90 understøtter ikke fleksible tabelmedlemmer"
+
+#~ msgid "array type has incomplete element type"
+#~ msgstr "tabeltypen er af en ufuldstændig 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 erklæret som en funktion der returnerer en funktion"
+
+#~ msgid "`%s' declared as function returning an array"
+#~ msgstr "'%s' er erklæret 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 erklæring af henvisning"
+
+#~ msgid "variable or field `%s' declared void"
+#~ msgstr "variabel eller felt '%s' erklæret void"
+
+#~ msgid "attributes in parameter array declarator ignored"
+#~ msgstr "egenskaber i parametertabelerklæring ignoreret"
+
+#~ msgid "invalid type modifier within array declarator"
+#~ msgstr "ugyldig typemodifikation i tabelerklæring"
+
+#~ msgid "field `%s' declared as a function"
+#~ msgstr "feltet '%s' er erklæret som en funktion"
+
+#~ msgid "field `%s' has incomplete type"
+#~ msgstr "feltet '%s' er af en ufuldstændig 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 værdi"
+
+# at oversætte inline med et udsagnsord her bliver vist for tvetydigt
+#~ msgid "cannot inline function `main'"
+#~ msgstr "funktionen 'main' kan ikke være inline"
+
+#~ msgid "variable `%s' declared `inline'"
+#~ msgstr "variablen '%s' er erklæret 'inline'"
+
+#~ msgid "thread-local storage not supported for this target"
+#~ msgstr "trådlokal lagring understøttes ikke på målarkitekturen"
+
+#~ msgid "function declaration isn't a prototype"
+#~ msgstr "funktionserklæringen er ikke en prototype"
+
+#~ msgid "parameter names (without types) in function declaration"
+#~ msgstr "parameternavne (uden typer) i funktionserklæringen"
+
+#~ msgid "parameter `%s' has incomplete type"
+#~ msgstr "parameteren '%s' er af en ufuldstændig type"
+
+#~ msgid "parameter has incomplete type"
+#~ msgstr "parameteren er af en ufuldstændig type"
+
+# engelsk original upræcis (hvordan kan man henvise til en type?)
+#~ msgid "parameter `%s' points to incomplete type"
+#~ msgstr "parameteren '%s' er en henvisning til en ufuldstændig type"
+
+#~ msgid "parameter points to incomplete type"
+#~ msgstr "parameteren er en henvisning til en ufuldstændig type"
+
+#~ msgid "parameter `%s' has just a forward declaration"
+#~ msgstr "parameteren '%s' har kun en forhåndserklæring"
+
+#~ msgid "`void' in parameter list must be the entire list"
+#~ msgstr "'void' i en parameterliste skal udgøre hele listen"
+
+#~ msgid "`struct %s' declared inside parameter list"
+#~ msgstr "'struct %s' erklæret inde i en parameterliste"
+
+#~ msgid "`union %s' declared inside parameter list"
+#~ msgstr "'union %s' erklæret inde i en parameterliste"
+
+#~ msgid "`enum %s' declared inside parameter list"
+#~ msgstr "'enum %s' erklæret inde i en parameterliste"
+
+#~ msgid "anonymous struct declared inside parameter list"
+#~ msgstr "anonym struct erklæret inde i en parameterliste"
+
+#~ msgid "anonymous union declared inside parameter list"
+#~ msgstr "anonym union erklæret inde i en parameterliste"
+
+#~ msgid "anonymous enum declared inside parameter list"
+#~ msgstr "anonym enum erklæret 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 erklæring 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 "erklæring erklærer 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 ufuldstændig 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 præcisionen
+#~ msgid "`%s' is narrower than values of its type"
+#~ msgstr "'%s' er smallere end værdier 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' optræder mere end én gang"
+
+#~ msgid "union cannot be made transparent"
+#~ msgstr "union kan ikke ikke gøres gennemsigtig"
+
+#~ msgid "redeclaration of `enum %s'"
+#~ msgstr "omerklæring 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-værdier overstige rækkevidden af det største heltal"
+
+#~ msgid "enumerator value for `%s' not integer constant"
+#~ msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
+
+#~ msgid "overflow in enumeration values"
+#~ msgstr "enum-værdier for store"
+
+#~ msgid "ISO C restricts enumerator values to range of `int'"
+#~ msgstr "ISO C begrænser enum-værdier til rækkevidden af 'int'"
+
+#~ msgid "return type is an incomplete type"
+#~ msgstr "returtypen er en ufuldstændig type"
+
+#~ msgid "return type defaults to `int'"
+#~ msgstr "returtypen antages at være '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 før dens definition"
+
+#~ msgid "no previous declaration for `%s'"
+#~ msgstr "ingen tidligere erklæring af '%s'"
+
+#~ msgid "`%s' was used with no declaration before its definition"
+#~ msgstr "'%s' blev brugt uden en erklæring før 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 første parameter til '%s' skal være 'int'"
+
+#~ msgid "second argument of `%s' should be `char **'"
+#~ msgstr "den anden parameter til '%s' skal være 'char **'"
+
+#~ msgid "third argument of `%s' should probably be `char **'"
+#~ msgstr "den tredje parameter til '%s' skal sandsynligvis være '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 både i parameterliste og separat"
+
+#~ msgid "parameter name omitted"
+#~ msgstr "parameternavn udeladt"
+
+#~ msgid "parameter `%s' declared void"
+#~ msgstr "parameteren '%s' erklæret 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 være 'int'"
+
+#~ msgid "declaration for parameter `%s' but no such parameter"
+#~ msgstr "erklæring af parameteren '%s', men ingen sådan 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-sætning 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 værdi"
+
+#~ msgid "size of return value of `%s' is %u bytes"
+#~ msgstr "størrelsen af returtypen til '%s' er %u byte"
+
+#~ msgid "size of return value of `%s' is larger than %d bytes"
+#~ msgstr "størrelsen af returtypen til '%s' er større end %d byte"
+
+#~ msgid "`for' loop initial declaration used outside C99 mode"
+#~ msgstr "begyndelseserklæring i 'for'-løkke benyttet uden for C99-tilstand"
+
+#~ msgid "`struct %s' declared in `for' loop initial declaration"
+#~ msgstr "'struct %s' erklæret i begyndelseserklæring i 'for'-løkke"
+
+#~ msgid "`union %s' declared in `for' loop initial declaration"
+#~ msgstr "'union %s' erklæret i begyndelseserklæring i 'for'-løkke"
+
+#~ msgid "`enum %s' declared in `for' loop initial declaration"
+#~ msgstr "'enum %s' erklæret i begyndelseserklæring i 'for'-løkke"
+
+#~ msgid "declaration of non-variable `%s' in `for' loop initial declaration"
+#~ msgstr "erklæring af '%s' der ikke er en variabel, i begyndelseserklæring i 'for'-løkke"
+
+#~ msgid "declaration of static variable `%s' in `for' loop initial declaration"
+#~ msgstr "erklæring af '%s' der er en statisk variabel, i begyndelseserklæring i 'for'-løkke"
+
+#~ msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
+#~ msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
+
+#~ 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 efterfølger 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 "præcision"
+
+#~ msgid "precision in printf format"
+#~ msgstr "præcision i printf-formatering"
+
+#~ msgid "length modifier"
+#~ msgstr "længdetilpasning"
+
+#~ msgid "length modifier in printf format"
+#~ msgstr "længdetilpasning 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 "længdetilpasning 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 "venstrepræcision"
+
+#~ msgid "left precision in strfmon format"
+#~ msgstr "venstrepræcision i strfmon-formatering"
+
+#~ msgid "right precision"
+#~ msgstr "højrepræcision"
+
+#~ msgid "right precision in strfmon format"
+#~ msgstr "højrepræcision i strfmon-formatering"
+
+#~ msgid "length modifier in strfmon format"
+#~ msgstr "længdemodifikation 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 understøtter 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 før 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 længden 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 venstrepræcision i %s-formatering"
+
+#~ msgid "field precision"
+#~ msgstr "feltpræcision"
+
+#~ msgid "empty precision in %s format"
+#~ msgstr "tom præcision i %s-formatering"
+
+#~ msgid "%s does not support the `%s' %s length modifier"
+#~ msgstr "%s understøtter ikke '%s' %s-længdemodifikationen"
+
+#~ 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 understøtter 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 understøtter ikke %s"
+
+#~ msgid "%s does not support %s with the `%%%c' %s format"
+#~ msgstr "%s understøtter 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'-længdemodifikation med '%c'-typetegn"
+
+#~ msgid "%s does not support the `%%%s%c' %s format"
+#~ msgstr "%s understøtter 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 "læsning 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 præprocessoren"
+
+#~ 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 være 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 mål mangler efter '-%s'"
+
+#~ msgid "options array incorrectly sorted: %s is before %s"
+#~ msgstr "tilvalgstabel sorteret forkert: %s er før %s"
+
+#~ msgid "too many filenames given. Type %s --help for usage"
+#~ msgstr "for mange filnavne angivet - vejledning i brug kan fås med '%s --help'"
+
+#~ msgid "-Wno-strict-prototypes is not supported in C++"
+#~ msgstr "-Wno-strict-prototypes er ikke understøttet i C++"
+
+#~ msgid "switch \"%s\" is no longer supported"
+#~ msgstr "tilvalget '%s' understøttes ikke længere"
+
+#~ msgid "switch \"%s\" is deprecated, please see documentation for details"
+#~ msgstr "tilvalget '%s' er forældet, se venligst dokumentationen for detaljer"
+
+#~ msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+#~ msgstr "-fhandle-exceptions er blevet omdøbt 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 afhængighedsfilen %s"
+
+#~ msgid "closing dependency file %s"
+#~ msgstr "lukker afhængighedsfilen %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 afhængigheder 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> Inkludér indholdet af <fil> før andre filer\n"
+#~ " -imacros <fil> Læs makrodefinitionerne i <fil>\n"
+#~ " -iprefix <sti> Angiv <sti> som et præfiks til de næste to tilvalg\n"
+#~ " -iwithprefix <ktlg> Føj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -withprefixbefore <ktlg> Føj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -isystem <ktlg> Føj <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> Føj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -I <ktlg> Føj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -I- Nøje kontrolleret inkluderingssti; se info-hjælpen\n"
+#~ " -nostdinc Søg ikke i systeminkluderingskataloger\n"
+#~ " (kataloger angivet med -isystem søges dog stadig)\n"
+#~ " -nostdinc++ Søg 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 Understøt 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 mødes\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 utilgængelige 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 præprocessoradvarsler 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 Generér afhængigheder til make\n"
+#~ " -MM Som -M, men ignorér systeminkluderingsfiler\n"
+#~ " -MD Generer make-afhængigheder og oversæt\n"
+#~ " -MMD Som -MD, men ignorér systeminkluderingsfiler\n"
+#~ " -MF <fil> Skriv afhænghedsuddata til den givne fil\n"
+#~ " -MG Behandl manglende inkl.-filer som genererede filer\n"
+
+# make kalder phony targets for falske mål
+#~ 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 Generér \"falske\" mål for alle inkluderingsfiler\n"
+#~ " -MQ <mål> Tilføj et MAKE-mål i anførselstegn\n"
+#~ " -MT <mål> Tilføj et mål uden anførselstegn\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> Definér makroen <makro> med strengen '1' som værdi\n"
+#~ " -D<makro>=<værdi> Definér makroen <makro> med værdien <værdi>\n"
+#~ " -A<spørgsmål>=<svar> Angiv at <svar> er svar på <spørgsmål>\n"
+#~ " -A-<spørgsmål>=<svar> Angiv at <svar> ikke er svar på <spørgsmål>\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 når 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 Inkludér #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 præprocesseret\n"
+#~ " -ftabstop=<tal> Afstand mellem tabulatorstop i kolonnerapportering\n"
+#~ " -P Generér 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 sætningsblokke inden i udtryk"
+
+#~ msgid "first argument to __builtin_choose_expr not a constant"
+#~ msgstr "første parameter til '__builtin_choose_expr' skal være 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 erklæringen"
+
+#~ msgid "ISO C forbids empty initializer braces"
+#~ msgstr "ISO C forbyder tom startværdiblok"
+
+#~ msgid "ISO C89 forbids specifying subobject to initialize"
+#~ msgstr "ISO C89 forbyder angivelse af underobjekt til klargøring"
+
+# RETMIG: hm, gad vide om dette er rigtigt
+#~ msgid "obsolete use of designated initializer without `='"
+#~ msgstr "forældet brug af udpeget startværdi uden '='"
+
+#~ msgid "obsolete use of designated initializer with `:'"
+#~ msgstr "forældet brug af udpeget startværdi med ':'"
+
+#~ msgid "ISO C forbids specifying range of elements to initialize"
+#~ msgstr "ISO C forbyder angivelse af interval af elementer til klargøring"
+
+#~ 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 forhåndsreferencer 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 understøtter ikke unavngivne struct/union-konstruktioner"
+
+#~ msgid "ISO C forbids member declarations with no members"
+#~ msgstr "ISO C forbyder medlemserklæringer uden medlemmer"
+
+#~ msgid "deprecated use of label at end of compound statement"
+#~ msgstr "forældet brug af etiket i slutningen af sammensat sætning"
+
+#~ msgid "ISO C89 forbids mixed declarations and code"
+#~ msgstr "ISO C89 forbyder blandede erklæringer og kode"
+
+#~ msgid "ISO C forbids label declarations"
+#~ msgstr "ISO C forbyder etiketerklæringer"
+
+#~ msgid "braced-group within expression allowed only inside a function"
+#~ msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
+
+#~ msgid "empty body in an else-statement"
+#~ msgstr "tom krop i en else-sætning"
+
+#~ msgid "ISO C forbids `goto *expr;'"
+#~ msgstr "ISO C forbyder 'goto *udtryk;'"
+
+#~ msgid "ISO C forbids forward parameter declarations"
+#~ msgstr "ISO C forbyder forhåndsparametererklæringer"
+
+#~ msgid "ISO C requires a named argument before `...'"
+#~ msgstr "ISO C påkræver en navngiven parameter før '...'"
+
+#~ msgid "`...' in old-style identifier list"
+#~ msgstr "'...' i gammeldags liste af kaldenavne"
+
+#~ msgid "parse error; also virtual memory exhausted"
+#~ msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse"
+
+#~ msgid "parse error"
+#~ msgstr "tolkningsfejl"
+
+#~ msgid "parser stack overflow"
+#~ msgstr "overløb i tolkerens stak"
+
+#~ msgid "%s at end of input"
+#~ msgstr "%s ved slutning af inddata"
+
+#~ msgid "%s before %s'%c'"
+#~ msgstr "%s før %s'%c'"
+
+#~ msgid "%s before %s'\\x%x'"
+#~ msgstr "%s før %s'\\x%x'"
+
+#~ msgid "%s before string constant"
+#~ msgstr "%s før strengkonstant"
+
+#~ msgid "%s before numeric constant"
+#~ msgstr "%s før talkonstant"
+
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s før \"%s\""
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s før symbolet '%s'"
+
+#~ msgid "traditional C rejects string concatenation"
+#~ msgstr "traditionel C tillader ikke strengsammensætning"
+
+#~ 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)' mødt uden tilsvarende '#pragma pack (push, <n>)'"
+
+#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+#~ msgstr "'#pragma pack(pop, %s)' mødt 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>) understøttes ikke på målarkitekturen"
+
+#~ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(pop[, id], <n>) understøttes ikke på målarkitekturen"
+
+#~ 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 være 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 første brug resulterer i ikke-defineret opførsel"
+
+#~ 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 erklæring"
+
+#~ 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-erklæring er i konflikt med tidligere omdøbelse"
+
+#~ msgid "break statement not within loop or switch"
+#~ msgstr "break-sætning befinder sig ikke i en løkke- eller switch-konstruktion"
+
+#~ msgid "continue statement not within a loop"
+#~ msgstr "continue-sætning befinder sig ikke i en løkke"
+
+#~ msgid "destructor needed for `%#D'"
+#~ msgstr "destruktionsfunktion påkrævet til '%#D'"
+
+#~ msgid "where case label appears here"
+#~ msgstr "hvor case-etiket optræder her"
+
+#~ msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+#~ msgstr "(indesluttede handlinger fra tidligere case-sætninger kræver 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 ufuldstændig 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 grænser"
+
+#~ 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 ufuldstændig 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 udført på en henvisning til en ufuldstændig 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 "forespørgsel efter medlemmet '%s' i noget der hverken er en union eller en struktur"
+
+#~ msgid "dereferencing pointer to incomplete type"
+#~ msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type"
+
+#~ msgid "dereferencing `void *' pointer"
+#~ msgstr "forsøg på at følge 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 venstreværdi"
+
+#~ msgid "subscript has type `char'"
+#~ msgstr "indeks er af typen 'char'"
+
+#~ msgid "subscripted value is neither array nor pointer"
+#~ msgstr "værdien der er påført et indeks, er hverken en tabel eller en henvisningsvariabel"
+
+#~ msgid "`%s' undeclared here (not in a function)"
+#~ msgstr "'%s' ikke erklæret her (ikke i en funktion)"
+
+#~ msgid "`%s' undeclared (first use in this function)"
+#~ msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)"
+
+#~ msgid "(Each undeclared identifier is reported only once"
+#~ msgstr "(et kaldenavn der ikke er erklæret, 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 erklæring 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 ufuldstændig"
+
+#~ 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 "foreslår paranteser omkring + eller - inden i skifteoperation"
+
+#~ msgid "suggest parentheses around && within ||"
+#~ msgstr "foreslår paranteser omkring && inden i ||"
+
+#~ msgid "suggest parentheses around arithmetic in operand of |"
+#~ msgstr "foreslår paranteser omkring beregning i operand til |"
+
+#~ msgid "suggest parentheses around comparison in operand of |"
+#~ msgstr "foreslår paranteser omkring sammenligning i operand til |"
+
+#~ msgid "suggest parentheses around arithmetic in operand of ^"
+#~ msgstr "foreslår paranteser omkring beregning i operand til ^"
+
+#~ msgid "suggest parentheses around comparison in operand of ^"
+#~ msgstr "foreslår paranteser omkring sammenligning i operand til ^"
+
+#~ msgid "suggest parentheses around + or - in operand of &"
+#~ msgstr "foreslår paranteser omkring + eller - i operand til &"
+
+#~ msgid "suggest parentheses around comparison in operand of &"
+#~ msgstr "foreslår paranteser omkring sammenligning i operand til &"
+
+#~ msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+#~ msgstr "sammenligninger som 'x <= y <= z' følger ikke den matematiske betydning"
+
+#~ msgid "division by zero"
+#~ msgstr "division med nul"
+
+#~ msgid "right shift count is negative"
+#~ msgstr "højreskiftsantal er negativ"
+
+#~ msgid "right shift count >= width of type"
+#~ msgstr "højreskiftsantal er større end bredden af typen"
+
+#~ msgid "left shift count is negative"
+#~ msgstr "venstreskiftsantal er negativ"
+
+#~ msgid "left shift count >= width of type"
+#~ msgstr "venstreskiftsantal er større end bredden af typen"
+
+#~ msgid "shift count is negative"
+#~ msgstr "skifteantal er negativ"
+
+#~ msgid "shift count >= width of type"
+#~ msgstr "skifteantal er større 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 fuldstændig og ufuldstændig 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 unært plus"
+
+#~ msgid "wrong type argument to unary minus"
+#~ msgstr "forkert parametertype til unært minus"
+
+#~ msgid "ISO C does not support `~' for complex conjugation"
+#~ msgstr "ISO C understøtter 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 unært udråbstegn"
+
+#~ msgid "ISO C does not support `++' and `--' on complex types"
+#~ msgstr "ISO C understøtter ikke '++' og '--' for complex-typer"
+
+# man kan ikke stikke en forøgelse (++) en type som parameter, 'type
+# argument' skal opfattes på en anden måde
+#~ msgid "wrong type argument to increment"
+#~ msgstr "forkert parametertype til forøgelse"
+
+#~ msgid "wrong type argument to decrement"
+#~ msgstr "forkert parametertype til formindskelse"
+
+#~ msgid "increment of pointer to unknown structure"
+#~ msgstr "forøgelse 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 venstreværdi i unær '&'"
+
+#~ msgid "attempt to take address of bit-field structure member `%s'"
+#~ msgstr "forsøg 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 venstreværdier"
+
+#~ msgid "ISO C forbids use of compound expressions as lvalues"
+#~ msgstr "ISO C forbyder brug af sammensatte udtryk som venstreværdier"
+
+#~ msgid "ISO C forbids use of cast expressions as lvalues"
+#~ msgstr "ISO C forbyder brug af typeomtvingningsudtryk som venstreværdier"
+
+# RETMIG: lettere klodset konstruktion
+#~ msgid "%s of read-only member `%s'"
+#~ msgstr "%s af medlemmet '%s' der kun må læses"
+
+#~ msgid "%s of read-only variable `%s'"
+#~ msgstr "%s af variablen '%s' der kun må læses"
+
+#~ msgid "%s of read-only location"
+#~ msgstr "%s af placering der kun må læses"
+
+#~ 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 "forespørgsel 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 "forespørgsel 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 tilføjer modifikationer til en funktionstype"
+
+#~ msgid "cast discards qualifiers from pointer target type"
+#~ msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type"
+
+#~ msgid "cast increases required alignment of target type"
+#~ msgstr "typeomtvingelse forøger den påkrævne justering af måltypen"
+
+#~ msgid "cast from pointer to integer of different size"
+#~ msgstr "typeomtvingelse fra henvisning til heltal af en anden størrelse"
+
+#~ 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 størrelse"
+
+#~ msgid "type-punning to incomplete type might break strict-aliasing rules"
+#~ msgstr "typeomtvingning af ufuldstændig type bryder muligvis strenge aliasregler"
+
+#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+#~ msgstr "følgning af en typeomtvunget henvisning vil bryde strenge aliasregler"
+
+#~ msgid "invalid lvalue in assignment"
+#~ msgstr "ugyldig venstreværdi i tildeling"
+
+#~ msgid "assignment"
+#~ msgstr "tildeling"
+
+#~ msgid "cannot pass rvalue to reference parameter"
+#~ msgstr "kan ikke videregive højreværdi 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å henvisningsmålets 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 henvisningsmål i %s er forskellige"
+
+#~ msgid "%s from incompatible pointer type"
+#~ msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
+
+#~ 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 "startværdien for den statiske variabel er ikke en konstant"
+
+#~ msgid "initializer for static variable uses complicated arithmetic"
+#~ msgstr "startværdien for den statiske variabel benytter komplicerede beregninger"
+
+#~ msgid "aggregate initializer is not constant"
+#~ msgstr "startværdi til variabel af en sammensat type er ikke en konstant"
+
+#~ msgid "aggregate initializer uses complicated arithmetic"
+#~ msgstr "startværdien til variabel af en sammensat type benytter komplicerede beregninger"
+
+# 'automatic aggregate' betyder automatisk allokerede variabler, dvs.
+# ganske almindelige lokale variabler (kan evt. erklæres med 'auto')
+#~ msgid "traditional C rejects automatic aggregate initialization"
+#~ msgstr "traditionel C forbyder klargøring af auto-variabler af sammensatte typer"
+
+#~ msgid "(near initialization for `%s')"
+#~ msgstr "(i nærheden af klargøringen af '%s')"
+
+#~ msgid "char-array initialized from wide string"
+#~ msgstr "char-tabel får tildelt startværdi fra en bred streng"
+
+#~ msgid "int-array initialized from non-wide string"
+#~ msgstr "int-tabel får tildelt startværdi fra en ikke-bred streng"
+
+#~ msgid "initializer-string for array of chars is too long"
+#~ msgstr "startværdistrengen til char-tabellen er for lang"
+
+#~ msgid "array initialized from non-constant array expression"
+#~ msgstr "tabel får tildelt en startværdi fra et tabeludtryk der ikke er konstant"
+
+#~ msgid "initializer element is not constant"
+#~ msgstr "startværdielement er ikke en konstant"
+
+#~ msgid "initialization"
+#~ msgstr "klargøring"
+
+#~ msgid "initializer element is not computable at load time"
+#~ msgstr "startværdielement kan ikke beregnes ved indlæsningstidspunktet"
+
+#~ msgid "invalid initializer"
+#~ msgstr "ugyldig startværdi"
+
+#~ msgid "extra brace group at end of initializer"
+#~ msgstr "overskydende krøllede paranteser ved slutningen af startværdien"
+
+#~ msgid "missing braces around initializer"
+#~ msgstr "krøllede paranteser mangler omkring startværdien"
+
+#~ msgid "braces around scalar initializer"
+#~ msgstr "krøllede paranteser omkring skalarstartværdi"
+
+# RETMIG: eller er det fleksibel tabel-medlem
+#~ msgid "initialization of flexible array member in a nested context"
+#~ msgstr "klargøring af fleksibelt tabelmedlem i en indlejret kontekst"
+
+#~ msgid "initialization of a flexible array member"
+#~ msgstr "klargøring af fleksibelt tabelmedlem"
+
+#~ msgid "missing initializer"
+#~ msgstr "manglende startværdi"
+
+#~ msgid "empty scalar initializer"
+#~ msgstr "tom skalarstartværdi"
+
+#~ msgid "extra elements in scalar initializer"
+#~ msgstr "overskydende elementer i skalarstarværdi"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "klargøringstegn må ikke indlejres"
+
+#~ msgid "array index in non-array initializer"
+#~ msgstr "tabelindeks i en startværdi der ikke er en tabel"
+
+# RETMIG: record?
+#~ msgid "field name not in record or union initializer"
+#~ msgstr "feltnavn ikke i struktur- eller union-startværdi"
+
+#~ msgid "nonconstant array index in initializer"
+#~ msgstr "tabelindekset i startværdien er ikke en konstant"
+
+#~ msgid "array index in initializer exceeds array bounds"
+#~ msgstr "tabelindeks i startværdi overskrider tabelgrænser"
+
+#~ msgid "empty index range in initializer"
+#~ msgstr "tomt indeksinterval i startværdi"
+
+#~ msgid "array index range in initializer exceeds array bounds"
+#~ msgstr "tabelindeksinterval i startværdi overskrider tabelgrænser"
+
+#~ msgid "unknown field `%s' specified in initializer"
+#~ msgstr "ukendt felt '%s' angivet i startværdi"
+
+#~ 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-tabelstartværdien"
+
+#~ msgid "excess elements in struct initializer"
+#~ msgstr "for mange elementer i struct-startværdi"
+
+#~ msgid "non-static initialization of a flexible array member"
+#~ msgstr "ikke-statisk klargøring af fleksibelt tabelmedlem"
+
+#~ msgid "excess elements in union initializer"
+#~ msgstr "for mange elementer i union-startværdi"
+
+#~ msgid "traditional C rejects initialization of unions"
+#~ msgstr "traditionel C forbyder tildeling af startværdi til unioner"
+
+#~ msgid "excess elements in array initializer"
+#~ msgstr "for mange elementer i tabelstartværdi"
+
+#~ msgid "excess elements in vector initializer"
+#~ msgstr "for mange elementer i vektorstartværdi"
+
+#~ msgid "excess elements in scalar initializer"
+#~ msgstr "for mange elementer i skalarstartværdi"
+
+#~ msgid "asm template is not a string constant"
+#~ msgstr "asm-sætning er ikke en strengkonstant"
+
+#~ msgid "invalid lvalue in asm statement"
+#~ msgstr "ugyldig venstreværdi i asm-sætning"
+
+#~ msgid "modification by `asm'"
+#~ msgstr "ændring af 'asm'"
+
+#~ msgid "function declared `noreturn' has a `return' statement"
+#~ msgstr "funktion der er erklæret 'noreturn' har en 'return'-sætning"
+
+#~ msgid "`return' with no value, in function returning non-void"
+#~ msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void"
+
+#~ msgid "`return' with a value, in function returning void"
+#~ msgstr "'return' med en værdi 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-størrelsen 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-sætning"
+
+#~ msgid "`default' label not within a switch statement"
+#~ msgstr "'default'-etiket befinder sig ikke inden i en switch-sætning"
+
+#~ 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 værdi"
+
+#~ msgid "Size of loop %d should be %d, not %d."
+#~ msgstr "Størrelsen af løkke %d burde være %d, ikke %d."
+
+#~ msgid "Bb %d do not belong to loop %d."
+#~ msgstr "Basisblok %d hører ikke til løkke %d."
+
+#~ msgid "Loop %d's header does not have exactly 2 entries."
+#~ msgstr "Løkke %d's hoved har ikke præcis 2 elementer."
+
+#~ msgid "Loop %d's latch does not have exactly 1 successor."
+#~ msgstr "Løkke %d's ende har ikke præcis 1 efterfølger."
+
+#~ msgid "Loop %d's latch does not have header as successor."
+#~ msgstr "Løkke %d's ende har ikke hoved som efterfølger."
+
+#~ msgid "Loop %d's latch does not belong directly to it."
+#~ msgstr "Løkke %d's ende tilhører ikke direkte løkken."
+
+#~ msgid "Loop %d's header does not belong directly to it."
+#~ msgstr "Løkke %d's hoved tilhører ikke direkte løkken."
+
+#~ 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 bør være %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 instruktionsstrømmen"
+
+#~ 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 instruktionsstrømmen"
+
+#~ 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: Efterfølgende 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 udgående 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 formål i basisblok %i"
+
+#~ msgid "missing barrier after block %i"
+#~ msgstr "manglende barriere efter blok %i"
+
+#~ msgid "basic block %d pred edge is corrupted"
+#~ msgstr "foregående 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 "strømkontrolinstruktion 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 rækkefølge"
+
+#~ msgid "insn outside basic block"
+#~ msgstr "instruktion uden for basisblok"
+
+#~ msgid "return not followed by barrier"
+#~ msgstr "returnering følges ikke af barriere"
+
+#~ msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+#~ msgstr "antallet af basisbloknoter i instruktionskæden (%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, præfikset 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 kørsel (vha. execv) af %s"
+
+#~ msgid "init function found in object %s"
+#~ msgstr "klargøringsfunktion 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 indlæse filen '%s'"
+
+#~ msgid "not found\n"
+#~ msgstr "ikke fundet\n"
+
+#~ msgid "dynamic dependency %s not found"
+#~ msgstr "dynamisk afhængighed %s ikke fundet"
+
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr "ugyldigt magisk tal i filen '%s'"
+
+#~ msgid "dynamic dependencies.\n"
+#~ msgstr "dynamiske afhængigheder.\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 afhængighed '%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 værdier"
+
+#~ 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 indlæsningskommandoer.\n"
+#~ "\n"
+
+#~ msgid "load command map, %d cmds, new size %ld.\n"
+#~ msgstr "indlæser kommandooversigt, %d kommandoer, ny størrelse %ld.\n"
+
+#~ msgid ""
+#~ "writing load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "skriver indlæsningskommandoer.\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 råhovedet"
+
+#~ msgid "raw header buffer too small"
+#~ msgstr "råhoved-mellemlager for småt"
+
+#~ msgid "old raw header file"
+#~ msgstr "gammel råhovedfil"
+
+#~ msgid "unsupported version"
+#~ msgstr "versionen er ikke understøttet"
+
+#~ msgid "unknown {de,en}code_mach_o_hdr return value %d"
+#~ msgstr "ukendt {de,en}code_mach_o_hdr returneringsværdi %d"
+
+#~ msgid "fstat %s"
+#~ msgstr "fejl ved egenskabsundersøgelse af filen %s"
+
+#~ msgid "lseek %s 0"
+#~ msgstr "fejl ved søgning til begyndelsen i filen %s"
+
+#~ msgid "read %s"
+#~ msgstr "fejl ved læsning af %s"
+
+#~ msgid "read %ld bytes, expected %ld, from %s"
+#~ msgstr "læste %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 forsøg, %d udskiftninger (%d kræver 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 forsøg, %d udskiftninger (%d kræver 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 henvisningsværdi er angivet hvor der forventedes en kommatalsværdi"
+
+#~ msgid "aggregate value used where a float was expected"
+#~ msgstr "en værdi af en sammensat type er angivet hvor der forventedes et kommatal"
+
+#~ msgid "conversion to incomplete type"
+#~ msgstr "konvertering til en ufuldstændig type"
+
+#~ msgid "can't convert between vector values of different size"
+#~ msgstr "kan ikke konvertere vektorværdier af forskellige størrelser"
+
+#~ msgid "aggregate value used where an integer was expected"
+#~ msgstr "en værdi af en sammensat type er angivet hvor der forventedes et heltal"
+
+#~ msgid "pointer value used where a complex was expected"
+#~ msgstr "en henvisningsværdi er angivet hvor der forventedes et komplekst tal"
+
+#~ msgid "aggregate value used where a complex was expected"
+#~ msgstr "en værdi af en sammensat type er angivet hvor der forventedes et komplekst tal"
+
+#~ msgid "can't convert value to a vector"
+#~ msgstr "kan ikke konvertere værdi til en vektor"
+
+#~ msgid "warning: "
+#~ msgstr "advarsel: "
+
+#~ msgid "internal error: "
+#~ msgstr "intern fejl: "
+
+#~ msgid "ISO C++ does not permit \"%s\" in #if"
+#~ msgstr "ISO C++ tillader ikke \"%s\" i #if"
+
+#~ msgid "invalid character '\\%03o' in #if"
+#~ msgstr "ugyldigt tegn '\\%03o' i #if"
+
+#~ 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 \"...\"-søgning begynder her:\n"
+
+#~ msgid "#include <...> search starts here:\n"
+#~ msgstr "#include <...>-søgning begynder her:\n"
+
+#~ msgid "End of search list.\n"
+#~ msgstr "Slut på søgningslisten.\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, optræder i universelt tegnnavn"
+
+#~ msgid "universal-character-name on EBCDIC target"
+#~ msgstr "universelt tegnnavn på EBCDIC-mål"
+
+#~ 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 forældet, brug en #ifndef-indpakning i inkluderingsfilen"
+
+#~ msgid "#pragma once is obsolete"
+#~ msgstr "'#pragma once' er forældet"
+
+#~ msgid "\"%s\" is not a valid option to the preprocessor"
+#~ msgstr "\"%s\" er ikke et gyldigt tilvalg til præprocessoren"
+
+#~ 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 mængder.\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 "oversættelse 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"
+#~ "præprocesseret kildekode om nødvendigt.\n"
+#~ "Se %s for instruktioner.\n"
+
+#~ msgid "Internal compiler error: Error reporting routines re-entered.\n"
+#~ msgstr "Intern oversætterfejl: 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 ovenstående, 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 forældet (erklæret ved %s:%d)"
+
+#~ msgid "`%s' is deprecated"
+#~ msgstr "'%s' er forældet"
+
+#~ msgid "type is deprecated (declared at %s:%d)"
+#~ msgstr "type er forældet (erklæret ved %s:%d)"
+
+#~ msgid "type is deprecated"
+#~ msgstr "type er forældet"
+
+#~ msgid "dominator of %d should be %d, not %d"
+#~ msgstr "dominator for %d burde være %d, ikke %d"
+
+#~ msgid "DW_LOC_OP %s not implemented\n"
+#~ msgstr "DW_LOC_OP %s understøttes 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 "understøttelse for DWARF1-fejlanalyseringsformatet er forældet"
+
+#~ 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 imaginære 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 behøves:\n"
+
+#~ msgid "abort in %s, at %s:%d"
+#~ msgstr "afbrudt i %s ved %s:%d"
+
+#~ msgid "exception handling disabled, use -fexceptions to enable"
+#~ msgstr "håndtering af undtagelser er slået 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 være konstant"
+
+#~ msgid "__builtin_eh_return not supported on this target"
+#~ msgstr "__builtin_eh_return understøttes ikke på målarkitekturen"
+
+#~ msgid "stack limits not supported on this target"
+#~ msgstr "stakgrænser understøttes ikke på målarkitekturen"
+
+#~ 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 understøttes ikke"
+
+#~ msgid "prior parameter's size depends on `%s'"
+#~ msgstr "foregående parameters størrelse afhænger af '%s'"
+
+#~ msgid "returned value in block_exit_expr"
+#~ msgstr "returnerede værdi 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 instruktionslængde"
+
+#~ 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 gøres bedre
+#~ msgid "control reaches end of non-void function"
+#~ msgstr "kontrol når til slutningen af ikke-void funktion"
+
+#~ msgid "Attempt to delete prologue/epilogue insn:"
+#~ msgstr "forsøg 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 begrænsede rækkevidde 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 "størrelsen af variablen '%s' er for stor"
+
+#~ msgid "impossible constraint in `asm'"
+#~ msgstr "umulig begrænsing i 'asm'"
+
+#~ msgid "`%s' might be used uninitialized in this function"
+#~ msgstr "'%s' bliver måske brugt uden at have en startværdi i denne funktion"
+
+#~ msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "variablen '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'"
+
+#~ msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "parameteren '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'"
+
+#~ msgid "function returns an aggregate"
+#~ msgstr "funktion returnerer en værdi 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 "ufuldstændigt 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 ""
+#~ "Sætter specifikation %s til '%s'\n"
+#~ "\n"
+
+#~ msgid "Reading specs from %s\n"
+#~ msgstr "Læser 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 omdøbelse"
+
+#~ msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+#~ msgstr "%s: forsøg på at omdøbe specifikation '%s' til allerede defineret specifikation '%s'"
+
+#~ msgid "rename spec %s to %s\n"
+#~ msgstr "omdøb 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 sammenkædning"
+
+#~ msgid "-pipe not supported"
+#~ msgstr "-pipe understøttes ikke"
+
+#~ msgid ""
+#~ "\n"
+#~ "Go ahead? (y or n) "
+#~ msgstr ""
+#~ "\n"
+#~ "Fortsæt, 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 højeste 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 målspecifikke 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 oversætteren\n"
+
+#~ msgid " -dumpmachine Display the compiler's target processor\n"
+#~ msgstr " -dumpmachine Vis oversætterens målprocessor\n"
+
+#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+#~ msgstr " -print-search-dirs Vis katalogerne i oversætterens søgesti\n"
+
+#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+#~ msgstr " -print-libgcc-file-name Vis navnet på oversætterens tilhørende 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 oversætterkomponenten <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 bibliotekssøgekataloger\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 maskinkodeoversætteren\n"
+
+#~ msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+#~ msgstr " -Wp,<tilvalg> Videregiv komma-adskilte <tilvalg> til præprocessoren\n"
+
+#~ msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#~ msgstr " -Wl,<tilvalg> Videregiv komma-adskilte <tilvalg> til sammenkæderen\n"
+
+#~ msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+#~ msgstr " -Xlinker <para> Videregiv <para> til sammenkæderen\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å udførslen 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> Tilføj katalog til oversætterens søgestier\n"
+
+#~ msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+#~ msgstr " -b <maskine> Kør GCC til målet <maskine>, hvis installeret\n"
+
+#~ msgid " -V <version> Run gcc version number <version>, if installed\n"
+#~ msgstr " -V <version> Kør 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 oversætteren\n"
+
+#~ msgid " -### Like -v but options quoted and commands not executed\n"
+#~ msgstr ""
+#~ " -### Som '-v', men tilvalg anbringes i anførselstegn\n"
+#~ " og kommandoerne udføres ikke\n"
+
+#~ msgid " -E Preprocess only; do not compile, assemble or link\n"
+#~ msgstr " -E Forbehandl kun; oversæt og sammenkæd ikke\n"
+
+#~ msgid " -S Compile only; do not assemble or link\n"
+#~ msgstr " -S Oversæt kun; maskinekodeoversæt og sammenkæd ikke\n"
+
+#~ msgid " -c Compile and assemble, but do not link\n"
+#~ msgstr " -c Oversæt, også til maskinkode, men sammenkæd 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 følgende inddatafiler.\n"
+#~ " Tilladte sprog inkluderer: c c++ assembler none\n"
+#~ " 'none' betyder at standardopførslen med at gætte\n"
+#~ " sproget på filendelsen udføres\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 køre '%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 FORMÅL.\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 være 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 oversættelser"
+
+#~ 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 mønstersøgning"
+
+#~ msgid "warning: use of obsolete %%[ operator in specs"
+#~ msgstr "advarsel: forældet '%%['-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 krøllede 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 "Trådmodel: %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 kører GCCc version %s\n"
+
+#~ msgid "no input files"
+#~ msgstr "ingen inddatafiler"
+
+#~ msgid "%s: %s compiler not installed on this system"
+#~ msgstr "%s: %s-oversætter ikke installeret på dette system"
+
+#~ msgid "%s: linker input file unused because linking not done"
+#~ msgstr "%s: sammenkæderinddatafil ikke benyttet eftersom sammenkædning 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 kodedækningsoplysninger.\n"
+#~ "\n"
+
+#~ msgid " -h, --help Print this help, then exit\n"
+#~ msgstr " -h, --help Udskriv denne hjælp 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 Søg 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 programstrømsgraffilen %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 kørselstællere er nul.\n"
+
+#~ msgid "No executable code associated with file %s.\n"
+#~ msgstr "Ingen kørbar kode associeret med filen %s.\n"
+
+#~ msgid "%s of %d lines executed in %s %s\n"
+#~ msgstr "%s af %d linjer udført i %s %s\n"
+
+#~ msgid "No executable lines in %s %s\n"
+#~ msgstr "Ingen kørbare linjer i %s %s\n"
+
+#~ msgid "%s of %d branches executed in %s %s\n"
+#~ msgstr "%s af %d forgreninger udført 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 udført 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 "Stødt på slutningen af kildefilen %s tidligere end forventet.\n"
+
+#~ msgid "call %2d never executed\n"
+#~ msgstr "kald %2d aldrig udført\n"
+
+#~ msgid "call %2d returns %s\n"
+#~ msgstr "kald %2d returnerer %s\n"
+
+#~ msgid "branch %2d never executed\n"
+#~ msgstr "forgrening %2d aldrig udført\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 første 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 første 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 første 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 erklæret"
+
+#~ 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 ekskluderingsmængde tilhører forskellige automater"
+
+#~ msgid "unit `%s' excludes and requires presence of `%s'"
+#~ msgstr "enheden '%s' ekskluderer og kræver tilstedeværelse af '%s'"
+
+#~ msgid "unit `%s' requires absence and presence of `%s'"
+#~ msgstr "enheden '%s' kræver tilstedeværelse og fravær af '%s'"
+
+#~ msgid "repeated declaration of automaton `%s'"
+#~ msgstr "gentaget erklæring 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 erklæret"
+
+#~ msgid "define_unit `%s' without automaton when one defined"
+#~ msgstr "define_unit '%s' uden automat når en er defineret"
+
+#~ msgid "`%s' is declared as cpu unit"
+#~ msgstr "'%s' er erklæret som CPU-enhed"
+
+#~ msgid "`%s' is declared as cpu reservation"
+#~ msgstr "'%s' er erklæret som CPU-reservering"
+
+#~ msgid "repeated declaration of unit `%s'"
+#~ msgstr "gentaget erklæring af enheden '%s'"
+
+#~ msgid "repeated declaration of reservation `%s'"
+#~ msgstr "gentaget erklæring 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-erklæret 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 være 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' understøttes ikke endnu\n"
+
+#~ msgid "Automaton `%s': Insn `%s' will never be issued"
+#~ msgstr "Automat '%s': instruktion '%s' vil aldrig blive udført"
+
+#~ msgid "Insn `%s' will never be issued"
+#~ msgstr "Instruktion '%s' vil aldrig blive udført"
+
+#~ 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 klargøringer, 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 understøttes ikke for denne returværditype"
+
+#~ msgid "function with varying-size return value cannot be inline"
+#~ msgstr "funktioner med returværdier af varierende størrelse kan ikke indbygges"
+
+#~ msgid "function with varying-size parameter cannot be inline"
+#~ msgstr "funktioner med parametre af varierende størrelse 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 målspecifikke 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 (forældet?)"
+
+#~ msgid ".da file corrupted"
+#~ msgstr ".da-fil ødelagt"
+
+# 'prob' står for sandsynlighed
+#~ msgid "corrupted profile info: prob for %d-%d thought to be %d"
+#~ msgstr "ødelagte profilinfo: sandsynlighed for %d-%d menes at være %d"
+
+#~ msgid "file %s not found, execution counts assumed to be zero"
+#~ msgstr "filen %s ikke fundet, antager at kørselstællere 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 læseadgang 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: hjælpeinformationsfilen er beskadiget ved linje %d\n"
+
+#~ msgid "%s:%d: declaration of function `%s' takes different forms\n"
+#~ msgstr "%s:%d: erklæringen af funktionen '%s' antager forskellige former\n"
+
+#~ msgid "%s: compiling `%s'\n"
+#~ msgstr "%s: oversætter '%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 læse hjælpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't get status of aux info file `%s': %s\n"
+#~ msgstr "%s: kan ikke få status for hjælpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't open aux info file `%s' for reading: %s\n"
+#~ msgstr "%s: kan ikke åbne hjælpeinformationsfilen '%s' til at læse fra: %s\n"
+
+#~ msgid "%s: error reading aux info file `%s': %s\n"
+#~ msgstr "%s: fejl ved læsning af hjælpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: error closing aux info file `%s': %s\n"
+#~ msgstr "%s: fejl ved lukning af hjælpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't delete aux info file `%s': %s\n"
+#~ msgstr "%s: kan ikke slette hjælpeinformationsfilen '%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 omdøbe 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: erklæringer af '%s' vil ikke blive omdannet\n"
+
+#~ msgid "%s: conflict list for '%s' follows:\n"
+#~ msgstr "%s: modstridene for '%s' følger:\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: funktionserklæring med variabel parameterliste er ikke omdannet\n"
+
+#~ msgid "%s: declaration of function `%s' not converted\n"
+#~ msgstr "%s: erklæringen 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 erklæringen af '%s'\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: warning: too few parameter lists in declaration of `%s'\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: advarsel: for få parameterlister i erklæringen 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 erklæring 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 tilføje erklæringen af '%s' i makrokald\n"
+
+#~ msgid "%s: global declarations for file `%s' not inserted\n"
+#~ msgstr "%s: globale erklæringer 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 læse fra: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: error reading input file `%s': %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: fejl ved læsning 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 kæde 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 "uddatabegrænsning %d skal angive et enkelt register"
+
+#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+#~ msgstr "uddatabegrænsning %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 aflæste registre skal grupperes i toppen af stakken"
+
+#~ msgid "output operand %d must use `&' constraint"
+#~ msgstr "uddataoperand %d skal bruge begrænsningen '&'"
+
+#~ 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 følger 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 kæde (%u)"
+
+#~ msgid "validate_value_data: Loop in regno chain (%u)"
+#~ msgstr "validate_value_data: Løkke i registertalskæde (%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 kæde (%s %u %i)"
+
+#~ msgid "cannot reload integer constant operand in `asm'"
+#~ msgstr "kan ikke genindlæse heltalskonstantoperand i 'asm'"
+
+#~ msgid "impossible register constraint in `asm'"
+#~ msgstr "umulig registerbegrænsing i 'asm'"
+
+#~ msgid "`&' constraint used with no register class"
+#~ msgstr "'&'-begrænsning brugt uden registerklasse"
+
+#~ msgid "unable to generate reloads for:"
+#~ msgstr "kunne ikke generere genindlæsninger for:"
+
+#~ msgid "inconsistent operand constraints in an `asm'"
+#~ msgstr "inkonsistente operandbegræsninger i 'asm'"
+
+#~ msgid "frame size too large for reliable stack checking"
+#~ msgstr "rammestørrelse for stor til pålidelig stakkontrol"
+
+#~ msgid "try reducing the number of local variables"
+#~ msgstr "forsøg 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 genindlæsning af 'asm'"
+
+#~ msgid "unable to find a register to spill in class `%s'"
+#~ msgstr "kan ikke finde et register at bortødsle i klassen '%s'"
+
+#~ msgid "this is the insn:"
+#~ msgstr "dette er instruktionen:"
+
+#~ msgid "`asm' operand requires impossible reload"
+#~ msgstr "'asm'-operand kræver umulig genindlæsning"
+
+#~ msgid "could not find a spill register"
+#~ msgstr "kunne ikke finde et register at bortødsle"
+
+#~ msgid "`asm' operand constraint incompatible with operand size"
+#~ msgstr "'asm'-operandbegrænsning ikke forenelig med operandstørrelse"
+
+#~ 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 begrænsninger:"
+
+#~ 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' (registeroverførselsudtryk %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' (registeroverførselsudtryk %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 før indholdende bindingskontur"
+
+#~ msgid "output operand constraint lacks `='"
+#~ msgstr "uddataoperandbegrænsning mangler '='"
+
+#~ msgid "output constraint `%c' for operand %d is not at the beginning"
+#~ msgstr "uddatabegrænsning '%c' for operanden %d er ikke ved begyndelsen"
+
+#~ msgid "operand constraint contains incorrectly positioned '+' or '='"
+#~ msgstr "operandbegrænsning indeholder forkert placeret '+' eller '='"
+
+#~ msgid "`%%' constraint used with last operand"
+#~ msgstr "'%%'-begrænsning brugt med sidste operand"
+
+#~ msgid "matching constraint not valid in output operand"
+#~ msgstr "begrænsningen er ikke gyldig for uddataoperanden"
+
+#~ msgid "input operand constraint contains `%c'"
+#~ msgstr "inddataoperandbegrænsningen indeholder '%c'"
+
+#~ msgid "matching constraint references invalid operand number"
+#~ msgstr "begrænsning refererer til et ugyldigt operandtal"
+
+#~ msgid "invalid punctuation `%c' in constraint"
+#~ msgstr "ugyldig punktuering '%c' i begrænsning"
+
+#~ 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 begrænsninger"
+
+#~ 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 "operandbegrænsninger til 'asm' har forskellige antal alternativer"
+
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr "'asm'-operandnavnet '%s' optræder mere end én gang"
+
+#~ msgid "missing close brace for named operand"
+#~ msgstr "manglende afsluttende krøllet 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-værdien '%s' håndteres ikke i switch-sætning"
+
+#~ msgid "case value `%ld' not in enumerated type"
+#~ msgstr "case-værdien '%ld' eksisterer ikke i enum-type"
+
+#~ msgid "case value `%ld' not in enumerated type `%s'"
+#~ msgstr "case-værdien '%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 størrelse"
+
+#~ msgid "variable-size type declared outside of any function"
+#~ msgstr "en type med en variabel størrelse er erklæret uden for en funktion"
+
+#~ msgid "size of `%s' is %d bytes"
+#~ msgstr "størrelsen af '%s' er %d byte"
+
+#~ msgid "size of `%s' is larger than %d bytes"
+#~ msgstr "størrelsen af '%s' er større end %d byte"
+
+#~ msgid "packed attribute causes inefficient alignment for `%s'"
+#~ msgstr "packed-egenskab forårsager ineffektiv justering af '%s'"
+
+#~ msgid "packed attribute is unnecessary for `%s'"
+#~ msgstr "packed-egenskab er unødvendig 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-størrelse til justeringskant"
+
+#~ msgid "packed attribute causes inefficient alignment"
+#~ msgstr "packed-egenskab forårsager ineffektiv justering"
+
+#~ msgid "packed attribute is unnecessary"
+#~ msgstr "packed-egenskab er unødvendig"
+
+#~ msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+#~ msgstr "kan ikke udføre timevar_pop '%s' når toppen af timevars-stakken er '%s'"
+
+#~ msgid ""
+#~ "\n"
+#~ "Execution times (seconds)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Udførselstid (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: læser %s\n"
+
+#~ msgid "collect: recompiling %s\n"
+#~ msgstr "collect: genoversætter '%s'\n"
+
+# RETMIG: rigtigt?
+#~ msgid "collect: tweaking %s in %s\n"
+#~ msgstr "collect: presser %s i %s\n"
+
+#~ msgid "collect: relinking\n"
+#~ msgstr "collect: kæder sammen igen\n"
+
+#~ msgid "ld returned %d exit status"
+#~ msgstr "ld returnerede afslutningskoden %d"
+
+#~ msgid "Generate debugging info in default format"
+#~ msgstr "Generér fejlfindingsinfo i standardformat"
+
+#~ msgid "Generate debugging info in default extended format"
+#~ msgstr "Generér fejlfindingsinfo i udvidet standardformat"
+
+#~ msgid "Generate STABS format debug info"
+#~ msgstr "Generér fejlfindingsinfo i STABS-format"
+
+#~ msgid "Generate extended STABS format debug info"
+#~ msgstr "Generér fejlfindingsinfo i udvidet STABS-format"
+
+#~ msgid "Generate DWARF-1 format debug info"
+#~ msgstr "Generér fejlfindingsinfo i DWARF-1-format"
+
+#~ msgid "Generate extended DWARF-1 format debug info"
+#~ msgstr "Generér fejlfindingsinfo i udvidet DWARF-1-format"
+
+#~ msgid "Generate DWARF-2 debug info"
+#~ msgstr "Generér fejlfindingsinfo i DWARF-2-format"
+
+#~ msgid "Generate XCOFF format debug info"
+#~ msgstr "Generér fejlfindingsinfo i XCOFF-format"
+
+#~ msgid "Generate extended XCOFF format debug info"
+#~ msgstr "Generér fejlfindingsinfo i udvidet XCOFF-format"
+
+#~ msgid "Generate COFF format debug info"
+#~ msgstr "Generér fejlfindingsinfo i COFF-format"
+
+#~ msgid "Generate VMS format debug info"
+#~ msgstr "Generér fejlfindingsinfo i VMS-format"
+
+#~ msgid "Perform DWARF2 duplicate elimination"
+#~ msgstr "Udfør 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 "Generér ikke stakrammer når det kan undgås"
+
+#~ msgid "Optimize sibling and tail recursive calls"
+#~ msgstr "Optimér søskende- og halerekursive kald"
+
+#~ msgid "Perform superblock formation via tail duplication"
+#~ msgstr "Udfør superbloksformering vha. haleduplikering"
+
+# RETMIG: hvad er CSE?
+#~ msgid "When running CSE, follow jumps to their targets"
+#~ msgstr "Ved kørsel af CSE følg spring til deres mål"
+
+#~ msgid "When running CSE, follow conditional jumps"
+#~ msgstr "Ved kørsel af CSE følg betingede spring"
+
+#~ msgid "Perform a number of minor, expensive optimizations"
+#~ msgstr "Udfør et antal mindre, dyre optimeringer"
+
+#~ msgid "Perform jump threading optimizations"
+#~ msgstr "Udfør springtrådningsoptimeringer"
+
+#~ msgid "Perform strength reduction optimizations"
+#~ msgstr "Udfør styrkereduceringsoptimeringer"
+
+#~ msgid "Perform loop unrolling when iteration count is known"
+#~ msgstr "Udfør løkkeudrulning når iterationsantallet er kendt"
+
+#~ msgid "Perform loop unrolling for all loops"
+#~ msgstr "Udfør løkkeudrulning for alle løkker"
+
+#~ msgid "Generate prefetch instructions, if available, for arrays in loops"
+#~ msgstr "Generér præhentningsinstruktioner, hvis tilgængelige, for tabeller i løkker"
+
+#~ msgid "Force all loop invariant computations out of loops"
+#~ msgstr "Tving alle løkkeinvariansberegninger ud af løkker"
+
+#~ msgid "Strength reduce all loop general induction variables"
+#~ msgstr "Styrkereducér alle generelle løkkeinduktionsvariabler"
+
+#~ msgid "Store strings in writable data section"
+#~ msgstr "Gem strenge i en skrivbar datasektion"
+
+#~ msgid "Enable machine specific peephole optimizations"
+#~ msgstr "Aktivér maskinspecifikke kighulsoptimeringer"
+
+#~ msgid "Copy memory operands into registers before using"
+#~ msgstr "Kopiér hukommelsesoperander ind i registre før brug"
+
+#~ msgid "Copy memory address constants into regs before using"
+#~ msgstr "Kopiér hukommelsesadressekonstanter ind i registre før 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 "Integrér simple funktioner i deres kaldere"
+
+#~ msgid "Generate code for funcs even if they are fully inlined"
+#~ msgstr "Generér kode for funktioner selv hvis de indlejres helt"
+
+#~ msgid "Pay attention to the 'inline' keyword"
+#~ msgstr "Læg mærke til 'inline'-nøgleordet"
+
+#~ msgid "Emit static const variables even if they are not used"
+#~ msgstr "Konstruér statiske, konstante variabler selv hvis de ikke bruges"
+
+#~ msgid "Check for syntax errors, then stop"
+#~ msgstr "Kontrollér syntaks og stop derefter"
+
+#~ msgid "Mark data as shared rather than private"
+#~ msgstr "Markér data som delt snarere end privat"
+
+#~ msgid "Enable saving registers around function calls"
+#~ msgstr "Aktivér gemning af registrer omkring funktionskald"
+
+#~ msgid "Return 'short' aggregates in memory, not registers"
+#~ msgstr "Returnér små sammensatte værdier i hukommelsen, ikke i registre"
+
+#~ msgid "Return 'short' aggregates in registers"
+#~ msgstr "Returnér små sammensatte værdier i registre"
+
+#~ msgid "Attempt to fill delay slots of branch instructions"
+#~ msgstr "Forsøg at udfylde ventepladser med forgreningsinstruktioner"
+
+#~ msgid "Perform the global common subexpression elimination"
+#~ msgstr "Udfør global eliminering af fælles underudtryk"
+
+#~ msgid "Perform enhanced load motion during global subexpression elimination"
+#~ msgstr "Udfør forbedret indlæsningsbevægelse under eliminering af fælles underudtryk"
+
+#~ msgid "Perform store motion after global subexpression elimination"
+#~ msgstr "Udfør lagringsbevægelse efter eliminering af fælles underudtryk"
+
+#~ msgid "Perform the loop optimizations"
+#~ msgstr "Udfør løkkeoptimeringerne"
+
+#~ msgid "Perform cross-jumping optimization"
+#~ msgstr "Udfør krydsspringsoptimering"
+
+#~ msgid "Perform conversion of conditional jumps to branchless equivalents"
+#~ msgstr "Udfør konvertering af betingede spring til forgreningsløse ækvivalenter"
+
+#~ msgid "Perform conversion of conditional jumps to conditional execution"
+#~ msgstr "Udfør konvertering af betingede spring til betinget udførsel"
+
+#~ msgid "Run CSE pass after loop optimizations"
+#~ msgstr "Kør CSE-fase efter løkkeoptimeringer"
+
+#~ msgid "Run the loop optimizer twice"
+#~ msgstr "Kør løkkeoptimeringen to gange"
+
+#~ msgid "Delete useless null pointer checks"
+#~ msgstr "Fjern ubrugelige nul-henvisningstjek"
+
+#~ msgid "Reschedule instructions before register allocation"
+#~ msgstr "Omplanlæg instruktioner før registerallokering"
+
+#~ msgid "Reschedule instructions after register allocation"
+#~ msgstr "Omplanlæg instruktioner efter registerallokering"
+
+#~ msgid "Enable scheduling across basic blocks"
+#~ msgstr "Aktivér planlægning over basisblokke"
+
+#~ msgid "Allow speculative motion of non-loads"
+#~ msgstr "Tillad spekulativ bevægelse af ikke-indlæsninger"
+
+#~ msgid "Allow speculative motion of some loads"
+#~ msgstr "Tillad spekulativ bevægelse af nogle indlæsninger"
+
+#~ msgid "Allow speculative motion of more loads"
+#~ msgstr "Tillad spekulativ bevægelse af flere indlæsninger"
+
+# RETMIG: rigtig?
+#~ msgid "Replace add,compare,branch with branch on count reg"
+#~ msgstr "Erstat tilføj,sammenlign,forgrening med forgrening på tælleregister"
+
+#~ msgid "Generate position independent code, if possible"
+#~ msgstr "Generér placeringsuafhængig kode, om muligt"
+
+#~ msgid "Enable exception handling"
+#~ msgstr "Aktivér undtagelseshåndtering"
+
+#~ msgid "Just generate unwind tables for exception handling"
+#~ msgstr "Generér blot afvindingstabeller for undtagelseshåndtering"
+
+#~ msgid "Generate unwind tables exact at each instruction boundary"
+#~ msgstr "Generér afvindingstabeller eksakt for hver instruktionsgrænse"
+
+#~ msgid "Support synchronous non-call exceptions"
+#~ msgstr "Understøt synkrone ikke-kaldende undtagelser"
+
+#~ msgid "Insert arc based program profiling code"
+#~ msgstr "Indsæt 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 "Aktivér 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 registeromdøbningsoptimering"
+
+#~ 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 fælles sektion"
+
+#~ msgid "Do not generate .size directives"
+#~ msgstr "Generér ikke .size-direktiver"
+
+#~ msgid "place each function into its own section"
+#~ msgstr "placér hver funktion i dens egen sektion"
+
+#~ msgid "place data items into their own section"
+#~ msgstr "placér dataelementer i deres egen sektion"
+
+#~ msgid "Add extra commentary to assembler output"
+#~ msgstr "Tilføj ekstra kommentarer til menneskeligt læsbar maskinkodeuddata"
+
+#~ msgid "Output GNU ld formatted global initializers"
+#~ msgstr "Udskriv GNU ld-formaterede globale startværdier"
+
+#~ msgid "Enables a register move optimization"
+#~ msgstr "Aktivér 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 "Indsæt stakkontrolleringskode i programmet"
+
+#~ msgid "Specify that arguments may alias each other & globals"
+#~ msgstr "Angiv at parametre kan være aliaser for hinanden og for globale variable"
+
+#~ msgid "Assume arguments may alias globals but not each other"
+#~ msgstr "Antag at parametre kan være 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 "Justér begyndelsen af løkker"
+
+#~ msgid "Align labels which are only reached by jumping"
+#~ msgstr "Justér etiketter som kun nås ved spring"
+
+#~ msgid "Align all labels"
+#~ msgstr "Justér alle etiketter"
+
+#~ msgid "Align the start of functions"
+#~ msgstr "Justér begyndelsen af funktioner"
+
+#~ msgid "Attempt to merge identical constants across compilation units"
+#~ msgstr "Forsøg at forene identiske konstanter over forskellige oversættelsesenheder"
+
+#~ msgid "Attempt to merge identical constants and constant variables"
+#~ msgstr "Forsøg 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 "Instrumentér 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 "Aktivér SSA-optimeringer"
+
+#~ msgid "Enable SSA conditional constant propagation"
+#~ msgstr "Aktivér betinget konstant SSA-propagering"
+
+#~ msgid "Enable aggressive SSA dead code elimination"
+#~ msgstr "Aktivér 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 "Aktivér en RTL-kikhulsfase før 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 "Aktivér gæt af forgreningssandsynligheder"
+
+#~ msgid "Set errno after built-in math functions"
+#~ msgstr "Sæt 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 overtræde IEEE- eller ANSI-standarderne"
+
+#~ msgid "Disable optimizations observable by IEEE signaling NaNs"
+#~ msgstr "Deaktivér optimeringer som kan opdages ved IEEE-signalerende NaN'er"
+
+#~ msgid "Generate code to check bounds before indexing arrays"
+#~ msgstr "Generér kode til at kontrollere grænserne før tabeller indekseres"
+
+#~ msgid "Convert floating point constant to single precision constant"
+#~ msgstr "Konvertér kommatalskonstanter til enkeltpræcisionskonstanter"
+
+#~ msgid "Report time taken by each compiler pass at end of run"
+#~ msgstr "Rapportér den tid det tager for hver oversættelsesfase ved afslutningen af kørslen"
+
+#~ msgid "Report on permanent memory allocation at end of run"
+#~ msgstr "Rapportér om permanente hukommelsesallokering ved afslutningen af kørslen"
+
+#~ msgid "Trap for signed overflow in addition / subtraction / multiplication"
+#~ msgstr "Opsæt fælde for overløb med fortegn i addition/subtraktion/multiplikation"
+
+#~ msgid "Use graph coloring register allocation."
+#~ msgstr "Allokér registre vha. graffarvning"
+
+#~ msgid "Compile just for ISO C90"
+#~ msgstr "Oversæt kun til ISO C90"
+
+#~ msgid "Determine language standard"
+#~ msgstr "Bestem sprogstandarden"
+
+#~ msgid "Make bit-fields by unsigned by default"
+#~ msgstr "Lad bitfelter være uden fortegn som standard"
+
+#~ msgid "Make 'char' be signed by default"
+#~ msgstr "Lad 'char' være med fortegn som standard"
+
+#~ msgid "Make 'char' be unsigned by default"
+#~ msgstr "Lad 'char' være 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-kørselsmiljø"
+
+#~ msgid "Assume that standard libraries & main might not exist"
+#~ msgstr "Antag at standardbibliotekerne og main måske 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 størrelse til double som til float"
+
+#~ msgid "Use the smallest fitting integer to hold enums"
+#~ msgstr "Benyt den mindst mulige størrelse heltal til enum-værdier"
+
+#~ 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 "Aktivér 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 være 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 mødes"
+
+#~ msgid "Warn about possibly confusing type conversions"
+#~ msgstr "Advar om typekonverteringer der kan være forvirrende"
+
+#~ msgid "Do not warn about compile-time integer division by zero"
+#~ msgstr "Advar ikke om heltalsdivision på oversættelsestidspunktet 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 underforståede funktionserklæringer"
+
+#~ msgid "Warn when a declaration does not specify a type"
+#~ msgstr "Advar når en erklæring 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' når -pedantic benyttes"
+
+#~ msgid "Warn about suspicious declarations of main"
+#~ msgstr "Advar om mistænkelige erklæringer af main"
+
+#~ msgid "Warn about possibly missing braces around initializers"
+#~ msgstr "Advar om mulige manglende krøllede paranteser omkring startværdier"
+
+#~ msgid "Warn about global funcs without previous declarations"
+#~ msgstr "Advar om globale funktioner uden tidligere erklæringer"
+
+#~ 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-erklæringer 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 erklæring af det samme objekt"
+
+#~ msgid "Warn whenever a function's return-type defaults to int"
+#~ msgstr "Advar når en funktions returtype antages at være 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 funktionserklæringer 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 når trigrafer mødes"
+
+#~ msgid "Warn about unrecognized pragmas"
+#~ msgstr "Advar om ukendte pragmaer"
+
+#~ msgid "Mark strings as 'const char *'"
+#~ msgstr "Markér strenge som 'const char *'"
+
+#~ msgid "Warn when a function is unused"
+#~ msgstr "Advar når en funktion ikke benyttes"
+
+#~ msgid "Warn when a label is unused"
+#~ msgstr "Advar når en etiket ikke benyttes"
+
+#~ msgid "Warn when a function parameter is unused"
+#~ msgstr "Advar når en funktionsparameter ikke benyttes"
+
+#~ msgid "Warn when a variable is unused"
+#~ msgstr "Advar når en variabel ikke benyttes"
+
+#~ msgid "Warn when an expression value is unused"
+#~ msgstr "Advar når værdien 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 når en lokal variabel skygger for en anden"
+
+#~ msgid "Warn about enumerated switches, with no default, missing a case"
+#~ msgstr "Advar om switch-sætninger over enum-typer som mangler et tilfælde og ikke har default"
+
+#~ msgid "Warn about enumerated switches missing a default case"
+#~ msgstr "Advar om switch-sætninger over enum-typer som mangler default"
+
+#~ msgid "Warn about all enumerated switches missing a specific case"
+#~ msgstr "Advar om alle switch-sætninger over enum-typer som mangler et bestemt tilfælde"
+
+#~ 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 forøger justeringen"
+
+#~ msgid "Warn about code that will never be executed"
+#~ msgstr "Advar om kode som aldrig bliver udført"
+
+#~ msgid "Warn about uninitialized automatic variables"
+#~ msgstr "Advar om ikke-klargjorte automatiske variabler"
+
+#~ msgid "Warn when an inlined function cannot be inlined"
+#~ msgstr "Advar når en inline funktion ikke kan indbygges"
+
+#~ msgid "Warn when the packed attribute has no effect on struct layout"
+#~ msgstr "Advar når packed-egenskaben ikke har nogen effekt på struct-layoutet"
+
+#~ msgid "Warn when padding is required to align struct members"
+#~ msgstr "Advar når udfyldning er påkrævet for at justere struct-medlemmer"
+
+#~ msgid "Warn when an optimization pass is disabled"
+#~ msgstr "Advar når en optimeringsfase deaktiveres"
+
+#~ msgid "Warn about uses of __attribute__((deprecated)) declarations"
+#~ msgstr "Advar om brug af __attribute__((deprecated))-erklæringer"
+
+#~ msgid "Warn about functions which might be candidates for attribute noreturn"
+#~ msgstr "Advar om funktioner som kan være 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' erklæret '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> Markér <register> som værende utilgængeligt for oversætteren\n"
+
+#~ msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+#~ msgstr " -fcall-used-<register> Markér <register> som værende benyttet af funktionskald\n"
+
+#~ msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+#~ msgstr " -fcall-saved-<register> Markér <register> som værende bevaret over funktioner\n"
+
+#~ msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+#~ msgstr " -finline-limit=<str> Begræns størrelsen 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> Begræns længden af diagnosticeringmeddelelser til længden <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 præfiks 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 tråd-lokale lagringsmodel for kodegenerering\n"
+
+#~ msgid " -O[number] Set optimization level to [number]\n"
+#~ msgstr " -O[tal] Sæt optimeringsniveauet til [tal]\n"
+
+#~ msgid " -Os Optimize for space rather than speed\n"
+#~ msgstr " -Os Optimér 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 nødvendige 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 Aktivér ekstra advarsler\n"
+
+#~ msgid " -Wunused Enable unused warnings\n"
+#~ msgstr " -Wunused Aktivér 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 større end <tal> byte\n"
+
+#~ msgid " -p Enable function profiling\n"
+#~ msgstr " -p Aktivér 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 målarkitekturer)\n"
+
+#~ msgid " -aux-info <file> Emit declaration info into <file>\n"
+#~ msgstr " -aux-info <fil> Udskriv erklæringsoplysninger til <fil>\n"
+
+#~ msgid " -quiet Do not display functions compiled or elapsed time\n"
+#~ msgstr " -quiet Vis ikke funktioner der oversættes eller forløbet tid\n"
+
+#~ msgid " -version Display the compiler's version\n"
+#~ msgstr " -version Udskriv oversætterens version\n"
+
+#~ msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+#~ msgstr " -d[bogstaver] Aktivér dump fra specifikke faser i oversætteren\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 planlæggeren skal fortælle\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"
+#~ "Målspecifikke 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 målspecifikke 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 understøttes ikke længere"
+
+#~ 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-understøttet '-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 parameterværdi '%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 slået 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 understøttes ikke uden -O"
+
+#~ msgid "instruction scheduling not supported on this target machine"
+#~ msgstr "instruktionsplanlægning understøttes ikke på målarkitekturen"
+
+#~ msgid "this target machine does not have delayed branches"
+#~ msgstr "målarkitekturen har ikke forsinkede forgreninger"
+
+#~ msgid "-f%sleading-underscore not supported on this target machine"
+#~ msgstr "-f%sleading-underscore understøttes ikke på målarkitekturen"
+
+#~ msgid "-ffunction-sections not supported for this target"
+#~ msgstr "-ffunction-sections understøttes ikke på målarkitekturen"
+
+#~ msgid "-fdata-sections not supported for this target"
+#~ msgstr "-fdata-sections understøttes ikke på målarkitekturen"
+
+#~ msgid "-ffunction-sections disabled; it makes profiling impossible"
+#~ msgstr "-ffunction-sections deaktiveret; dette gør profilering umulig"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target"
+#~ msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+#~ msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen (prøv '-march'-tilvalgene)"
+
+#~ msgid "-fprefetch-loop-arrays is not supported with -Os"
+#~ msgstr "-fprefetch-loop-arrays understøttes ikke med -Os"
+
+#~ msgid "-ffunction-sections may affect debugging on some targets"
+#~ msgstr "-ffunction-sections kan have indflydelse på fejlfinding på nogle målarkitekturer"
+
+#~ 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 være en funktion"
+
+#~ msgid "invalid initializer for bit string"
+#~ msgstr "ugyldig startværdi 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 udtrykstræer i %s, ved %s:%d"
+
+#~ msgid "%s causes a section type conflict"
+#~ msgstr "%s forårsager 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 startværdi"
+
+#~ msgid "volatile register variables don't work as you might wish"
+#~ msgstr "registervariable erklæret volatile virker ikke som du måske ø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 større end den maksimale objektfilsjustering - bruger %d"
+
+#~ msgid "thread-local COMMON data not implemented"
+#~ msgstr "tråd-lokal COMMON-data er ikke implementeret"
+
+#~ msgid "requested alignment for %s is greater than implemented alignment of %d"
+#~ msgstr "forespurgt justering for %s er større end den implementerede justering af %d"
+
+#~ msgid "initializer for integer value is too complicated"
+#~ msgstr "startværdien for heltallet er for kompliceret"
+
+#~ msgid "initializer for floating value is not a floating constant"
+#~ msgstr "startværdien for kommatal er ikke en kommatalskonstant"
+
+#~ msgid "unknown set constructor type"
+#~ msgstr "ukendt mængdekonstruktionstype"
+
+#~ msgid "invalid initial value for member `%s'"
+#~ msgstr "ugyldig startværdi for medlemmet '%s'"
+
+#~ msgid "weak declaration of `%s' must precede definition"
+#~ msgstr "svag erklæring af '%s' skal komme før definitionen"
+
+#~ msgid "weak declaration of `%s' after first use results in unspecified behavior"
+#~ msgstr "svag erklæring af '%s' efter første brug resulterer i ikke-defineret opførsel"
+
+#~ msgid "weak declaration of `%s' must be public"
+#~ msgstr "svag erklæring af '%s' skal være public"
+
+#~ msgid "weak declaration of `%s' not supported"
+#~ msgstr "svag erklæring af '%s' ikke understøttet"
+
+#~ msgid "only weak aliases are supported in this configuration"
+#~ msgstr "kun svage aliaser understøttes i denne konfiguration"
+
+#~ msgid "alias definitions not supported in this configuration; ignored"
+#~ msgstr "aliasdefinitioner er ikke understøttet i denne konfiguration; ignoreret"
+
+#~ msgid "visibility attribute not supported in this configuration; ignored"
+#~ msgstr "synlighedsegenskab er ikke understøttet 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 grænserne 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 understøttet 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 før GCC dæmper 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 "Hældningen af den lineære funktion der dæmper indbygning efter at den rekursive indbygningsgrænse er nået, er givet ved den negative, reciprokke værdi 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 søgning efter præcis registerinfo"
+
+#~ msgid "The maximum length of scheduling's pending operations list"
+#~ msgstr "Den maksimale længde af planlæggerens liste over ventende operationer"
+
+#~ msgid "The maximum amount of memory to be allocated by GCSE"
+#~ msgstr "Den maksimale mængde hukommelse som skal allokeres af GCSE"
+
+#~ msgid "The maximum number of passes to make when doing GCSE"
+#~ msgstr "Det maksimale antal faser der skal gennemgås ved udførsel 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 løkke"
+
+#~ 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 "Vælg 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 "Vælg den andel af den maksimale frekvens af udførsler 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 vægtet efter udførselsfrekvens som skal dækkes af sporingsformering; benyttes når profileringsfeedback er tilgængeligt"
+
+#~ 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 vægtet efter udførselsfrekvens som skal dækkes af sporingsformering; benyttes når profileringsfeedback ikke er tilgængeligt"
+
+#~ msgid "Maximal code growth caused by tail duplication (in percents)"
+#~ msgstr "Maksimal kodevækst forårsaget 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 vækst hvis den omvendte sandsynlighed for den bedste kant er mindre end denne tærskel (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 vækst hvis sandsynligheden for den bedste kant er mindre end denne tærskel (i procent); benyttes når profileringsfeedback er tilgængeligt"
+
+#~ 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 vækst hvis sandsynligheden for den bedste kant er mindre end denne tærskel (i procent); benyttes når profileringsfeedback ikke er tilgængeligt"
+
+#~ msgid "The maximum number of incoming edges to consider for crossjumping"
+#~ msgstr "Det maksimale antal indadgående 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 udløse garbage collection, som en procentdel af den totale heap"
+
+#~ msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+#~ msgstr "Minimal heap-størrelse før 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 understøttet)"
+
+#~ msgid "-mieee not supported on Unicos/Mk"
+#~ msgstr "-mieee understøttes ikke på Unicos/Mk"
+
+#~ msgid "-mieee-with-inexact not supported on Unicos/Mk"
+#~ msgstr "-mieee-with-inexact understøttes ikke på Unicos/Mk"
+
+#~ msgid "bad value `%s' for -mtrap-precision switch"
+#~ msgstr "ugyldig værdi '%s' til tilvalget -mtrap-precision"
+
+#~ msgid "bad value `%s' for -mfp-rounding-mode switch"
+#~ msgstr "ugyldig værdi '%s' til tilvalget -mfp-rounding-mode"
+
+#~ msgid "bad value `%s' for -mfp-trap-mode switch"
+#~ msgstr "ugyldig værdi '%s' til tilvalget -mfp-trap-mode"
+
+#~ msgid "bad value `%s' for -mtls-size switch"
+#~ msgstr "ugyldig værdi '%s' til tilvalget -mtls-size"
+
+#~ msgid "bad value `%s' for -mcpu switch"
+#~ msgstr "ugyldig værdi '%s' til tilvalget -mcpu"
+
+#~ msgid "trap mode not supported on Unicos/Mk"
+#~ msgstr "fældetilstand understøttes ikke på Unicos/Mk"
+
+#~ msgid "fp software completion requires -mtrap-precision=i"
+#~ msgstr "kommatalssoftwarefuldførelse kræver -mtrap-precision=i"
+
+#~ msgid "rounding mode not supported for VAX floats"
+#~ msgstr "afrundingstilstand er ikke understøttet for VAX-kommatal"
+
+#~ msgid "trap mode not supported for VAX floats"
+#~ msgstr "fældetilstand er ikke understøttet 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 værdi '%s' for -mmemory-latency"
+
+#~ msgid "invalid %%H value"
+#~ msgstr "ugyldig %%H-værdi"
+
+#~ msgid "invalid %%J value"
+#~ msgstr "ugyldig %%J-værdi"
+
+#~ msgid "invalid %%r value"
+#~ msgstr "ugyldig %%r-værdi"
+
+#~ msgid "invalid %%R value"
+#~ msgstr "ugyldig %%R-værdi"
+
+#~ msgid "invalid %%N value"
+#~ msgstr "ugyldig %%N-værdi"
+
+#~ msgid "invalid %%P value"
+#~ msgstr "ugyldig %%P-værdi"
+
+#~ msgid "invalid %%h value"
+#~ msgstr "ugyldig %%h-værdi"
+
+#~ msgid "invalid %%L value"
+#~ msgstr "ugyldig %%L-værdi"
+
+#~ msgid "invalid %%m value"
+#~ msgstr "ugyldig %%m-værdi"
+
+#~ msgid "invalid %%M value"
+#~ msgstr "ugyldig %%M-værdi"
+
+#~ msgid "invalid %%U value"
+#~ msgstr "ugyldig %%U-værdi"
+
+#~ msgid "invalid %%s value"
+#~ msgstr "ugyldig %%s-værdi"
+
+#~ msgid "invalid %%C value"
+#~ msgstr "ugyldig %%C-værdi"
+
+#~ msgid "invalid %%E value"
+#~ msgstr "ugyldig %%E-værdi"
+
+#~ 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 "Påkræv 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 tæller-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 dataområde"
+
+#~ msgid "Emit 32-bit relocations to the small data areas"
+#~ msgstr "Udsend 32-bit relokalisering til det lille dataområde"
+
+#~ msgid "Emit rdval instead of rduniq for thread pointer"
+#~ msgstr "Udsend rdval i stedet for rduniq for trådhenvisning"
+
+#~ msgid "Use features of and schedule given CPU"
+#~ msgstr "Brug faciliteter fra og planlæg mht. den givne processor"
+
+#~ msgid "Schedule given CPU"
+#~ msgstr "Planlæg til en given processor"
+
+#~ msgid "Control the generated fp rounding mode"
+#~ msgstr "Kontrollér den genererede kommatalsafrundingstilstand"
+
+#~ msgid "Control the IEEE trap mode"
+#~ msgstr "Kontrollér IEEE-fældetilstanden"
+
+#~ msgid "Control the precision given to fp exceptions"
+#~ msgstr "Kontrollér den præcision der gives til kommatalsundtagelser"
+
+#~ msgid "Specify bit size of immediate TLS offsets"
+#~ msgstr "Angiv bitstørrelse for umiddelbar TLS-afsæt"
+
+#~ msgid "bad value (%s) for -mcpu switch"
+#~ msgstr "ugyldig værdi '%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 værdi (%s) til tilvalget %s"
+
+#~ msgid "target CPU does not support APCS-32"
+#~ msgstr "målprocessoren understøtter ikke APCS-32"
+
+#~ msgid "target CPU does not support APCS-26"
+#~ msgstr "målprocessoren understøtter ikke APCS-26"
+
+#~ msgid "target CPU does not support interworking"
+#~ msgstr "målprocessoren understøtter ikke interarbejde"
+
+#~ msgid "target CPU does not support THUMB instructions"
+#~ msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
+
+#~ msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+#~ msgstr "aktivering af tilbagesporingsunderstøttelse giver kun mening ved oversættelse for en Thumb"
+
+#~ msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+#~ msgstr "aktivering af interarbejdeunderstøttelse for kaldte objekter giver kun mening ved oversættelse for en Thumb"
+
+#~ msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+#~ msgstr "aktivering af interarbejdeunderstøttelse for kaldere giver kun mening ved oversættelse 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-genindtrædelig kode er ikke understøttet - ignoreret"
+
+#~ msgid "-g with -mno-apcs-frame may not give sensible debugging"
+#~ msgstr "-g med -mno-apcs-frame giver måske ikke fornuftig fejlanalysering"
+
+#~ msgid "passing floating point arguments in fp regs not yet supported"
+#~ msgstr "overbringelse af kommatalsparametre i kommatalsregistre er ikke understøttet 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 "strukturstørrelsesgrænse kan kun sættes 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 tilgængelige til at modtage værdier fra høje 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 startværdi er markeret dllimport"
+
+#~ msgid "static variable `%s' is marked dllimport"
+#~ msgstr "statisk variabel '%s' er markeret dllimport"
+
+#~ msgid "Generate APCS conformant stack frames"
+#~ msgstr "Generér 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 "Generér genindtrædelig 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 udføre kommatalsoperationer"
+
+#~ msgid "Use hardware floating point instructions"
+#~ msgstr "Benyt hardware-kommatalsinstruktioner"
+
+#~ msgid "Assume target CPU is configured as big endian"
+#~ msgstr "Antag at målprocessoren er konfigureret som storendet"
+
+#~ msgid "Assume target CPU is configured as little endian"
+#~ msgstr "Antag at målprocessoren 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 "Understøt kald mellem Thumb- og ARM-instruktionssættene"
+
+#~ msgid "Generate a call to abort if a noreturn function returns"
+#~ msgstr "Generér 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 "Indlæs ikke PIC-registeret i funktionsbegyndelser"
+
+#~ msgid "Generate call insns as indirect calls, if necessary"
+#~ msgstr "Generér kaldeinstruktioner som indirekte kald, om nødvendigt"
+
+#~ msgid "Compile for the Thumb not the ARM"
+#~ msgstr "Oversæt til Thymb, ikke til ARM"
+
+#~ msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+#~ msgstr "Thumb: Generér (ikke-yderste) stakrammer selv hvis det ikke er nødvendigt"
+
+#~ msgid "Thumb: Generate (leaf) stack frames even if not needed"
+#~ msgstr "Thumb: Generér (yderste) stakrammer selv hvis det ikke er nødvendigt"
+
+#~ 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 opmærksom på Thumb"
+
+#~ msgid "Specify the name of the target CPU"
+#~ msgstr "Angiv navnet på målprocessoren"
+
+#~ msgid "Specify the name of the target architecture"
+#~ msgstr "Angiv navnet på målarkitekturen"
+
+#~ 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 "Ignorér dllimport-egenskaben for funktioner"
+
+#~ msgid "large frame pointer change (%d) with -mtiny-stack"
+#~ msgstr "stor rammehenvisningsændring (%d) med -mtiny-stack"
+
+#~ msgid "bad address, not (reg+disp):"
+#~ msgstr "ugyldig adresse, ikke (reg+disp):"
+
+#~ msgid "internal compiler error. Bad address:"
+#~ msgstr "intern oversætterfejl - ugyldig adresse:"
+
+#~ msgid "internal compiler error. Unknown mode:"
+#~ msgstr "intern oversætterfejl - 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 oversætterfejl - ukorrekt skift:"
+
+#~ msgid "only initialized variables can be placed into program memory area"
+#~ msgstr "kun variabler med startværdi kan placeres i programhukommelsesområdet"
+
+#~ msgid "only uninitialized variables can be placed in the .noinit section"
+#~ msgstr "kun variabler uden startværdi kan placeres i .noinit-sektionen"
+
+#~ msgid "MCU `%s' supported for assembler only"
+#~ msgstr "MCU '%s' understøttes 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 "Generér ikke tabelspringsinstruktioner"
+
+#~ msgid "Use rjmp/rcall (limited range) on >8K devices"
+#~ msgstr "Benyt rjmp/rcall (begrænset omfang) på >8K-enheder"
+
+#~ msgid "Output instruction sizes to the asm file"
+#~ msgstr "Anbring instruktionsstørrelser i asm-filen"
+
+#~ msgid "Specify the initial stack address"
+#~ msgstr "Angiv den første stakadresse"
+
+#~ msgid "Specify the MCU name"
+#~ msgstr "Angiv MCU-navnet"
+
+#~ msgid "trampolines not supported"
+#~ msgstr "trampoliner understøttes 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 kræver %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 selvforøgelse"
+
+#~ 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 tilføjes 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 nøjagtig konvertering fra komma- til heltal"
+
+#~ msgid "Enable use of RTPS instruction"
+#~ msgstr "Aktivér brug af RTPS-instruktionen"
+
+#~ msgid "Disable use of RTPS instruction"
+#~ msgstr "Deaktivér brug af RTPS-instruktionen"
+
+#~ msgid "Enable use of RTPB instruction"
+#~ msgstr "Aktivér brug af RTPB-instruktionen"
+
+#~ msgid "Disable use of RTPB instruction"
+#~ msgstr "Deaktivér brug af RTPB-instruktionen"
+
+#~ msgid "Generate code for C30 CPU"
+#~ msgstr "Generér kode til en C30-processor"
+
+#~ msgid "Generate code for C31 CPU"
+#~ msgstr "Generér kode til en C31-processor"
+
+#~ msgid "Generate code for C32 CPU"
+#~ msgstr "Generér kode til en C32-processor"
+
+#~ msgid "Generate code for C33 CPU"
+#~ msgstr "Generér kode til en C33-processor"
+
+#~ msgid "Generate code for C40 CPU"
+#~ msgstr "Generér kode til en C40-processor"
+
+#~ msgid "Generate code for C44 CPU"
+#~ msgstr "Generér kode til en C44-processor"
+
+#~ msgid "Emit code compatible with TI tools"
+#~ msgstr "Udsend kode der er kompatibel med TI-værktøjer"
+
+#~ msgid "Emit code to use GAS extensions"
+#~ msgstr "Udsend kode der bruger GAS-udvidelser"
+
+# RETMIG: hvad står 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 "Aktivér nye faciliteter under udvikling"
+
+#~ msgid "Disable new features under development"
+#~ msgstr "Deaktivér 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 "Allokér ikke BK-registeret"
+
+#~ msgid "Enable use of DB instruction"
+#~ msgstr "Aktivér brug af DB-instruktioner"
+
+#~ msgid "Disable use of DB instruction"
+#~ msgstr "Deaktivér brug af DB-instruktioner"
+
+#~ msgid "Enable debugging"
+#~ msgstr "Aktivér fejlanalyseringsinfo"
+
+#~ msgid "Disable debugging"
+#~ msgstr "Deaktivér fejlanalyseringsinfo"
+
+# RETMIG: hvad betyder hoisting? (det har noget med jage indlæsning 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 iterationstællere uden fortegn for RPTB/DB"
+
+#~ msgid "Disallow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Tillad ikke iterationstællere uden fortegn for RPTB/DB"
+
+#~ msgid "Preserve all 40 bits of FP reg across call"
+#~ msgstr "Bevar alle 40 bit af kommatalsregisteret på tværs af kald"
+
+#~ msgid "Only preserve 32 bits of FP reg across call"
+#~ msgstr "Bevar kun 32 bit af kommatalsregisteret på tværs af kald"
+
+#~ msgid "Enable parallel instructions"
+#~ msgstr "Aktivér parallelle instruktioner"
+
+#~ msgid "Disable parallel instructions"
+#~ msgstr "Deaktivér parallelle instruktioner"
+
+#~ msgid "Enable MPY||ADD and MPY||SUB instructions"
+#~ msgstr "Aktivér instruktionerne MPY||ADD og MPY||SUB"
+
+#~ msgid "Disable MPY||ADD and MPY||SUB instructions"
+#~ msgstr "Deaktivér instruktionerne MPY||ADD og MPY||SUB"
+
+#~ msgid "Assume that pointers may be aliased"
+#~ msgstr "Antag at henvisninger kan være aliaser"
+
+#~ msgid "Assume that pointers not aliased"
+#~ msgstr "Antag at henvisninger ikke kan være aliaser"
+
+#~ msgid "Specify maximum number of iterations for RPTS"
+#~ msgstr "Angiv maksimalt antal iterationer for RPTS"
+
+#~ msgid "Select CPU to generate code for"
+#~ msgstr "Vælg 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 behøver 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 operandændringsbogstav"
+
+#~ 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 påvirker 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 understøttes 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 "Oversæt for det Etrax 100-baserede elinux-system uden MMU"
+
+#~ msgid "For elinux, request a specified stack-size for this program"
+#~ msgstr "For elinux; forespørg en angivet stakstørrelse for dette program"
+
+#~ msgid "Compile for ETRAX 4 (CRIS v3)"
+#~ msgstr "Oversæt for ETRAX 4 (CRIS v3)"
+
+#~ msgid "Compile for ETRAX 100 (CRIS v8)"
+#~ msgstr "Oversæt 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 "Finjustér ikke stakjustering"
+
+#~ msgid "Do not tune writable data alignment"
+#~ msgstr "Finjustér ikke justering af skrivbare data"
+
+#~ msgid "Do not tune code and read-only data alignment"
+#~ msgstr "Finjustér ikke justering af kode og skrivebeskyttet data"
+
+#~ msgid "Align code and data to 32 bits"
+#~ msgstr "Justér kode og data til 32 bit"
+
+#~ msgid "Don't align items in code or data"
+#~ msgstr "Justér 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 "Generér kode til en given chip- eller processorversion"
+
+#~ msgid "Tune alignment for the specified chip or CPU version"
+#~ msgstr "Finjustér justering til en given chip- eller processorversion"
+
+#~ msgid "Warn when a stackframe is larger than the specified size"
+#~ msgstr "Advar når en stakramme er større end den angivne størrelse"
+
+#~ 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 "Aktivér brug af betingede flytteinstruktioner"
+
+#~ msgid "Disable use of conditional move instructions"
+#~ msgstr "Deaktivér brug af betingede flytteinstruktioner"
+
+#~ msgid "Debug argument support in compiler"
+#~ msgstr "Fejlanalyser parameterunderstøttelse i oversætteren"
+
+#~ msgid "Debug stack support in compiler"
+#~ msgstr "Fejlanalyser stakunderstøttelse i oversætteren"
+
+#~ msgid "Debug memory address support in compiler"
+#~ msgstr "Fejlanalyser hukommelsesadresseunderstøttelse i oversætteren"
+
+#~ msgid "Make adjacent short instructions parallel if possible"
+#~ msgstr "Gør nærliggende korte instruktioner parallelle om muligt"
+
+#~ msgid "Do not make adjacent short instructions parallel"
+#~ msgstr "Gør ikke nærliggende korte instruktioner parallelle"
+
+#~ msgid "Link programs/data to be in external memory by default"
+#~ msgstr "Sammenkæd program/data til at være i ekstern hukommelse som standard"
+
+#~ msgid "Link programs/data to be in onchip memory by default"
+#~ msgstr "Sammenkæd program/data til at være i hukommelsen på chippen som standard"
+
+#~ msgid "Change the branch costs within the compiler"
+#~ msgstr "Skift forgreningsomkostningen i oversætteren"
+
+#~ msgid "Change the threshold for conversion to conditional execution"
+#~ msgstr "Skift tærsklen for konvertering til betinget udførelse"
+
+#~ msgid "stack size > 32k"
+#~ msgstr "stakstørrelse > 32k"
+
+#~ msgid "invalid addressing mode"
+#~ msgstr "ugyldig adresseringstilstand"
+
+#~ msgid "bad register extension code"
+#~ msgstr "ugyldig registerudvidelseskode"
+
+#~ msgid "invalid offset in ybase addressing"
+#~ msgstr "ugyldigt afsæt 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 "Generér kode til nære kald"
+
+#~ msgid "Don't generate code for near calls"
+#~ msgstr "Generér ikke kode til nære kald"
+
+#~ msgid "Generate code for near jumps"
+#~ msgstr "Generér kode til nære spring"
+
+#~ msgid "Don't generate code for near jumps"
+#~ msgstr "Generér ikke kode til nære spring"
+
+#~ msgid "Generate code for a bit-manipulation unit"
+#~ msgstr "Generér kode til en bit-manipuleringsenhed"
+
+#~ msgid "Don't generate code for a bit-manipulation unit"
+#~ msgstr "Generér ikke kode til en bit-manipuleringsenhed"
+
+#~ msgid "Generate code for memory map1"
+#~ msgstr "Generér kode til memory map1"
+
+#~ msgid "Generate code for memory map2"
+#~ msgstr "Generér kode til memory map2"
+
+#~ msgid "Generate code for memory map3"
+#~ msgstr "Generér kode til memory map3"
+
+#~ msgid "Generate code for memory map4"
+#~ msgstr "Generér kode til memory map4"
+
+#~ msgid "Ouput extra code for initialized data"
+#~ msgstr "Udsend ekstra kode til data med startværdier"
+
+#~ 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-miljøet"
+
+#~ msgid "Save temp. files in Luxworks environment"
+#~ msgstr "Gem midlertidige filer i Luxworks-miljøet"
+
+#~ 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 understøttes ikke endnu"
+
+#~ msgid "trampolines not yet implemented"
+#~ msgstr "trampoliner understøttes ikke endnu"
+
+#~ msgid "fr30_print_operand_address: unhandled address"
+#~ msgstr "fr30_print_operand_address: ikke-håndteret 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-håndteret 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, tilfældet z"
+
+#~ msgid "Bad insn in frv_print_operand, 0 case"
+#~ msgstr "Ugyldig instruktion i frv_print_operand, tilfældet 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 tilgængelige medmindre -mmedia benyttes"
+
+#~ msgid "this media function is only available on the fr500"
+#~ msgstr "denne mediafunktion er kun tilgængelig på fr500"
+
+#~ msgid "this media function is only available on the fr400"
+#~ msgstr "denne mediafunktion er kun tilgængelig 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 "Generér H8S-kode"
+
+#~ msgid "Do not generate H8S code"
+#~ msgstr "Generér ikke H8S-kode"
+
+#~ msgid "Generate H8S/2600 code"
+#~ msgstr "Generér H8S/2600-kode"
+
+#~ msgid "Do not generate H8S/2600 code"
+#~ msgstr "Generér ikke H8S/2600-kode"
+
+#~ msgid "Make integers 32 bits wide"
+#~ msgstr "Gør 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 bytestørrelseshukommelse som langsomt"
+
+#~ msgid "Enable linker relaxing"
+#~ msgstr "Aktivér tolerant sammenkædning"
+
+#~ msgid "Generate H8/300H code"
+#~ msgstr "Generér H8/300H-kode"
+
+#~ msgid "Enable the normal mode"
+#~ msgstr "Aktivér den normale tilstand"
+
+#~ msgid "Do not generate H8/300H code"
+#~ msgstr "Generér 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 efterfølger sammenligning:"
+
+#~ msgid "Generate char instructions"
+#~ msgstr "Generér char-instruktioner"
+
+#~ msgid "Do not generate char instructions"
+#~ msgstr "Generér ikke char-instruktioner"
+
+#~ msgid "code model %s not supported in PIC mode"
+#~ msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand"
+
+#~ msgid "bad value (%s) for -mcmodel= switch"
+#~ msgstr "ugyldig værdi (%s) til tilvalget -mcmodel="
+
+#~ msgid "bad value (%s) for -masm= switch"
+#~ msgstr "ugyldig værdi (%s) til tilvalget -masm="
+
+#~ msgid "code model `%s' not supported in the %s bit mode"
+#~ msgstr "kodemodellen %s er ikke understøttet i %s bit-tilstand"
+
+#~ msgid "code model `large' not supported yet"
+#~ msgstr "kodemodellen 'large' er ikke understøttet 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 værdi (%s) til tilvalget -march="
+
+#~ msgid "bad value (%s) for -mcpu= switch"
+#~ msgstr "ugyldig værdi (%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 forældet, 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 forældet, benyt -falign-jumps"
+
+#~ msgid "-malign-functions is obsolete, use -falign-functions"
+#~ msgstr "-malign-functions er forældet, 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 værdi (%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 understøttet i 64 bit-tilstand"
+
+#~ msgid "SSE instruction set disabled, using 387 arithmetics"
+#~ msgstr "SSE-instruktionssæt deaktiveret, bruger 387-beregninger"
+
+#~ msgid "387 instruction set disabled, using SSE arithmetics"
+#~ msgstr "387-instruktionssæt deaktiveret, bruger SSE-beregninger"
+
+#~ msgid "bad value (%s) for -mfpmath= switch"
+#~ msgstr "ugyldig værdi (%s) til tilvalget -mfpmath="
+
+#~ msgid "`%s' attribute requires an integer constant argument"
+#~ msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
+
+#~ msgid "argument to `%s' attribute larger than %d"
+#~ msgstr "parameter til egenskaben '%s' er større end %d"
+
+#~ msgid "invalid UNSPEC as operand"
+#~ msgstr "ugyldig UNSPEC som operand"
+
+#~ msgid "extended registers have no high halves"
+#~ msgstr "udvidede registre har ikke høje halvdele"
+
+#~ msgid "unsupported operand size for extended register"
+#~ msgstr "ikke-understøttet operandstørrelse 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 begrænsninger for operand"
+
+#~ msgid "unknown insn mode"
+#~ msgstr "ukendt instruktionstilstand"
+
+#~ msgid "selector must be an immediate"
+#~ msgstr "vælger skal være en umiddelbar værdi"
+
+#~ msgid "mask must be an immediate"
+#~ msgstr "maske skal være en umiddelbar værdi"
+
+#~ msgid "shift must be an immediate"
+#~ msgstr "skifteværdi skal være en umiddelbar værdi"
+
+#~ 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' erklæret som både eksporteret til og importeret fra en DLL"
+
+#~ msgid "Use the Cygwin interface"
+#~ msgstr "Benyt Cygwin-grænsefladen"
+
+#~ msgid "Use the Mingw32 interface"
+#~ msgstr "Benyt Mingw32-grænsefladen"
+
+#~ 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 "Generér kode til en DLL"
+
+#~ msgid "Ignore dllimport for functions"
+#~ msgstr "Ignorér dllimport til funktioner"
+
+#~ msgid "Use Mingw-specific thread support"
+#~ msgstr "Benyt Mingw-specifik trådunderstøttelse"
+
+#~ msgid "-f%s ignored for target (all code is position independent)"
+#~ msgstr "-f%s ignoreret for målarkitekturen (all kode er positionsuafhængigt)"
+
+#~ msgid "-mbnu210 is ignored (option is obsolete)"
+#~ msgstr "-mbnu210 ignoreres (tilvalget er forældet)"
+
+#~ msgid "Alternate calling convention"
+#~ msgstr "Alternativ kaldekonvention"
+
+#~ msgid "Use normal calling convention"
+#~ msgstr "Brug normal kaldekonvention"
+
+#~ msgid "Align some doubles on dword boundary"
+#~ msgstr "Justér nogle double-variabler til dword-grænserne"
+
+#~ msgid "Align doubles on word boundary"
+#~ msgstr "Justér double-variabler til word-grænserne"
+
+#~ msgid "Uninitialized locals in .bss"
+#~ msgstr "Lokale variabler uden startværdi i .bss"
+
+#~ msgid "Uninitialized locals in .data"
+#~ msgstr "Lokale variabler uden startværdi 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 "Returnér værdier fra funktioner i fpu-registre"
+
+#~ msgid "Do not return values of functions in FPU registers"
+#~ msgstr "Returnér ikke værdier fra funktioner i fpu-registre"
+
+#~ msgid "Do not generate sin, cos, sqrt for FPU"
+#~ msgstr "Generér ikke sin, cos, sqrt til fpu"
+
+#~ msgid "Generate sin, cos, sqrt for FPU"
+#~ msgstr "Generér 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 "Aktivér stakprøvning"
+
+#~ msgid "Align destination of the string operations"
+#~ msgstr "Justér strengoperationernes destination"
+
+#~ msgid "Do not align destination of the string operations"
+#~ msgstr "Justér 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 udgående parametre"
+
+#~ msgid "Do not use push instructions to save outgoing arguments"
+#~ msgstr "Brug ikke push-instruktioner til at gemme udgående parametre"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#~ msgid "Support MMX built-in functions"
+#~ msgstr "Understøt indbyggede MMX-funktioner"
+
+#~ msgid "Do not support MMX built-in functions"
+#~ msgstr "Understøt ikke indbyggede MMX-funktioner"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#~ msgid "Support 3DNow! built-in functions"
+#~ msgstr "Understøt indbyggede 3DNow!-funktioner"
+
+#~ msgid "Do not support 3DNow! built-in functions"
+#~ msgstr "Understøt ikke indbyggede 3DNow!-funktioner"
+
+#~ msgid "Support MMX and SSE built-in functions and code generation"
+#~ msgstr "Understøt indbyggede MMX- og SSE-funktioner og kodegenerering"
+
+#~ msgid "Do not support MMX and SSE built-in functions and code generation"
+#~ msgstr "Understøt ikke indbyggede MMX- og SSE-funktioner og kodegenerering"
+
+#~ msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+#~ msgstr "Understøt indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
+
+#~ msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+#~ msgstr "Understøt 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 "Generér 64 bit x86-64-kode"
+
+#~ msgid "Generate 32bit i386 code"
+#~ msgstr "Generér 64 bit i386-kode"
+
+#~ msgid "Use red-zone in the x86-64 code"
+#~ msgstr "Benyt rødzone i x86-64-koden"
+
+#~ msgid "Do not use red-zone in the x86-64 code"
+#~ msgstr "Benyt ikke rødzone i x86-64-koden"
+
+#~ msgid "Schedule code for given CPU"
+#~ msgstr "Planlæg koden til en given processor"
+
+#~ msgid "Generate floating point mathematics using given instruction set"
+#~ msgstr "Generér kommatalsmatematik vha. givent instruktionssæt"
+
+#~ msgid "Generate code for given CPU"
+#~ msgstr "Generér 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 "Løkkekode 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 "Forsøg at holde stakken justeret til denne potens af 2"
+
+#~ msgid "Branches are this expensive (1-5, arbitrary units)"
+#~ msgstr "Forgreninger koster dette (1-5, vilkårlige 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 tråd-lokale lagringsdialekt"
+
+#~ msgid "Generate ELF output"
+#~ msgstr "Generér ELF-uddata"
+
+#~ msgid "Use Mingw32 interface"
+#~ msgstr "Benyt Mingw32-grænseflade"
+
+#~ msgid "Use Cygwin interface"
+#~ msgstr "Benyt Cygwin-grænseflade"
+
+#~ msgid "Use bare Windows interface"
+#~ msgstr "Benyt bar Windows-grænseflade"
+
+#~ msgid "environment variable DJGPP not defined"
+#~ msgstr "miljøvariablen DJGPP er ikke defineret"
+
+#~ msgid "environment variable DJGPP points to missing file '%s'"
+#~ msgstr "miljøvariablen DJGPP peger på den manglende fil '%s'"
+
+#~ msgid "environment variable DJGPP points to corrupt file '%s'"
+#~ msgstr "miljøvariablen DJGPP peger på den ødelagte fil '%s'"
+
+#~ msgid "sorry, not implemented: #pragma align NAME=SIZE"
+#~ msgstr "desværre, ikke implementeret: #pragma align NAVN=STØRRELSE"
+
+#~ msgid "malformed #pragma align - ignored"
+#~ msgstr "forkert udformet '#pragma align' - ignoreret"
+
+#~ msgid "sorry, not implemented: #pragma noalign NAME"
+#~ msgstr "desværre, 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 "stakgrænseudtryk understøttes ikke"
+
+#~ msgid "Generate SA code"
+#~ msgstr "Generér SA-kode"
+
+#~ msgid "Generate SB code"
+#~ msgstr "Generér SB-kode"
+
+#~ msgid "Generate KA code"
+#~ msgstr "Generér KA-kode"
+
+#~ msgid "Generate KB code"
+#~ msgstr "Generér KB-kode"
+
+#~ msgid "Generate JA code"
+#~ msgstr "Generér JA-kode"
+
+#~ msgid "Generate JD code"
+#~ msgstr "Generér JD-kode"
+
+#~ msgid "Generate JF code"
+#~ msgstr "Generér JF-kode"
+
+#~ msgid "generate RP code"
+#~ msgstr "Generér RP-kode"
+
+#~ msgid "Generate MC code"
+#~ msgstr "Generér MC-kode"
+
+#~ msgid "Generate CA code"
+#~ msgstr "Generér CA-kode"
+
+#~ msgid "Generate CF code"
+#~ msgstr "Generér 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 "Udfør halekaldsoptimering"
+
+#~ msgid "Do not perform tail call optimization"
+#~ msgstr "Udfør 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 "Justér kode til 8 byte-grænser"
+
+#~ msgid "Do not align code to 8 byte boundary"
+#~ msgstr "Justér ikke kode til 8 byte-grænser"
+
+#~ msgid "Enable compatibility with iC960 v2.0"
+#~ msgstr "Aktivér kompatibilitet med iC960 v2.0"
+
+#~ msgid "Enable compatibility with iC960 v3.0"
+#~ msgstr "Aktivér kompatibilitet med iC960 v3.0"
+
+#~ msgid "Enable compatibility with ic960 assembler"
+#~ msgstr "Aktivér kompatibilitet med ic960-maskinkodeoversætteren"
+
+#~ 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 "Sammensæt typer som Intels v1.3 gcc"
+
+#~ msgid "Do not layout types like Intel's v1.3 gcc"
+#~ msgstr "Sammensæt ikke typer som Intels v1.3 gcc"
+
+#~ msgid "Use 64 bit long doubles"
+#~ msgstr "Benyt 64 bit long double"
+
+#~ msgid "Enable linker relaxation"
+#~ msgstr "Aktivér tolerant sammenkæder"
+
+#~ msgid "Do not enable linker relaxation"
+#~ msgstr "Aktivér ikke tolerant sammenkæder"
+
+#~ 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 "værdien af -mfixed-range skal være 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 både ventetid og båndbredde"
+
+#~ msgid "cannot optimize integer division for both latency and throughput"
+#~ msgstr "kan ikke optimere heltalsdivision for både ventetid og båndbredde"
+
+#~ msgid "bad value (%s) for -mtls-size= switch"
+#~ msgstr "ugyldig værdi (%s) for tilvalget -mtls-size="
+
+#~ msgid "Generate big endian code"
+#~ msgstr "Generér storendet kode"
+
+#~ msgid "Generate little endian code"
+#~ msgstr "Generér lilleendet kode"
+
+#~ msgid "Generate code for GNU as"
+#~ msgstr "Generér kode til GNU as"
+
+#~ msgid "Generate code for Intel as"
+#~ msgstr "Generér kode til Intel as"
+
+#~ msgid "Generate code for GNU ld"
+#~ msgstr "Generér kode til GNU ld"
+
+#~ msgid "Generate code for Intel ld"
+#~ msgstr "Generér kode til Intel ld"
+
+#~ msgid "Generate code without GP reg"
+#~ msgstr "Generér kode uden GP-registeret"
+
+#~ msgid "Emit stop bits before and after volatile extended asms"
+#~ msgstr "Udsend stopbit før og efter volatile udvidede asm-sætninger"
+
+#~ msgid "Don't emit stop bits before and after volatile extended asms"
+#~ msgstr "Udsend ikke stopbit før og efter volatile udvidede asm-sætninger"
+
+#~ 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 "Deaktivér brug af sdata/scommon/sbss"
+
+#~ msgid "Enable use of sdata/scommon/sbss"
+#~ msgstr "Aktivér 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 "Generér selvflyttende kode"
+
+#~ msgid "Generate inline floating point division, optimize for latency"
+#~ msgstr "Generér indlejrede kommatalsdivisioner, optimér for ventetid"
+
+#~ msgid "Generate inline floating point division, optimize for throughput"
+#~ msgstr "Generér indlejrede kommatalsdivisioner, optimér for båndbredde"
+
+#~ msgid "Generate inline integer division, optimize for latency"
+#~ msgstr "Generér indlejrede heltalsdivisioner, optimér for ventetid"
+
+#~ msgid "Generate inline integer division, optimize for throughput"
+#~ msgstr "Generér indlejrede heltalsdivisioner, optimér for båndbredde"
+
+#~ msgid "Enable Dwarf 2 line debug info via GNU as"
+#~ msgstr "Aktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as"
+
+#~ msgid "Disable Dwarf 2 line debug info via GNU as"
+#~ msgstr "Deaktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as"
+
+#~ msgid "Specify range of registers to make fixed"
+#~ msgstr "Angiv interval af registre der skal gøres faste"
+
+#~ msgid "bad operand"
+#~ msgstr "ugyldig operand"
+
+#~ msgid "bad value (%s) for -mmodel switch"
+#~ msgstr "ugyldig værdi (%s) til tilvalget -mmodel"
+
+#~ msgid "bad value (%s) for -msdata switch"
+#~ msgstr "ugyldig værdi (%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 "præfiks forøgelsesadresse er ikke et register"
+
+#~ msgid "pre-decrement address is not a register"
+#~ msgstr "præfiks formindskelsesadresse er ikke et register"
+
+#~ msgid "post-increment address is not a register"
+#~ msgstr "postfiks forøgelsesadresse 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 oversættelsesstatistikker"
+
+#~ msgid "Align all loops to 32 byte boundary"
+#~ msgstr "Justér alle løkker til 32 byte-grænserne"
+
+#~ msgid "Only issue one instruction per cycle"
+#~ msgstr "Udfør kun én instruktion pr. cyklus"
+
+#~ msgid "Prefer branches over conditional execution"
+#~ msgstr "Foretræk forgrening frem for betinget udførelse"
+
+#~ msgid "Code size: small, medium or large"
+#~ msgstr "Kodestørrelse: small, medium eller large"
+
+#~ msgid "Small data area: none, sdata, use"
+#~ msgstr "Område til små data: none, sdata, use"
+
+#~ msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+#~ msgstr "-f%s ignoreret for 68HC11/68HC12 (ikke understøttet)"
+
+#~ 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 håndteret"
+
+#~ 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 være et hårdt 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 udføre Z-registererstatning"
+
+#~ msgid "invalid Z register replacement for insn"
+#~ msgstr "ugyldig Z-registererstatning for instruktion"
+
+#~ msgid "Compile with 16-bit integer mode"
+#~ msgstr "Oversæt med 16 bit-heltalstilstand"
+
+#~ msgid "Compile with 32-bit integer mode"
+#~ msgstr "Oversæt med 32 bit-heltalstilstand"
+
+#~ msgid "Auto pre/post decrement increment allowed"
+#~ msgstr "Selvformindskelse tilladt"
+
+#~ msgid "Auto pre/post decrement increment not allowed"
+#~ msgstr "Selvforøgelse 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 bløde registre"
+
+#~ msgid "Use direct addressing mode for soft registers"
+#~ msgstr "Benyt direkte adresseringstilstand til bløde registre"
+
+#~ msgid "Compile for a 68HC11"
+#~ msgstr "Oversæt til en 68HC11"
+
+#~ msgid "Compile for a 68HC12"
+#~ msgstr "Oversæt til en 68HC12"
+
+#~ msgid "Compile for a 68HCS12"
+#~ msgstr "Oversæt til en 68HCS12"
+
+#~ msgid "Specify the register allocation order"
+#~ msgstr "Angiv registerallokeringsordnen"
+
+#~ msgid "Indicate the number of soft registers available"
+#~ msgstr "Angiv antallet af bløde registre der er til rådighed"
+
+#~ 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 understøttes ikke på nuværende tidspunkt på 68000 og 68010\n"
+
+#~ msgid "Generate code for a 68020"
+#~ msgstr "Generér kode til en 68020"
+
+#~ msgid "Generate code for a 68000"
+#~ msgstr "Generér 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' være 16 bit bred"
+
+#~ msgid "Consider type `int' to be 32 bits wide"
+#~ msgstr "Lad typen 'int' være 32 bit bred"
+
+#~ msgid "Generate code for a Sun FPA"
+#~ msgstr "Generér kode til en Sun FPA"
+
+#~ msgid "Do not generate code for a Sun FPA"
+#~ msgstr "Generér ikke kode til en Sun FPA"
+
+#~ msgid "Generate code for a Sun Sky board"
+#~ msgstr "Generér kode til et Sun Sky-kort"
+
+#~ msgid "Do not use Sky linkage convention"
+#~ msgstr "Benyt ikke Sky-kædningskonventionen"
+
+#~ msgid "Generate code for a 68881"
+#~ msgstr "Generér kode til en 68881"
+
+#~ msgid "Generate code with library calls for floating point"
+#~ msgstr "Generér kode med bibliotekskald for kommatalsoperationer"
+
+#~ msgid "Generate code for a 68040, without any new instructions"
+#~ msgstr "Generér kode til en 68040 uden nogen nye instruktioner"
+
+#~ msgid "Generate code for a 68060, without any new instructions"
+#~ msgstr "Generér kode til en 68060 uden nogen nye instruktioner"
+
+#~ msgid "Generate code for a 68030"
+#~ msgstr "Generér kode til en 68030"
+
+#~ msgid "Generate code for a 68040"
+#~ msgstr "Generér kode til en 68040"
+
+#~ msgid "Generate code for a 68060"
+#~ msgstr "Generér kode til en 68060"
+
+#~ msgid "Generate code for a 520X"
+#~ msgstr "Generér kode til en 520X"
+
+#~ msgid "Generate code for a 68851"
+#~ msgstr "Generér kode til en 68851"
+
+#~ msgid "Do no generate code for a 68851"
+#~ msgstr "Generér ikke kode til en 68851"
+
+#~ msgid "Generate code for a 68302"
+#~ msgstr "Generér kode til en 68302"
+
+#~ msgid "Generate code for a 68332"
+#~ msgstr "Generér kode til en 68332"
+
+#~ msgid "Generate code for a cpu32"
+#~ msgstr "Generér kode til en cpu32"
+
+#~ msgid "Align variables on a 32-bit boundary"
+#~ msgstr "Justér variabler til 32 bit-grænserne"
+
+#~ msgid "Align variables on a 16-bit boundary"
+#~ msgstr "Justér variabler til 16 bit-grænserne"
+
+#~ msgid "Generate pc-relative code"
+#~ msgstr "Generér 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-overvågning: 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 efterfølges ikke af %%B/C/D/E"
+
+#~ msgid "invalid %%x/X value"
+#~ msgstr "ugyldig %%x/X-værdi"
+
+#~ msgid "invalid %%Q value"
+#~ msgstr "ugyldig %%Q-værdi"
+
+#~ msgid "invalid %%q value"
+#~ msgstr "ugyldig %%q-værdi"
+
+#~ msgid "invalid %%o value"
+#~ msgstr "ugyldig %%o-værdi"
+
+#~ msgid "invalid %%p value"
+#~ msgstr "ugyldig %%p-værdi"
+
+#~ msgid "invalid %%s/S value"
+#~ msgstr "ugyldig %%s/S-værdi"
+
+#~ msgid "invalid %%P operand"
+#~ msgstr "ugyldig %%P-operand"
+
+#~ msgid "invalid %%B value"
+#~ msgstr "ugyldig %%B-værdi"
+
+#~ msgid "invalid %%D value"
+#~ msgstr "ugyldig %%D-værdi"
+
+#~ 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 gøres med 2 instruktioner eller mindre"
+
+#~ msgid "Inline constants if it only takes 1 instruction"
+#~ msgstr "Indlejr konstanter hvis det kan gøres med 1 instruktion"
+
+#~ msgid "Set maximum alignment to 4"
+#~ msgstr "Sæt maksimal justering til 4"
+
+#~ msgid "Set maximum alignment to 8"
+#~ msgstr "Sæt 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 vilkårlige størrelsers umiddelbare værdier i bitoperationer"
+
+#~ msgid "Always treat bit-field as int-sized"
+#~ msgstr "Behandl altid bitfelter som af størrelsen int"
+
+#~ msgid "Force functions to be aligned to a 4 byte boundary"
+#~ msgstr "Tving funktioner til at blive justeret til en 4 byte-grænse"
+
+#~ msgid "Force functions to be aligned to a 2 byte boundary"
+#~ msgstr "Tving funktioner til at blive justeret til en 2 byte-grænse"
+
+#~ msgid "Emit call graph information"
+#~ msgstr "Udsend kaldegrafinfo"
+
+#~ msgid "Prefer word accesses over byte accesses"
+#~ msgstr "Foretræk ord-tilgange frem for byte-tilgange"
+
+#~ msgid "Generate code for the M*Core M340"
+#~ msgstr "Generér kode til en M*Core M340"
+
+#~ msgid "Maximum amount for a single stack increment operation"
+#~ msgstr "Maksimalt antal for en enkelt stakforøgelsesoperation"
+
+#~ msgid "bad value (%s) for -mabi= switch"
+#~ msgstr "ugyldig værdi (%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 værdi (%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-understøttet kombination: %s"
+
+#~ msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+#~ msgstr "generering af Branch Likely-instruktioner er aktiveret, men ikke understøttet 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 maskinkodeoversættermønster"
+
+#~ msgid "internal error: %%] found without a %%[ in assembler pattern"
+#~ msgstr "intern fejl: %%] fundet uden en %%[ i maskinkodeoversættermønster"
+
+#~ msgid "internal error: %%> found without a %%< in assembler pattern"
+#~ msgstr "intern fejl: %%> fundet uden en %%< i maskinkodeoversættermønster"
+
+#~ msgid "internal error: %%} found without a %%{ in assembler pattern"
+#~ msgstr "intern fejl: %%} fundet uden en %%{ i maskinkodeoversættermønster"
+
+#~ msgid "PRINT_OPERAND: unknown punctuation '%c'"
+#~ msgstr "PRINT_OPERAND: ukendt tegnsætning '%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 læse 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 håndtere 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 værdi (%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 "Optimér lui/addiu-adresseindlæsninger"
+
+#~ msgid "Don't optimize lui/addiu address loads"
+#~ msgstr "Optimér ikke lui/addiu-adresseindlæsninger"
+
+# 'as' står 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 oversættelsesstatistik"
+
+#~ msgid "Don't output compiler statistics"
+#~ msgstr "Udsend ikke oversættelsesstatistik"
+
+#~ msgid "Don't optimize block moves"
+#~ msgstr "Optimér ikke blokflytninger"
+
+#~ msgid "Optimize block moves"
+#~ msgstr "Optimér 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 startværdi i ROM (behøver -membedded-data)"
+
+#~ msgid "Don't put uninitialized constants in ROM"
+#~ msgstr "Anbring ikke konstanter uden startværdi 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 enkeltpræcisions (32 bit) kommatal"
+
+#~ msgid "Don't use single (32-bit) FP only"
+#~ msgstr "Benyt ikke kun enkeltpræcisions (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 "Generér ikke sammensatte gang/addér-instruktioner"
+
+#~ msgid "Generate fused multiply/add instructions"
+#~ msgstr "Generér sammensatte gang/addér-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 "Forårsag undtagelse ved heltalsdivision med nul"
+
+#~ msgid "Don't trap on integer divide by zero"
+#~ msgstr "Forårsag ikke undtagelse ved heltalsdivision med nul"
+
+#~ msgid "Trap on integer divide overflow"
+#~ msgstr "Forårsag undtagelse ved heltalsdivisionsoverløb"
+
+#~ msgid "Don't trap on integer divide overflow"
+#~ msgstr "Forårsag ikke undtagelse ved heltalsdivisionsoverløb"
+
+#~ 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 planlægningsformål"
+
+#~ msgid "Specify CPU for code generation purposes"
+#~ msgstr "Angiv processor til kodegenereringsformål"
+
+#~ 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-indtrædelse-/afslutningspseudooperationer"
+
+#~ msgid "Don't use MIPS16 instructions"
+#~ msgstr "Benyt ikke MIPS16-instruktioner"
+
+#~ msgid "Don't call any cache flush functions"
+#~ msgstr "Kald ikke nogen mellemlagertømningsfunktion"
+
+#~ msgid "Specify cache flush function"
+#~ msgstr "Angiv mellemlagertømningsfunktion"
+
+#~ msgid "mips16 function profiling"
+#~ msgstr "MIPS16-funktionsprofilering"
+
+#~ msgid "-f%s not supported: ignored"
+#~ msgstr "-f%s er ikke understøttet: ignoreret"
+
+#~ msgid "too large function value type, needs %d registers, have only %d registers for this"
+#~ msgstr "for stor funktionsværditype, behøver %d registre, har kun %d registre til dette"
+
+#~ msgid "function_profiler support for MMIX"
+#~ msgstr "function_profiler-understøttelse 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 værdi 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: Forsøger 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 returværdier"
+
+#~ msgid "Use call-clobbered registers for parameters and return value"
+#~ msgstr "Benyt kaldeoptagne registre til parametre og returværdier"
+
+#~ 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 hukommelsesindlæsninger, ikke fortegnsudvidende"
+
+#~ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+#~ msgstr "Generér divisionsresultater med rest som har det samme fortegn som nævneren (ikke tælleren)"
+
+#~ msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+#~ msgstr "Tilføj \":\" 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 sammenkædningen 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 "Generér et enkelt afslutningspunkt for hver funktion"
+
+#~ msgid "Do not generate a single exit point for each function"
+#~ msgstr "Generér 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 "Målret mod AM33-processoren"
+
+#~ msgid "Enable linker relaxations"
+#~ msgstr "Aktivér tolerant sammenkædning"
+
+#~ 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 "Optimér for en 32532-processor"
+
+#~ msgid "Optimize for 32332 cpu"
+#~ msgstr "Optimér for en 32332-processor"
+
+#~ msgid "Optimize for 32032"
+#~ msgstr "Optimér 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 "Generér kode til høj hukommelse"
+
+#~ msgid "Generate code for low memory"
+#~ msgstr "Generér 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 understøttet i den portable kørselsmodel\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 understøttet ved brug af GAS på denne processor,"
+
+#~ msgid "-g option disabled"
+#~ msgstr "tilvalget -g deaktiveret"
+
+#~ msgid "Generate cpp defines for server IO"
+#~ msgstr "Generér CPP-defineringer til server-IO"
+
+#~ msgid "Generate cpp defines for workstation IO"
+#~ msgstr "Generér CPP-defineringer til arbejdsstation-IO"
+
+#~ msgid "Generate PA1.1 code"
+#~ msgstr "Generér PA1.1-kode"
+
+#~ msgid "Generate PA1.0 code"
+#~ msgstr "Generér PA1.0-kode"
+
+#~ msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+#~ msgstr "Generér PA2.0-kode (kræver binutils 2.10 eller nyere)"
+
+#~ msgid "Disable FP regs"
+#~ msgstr "Deaktivér kommatalsregistre"
+
+#~ msgid "Do not disable FP regs"
+#~ msgstr "Deaktivér ikke kommatalsregistre"
+
+#~ msgid "Disable space regs"
+#~ msgstr "Deaktivér pladsregistre"
+
+#~ msgid "Do not disable space regs"
+#~ msgstr "Deaktivér 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 "Deaktivér indekseret adressering"
+
+#~ msgid "Do not disable indexed addressing"
+#~ msgstr "Deaktivér 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 "Generér hurtige indirekte kald"
+
+#~ msgid "Do not generate fast indirect calls"
+#~ msgstr "Generér ikke hurtige indirekte kald"
+
+#~ msgid "Generate code for huge switch statements"
+#~ msgstr "Generér kode til store switch-sætninger"
+
+#~ msgid "Do not generate code for huge switch statements"
+#~ msgstr "Generér ikke kode til store switch-sætninger"
+
+#~ msgid "Always generate long calls"
+#~ msgstr "Generér altid lange kalde"
+
+#~ msgid "Generate long calls only when needed"
+#~ msgstr "Generér kun lange kalde når det er nødvendigt"
+
+#~ msgid "Enable linker optimizations"
+#~ msgstr "Aktivér sammenkæderoptimeringer"
+
+#~ 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 værdier er 1.0, 1.1 og 2.0. 2.0 kræver GAS-snapshot 19990413 eller senere."
+
+#~ msgid "Assume code will be linked by GNU ld"
+#~ msgstr "Antag at kode vil blive sammenkædet med GNU ld"
+
+#~ msgid "Assume code will be linked by HP ld"
+#~ msgstr "Antag at kode vil blive sammenkædet med HP ld"
+
+#~ msgid "Do not use hardware floating point"
+#~ msgstr "Benyt ikke hardware-kommatal"
+
+#~ msgid "Return floating point results in ac0"
+#~ msgstr "Returnér kommatalsresultater i ac0"
+
+#~ msgid "Return floating point results in memory"
+#~ msgstr "Returnér kommatalsresultater i hukommelse"
+
+#~ msgid "Generate code for an 11/40"
+#~ msgstr "Generér kode til en 11/40"
+
+#~ msgid "Generate code for an 11/45"
+#~ msgstr "Generér kode til en 11/45"
+
+#~ msgid "Generate code for an 11/10"
+#~ msgstr "Generér 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 "Målarkitektur har delt I&D"
+
+#~ msgid "Target does not have split I&D"
+#~ msgstr "Målarkitektur 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-værdi"
+
+#~ msgid "invalid %%b value"
+#~ msgstr "ugyldig %%b-værdi"
+
+#~ msgid "invalid %%z value"
+#~ msgstr "ugyldig %%z-værdi"
+
+#~ msgid "invalid %%Z value"
+#~ msgstr "ugyldig %%Z-værdi"
+
+#~ msgid "invalid %%k value"
+#~ msgstr "ugyldig %%k-værdi"
+
+#~ msgid "invalid %%j value"
+#~ msgstr "ugyldig %%j-værdi"
+
+#~ 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 være 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 understøttet på lilleendede systemer"
+
+#~ msgid "-mstring is not supported on little endian systems"
+#~ msgstr "-mstring er ikke understøttet 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 være en 5 bit-konstant med fortegn"
+
+#~ msgid "argument 2 must be a 5-bit unsigned literal"
+#~ msgstr "2. parameter skal være 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 være 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 være en 4 bit-konstant uden fortegn"
+
+#~ msgid "argument to `%s' must be a 2-bit unsigned literal"
+#~ msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
+
+#~ msgid "argument to dss must be a 2-bit unsigned literal"
+#~ msgstr "parameter til dss skal være 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 være 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-værdi"
+
+#~ msgid "invalid %%F value"
+#~ msgstr "ugyldig %%F-værdi"
+
+#~ msgid "invalid %%G value"
+#~ msgstr "ugyldig %%G-værdi"
+
+#~ msgid "invalid %%j code"
+#~ msgstr "ugyldig %%j-kode"
+
+#~ msgid "invalid %%J code"
+#~ msgstr "ugyldig %%J-kode"
+
+#~ msgid "invalid %%K value"
+#~ msgstr "ugyldig %%K-værdi"
+
+#~ msgid "invalid %%O value"
+#~ msgstr "ugyldig %%O-værdi"
+
+#~ msgid "invalid %%T value"
+#~ msgstr "ugyldig %%T-værdi"
+
+#~ msgid "invalid %%u value"
+#~ msgstr "ugyldig %%u-værdi"
+
+#~ msgid "invalid %%v value"
+#~ msgstr "ugyldig %%v-værdi"
+
+#~ 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 "Understøt meddelelsesoverbringelse med Parallel Environment"
+
+#~ msgid "Compile for 64-bit pointers"
+#~ msgstr "Oversæt for 64 bit-henvisninger"
+
+#~ msgid "Compile for 32-bit pointers"
+#~ msgstr "Oversæt 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 kræver at PowerPC64-arkitekturen forbliver aktiveret"
+
+#~ msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+#~ msgstr "-maix64 påkrævet: 64 bit-beregninger med 32 bit-adressering understøttes endnu ikke"
+
+#~ msgid "Use POWER instruction set"
+#~ msgstr "Benyt POWER-instruktionssættet"
+
+#~ msgid "Use POWER2 instruction set"
+#~ msgstr "Benyt POWER2-instruktionssættet"
+
+#~ msgid "Do not use POWER2 instruction set"
+#~ msgstr "Benyt ikke POWER2-instruktionssættet"
+
+#~ msgid "Do not use POWER instruction set"
+#~ msgstr "Benyt ikke POWER-instruktionssættet"
+
+#~ msgid "Use PowerPC instruction set"
+#~ msgstr "Benyt PowerPC-instruktionssættet"
+
+#~ msgid "Do not use PowerPC instruction set"
+#~ msgstr "Benyt ikke PowerPC-instruktionssættet"
+
+#~ 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-instruktionssættet"
+
+#~ msgid "Don't use PowerPC-64 instruction set"
+#~ msgstr "Benyt ikke PowerPC-64-instruktionssættet"
+
+#~ 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 regulære 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+afsæt-konstanter i indholdsfortegnelsen"
+
+#~ msgid "Don't place symbol+offset constants in TOC"
+#~ msgstr "Anbring ikke symbol+afsæt-konstanter i indholdsfortegnelsen"
+
+#~ msgid "Place variable addresses in the regular TOC"
+#~ msgstr "Anbring variabeladresser i den regulære indholdsfortegnelse"
+
+#~ msgid "Generate load/store multiple instructions"
+#~ msgstr "Generér flere indlæsnings-/lagringsinstruktioner"
+
+#~ msgid "Do not generate load/store multiple instructions"
+#~ msgstr "Generér ikke flere indlæsnings-/lagringsinstruktioner"
+
+#~ msgid "Generate string instructions for block moves"
+#~ msgstr "Generér strengoperationer til blokflytninger"
+
+#~ msgid "Do not generate string instructions for block moves"
+#~ msgstr "Generér ikke strengoperationer til blokflytninger"
+
+#~ msgid "Generate load/store with update instructions"
+#~ msgstr "Generér indlæsning/lagring med opdateringsinstruktioner"
+
+#~ msgid "Do not generate load/store with update instructions"
+#~ msgstr "Generér ikke indlæsning/lagring med opdateringsinstruktioner"
+
+#~ msgid "Don't schedule the start and end of the procedure"
+#~ msgstr "Planlæg ikke begyndelsen og slutningen af proceduren"
+
+#~ msgid "Return all structures in memory (AIX default)"
+#~ msgstr "Returnér alle strukturer i hukommelse (SVR4-standard)"
+
+#~ msgid "Return small structures in registers (SVR4 default)"
+#~ msgstr "Returnér små strukturer i registre (SVR4-standard)"
+
+#~ msgid "Use features of and schedule code for given CPU"
+#~ msgstr "Benyt faciliteter fra og planlæg koden til en given processor"
+
+#~ msgid "Enable debug output"
+#~ msgstr "Aktivér fejlanalyseringsuddata"
+
+#~ msgid "Select full, part, or no traceback table"
+#~ msgstr "Vælg 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 størrelsen 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 områdegrænser ved kaldeinstruktioner"
+
+#~ msgid "RETURN_ADDRESS_OFFSET not supported"
+#~ msgstr "RETURN_ADDRESS_OFFSET er ikke understøttet"
+
+#~ msgid "Select ABI calling convention"
+#~ msgstr "Angiv ABI-kaldekonvention"
+
+#~ msgid "Select method for sdata handling"
+#~ msgstr "Angiv metode for sdata-håndtering"
+
+#~ msgid "Align to the base type of the bit-field"
+#~ msgstr "Justér til grundtypen for bitfeltet"
+
+#~ msgid "Don't align to the base type of the bit-field"
+#~ msgstr "Justér ikke til grundtypen for bitfeltet"
+
+#~ msgid "Don't assume that unaligned accesses are handled by the system"
+#~ msgstr "Antag ikke at ujusterede tilgange håndteres af systemet"
+
+#~ msgid "Assume that unaligned accesses are handled by the system"
+#~ msgstr "Antag at ujusterede tilgange håndteres af systemet"
+
+#~ msgid "Produce code relocatable at runtime"
+#~ msgstr "Generér kode som kan flyttes på kørselstidspunktet"
+
+#~ msgid "Don't produce code relocatable at runtime"
+#~ msgstr "Generér ikke kode som kan flyttes på kørselstidspunktet"
+
+#~ msgid "Produce little endian code"
+#~ msgstr "Generér lilleendet kode"
+
+#~ msgid "Produce big endian code"
+#~ msgstr "Generér 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 ordgrænser"
+
+#~ 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 "Sammenkæd med libsim.a, libc.a og sim-crt0.o"
+
+#~ msgid "Link with libads.a, libc.a and crt0.o"
+#~ msgstr "Sammenkæd med libads.a, libc.a og crt0.o"
+
+#~ msgid "Link with libyk.a, libc.a and crt0.o"
+#~ msgstr "Sammenkæd med libyk.a, libc.a og crt0.o"
+
+#~ msgid "Link with libmvme.a, libc.a and crt0.o"
+#~ msgstr "Sammenkæd med libmvme.a, libc.a og crt0.o"
+
+#~ msgid "Set the PPC_EMB bit in the ELF flags header"
+#~ msgstr "Sæt PPC_EMB-bitten i ELF-tilvalgshovedet"
+
+#~ msgid "Use the WindISS simulator"
+#~ msgstr "Benyt WindISS-simulatoren"
+
+#~ msgid "bad value for -mcall-%s"
+#~ msgstr "ugyldig værdi til -mcall-%s"
+
+#~ msgid "bad value for -msdata=%s"
+#~ msgstr "ugyldig værdi 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 være 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 størrelse af lokale variable overstiger arkitekturgrænsen."
+
+# RETMIG: hvad er backchain?
+#~ msgid "Set backchain"
+#~ msgstr "Sæt backchain"
+
+#~ msgid "Don't set backchain (faster, but debug harder"
+#~ msgstr "Sæt ikke backchain (hurtigere, men sværere at fejlanalysere)"
+
+#~ msgid "Use bras for executable < 64k"
+#~ msgstr "Benyt bras til kørbar 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 understøttes ikke af denne undermålarkitektur"
+
+#~ 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 understøttet på målarkitekturen."
+
+#~ msgid "%s is not supported by this configuration"
+#~ msgstr "%s understøttes 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= understøttes 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 "Generér kode til storendet"
+
+#~ msgid "Generate code for little endian"
+#~ msgstr "Generér 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 være 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 sammenkæderen"
+
+#~ msgid "Do not pass -assert pure-text to linker"
+#~ msgstr "Overbring ikke -assert pure-text til sammenkæderen"
+
+#~ 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 "Oversæt for v8plus-ABI"
+
+#~ msgid "Do not compile for v8plus ABI"
+#~ msgstr "Oversæt 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 "Optimér for Cypress-processorer"
+
+#~ msgid "Optimize for SPARCLite processors"
+#~ msgstr "Optimér for SPARCLite-processorer"
+
+#~ msgid "Optimize for F930 processors"
+#~ msgstr "Optimér for F930-processorer"
+
+#~ msgid "Optimize for F934 processors"
+#~ msgstr "Optimér for F934-processorer"
+
+#~ msgid "Use V8 SPARC ISA"
+#~ msgstr "Benyt V8 SPARC ISA"
+
+#~ msgid "Optimize for SuperSPARC processors"
+#~ msgstr "Optimér 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 stakafsæt"
+
+#~ msgid "Do not use stack bias"
+#~ msgstr "Benyt ikke stakafsæt"
+
+#~ msgid "Use structs on stronger alignment for double-word copies"
+#~ msgstr "Benyt strukturer på stærkere justering til dobbelt-ord kopier"
+
+#~ msgid "Do not use structs on stronger alignment for double-word copies"
+#~ msgstr "Benyt ikke strukturer på stærkere justering til dobbelt-ord kopier"
+
+#~ msgid "Optimize tail call instructions in assembler and linker"
+#~ msgstr "Optimér halekaldsinstruktioner i maskinkodeoversætteren og sammenkæderen"
+
+#~ msgid "Do not optimize tail call instructions in assembler or linker"
+#~ msgstr "Optimér ikke halekaldsinstruktioner i maskinkodeoversætteren og sammenkæderen"
+
+#~ 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-sætning med %lu elementer er for stor"
+
+#~ msgid "#pragma GHS endXXXX found without previous startXXX"
+#~ msgstr "'#pragma GHS endXXXX' fundet uden forudgående 'startXXX'"
+
+#~ msgid "#pragma GHS endXXX does not match previous startXXX"
+#~ msgstr "'#pragma GHS endXXXX' passer ikke med forudgående 'startXXX'"
+
+#~ msgid "cannot set interrupt attribute: no current function"
+#~ msgstr "kan ikke sætte afbrydelsesegenskaben: ingen aktuel funktion"
+
+#~ msgid "cannot set interrupt attribute: no such identifier"
+#~ msgstr "kan ikke sætte afbrydelsesegenskaben: intet sådant 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 dataområdeegenskab kan ikke angives for lokale variable"
+
+#~ msgid "data area of '%s' conflicts with previous declaration"
+#~ msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
+
+#~ msgid "bogus JR construction: %d\n"
+#~ msgstr "falsk JR-konstruktion: %d\n"
+
+#~ msgid "bad amount of stack space removal: %d"
+#~ msgstr "ugyldig størrelse 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 "Understøt 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 "Aktivér bagendefejlanalyseringsinfo"
+
+#~ msgid "Compile for the v850 processor"
+#~ msgstr "Oversæt for v850-processoren"
+
+#~ msgid "Compile for v850e processor"
+#~ msgstr "Oversæt for v850e-processoren"
+
+#~ msgid "Enable the use of the short load instructions"
+#~ msgstr "Aktivér 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. størrelse af data til TDA-området"
+
+#~ msgid "Set the max size of data eligible for the SDA area"
+#~ msgstr "Angiv den maks. størrelse af data til SDA-området"
+
+#~ msgid "Set the max size of data eligible for the ZDA area"
+#~ msgstr "Angiv den maks. størrelse af data til ZDA-området"
+
+#~ msgid "bad test"
+#~ msgstr "ugyldig test"
+
+#~ msgid "boolean registers required for the floating-point option"
+#~ msgstr "booleske registre er påkrævet 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 "adresseafsæt er ikke en konstant"
+
+#~ msgid "only uninitialized variables can be placed in a .bss section"
+#~ msgstr "kun variabler uden startværdi kan placeres i .bss-sektionen"
+
+#~ msgid "Use the Xtensa code density option"
+#~ msgstr "Benyt Xtensa-kodetæthedsindstillingen"
+
+#~ msgid "Do not use the Xtensa code density option"
+#~ msgstr "Benyt ikke Xtensa-kodetæthedsindstillingen"
+
+#~ 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 "Deaktivér sammensatte gang/addér- og gang/subtrahér-kommatalsinstruktioner"
+
+#~ msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+#~ msgstr "Aktivér sammensatte gang/addér- og gang/subtrahér-kommatalsinstruktioner"
+
+#~ msgid "Serialize volatile memory references with MEMW instructions"
+#~ msgstr "Serialisér volatile hukommelsesreference med MEMW-instruktioner"
+
+#~ msgid "Do not serialize volatile memory references with MEMW instructions"
+#~ msgstr "Serialisér 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 "Justér automatisk forgreningsmål for at reducere forgreningsstraffe"
+
+#~ msgid "Do not automatically align branch targets"
+#~ msgstr "Justér ikke automatisk forgreningsmål"
+
+#~ 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 "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'"
+
+#~ msgid "request for member `%D' is ambiguous"
+#~ msgstr "forespørgsel 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 "ufuldstændig 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 erklæres før brug"
+
+#~ msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+#~ msgstr "ingen '%D(int)' erklæret for suffiks '%s', prøver præfiksoperatoren 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 tilgængelig"
+
+#~ 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 klargøring af parameteren %P til '%D'"
+
+#~ msgid " initializing argument %P of `%D' from result of `%D'"
+#~ msgstr " ved klargøring af parameteren %P til '%D' fra resultatet af '%D'"
+
+#~ msgid " initializing temporary from result of `%D'"
+#~ msgstr " ved klargøring 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å kørselstidspunktet"
+
+#~ 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-grænsefladetypen '%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' vælger '%T' frem for '%T'"
+
+#~ msgid " in call to `%D'"
+#~ msgstr " i kald af '%D'"
+
+#~ msgid "choosing `%D' over `%D'"
+#~ msgstr "vælger '%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 "ifølge ISO C++ er '%D' og '%D' tvetydigt selvom den værste konvertering for førstnævnte er bedre end den værste konvertering for den sidstnævnte"
+
+#~ 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 flertydiggøres"
+
+#~ msgid "duplicate enum value `%D'"
+#~ msgstr "enum-værdien '%D' optræder mere end én gang"
+
+#~ msgid "duplicate field `%D' (as enum and non-enum)"
+#~ msgstr "feltet '%D' optræder mere end én gang (som enum og som ikke-enum)"
+
+#~ msgid "duplicate nested type `%D'"
+#~ msgstr "den indlejrede type '%D' optræder mere end én gang"
+
+#~ msgid "duplicate field `%D' (as type and non-type)"
+#~ msgstr "feltet '%D' optræder mere end én gang (som type og som ikke-type)"
+
+#~ msgid "duplicate member `%D'"
+#~ msgstr "medlemmet '%D' optræder 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' følger ikke nødvendigvis ABI'et og kan ændre sig i en fremtidig version af GCC pga. underforstået 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 værdierne 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 startværdi"
+
+#~ msgid "field `%D' in local class cannot be static"
+#~ msgstr "feltet '%D' i lokal klasse kan ikke være statisk"
+
+#~ msgid "field `%D' invalidly declared function type"
+#~ msgstr "feltet '%D' er på ugyldig vis erklæret som en funktionstype"
+
+#~ msgid "field `%D' invalidly declared method type"
+#~ msgstr "feltet '%D' er på ugyldig vis erklæret som en medlemsfunktionstype"
+
+#~ msgid "field `%D' invalidly declared offset type"
+#~ msgstr "feltet '%D' er på ugyldig vis erklæret som en afstandstype"
+
+#~ msgid "field `%D' declared static in union"
+#~ msgstr "feltet '%D' er erklæret 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 "afsættet for tom stamklasse '%T' følger ikke nødvendigvis 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 næsten tom i en fremtidig version af GCC"
+
+#~ msgid "initializer specified for non-virtual method `%D'"
+#~ msgstr "startværdi 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 "afsættet for virtuel stamklasse '%T' følger 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 tilgængelig i '%T' på grund af tvetydighed"
+
+#~ msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#~ msgstr "virtuel stamklasse '%T' er ikke tilgængelig 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 "størrelsen der bliver tildelt '%T' følger ikke nødvendigvis 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 "afsættet for '%D' følger 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 "forsøgte 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 tilstrækkelig 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 "omerklæring 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 ufuldstændig 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' følger 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 være 'true'"
+
+#~ msgid "`%#T' used where a floating point value was expected"
+#~ msgstr "'%#T' benyttet hvor der forventedes en kommatalsværdi"
+
+#~ 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 ufuldstændige type '%T' vil ikke blive tilgået i %s"
+
+#~ msgid "object of type `%T' will not be accessed in %s"
+#~ msgstr "objekt af typen '%T' vil ikke blive tilgået i %s"
+
+#~ msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+#~ msgstr "objektet '%E' af den ufuldstændige type '%T' vil ikke blive tilgået 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 erklæring '%#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 erklæret"
+
+#~ 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 omerklæret som '%#D' der ikke er en funktion"
+
+#~ msgid "conflicts with built-in declaration `%#D'"
+#~ msgstr "strider mod indbygget erklæring '%#D'"
+
+# følges af næste tekst
+#~ msgid "new declaration `%#D'"
+#~ msgstr "ny erklæring af '%#D'"
+
+#~ msgid "ambiguates built-in declaration `%#D'"
+#~ msgstr "tvetydiggør indbygget erklæring '%#D'"
+
+#~ msgid "`%#D' redeclared as different kind of symbol"
+#~ msgstr "'%#D' omerklæret som en anden form for symbol"
+
+#~ msgid "previous declaration of `%#D'"
+#~ msgstr "tidligere erklæring af '%#D'"
+
+#~ msgid "declaration of template `%#D'"
+#~ msgstr "erklæring af skabelon '%#D'"
+
+#~ msgid "ambiguates old declaration `%#D'"
+#~ msgstr "tvetydiggør tidligere erklæring '%#D'"
+
+#~ msgid "declaration of C function `%#D' conflicts with"
+#~ msgstr "erklæring af C-funktionen '%#D' strider mod"
+
+#~ msgid "previous declaration `%#D' here"
+#~ msgstr "tidligere erklæring af '%#D' her"
+
+#~ msgid "conflicting types for `%#D'"
+#~ msgstr "modstridende typer for '%#D'"
+
+#~ msgid "previous declaration as `%#D'"
+#~ msgstr "tidligere erklæring som '%#D'"
+
+#~ msgid "`%#D' previously defined here"
+#~ msgstr "'%#D' tidligere defineret her"
+
+#~ msgid "`%#D' previously declared here"
+#~ msgstr "'%#D' tidligere erklæret her"
+
+#~ msgid "prototype for `%#D'"
+#~ msgstr "prototypen for '%#D'"
+
+#~ msgid "follows non-prototype definition here"
+#~ msgstr "følger definition uden prototype her"
+
+#~ msgid "previous declaration of `%#D' with %L linkage"
+#~ msgstr "tidligere erklæring af '%#D' med %L-kædning"
+
+#~ msgid "conflicts with new declaration with %L linkage"
+#~ msgstr "strider mod ny erklæring af med %L-kædning"
+
+#~ 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 før erklæring som inline"
+
+#~ msgid "previous non-inline declaration here"
+#~ msgstr "tidligere ikke-inline erklæring her"
+
+#~ msgid "redundant redeclaration of `%D' in same scope"
+#~ msgstr "overflødig omerklæring af '%D' i samme virkefelt"
+
+#~ msgid "declaration of `%F' throws different exceptions"
+#~ msgstr "erklæring af '%F' kaster forskellige undtagelser"
+
+#~ msgid "than previous declaration `%F'"
+#~ msgstr "end tidligere erklæring '%F'"
+
+#~ msgid "explicit specialization of %D after first use"
+#~ msgstr "eksplicit specialisering af %D efter første brug"
+
+#~ msgid "`%#D' used prior to declaration"
+#~ msgstr "'%#D' benyttet før erklæring"
+
+#~ msgid "redeclaration of `wchar_t' as `%T'"
+#~ msgstr "omerklæring af 'wchar_t' som '%T'"
+
+#~ msgid "invalid redeclaration of `%D'"
+#~ msgstr "ugyldig omerklæring af '%D'"
+
+#~ msgid "as `%D'"
+#~ msgstr "som '%D'"
+
+#~ msgid "previous external decl of `%#D'"
+#~ msgstr "tidligere ekstern erklæring af '%#D'"
+
+#~ msgid "`%D' was previously implicitly declared to return `int'"
+#~ msgstr "'%D' blev tidligere underforstået erklæret til at returnere 'int'"
+
+#~ msgid "extern declaration of `%#D' doesn't match"
+#~ msgstr "extern-erklæring af '%#D' passer ikke med"
+
+#~ msgid "global declaration `%#D'"
+#~ msgstr "global erklæring '%#D'"
+
+#~ msgid "declaration of `%#D' shadows a parameter"
+#~ msgstr "erklæring af '%#D' skygger for en parameter"
+
+#~ msgid "declaration of `%s' shadows a member of `this'"
+#~ msgstr "erklæring 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-erklæring '%#D'"
+
+#~ msgid "previous non-function declaration `%#D'"
+#~ msgstr "tidligere ikke-funktionserklæring '%#D'"
+
+#~ msgid "conflicts with function declaration `%#D'"
+#~ msgstr "strider mod funktionserklæring '%#D'"
+
+#~ msgid "implicit declaration of function `%#D'"
+#~ msgstr "underforstået erklæring 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 klargøring af '%#D'"
+
+#~ msgid " enters scope of non-POD `%#D'"
+#~ msgstr " går ind i virkefelt af ikke-POD '%#D'"
+
+#~ msgid " enters try block"
+#~ msgstr " går ind i try-blok"
+
+#~ msgid " enters catch block"
+#~ msgstr " går ind i catch-blok"
+
+#~ msgid " from here"
+#~ msgstr " herfra"
+
+#~ msgid " skips initialization of `%#D'"
+#~ msgstr " springer over klargøring af '%#D'"
+
+#~ msgid "label named wchar_t"
+#~ msgstr "etiket med navnet wchar_t"
+
+#~ msgid "duplicate label `%D'"
+#~ msgstr "etiketten '%D' optræder mere end én gang"
+
+#~ msgid "case label `%E' not within a switch statement"
+#~ msgstr "case-etiket '%E' befinder sig ikke inden i en switch-sætning"
+
+#~ msgid "`%#D' redeclared as %C"
+#~ msgstr "'%#D' omerklæret 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 erklæret 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 afhængig 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 forældet binding til '%D' fordi den har en destruktionsfunktion"
+
+#~ msgid " using obsolete binding at `%D'"
+#~ msgstr " bruger forældet 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 "omerklæring af indbygget type i C++ '%T'"
+
+#~ msgid "multiple types in one declaration"
+#~ msgstr "flere typer i én erklæring"
+
+#~ msgid "missing type-name in typedef-declaration"
+#~ msgstr "manglende typenavn i typedef-erklæring"
+
+#~ 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 dækker over værditildeling her - samme for de næste mange
+#~ msgid "typedef `%D' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef '%D' bliver tildelt en værdi (benyt __typeof__ i stedet)"
+
+#~ msgid "function `%#D' is initialized like a variable"
+#~ msgstr "funktionen '%#D' bliver tildelt en startværdi som en variabel"
+
+#~ msgid "declaration of `%#D' has `extern' and is initialized"
+#~ msgstr "erklæringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startværdi"
+
+#~ 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 startværdi mere end én gang"
+
+#~ msgid "declaration of `%#D' outside of class is not definition"
+#~ msgstr "erklæring af '%#D' uden for en klasse er ikke en definition"
+
+#~ msgid "variable `%#D' has initializer but incomplete type"
+#~ msgstr "variablen '%#D' bliver tildelt en startværdi, men er af en ufuldstændig type"
+
+#~ msgid "elements of array `%#D' have incomplete type"
+#~ msgstr "elementer i tabellen '%#D' er af en ufuldstændig type"
+
+#~ msgid "aggregate `%#D' has incomplete type and cannot be defined"
+#~ msgstr "den sammensatte type '%#D' er af en ufuldstændig type og kan ikke defineres"
+
+#~ msgid "`%D' declared as reference but not initialized"
+#~ msgstr "'%D' erklæret som en reference, men bliver ikke tildelt en startværdi"
+
+#~ msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+#~ msgstr "ISO C++ forbyder brug af en startværdiliste til at klargøre referencen '%D'"
+
+#~ msgid "cannot initialize `%T' from `%T'"
+#~ msgstr "kan ikke klargøre '%T' fra %T'"
+
+#~ msgid "initializer fails to determine size of `%D'"
+#~ msgstr "startværdien giver ikke størrelsen af '%D'"
+
+#~ msgid "array size missing in `%D'"
+#~ msgstr "tabelstørrelsen mangler i '%D'"
+
+#~ msgid "zero-size array `%D'"
+#~ msgstr "nulstørrelsestabel '%D'"
+
+#~ msgid "storage size of `%D' isn't known"
+#~ msgstr "lagringsstørrelsen af '%D' er ikke kendt"
+
+#~ msgid "storage size of `%D' isn't constant"
+#~ msgstr "lagringsstørrelsen 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 startværdien"
+
+#~ msgid "uninitialized const `%D'"
+#~ msgstr "konstant '%D' uden startværdi"
+
+#~ msgid "brace-enclosed initializer used to initialize `%T'"
+#~ msgstr "startværdi i krøllede paranteser benyttet til at klargøre '%T'"
+
+#~ msgid "initializer for `%T' must be brace-enclosed"
+#~ msgstr "startværdi for '%T' skal være indesluttet i krøllede paranteser"
+
+#~ msgid "ISO C++ does not allow designated initializers"
+#~ msgstr "ISO C++ tillader ikke udpegede startværdier"
+
+#~ 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 startværdier for '%T'"
+
+#~ msgid "variable-sized object `%D' may not be initialized"
+#~ msgstr "objektet '%D' af variabel størrelse må ikke tildeles en startværdi"
+
+#~ msgid "`%D' has incomplete type"
+#~ msgstr "'%D' er af en ufuldstændig type"
+
+#~ msgid "`%D' must be initialized by constructor, not by `{...}'"
+#~ msgstr "'%D' skal klargøres af en konstruktionsfunktion, ikke af '{...}'"
+
+#~ msgid "structure `%D' with uninitialized const members"
+#~ msgstr "struktur '%D' med konstante medlemmer uden startværdi"
+
+#~ msgid "structure `%D' with uninitialized reference members"
+#~ msgstr "struktur '%D' med referencemedlemmer uden startværdi"
+
+#~ msgid "assignment (not initialization) in declaration"
+#~ msgstr "tildeling (ikke klargøring) i erklæring"
+
+#~ msgid "cannot initialize `%D' to namespace `%D'"
+#~ msgstr "kan ikke tildele startværdi til '%D' med navnerummet '%D'"
+
+#~ msgid "shadowing previous type declaration of `%#D'"
+#~ msgstr "skygger for tidligere typeerklæring af '%#D'"
+
+#~ msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+#~ msgstr "'%D' kan ikke være trådlokal eftersom den er af en ikke-POD type '%T'"
+
+#~ msgid "`%D' is thread-local and so cannot be dynamically initialized"
+#~ msgstr "'%D' er trådlokal og kan derfor ikke blive tildelt en startværdi dynamisk"
+
+#~ msgid "multiple initializations given for `%D'"
+#~ msgstr "flere startværdier 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 være et medlem"
+
+#~ msgid "constructor for alien class `%T' cannot be a member"
+#~ msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
+
+#~ msgid "`%D' declared as a `virtual' %s"
+#~ msgstr "'%D' erklæret som 'virtual' %s"
+
+#~ msgid "`%D' declared as an `inline' %s"
+#~ msgstr "'%D' erklæret 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 erklæring af %s"
+
+#~ msgid "`%D' declared as a friend"
+#~ msgstr "'%D' er erklæret som en ven"
+
+#~ msgid "`%D' declared with an exception specification"
+#~ msgstr "'%D' erklæret med en undtagelsesspecifikation"
+
+#~ msgid "cannot declare `::main' to be a template"
+#~ msgstr "kan ikke erklære '::main' som en skabelon"
+
+#~ msgid "cannot declare `::main' to be inline"
+#~ msgstr "kan ikke erklære '::main' som indlejret"
+
+#~ msgid "cannot declare `::main' to be static"
+#~ msgstr "kan ikke erklære '::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 sammenkædning"
+
+#~ 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-erklæring"
+
+#~ msgid "invalid use of template-id `%D' in declaration of primary template"
+#~ msgstr "ugyldig brug af skabelons-id '%D' i erklæring af primær skabelon"
+
+#~ msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
+
+#~ msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "'inline' er ikke tilladt i erklæring venneskabelonsspecialisering '%D'"
+
+#~ msgid "definition of implicitly-declared `%D'"
+#~ msgstr "definition af underforstået-erklæret '%D'"
+
+#~ msgid "no `%#D' member function declared in class `%T'"
+#~ msgstr "ingen medlemsfunktion '%#D' erklæret 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 startværdi 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 startværdi 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 startværdi til medlemskonstant '%D' af en ikke-heltallig type"
+
+#~ msgid "size of array `%D' has non-integer type"
+#~ msgstr "størrelsen af tabellen '%D' er ikke af en heltalstype"
+
+#~ msgid "size of array has non-integer type"
+#~ msgstr "størrelsen af tabel er ikke af en heltalstype"
+
+#~ msgid "size of array `%D' is negative"
+#~ msgstr "størrelsen af tabellen '%D' er negativ"
+
+#~ msgid "size of array is negative"
+#~ msgstr "størrelsen af tabel er negativ"
+
+#~ msgid "ISO C++ forbids zero-size array `%D'"
+#~ msgstr "ISO C++ forbyder tabellen '%D' med størrelsen nul"
+
+#~ msgid "ISO C++ forbids zero-size array"
+#~ msgstr "ISO C++ forbyder tabel med størrelsen nul"
+
+#~ msgid "size of array `%D' is not an integral constant-expression"
+#~ msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
+
+#~ msgid "size of array is not an integral constant-expression"
+#~ msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
+
+#~ msgid "ISO C++ forbids variable-size array `%D'"
+#~ msgstr "ISO C++ forbyder tabellen '%D' med variabel størrelse"
+
+#~ msgid "ISO C++ forbids variable-size array"
+#~ msgstr "ISO C++ forbyder tabel med variabel størrelse"
+
+#~ msgid "overflow in array dimension"
+#~ msgstr "tabeldimension for stor"
+
+#~ msgid "declaration of `%D' as %s"
+#~ msgstr "erklæring 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 "erklæring af '%D' som flerdimensional tabel skal have grænser for alle dimensioner pånær den første"
+
+#~ msgid "multidimensional array must have bounds for all dimensions except the first"
+#~ msgstr "flerdimensional tabel skal have grænser for alle dimensioner pånær den første"
+
+#~ 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' erklæret 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 være 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 "variabelerklæring er ikke tilladt her"
+
+#~ msgid "invalid declarator"
+#~ msgstr "ugyldig erklærer"
+
+#~ msgid "declarator-id missing; using reserved word `%D'"
+#~ msgstr "erklærer-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 erklærer-id"
+
+#~ msgid " perhaps you want `%T' for a constructor"
+#~ msgstr " måske ønsker du '%T' for en konstruktionsfunktion"
+
+#~ msgid "invalid use of template-name '%E' in a declarator"
+#~ msgstr "ugyldig brug af skabelonsnavn '%E' i erklæring"
+
+#~ msgid "declaration of `%D' as non-function"
+#~ msgstr "erklæring af '%D' som ikke-funktion"
+
+#~ msgid "`bool' is now a keyword"
+#~ msgstr "'bool' er et reserveret ord"
+
+#~ msgid "extraneous `%T' ignored"
+#~ msgstr "overflødig '%T' ignoreret"
+
+#~ msgid "multiple declarations `%T' and `%T'"
+#~ msgstr "flere erklæringer '%T' og '%T'"
+
+#~ msgid "ISO C++ does not support `long long'"
+#~ msgstr "ISO C++ understøtter ikke 'long long'"
+
+#~ msgid "ISO C++ forbids declaration of `%s' with no type"
+#~ msgstr "ISO C++ forbyder erklæring af '%s' uden en type"
+
+#~ msgid "`%T' is implicitly a typename"
+#~ msgstr "'%T' er underforstået 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 erklæring af 'operator %T'"
+
+#~ msgid "member `%D' cannot be declared both virtual and static"
+#~ msgstr "medlemmet '%D' kan ikke afklæres både virtual og static"
+
+#~ msgid "storage class specifiers invalid in parameter declarations"
+#~ msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer"
+
+#~ msgid "typedef declaration invalid in parameter declaration"
+#~ msgstr "typedef-erklæringer er ugyldig i parametererklæringer"
+
+#~ msgid "virtual outside class declaration"
+#~ msgstr "virtual angivet uden for klasseerklæring"
+
+#~ 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 vennefunktionserklæringer"
+
+#~ msgid "destructor cannot be static member function"
+#~ msgstr "destruktionsfunktionen kan ikke være en statisk medlemsfunktion"
+
+#~ msgid "destructors may not be `%s'"
+#~ msgstr "destruktionsfunktioner må ikke være '%s'"
+
+#~ msgid "constructor cannot be static member function"
+#~ msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
+
+#~ msgid "constructors cannot be declared virtual"
+#~ msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
+
+#~ msgid "constructors may not be `%s'"
+#~ msgstr "konstruktionsfunktioner må ikke være '%s'"
+
+#~ msgid "return value type specifier for constructor ignored"
+#~ msgstr "angivelse af typen af returværdien til konstruktionsfunktionen ignoreret"
+
+#~ msgid "can't initialize friend function `%s'"
+#~ msgstr "kan ikke tildele en startværdi til vennefunktionen '%s'"
+
+#~ msgid "virtual functions cannot be friends"
+#~ msgstr "en virtuel funktion kan ikke erklæres som friend"
+
+#~ msgid "friend declaration not in class definition"
+#~ msgstr "friend-erklæringen 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 erklære reference til '%#T'"
+
+#~ msgid "cannot declare pointer to `%#T'"
+#~ msgstr "kan ikke erklære henvisning til '%#T'"
+
+#~ msgid "cannot declare pointer to `%#T' member"
+#~ msgstr "kan ikke erklære 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 erklære medlemsfunktion '%T::%s' inde i '%T'"
+
+#~ msgid "cannot declare member `%T::%s' within `%T'"
+#~ msgstr "kan ikke erklære 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 erklæringer af konstruktionsfunktioner kan være 'explicit'"
+
+#~ msgid "non-member `%s' cannot be declared `mutable'"
+#~ msgstr "'%s' som ikke er medlem, kan ikke erklæres 'mutable'"
+
+#~ msgid "non-object member `%s' cannot be declared `mutable'"
+#~ msgstr "'%s' som ikke er objektmedlem, kan ikke erklæres 'mutable'"
+
+#~ msgid "function `%s' cannot be declared `mutable'"
+#~ msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
+
+#~ msgid "static `%s' cannot be declared `mutable'"
+#~ msgstr "static '%s' kan ikke erklæres 'mutable'"
+
+#~ msgid "const `%s' cannot be declared `mutable'"
+#~ msgstr "const '%s' kan ikke erklæres 'mutable'"
+
+#~ msgid "template-id `%D' used as a declarator"
+#~ msgstr "skabelons-id '%D' benyttet som erklærer"
+
+#~ 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-erklæring"
+
+#~ msgid "`inline' specified for friend class declaration"
+#~ msgstr "'inline' angivet for friend class-erklæring"
+
+#~ msgid "template parameters cannot be friends"
+#~ msgstr "skabelonsparametre kan ikke være venner"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+#~ msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend class %T::%D'"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend %#T'"
+#~ msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend %#T'"
+
+#~ msgid "trying to make class `%T' a friend of global scope"
+#~ msgstr "forsøg på at gøre 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 erklærer '%T' benyttet som erklæring"
+
+#~ msgid "unnamed variable or field declared void"
+#~ msgstr "unavngiven variabel eller felt erklæret void"
+
+#~ msgid "variable or field declared void"
+#~ msgstr "variabel eller felt erklæret void"
+
+#~ msgid "cannot use `::' in parameter declaration"
+#~ msgstr "kan ikke bruge '::' i parametererklæring"
+
+#~ msgid "invalid use of `::'"
+#~ msgstr "ugyldig brug af '::'"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "funktionen '%D' kan ikke erklæres friend"
+
+#~ msgid "can't make `%D' into a method -- not in a class"
+#~ msgstr "kan ikke gøre '%D' til en metode - er ikke i en klasse"
+
+#~ msgid "function `%D' declared virtual inside a union"
+#~ msgstr "funktionen '%D' erklæret virtual inden i en union"
+
+#~ msgid "`%D' cannot be declared virtual, since it is always static"
+#~ msgstr "'%D' kan ikke erklæres virtual eftersom den altid er statisk"
+
+#~ msgid "field `%D' has incomplete type"
+#~ msgstr "feltet '%D' er af en ufuldstændig type"
+
+#~ msgid "name `%T' has incomplete type"
+#~ msgstr "navnet '%T' er af en ufuldstændig 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 erklæres som friend"
+
+#~ msgid "member functions are implicitly friends of their class"
+#~ msgstr "medlemsfunktioner er underforstået venner af deres klasse"
+
+#~ msgid "ISO C++ forbids initialization of member `%D'"
+#~ msgstr "ISO C++ forbyder tildeling af startværdi til medlemmet '%D'"
+
+#~ msgid "making `%D' static"
+#~ msgstr "gør '%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' erklæret 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' erklæret uden for det globale virkefelt"
+
+#~ msgid "virtual non-class function `%s'"
+#~ msgstr "virtuel funktion '%s' tilhører ikke en klasse"
+
+#~ msgid "cannot declare member function `%D' to have static linkage"
+#~ msgstr "kan ikke erklære medlemsfunktion '%D' til at have statisk kædning"
+
+#~ msgid "cannot declare static function inside another function"
+#~ msgstr "kan ikke erklære 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 modsætning til erklæring) af et statisk datamedlem"
+
+#~ msgid "static member `%D' declared `register'"
+#~ msgstr "statisk medlem '%D' erklæret 'register'"
+
+#~ msgid "cannot explicitly declare member `%#D' to have extern linkage"
+#~ msgstr "kan ikke eksplicit erklære medlemmet '%#D' til at have extern-kædning"
+
+#~ 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, måske mangler parameternavnet?"
+
+#~ msgid "parameter `%D' invalidly declared method type"
+#~ msgstr "parameteren '%D' er på ugyldig vis erklæret som af en medlemsfunktionstype"
+
+#~ msgid "parameter `%D' invalidly declared offset type"
+#~ msgstr "parameteren '%D' er på ugyldig vis erklæret 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 grænse '%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 være en ikke-statisk medlemsfunktion"
+
+#~ msgid "`%D' must be either a non-static member function or a non-member function"
+#~ msgstr "'%D' skal enten være 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 flertydiggørelse 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 "præfiks '%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. værdi (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' erklærer 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 afhængige 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 erklæring"
+
+#~ 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 ufuldstændig type"
+
+#~ msgid "recursive type `%T' undefined"
+#~ msgstr "rekursiv type '%T' ikke defineret"
+
+#~ msgid "duplicate base type `%T' invalid"
+#~ msgstr "stamklassetype '%T' optræder 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-værdi for '%D' er ikke en heltalskonstant"
+
+#~ msgid "overflow in enumeration values at `%D'"
+#~ msgstr "enum-værdier for store ved '%D'"
+
+#~ msgid "return type `%#T' is incomplete"
+#~ msgstr "returtype '%#T' er ufuldstændig"
+
+#~ msgid "semicolon missing after declaration of `%#T'"
+#~ msgstr "semikolon mangler efter erklæring 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 underforstået erklæret efter dens definition"
+
+#~ msgid "`operator=' should return a reference to `*this'"
+#~ msgstr "'operator=' bør returnere en reference til '*this'"
+
+#~ msgid "parameter `%D' declared void"
+#~ msgstr "parameteren '%D' erklæret 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' erklæret med typemodifikationer"
+
+#~ msgid "duplicate type qualifiers in %s declaration"
+#~ msgstr "dobbelte typemodifikationer i %s-erklæring"
+
+#~ 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 være 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 "forældet brug af tabelstørrelse i tabelformen af delete"
+
+#~ msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+#~ msgstr "kan ikke udføre 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 erklæring af medlemsskabelon '%#D' i lokal klasse"
+
+#~ msgid "invalid use of `virtual' in template declaration of `%#D'"
+#~ msgstr "ugyldig brug af 'virtual' i skabelonserklæring af '%#D'"
+
+#~ msgid "template declaration of `%#D'"
+#~ msgstr "skabelonserklæring 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 startværdi er ugyldig for statisk medlem med konstruktionsfunktion"
+
+#~ msgid "(an out of class initialization is required)"
+#~ msgstr "(en klargøring uden for klassens erklæring er nødvendig)"
+
+#~ msgid "invalid data member initialization"
+#~ msgstr "ugyldig tildeling af startværdi til datamedlem"
+
+#~ msgid "(use `=' to initialize static data members)"
+#~ msgstr "(brug '=' for at klargøre 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 startværdi 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 erklære '%D' til at være en bitfeltstype"
+
+#~ msgid "cannot declare bit-field `%D' with function type"
+#~ msgstr "kan ikke erklære 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 være et bitfelt"
+
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "startværdi angivet for ikke-medlemsfunktion '%D'"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "ugyldig startværdi 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 erklæres 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 første parameter til 'operator new' skal være 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 første parameter til 'operator delete' skal være af typen '%T'"
+
+#~ msgid "too many initialization functions required"
+#~ msgstr "for mange klargøringsfunktioner påkrævet"
+
+#~ 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 " først erklæret som '%#D' her"
+
+#~ msgid " also declared as `%#D' here"
+#~ msgstr " også erklæret som '%#D' her"
+
+#~ msgid "`%D' denotes an ambiguous type"
+#~ msgstr "'%D' angiver en tvetydig type"
+
+#~ msgid " first type here"
+#~ msgstr " første type her"
+
+#~ msgid " other type here"
+#~ msgstr " anden type her"
+
+#~ msgid "declaration of `%D' not in a namespace surrounding `%D'"
+#~ msgstr "erklæring af '%D' er ikke i et navnerum der omgiver '%D'"
+
+#~ msgid "`%D' should have been declared inside `%D'"
+#~ msgstr "'%D' skulle have været erklæret 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-erklæring kan ikke angive en skabelons-id; prøv 'using %D'"
+
+#~ msgid "namespace `%D' not allowed in using-declaration"
+#~ msgstr "navnerum '%D' ikke tilladt i using-erklæring"
+
+#~ msgid "`%D' not declared"
+#~ msgstr "'%D' ikke erklæret"
+
+#~ msgid "`%D' is already declared in this scope"
+#~ msgstr "'%D' er allerede erklæret i dette navnerum"
+
+#~ msgid "using declaration `%D' introduced ambiguous type `%T'"
+#~ msgstr "using-erklæring '%D' introducerede tvetydig type '%T'"
+
+#~ msgid "using-declaration for non-member at class scope"
+#~ msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
+
+#~ msgid "using-declaration for destructor"
+#~ msgstr "using-erklæring for destruktionsfunktion"
+
+#~ msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+#~ msgstr "en using-erklæring kan ikke angive en skabelons-id; prøv 'using %T::%D'"
+
+#~ msgid "namespace `%T' undeclared"
+#~ msgstr "navnerummet '%T' er ikke erklæret"
+
+#~ 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 påkrævet for '%T'"
+
+#~ msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+#~ msgstr "erklæring af '%D' i '%D' som ikke omgiver '%D'"
+
+#~ msgid "`%s' not supported by %s"
+#~ msgstr "'%s' ikke understøttet 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 oversættelsesenhed"
+
+#~ 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 håndtering af '%T'"
+
+#~ msgid "`...' handler must be the last handler for its try block"
+#~ msgstr "håndteringen '...' skal være den sidste håndtering 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-erklæring af '%D'"
+
+#~ msgid "invalid type `%T' declared `friend'"
+#~ msgstr "ugyldig type '%T' erklæret 'friend'"
+
+#~ msgid "partial specialization `%T' declared `friend'"
+#~ msgstr "partiel specialisering '%T' erklæret 'friend'"
+
+#~ msgid "class `%T' is implicitly friends with itself"
+#~ msgstr "klassen '%T' er underforstået ven med sig selv"
+
+#~ msgid "typename type `%#T' declared `friend'"
+#~ msgstr "typename-type '%#T' erklæret 'friend'"
+
+#~ msgid "template parameter type `%T' declared `friend'"
+#~ msgstr "skabelonsparametertypen '%T' erklæret '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' erklæret som friend før typen '%T' er defineret"
+
+#~ msgid "friend declaration `%#D' declares a non-template function"
+#~ msgstr "friend-erklæring '%#D' erklærer 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 erklæret og tilføj <> 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' bør blive klargjort i medlemsklargøringslisten"
+
+#~ msgid "default-initialization of `%#D', which has reference type"
+#~ msgstr "standardklargøring af '%#D' som er af en referencetype"
+
+#~ msgid "uninitialized reference member `%D'"
+#~ msgstr "referencemedlem '%D' uden startværdi"
+
+#~ msgid "initializer list treated as compound expression"
+#~ msgstr "klargøringsliste 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 startværdier angivet for stamklassen '%T'"
+
+#~ msgid "initializations for multiple members of `%T'"
+#~ msgstr "startværdier for flere medlemmer af '%T'"
+
+#~ msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+#~ msgstr "stamklassen '%#T' bør 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 klargøres er ved dets definition"
+
+#~ msgid "unnamed initializer for `%T', which has no base classes"
+#~ msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser"
+
+#~ msgid "unnamed initializer for `%T', which uses multiple inheritance"
+#~ msgstr "unavngiven klargøring 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 startværdi 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 "ufuldstændig 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 størrelsen"
+
+#~ msgid "size in array new must have integral type"
+#~ msgstr "størrelse i tabel-new skal være en heltalstype"
+
+#~ msgid "zero size array reserves no space"
+#~ msgstr "tabel med størrelsen 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 startværdier i tabel-new"
+
+#~ msgid "initializer list being treated as compound expression"
+#~ msgstr "klargøringsliste bliver behandlet som et sammensat udtryk"
+
+#~ msgid "ISO C++ forbids aggregate initializer to new"
+#~ msgstr "ISO C++ forbyder sammensat startværditildeling ved new"
+
+#~ msgid "uninitialized const in `new' of `%#T'"
+#~ msgstr "konstant uden startværdi i 'new' af '%#T'"
+
+#~ msgid "initializer ends prematurely"
+#~ msgstr "startværdien slutter for tidligt"
+
+#~ msgid "cannot initialize multi-dimensional array with initializer"
+#~ msgstr "kan ikke klargøre multidimensional tabel med startværdi"
+
+#~ msgid "unknown array size in delete"
+#~ msgstr "ukendt tabelstørrelse 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 før '*'"
+
+#~ msgid "cannot declare references to references"
+#~ msgstr "kan ikke erklære referencer til referencer"
+
+#~ msgid "cannot declare pointers to references"
+#~ msgstr "kan ikke erklære henvisninger til referencer"
+
+#~ msgid "type name expected before `&'"
+#~ msgstr "der forventedes et typenavn før '&'"
+
+#~ msgid "semicolon missing after %s declaration"
+#~ msgstr "semikolon mangler efter %s-erklæring"
+
+#~ msgid "semicolon missing after declaration of `%T'"
+#~ msgstr "semikolon mangler efter erklæring 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' understøttes ikke længere"
+
+#~ msgid "#pragma implementation for %s appears after file is included"
+#~ msgstr "'#pragma implementation' til %s optræder 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 erklæret i dette virkefelt"
+
+#~ msgid "`%D' undeclared (first use this function)"
+#~ msgstr "'%D' er ikke erklæret (først benyttet i denne funktion)"
+
+# dækkende, og pænere 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 erklæret, rapporteres kun én gang per funktion)"
+
+#~ msgid "`::%D' undeclared (first use here)"
+#~ msgstr "'::%D' er ikke erklæret (først benyttet her)"
+
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "skabelonsparametre med reelle værdi ved krydsoversættelse"
+
+#~ 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' erklæret her"
+
+#~ msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+#~ msgstr "forespørgsel 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'-mærke 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 kædningsangivelse '%D' er forskellig fra den tidligere angivelse '%D'"
+
+#~ msgid "no base or member initializers given following ':'"
+#~ msgstr "ingen stamklasse- eller medlemsklargøringer er angivet efter ':'"
+
+#~ msgid "anachronistic old style base class initializer"
+#~ msgstr "forældet stamklasseklargøring"
+
+#~ msgid "`>>' should be `> >' in template class name"
+#~ msgstr "'>>' skulle have været '> >' 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 "forældet 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 startværdi 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 krøllet 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-erklæringer"
+
+#~ 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 før en højre krøllet 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 etiketerklæringer"
+
+#~ msgid "ISO C++ forbids computed gotos"
+#~ msgstr "ISO C++ forbyder beregnede goto'er"
+
+#~ msgid "label must be followed by statement"
+#~ msgstr "etiketten skal efterfølges af en sætning"
+
+#~ 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 sætninger inden i 'for'-klargøringer"
+
+#~ 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 gøre 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 være en medlemsskabelon"
+
+#~ msgid "invalid member template declaration `%D'"
+#~ msgstr "ugyldig medlemsskabelonerklæring '%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"
+
+# hænger sammen med foregående 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 skabelonserklæring"
+
+#~ 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 erklæring af primær 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 erklæring af '%D'"
+
+#~ msgid "too few template parameter lists in declaration of `%D'"
+#~ msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
+
+#~ msgid "explicit specialization not preceded by `template <>'"
+#~ msgstr "eksplicit specialisering følger 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-kædning"
+
+#~ msgid "specialization of implicitly-declared special member function"
+#~ msgstr "specialisering af underforstået erklæret speciel medlemsfunktion"
+
+#~ msgid "no member function `%D' declared in `%T'"
+#~ msgstr "ingen medlemsfunktion '%D' erklæret i '%T'"
+
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "for mange skabelonsparameterlister i erklæringen 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 unødvendig
+#~ msgid "template argument `%E' involves template parameter(s)"
+#~ msgstr "skabelonsparameter '%E' involverer skabelonsparameter"
+
+# flertalsform unødvendig
+#~ msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+#~ msgstr "typen '%T' af skabelonsparameteren '%E' afhænger af skabelonsparameter"
+
+#~ msgid "no default argument for `%D'"
+#~ msgstr "ingen standardparameter til '%D'"
+
+#~ msgid "template with C linkage"
+#~ msgstr "skabelon med C-kædning"
+
+#~ msgid "template class without a name"
+#~ msgstr "skabelonsklasse uden et navn"
+
+#~ msgid "`%D' does not declare a template type"
+#~ msgstr "'%D' erklærer 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 påkrævet"
+
+#~ msgid "`%T' is not a template type"
+#~ msgstr "'%T' er ikke en skabelonstype"
+
+# hænger sammen med næste tekst
+#~ msgid "previous declaration `%D'"
+#~ msgstr "tidligere erklæring '%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 "omerklæret 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 være adressen af en funktion med ekstern kædning"
+
+#~ msgid "it must be the address of an object with external linkage"
+#~ msgstr "den skal være adressen af et objekt med ekstern kædning"
+
+#~ msgid "it must be a pointer-to-member of the form `&X::Y'"
+#~ msgstr "den skal være 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 kædning"
+
+#~ 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/værdi-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 være %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 skabelonserklæring '%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 forøge 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 erklæringen '%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 størrelsen nul"
+
+#~ msgid "creating array with size zero (`%E')"
+#~ msgstr "opretter tabel med størrelsen 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 forsøg på at instantiere '%D'"
+
+#~ msgid "incomplete type unification"
+#~ msgstr "ufuldstændig 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' før 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 tilgængelig"
+
+#~ 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 nødvendig før 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 størrelse 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 utilgængelig 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 være en henvisning eller reference til klasse)"
+
+#~ msgid " overriding `%#D' (must use pointer or reference)"
+#~ msgstr " overskriver '%#D' (skal være 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 "løsere throw-angivelse for '%#F'"
+
+#~ msgid " overriding `%#F'"
+#~ msgstr " overskriver '%#F'"
+
+#~ msgid "`%#D' cannot be declared"
+#~ msgstr "'%#D' kan ikke erklæres"
+
+#~ msgid " since `%#D' declared in base class"
+#~ msgstr " eftersom '%#D' er erklæret i stamklassen"
+
+#~ msgid "`%#D' needs a final overrider"
+#~ msgstr "'%#D' behøver en endelig overskrivning"
+
+#~ msgid "type of asm operand `%E' could not be determined"
+#~ msgstr "typen af asm-operanden '%E' kunne ikke afgøres"
+
+#~ msgid "ISO C++ does not permit named return values"
+#~ msgstr "ISO C++ tillader ikke navngivne returværdier"
+
+#~ 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 standardreturværdi for konstruktionsfunktioner"
+
+#~ msgid "only constructors take base initializers"
+#~ msgstr "kun konstruktionsfunktioner har stamklasseklargøringer"
+
+#~ msgid "`this' is unavailable for static member functions"
+#~ msgstr "'this' er ikke tilgængelig 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 erklærerer i skabelonserklæring"
+
+#~ 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 læst 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 læst inden i standardparameter"
+
+#~ msgid "circular dependency in default args of `%#D'"
+#~ msgstr "cirkulær afhængighed 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 før '%s'"
+
+#~ msgid "%s before `%c'"
+#~ msgstr "%s før '%c'"
+
+#~ msgid "%s before `\\%o'"
+#~ msgstr "%s før '\\%o'"
+
+#~ msgid "%s before `%s' token"
+#~ msgstr "%s før symbolet '%s'"
+
+#~ msgid "non-lvalue in %s"
+#~ msgstr "ikke-venstreværdi 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 forældet; 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 understøttet 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 optræde som en venstreværdi"
+
+#~ msgid "deprecated conversion from string constant to `%T'"
+#~ msgstr "forældet konvertering fra strengkonstant til '%T'"
+
+#~ msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+#~ msgstr "forespørgsel 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 "(måske 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-venstreværdis tabel"
+
+#~ msgid "subscripting array declared `register'"
+#~ msgstr "indeksering af tabel som er erklæret '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 ufuldstændig"
+
+#~ 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 binær '%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 fratrækning"
+
+#~ msgid "ISO C++ forbids using pointer to a function in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning til funktion i fratrækning"
+
+#~ msgid "ISO C++ forbids using pointer to a method in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning til medlemsfunktion i fratrækning"
+
+#~ msgid "ISO C++ forbids using pointer to a member in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning til medlem i fratrækning"
+
+#~ msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+#~ msgstr "ugyldig brug af en henvisning til en ufuldstændig 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 klassepræfiks"
+
+#~ 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 ufuldstændig 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 venstreværdi"
+
+#~ 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 venstreværdi"
+
+#~ msgid "attempt to take address of bit-field structure member `%D'"
+#~ msgstr "forsøg 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 højreværdiudtryk"
+
+#~ msgid "address requested for `%D', which is declared `register'"
+#~ msgstr "adresse forespurgt for '%D' som er erklæret '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 højreværdiudtryk fra typen '%T' til typen '%T'"
+
+#~ msgid "reinterpret_cast from `%T' to `%T' loses precision"
+#~ msgstr "reinterpret_cast fra '%T' til '%T' mister præcision"
+
+#~ 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 højreværdi 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å henvisningsmålets type"
+
+#~ msgid "cast from `%T' to `%T' increases required alignment of target type"
+#~ msgstr "typeomtvingning fra '%T' til '%T' forøger den påkrævede justering af målets 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 venstreværdi"
+
+#~ 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 værdi '%E' for %s %P af '%D'"
+
+#~ msgid "%s of negative value `%E' to `%T'"
+#~ msgstr "%s af negativ værdi '%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-venstreværdi 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 værdi fra en destruktionsfunktion"
+
+#~ msgid "cannot return from a handler of a function-try-block of a constructor"
+#~ msgstr "kan ikke returnere fra en håndtering af en funktions-try-blok i en konstruktionsfunktion"
+
+#~ msgid "returning a value from a constructor"
+#~ msgstr "returnerer en værdi fra en konstruktionsfunktion"
+
+#~ msgid "return-statement with no value, in function declared with a non-void return type"
+#~ msgstr "return-sætning uden en værdi i en funktion der er erklæret med en ikke-void returtype"
+
+#~ msgid "return-statement with a value, in function declared with a void return type"
+#~ msgstr "return-sætning med en værdi i en funktion der er erklæret 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 erklæret '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 erklære variablen '%D' til at være af typen '%T'"
+
+#~ msgid "cannot declare parameter `%D' to be of type `%T'"
+#~ msgstr "kan ikke erklære parameteren '%D' til at være af typen '%T'"
+
+#~ msgid "cannot declare field `%D' to be of type `%T'"
+#~ msgstr "kan ikke erklære feltet '%D' til at være 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 følgende 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 erklæret for typen '%T'"
+
+#~ msgid "comma expression used to initialize return value"
+#~ msgstr "kommaudtryk benyttet til at klargøre returværdi"
+
+#~ msgid "cannot initialize arrays using this syntax"
+#~ msgstr "kan ikke tildele tabeller startværdier med denne syntaks"
+
+#~ msgid "initializing array with parameter list"
+#~ msgstr "klargør tabel med en parameterliste"
+
+#~ msgid "initializer for scalar variable requires one element"
+#~ msgstr "startværdien for en skalarvariabel kan kun bestå af ét element"
+
+#~ msgid "braces around scalar initializer for `%T'"
+#~ msgstr "krøllede paranteser omkring skalarstartværdi for '%T'"
+
+#~ msgid "ignoring extra initializers for `%T'"
+#~ msgstr "ignorerer ekstra startværdier for '%T'"
+
+#~ msgid "variable-sized object of type `%T' may not be initialized"
+#~ msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi"
+
+#~ msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+#~ msgstr "underobjekt af typen '%T' skal klargøres af en konstruktionsfunktion, ikke af '%E'"
+
+#~ msgid "aggregate has a partly bracketed initializer"
+#~ msgstr "sammensat type har delvis indklammet startværdi"
+
+#~ msgid "non-trivial labeled initializers"
+#~ msgstr "ikke-trivielle navngivne startværdier"
+
+#~ msgid "non-empty initializer for array of empty elements"
+#~ msgstr "en startværdi der ikke er tom, tildeles til en tabel med tomme elementer"
+
+#~ msgid "initializer list for object of class with virtual base classes"
+#~ msgstr "klargøringsliste for objekt af en klasse med virtuelle stamklasser"
+
+#~ msgid "initializer list for object of class with base classes"
+#~ msgstr "klargøringsliste for objekt af en klasse med stamklasser"
+
+#~ msgid "initializer list for object using virtual functions"
+#~ msgstr "klargøringsliste for objekt med virtuelle funktioner"
+
+#~ msgid "missing initializer for member `%D'"
+#~ msgstr "manglende startværdi for medlemmet '%D'"
+
+#~ msgid "uninitialized const member `%D'"
+#~ msgstr "konstant medlem '%D' uden startværdi"
+
+#~ msgid "member `%D' with uninitialized const fields"
+#~ msgstr "medlem '%D' med konstante felter uden startværdi"
+
+#~ msgid "member `%D' is uninitialized reference"
+#~ msgstr "medlemmet '%D' er en reference uden startværdi"
+
+#~ msgid "index value instead of field name in union initializer"
+#~ msgstr "indeksværdi i stedet for feltnavn i union-startværdi"
+
+#~ msgid "no field `%D' in union being initialized"
+#~ msgstr "intet felt '%D' i union der tildeles startværdi"
+
+#~ msgid "union `%T' with no named members cannot be initialized"
+#~ msgstr "union '%T' uden navngivne elementer kan ikke tildeles startværdi"
+
+#~ msgid "excess elements in aggregate initializer"
+#~ msgstr "for mange elementer i startværdi til sammensat type"
+
+#~ msgid "circular pointer delegation detected"
+#~ msgstr "fundet en henvisningsefterfølgelse der går 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 ufuldstændig type '%#T'"
+
+#~ msgid "call to function which throws incomplete type `%#T'"
+#~ msgstr "kald af en funktion som kaster en ufuldstændig type '%#T'"
+
+#~ msgid "%s is deprecated, please see the documentation for details"
+#~ msgstr "%s er forældet, 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 hvornår skabelonsinstanser udsendes"
+
+#~ msgid "Check the return value of new"
+#~ msgstr "Kontrollér returværdien for new"
+
+#~ msgid "Reduce size of object files"
+#~ msgstr "Reducér størrelsen af objektfiler"
+
+#~ msgid "Make string literals `char[]' instead of `const char[]'"
+#~ msgstr "Gør strengkonstanter til 'char[]' i stedet for 'const char[]'"
+
+#~ msgid "Dump the entire translation unit to a file"
+#~ msgstr "Anbring hele oversættelsesenheden i en fil"
+
+#~ msgid "Do not inline member functions by default"
+#~ msgstr "Integrér ikke medlemsfunktioner som standard"
+
+#~ msgid "Do not generate run time type descriptor information"
+#~ msgstr "Generér ikke typebeskrivelsesoplysninger til kørselstidspunktet"
+
+#~ msgid "Do not generate code to check exception specifications"
+#~ msgstr "Generér ikke kode til at kontrollere undtagelsesspecifikationer"
+
+#~ msgid "Scope of for-init-statement vars extends outside"
+#~ msgstr "Udvid virkefeltet for variabler i for-klargøringssætninger"
+
+#~ msgid "Do not recognize GNU defined keywords"
+#~ msgstr "Genkend ikke GNU-definerede reserverede ord"
+
+#~ msgid "Enable support for huge objects"
+#~ msgstr "Aktivér understøttelse af enorme objekter"
+
+#~ msgid "Export functions even if they can be inlined"
+#~ msgstr "Eksportér 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 "Deaktivér valgfrie diagnosticeringer"
+
+#~ msgid "Downgrade conformance errors to warnings"
+#~ msgstr "Nedgradér standardoverholdelsesfejl til advarsler"
+
+#~ msgid "Enable automatic template instantiation"
+#~ msgstr "Aktivér automatisk skabelonsinstantiering"
+
+#~ msgid "Display statistics accumulated during compilation"
+#~ msgstr "Vis statistik som indsamles under oversættelsen"
+
+#~ 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 "Kassér ubrugte virtuelle funktioner"
+
+#~ msgid "Implement vtables using thunks"
+#~ msgstr "Implementér 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 når 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 når en funktion erklæret extern erklæres inline"
+
+#~ msgid "Warn when the compiler reorders code"
+#~ msgstr "Advar når oversætteren ændrer på ordenen af kode"
+
+#~ msgid "Warn when synthesis behavior differs from Cfront"
+#~ msgstr "Advar når synteseopførslen 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 overtrædelser af stilreglerne fra Effective C++"
+
+#~ msgid "Warn when overload promotes from unsigned to signed"
+#~ msgstr "Advar når flertydiggørelse 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 når ikke-skabelonsvennefunktioner erklæres inde i en skabelon"
+
+#~ msgid "Don't announce deprecation of compiler features"
+#~ msgstr "Annoncér ikke forældelse af oversætterfaciliteter"
+
+#~ msgid "note:"
+#~ msgstr "bemærk:"
+
+#~ 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 søskende"
+
+#~ 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 før 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-sætning kan mislykkes"
+
+#~ msgid "In statement function"
+#~ msgstr "I sætningsfunktion"
+
+#~ 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 følge umiddelbart efter -I"
+
+#~ msgid "At %0, INCLUDE file %A exists, but is not readable"
+#~ msgstr "Ved %0 eksisterer INCLUDE-filen %A, men kan ikke læses"
+
+#~ 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-understøttet operand for ** ved %1 - konverterer til standard-INTEGER"
+
+#~ msgid "overflowed output arg list for `%s'"
+#~ msgstr "overløb i uddataparameterlist for '%s'"
+
+#~ msgid "--driver no longer supported"
+#~ msgstr "--driver understøttes ikke længere"
+
+#~ 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 erklæring af '%A' ved %0"
+
+#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+#~ msgstr "Undvigesekvensen '\\%A' ved %0 følger 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 efterfølgende 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' følger ikke ANSI-standarden"
+
+#~ msgid "non-ISO escape sequence `\\%c'"
+#~ msgstr "undvigesekvensen '\\%c' følger 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 anførselstegn"
+
+#~ msgid "#-lines for entering and leaving files don't match"
+#~ msgstr "#-linjer til at træde ind og ud af filer passer ikke"
+
+#~ msgid "bad directive -- missing close-quote"
+#~ msgstr "forkert udformet direktiv - intet afsluttende anførselstegn"
+
+#~ 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 første 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 sætning 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 understøttet - desværre"
+
+#~ msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+#~ msgstr "SELECT (ved %0) har ens tilfælde -- tjek heltalsoverløb 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-målvariabel 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 "datastartværdi på vært med anden endethed"
+
+#~ msgid "%s no longer supported -- try -fvxt"
+#~ msgstr "%s er ikke længere understøttet - prøv -fvxt"
+
+#~ msgid "%s no longer supported -- try -fno-vxt -ff90"
+#~ msgstr "%s er ikke længere understøttet - prøv -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 oversætterversioninfo, kør 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 nævnt i SAVE-sætninger"
+
+#~ msgid "Allow $ in symbol names"
+#~ msgstr "Tillad $ i symbolnavne"
+
+#~ msgid "f2c-compatible code need not be generated"
+#~ msgstr "f2c-kompatibel kode behøver ikke at blive genereret"
+
+#~ msgid "Unsupported; do not generate libf2c-calling code"
+#~ msgstr "Ikke-understøttet; generér ikke libf2c-kaldende kode"
+
+#~ msgid "Unsupported; affects code-generation of arrays"
+#~ msgstr "Ikke-understøttet; påvirker 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 typeløse 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 størrelse"
+
+#~ 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 "Klargøring 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 "Klargør lokale variable og tabeller til nul"
+
+#~ msgid "Backslashes in character/hollerith constants not special (C-style)"
+#~ msgstr "Omvendte skråstreger 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 "Deaktivér tilføjelse af understreger bag på eksterne variable"
+
+#~ msgid "Never append a second underscore to externals"
+#~ msgstr "Tilføj 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 "Sprognøgleord staves som f.eks. IOStat"
+
+#~ msgid "Language keywords in uppercase"
+#~ msgstr "Sprognøgleord staves med store bogstaver"
+
+#~ msgid "Language keyword letters in arbitrary cases"
+#~ msgstr "Der skelnes ikke mellem små og store bogstaver i sprognøgleord"
+
+#~ msgid "Internally convert most source to uppercase"
+#~ msgstr "Konvertér 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 "Oversæt som hvis programmet var skrevet med store bogstaver"
+
+#~ msgid "Compile as if program written in lowercase"
+#~ msgstr "Oversæt 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 dårlige grænseflader"
+
+#~ msgid "Disable libU77 intrinsics with bad interfaces"
+#~ msgstr "Deaktivér libU77-indbyggede med dårlige grænseflader"
+
+#~ msgid "Hide libU77 intrinsics with bad interfaces"
+#~ msgstr "Skjul libU77-indbyggede med dårlige grænseflader"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Slet f2c-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Deaktivér f2c-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Skjul f2c-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Slet F90-understøttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Deaktivér F90-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Skjul F90-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+#~ msgstr "Slet g77-understøttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Deaktivér g77-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Skjul g77-understøttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Delete MIL-STD 1753 intrinsics"
+#~ msgstr "Slet MIL-STD 1753-indbyggede"
+
+#~ msgid "Disable MIL-STD 1753 intrinsics"
+#~ msgstr "Deaktivér 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 "Deaktivér libU77-indbyggede"
+
+#~ msgid "Hide libU77 intrinsics"
+#~ msgstr "Skjul libU77-indbyggede"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Slet VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Deaktivér VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Skjul VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Treat initial values of 0 like non-zero values"
+#~ msgstr "Behandl begyndelsesværdier på 0 som værdier 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-løkke"
+
+#~ msgid "Print names of program units as they are compiled"
+#~ msgstr "Udskriv navne på programenheder efterhånden som de oversættes"
+
+#~ msgid "Disable fatal diagnostics about inter-procedural problems"
+#~ msgstr "Deaktivér fatale diagnosticeringer af interprocedurale procedurer"
+
+#~ msgid "Make prefix-radix non-decimal constants be typeless"
+#~ msgstr "Gør præfiks-grundtal ikke-decimale konstanter typeløse"
+
+#~ msgid "Generate code to check subscript and substring bounds"
+#~ msgstr "Generér kode for at tjekke indekserings- og understrengsgrænser"
+
+#~ msgid "Fortran-specific form of -fbounds-check"
+#~ msgstr "Fortran-specifik form for -fbounds-check"
+
+#~ msgid "Disable warnings about inter-procedural problems"
+#~ msgstr "Deaktivér 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 "Tilføj et katalog til INCLUDE-søgning"
+
+#~ msgid "Set the maximum line length"
+#~ msgstr "Angiv den maksimale linjelængde"
+
+#~ msgid "Missing first operand for binary operator at %0"
+#~ msgstr "Manglende første operand for binær operator ved %0"
+
+#~ msgid "Zero-length character constant at %0"
+#~ msgstr "Nul-længde 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 sætning (ved %1)"
+
+#~ msgid "Invalid first character at %0 [info -f g77 M LEX]"
+#~ msgstr "Ugyldig første 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 kommentarafgrænsninger"
+
+#~ msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+#~ msgstr "Fortsættelsesindikator ved %0 skal optræde 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 fortsættelseslinjeindikator 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 optræder ved %1"
+
+#~ msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+#~ msgstr "Afsluttende parantes ved %0 behøves 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 efterfølges 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 værdi ved %1 for reel eksponent ved %0"
+
+#~ msgid "Expected binary operator between expressions at %0 and at %1"
+#~ msgstr "Forventede binær 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-sætning ved %0"
+
+#~ msgid "Missing comma in FORMAT statement at %0"
+#~ msgstr "Manglende komma i FORMAT-sætning ved %0"
+
+#~ msgid "Spurious sign in FORMAT statement at %0"
+#~ msgstr "Mystisk fortegn i FORMAT-sætning ved %0"
+
+#~ msgid "Spurious number in FORMAT statement at %0"
+#~ msgstr "Mystisk tal i FORMAT-sætning ved %0"
+
+#~ msgid "Spurious text trailing number in FORMAT statement at %0"
+#~ msgstr "Mystisk tekstafsluttende tal i FORMAT-sætning 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-sætning ved %0"
+
+#~ msgid "Missing number following period in FORMAT statement at %0"
+#~ msgstr "Manglende tal efter punktum i FORMAT-sætning ved %0"
+
+#~ msgid "Missing number following `E' in FORMAT statement at %0"
+#~ msgstr "Manglende tal efter 'E' i FORMAT-sætning ved %0"
+
+#~ msgid "Spurious trailing comma preceding terminator at %0"
+#~ msgstr "Mystisk afsluttende komma før 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-sætning 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-sætning der angiver tildelingsoperatoren (=)"
+
+#~ msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+#~ msgstr "Kan ikke angive =klargøringsudtryk ved %0 medmindre '::' optræder før 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-sætningsreference til etiket ved %1 følger 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-sætningsreferencer 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-sætningsreference 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 sætning"
+
+#~ msgid "Statement at %0 invalid in this context"
+#~ msgstr "Sætning ved %0 er ugyldig i denne kontekst"
+
+#~ msgid "Statement at %0 invalid in context established by statement at %1"
+#~ msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
+
+#~ msgid "Statement at %0 must specify construct name specified at %1"
+#~ msgstr "Sætning 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 overflødigt, 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 "Sætning ved %0 følger ELSE-blok for IF-konstruktion ved %1"
+
+#~ msgid "No label definition for FORMAT statement at %0"
+#~ msgstr "Ingen etiketdefinition for FORMAT-sætning 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-sætning ved %0 mangler nøgleordet '%A' som er påkrævet for interne eller modul-procedurer afgrænset af %1"
+
+#~ msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+#~ msgstr "MODULE PROCEDURE-sætning 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 overflødigt, intet navn angivet ved %1"
+
+#~ msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+#~ msgstr "Programnavn ved %0 er overflødigt, ingen PROGRAM-sætning 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 før slutning af blok begyndt ved %0"
+
+#~ msgid "Undefined label, first referenced at %0"
+#~ msgstr "Ikke-defineret etiket, første reference er ved %0"
+
+#~ msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+#~ msgstr "SAVE-sætning eller -egenskab ved %1 kan ikke angives sammen med SAVE-sætning 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-sætning ved %1 kan ikke angives sammen med PUBLIC- eller PRIVATE-sætning ved %0"
+
+#~ msgid "RETURN statement at %0 invalid within a main program unit"
+#~ msgstr "RETURN-sætning 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-sætning 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 følge nedarvet type-sætning ved %1 uden nogen mellemliggende sætninger"
+
+#~ 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 efterfølgende RECORD-sætning 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 påkrævet"
+
+#~ msgid "Missing %A specifier in statement at %0"
+#~ msgstr "Manglende %A-angivelse i sætning 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 kræver 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 kræver 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-værdi optræder 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-værdi eller værdi 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-sætning inden i SELECT CASE-sætning med logisk type"
+
+#~ msgid "Fortran 90 feature at %0 unsupported"
+#~ msgstr "Fortran 90-facilitet ved %0 er ikke understøttet"
+
+#~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+#~ msgstr "Ugyldig erklæring af reference til symbolet '%A' ved %0 (først 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 "Tabelelementværdi 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 understøttes ikke endnu)"
+
+#~ msgid "%A step count known to be 0 (zero) at %0"
+#~ msgstr "%A-skridttæller vides at være nul ved %0"
+
+#~ msgid "%A end value plus step count known to overflow at %0"
+#~ msgstr "%A-slutværdi plus skridttæller vides at forårsage overløb 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 skridttæller-værdier vides at resultere i implementeringsafhængig opførsel pga. overløb 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 skridttæller-værdier 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 underforstået DO-iterator '%A' ved %0"
+
+#~ msgid "Gratuitous parentheses surround implied-DO construct at %0"
+#~ msgstr "Ekstra paranteser omkring underforstået DO-konstruktion ved %0"
+
+#~ msgid "Zero-size specification invalid at %0"
+#~ msgstr "Nulstørrelses angivelse ugyldig ved %0"
+
+#~ msgid "Zero-size array at %0"
+#~ msgstr "Nulstørrelsestabel ved %0"
+
+#~ msgid "Target machine does not support complex entity of kind specified at %0"
+#~ msgstr "Målarkitekturen understøtter ikke den form for kompleks enhed der er angivet ved %0"
+
+#~ msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+#~ msgstr "Målarkitekturen understøtter ikke DOUBLE COMPLEX, som angivet ved %0"
+
+#~ msgid "Attempt to raise constant zero to a power at %0"
+#~ msgstr "Forsøg at opløfte 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 være 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 typeerklæring 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 sætningsfunktionsreference 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 sætningsfunktionsreference ved %1"
+
+#~ msgid "%A too many arguments as of %0 for statement function reference at %1"
+#~ msgstr "%A for mange parametre ved %0 for sætningsfunktionsreference 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 sætningsfunktionsreference ved %1"
+
+#~ msgid "Unsupported FORMAT specifier at %0"
+#~ msgstr "Ikke-understøttet FORMAT-angivelse ved %0"
+
+#~ msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+#~ msgstr "Variabel-udtryks FORMAT-angivelse ved %0 - ikke-understøttet"
+
+#~ msgid "Unsupported VXT statement at %0"
+#~ msgstr "Ikke-understøttet VXT-sætning ved %0"
+
+#~ msgid "Attempt to specify second initial value for `%A' at %0"
+#~ msgstr "Forsøg på at angive anden startværdi for '%A' ved %0"
+
+#~ msgid "Too few initial values in list of initializers for `%A' at %0"
+#~ msgstr "For få startværdier i klargøringsliste for '%A' ved %0"
+
+#~ msgid "Too many initial values in list of initializers starting at %0"
+#~ msgstr "For mange startværdier i klargøringsliste 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 sætning 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 klargøring af '%A' i sætning ved %0"
+
+#~ msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+#~ msgstr "Underforstået do-løkkeskridttæller på nul for iterationsvariablen '%A' i sætning ved %0"
+
+#~ msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+#~ msgstr "Underforstået do-løkkegentagelsestæller på nul for iterationsvariablen '%A' i sætning ved %0"
+
+#~ msgid "Not an integer constant expression in implied do-loop in statement at %0"
+#~ msgstr "Ikke et heltalskonstantudtryk i underforstået do-løkke i sætning ved %0"
+
+#~ msgid "Attempt to specify second initial value for element of `%A' at %0"
+#~ msgstr "Forsøg på at angive anden startvædi for element af '%A' ved %0"
+
+#~ msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+#~ msgstr "Forsøg på at anvende EQUIVALENCE mellem de almene områder '%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 både %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-sætning"
+
+#~ msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+#~ msgstr "Understreng af ikke-CHARACTER enhed '%A' i EQUIVALENCE-sætning"
+
+#~ msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+#~ msgstr "Tabelreference til skalar variabel '%A' i EQUIVALENCE-sætning"
+
+#~ 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 "Forsøg på at udvide COMMON-område 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-sætning"
+
+#~ msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "For mange elementer i reference til tabllen '%A' i EQUIVALENCE-sætning"
+
+#~ 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 "Returværdi `%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 længde ved %0, men %C %E ved %1"
+
+#~ msgid "Blank common initialized at %0"
+#~ msgstr "Tom almen tildelt startværdi 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 erklæret 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 erklæret 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' følges 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 tilstrækkeligt understøttet af kørselsbiblioteket 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 "Sætning 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 højre side af tegnkonstant ved %0"
+
+#~ msgid "Truncating characters on right side of hollerith constant at %0"
+#~ msgstr "Fjerner tegn på den højre 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 typeløs konstant ved %0"
+
+#~ msgid "Typeless constant at %0 too large"
+#~ msgstr "Typeløs konstant ved %0 er for stor"
+
+#~ msgid "First-column ampersand continuation at %0"
+#~ msgstr "Førstekolonne og-tegnsfortsættelse 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 håndtere"
+
+#~ msgid "Statement function `%A' defined at %0 is not used"
+#~ msgstr "Sætningsfunktion '%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 være år 2000-sikker [info -f g77 M Y2KBAD]"
+
+#~ msgid "Internal compiler error -- cannot perform operation"
+#~ msgstr "Intern oversætterfejl - kan ikke udføre 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: trækode ikke implementeret: %s"
+
+#~ msgid "final field '%s' may not have been initialized"
+#~ msgstr "slutfeltet '%s' bliver måske ikke klargjort"
+
+#~ msgid "internal error - too many interface type"
+#~ msgstr "intern fejl - for mange grænsefladetyper"
+
+#~ 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 "stakunderløb - dup*-operation"
+
+#~ msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+#~ msgstr "reference '%s' er tvetydig: den optræder i grænsefladen '%s' og grænsefladen '%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 klargøring"
+
+#~ 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 før %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 værdikonstanttype %d, indeks %d"
+
+#~ msgid "can't reopen %s"
+#~ msgstr "kan ikke genåbne %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 område"
+
+#~ msgid "error in constant pool entry #%d\n"
+#~ msgstr "fejl i konstantområdelement nr. %d\n"
+
+#~ msgid "reading class %s for the second time from %s"
+#~ msgstr "læser 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 nullængdes egenskab 'gnu.gcj.gcj-compiled'. Dette betyder som regel at din klassesti er angivet forkert. Prøv '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 - trækode er ikke implementeret: %s"
+
+#~ msgid "field initializer type mismatch"
+#~ msgstr "typen af startværdien 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 påkræver -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 når der ikke sammenkædes"
+
+#~ msgid "can't do dependency tracking with input from stdin"
+#~ msgstr "kan ikke udføre afhængighedsfølgning med inddata fra standard-ind"
+
+#~ msgid "couldn't determine target name for dependency tracking"
+#~ msgstr "kunne ikke bestemme målnavn for afhængighedsfølgning"
+
+#~ 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"
+#~ "understøttes af dit systems iconv(3)-implementering. Hvis du \n"
+#~ "ikke ønske at bruge en bestemt kodning for dine inddatafiler, \n"
+#~ "så prøv tilvalget '--encoding=UTF-8'"
+
+#~ msgid "can't mangle %s"
+#~ msgstr "kan ikke sammensætte %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 grænsefladeerklæring 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 grænsefladenavn"
+
+#~ msgid "Missing variable initializer"
+#~ msgstr "Manglende variabelstartværdi"
+
+#~ msgid "Invalid declaration"
+#~ msgstr "Ugyldig erklæring"
+
+#~ msgid "']' expected"
+#~ msgstr "']' forventet"
+
+#~ msgid "Unbalanced ']'"
+#~ msgstr "Uafbalanceret ']'"
+
+#~ msgid "Invalid method declaration, method name required"
+#~ msgstr "Ugyldig metodeerklæring, metodenavn påkrævet"
+
+#~ msgid "Identifier expected"
+#~ msgstr "Kaldenavn forventet"
+
+#~ msgid "Invalid method declaration, return type required"
+#~ msgstr "Ugyldig metodeerklæring, returtype påkrævet"
+
+#~ 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 grænsefladetype"
+
+#~ msgid "':' expected"
+#~ msgstr "':' forventet"
+
+#~ msgid "Invalid expression statement"
+#~ msgstr "Ugyldig udtrykssætning"
+
+#~ 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 klargøringssætning"
+
+#~ 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 være det første 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'. Kontrollér CLASSPATH-miljøvariablen 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 "undtagelseshåndtering 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 "Deaktivér automatisk tabelgrænsekontrollering"
+
+#~ msgid "Disable assignability checks for stores into object arrays"
+#~ msgstr "Deaktivér tildelingstjek for lagringer i objekttabeller"
+
+#~ msgid "Assume native functions are implemented using JNI"
+#~ msgstr "Antag at indfødte 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 (forældet: benyt --classpath i stedet)"
+
+#~ msgid "Choose class whose main method should be used"
+#~ msgstr "Vælg klasse hvis main-metode skal bruges"
+
+#~ msgid "Choose input encoding (default comes from locale)"
+#~ msgstr "Vælg inddatakodning (standardværdi kommer fra regionalindstillinger)"
+
+#~ msgid "Add directory to class path"
+#~ msgstr "Tilføj 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 når det ikke er nødvendigt"
+
+#~ msgid "Warn if deprecated empty statements are found"
+#~ msgstr "Advar hvis forældede tomme sætninger bliver fundet"
+
+#~ msgid "Warn if .class files are out of date"
+#~ msgstr "Advar hvis .class-filer er forældede"
+
+#~ msgid "Always check for non gcj generated classes archives"
+#~ msgstr "Kontrollér altid for ikke-GCJ-genererede klassearkiver"
+
+#~ msgid "Never optimize static class initialization code"
+#~ msgstr "Optimér aldrig statiske klassers klargøringskode"
+
+#~ msgid "Use offset tables for virtual method calls"
+#~ msgstr "Benyt afsætstabeller 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, importér venligst <objc/objc.h>"
+
+#~ msgid "protocol `%s' has circular dependency"
+#~ msgstr "protokollen '%s' har cirkulær afhængighed"
+
+#~ msgid "cannot find protocol declaration for `%s'"
+#~ msgstr "kan ikke finde protokolerklæringen af '%s'"
+
+#~ msgid "cannot find interface declaration for `%s'"
+#~ msgstr "kan ikke finde grænsefladeerklæringen af '%s'"
+
+#~ msgid "cannot find reference tag for class `%s'"
+#~ msgstr "kan ikke finde referencemærket for klassen '%s'"
+
+#~ msgid "creating selector for non existant method %s"
+#~ msgstr "opretter vælger 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 grænsefladeerklæringen af '%s', superklasse til '%s'"
+
+#~ msgid "circular inheritance in interface declaration for `%s'"
+#~ msgstr "cirkulær nedarvning i interface-erklæringen 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 erklæring 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 erklæret i grænsefladen 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' får standardværdien id"
+
+#~ msgid "method `%s' not implemented by protocol"
+#~ msgstr "metoden '%s' er ikke implementeret af protokollen"
+
+#~ msgid "return type defaults to id"
+#~ msgstr "returtype får standardværdien id"
+
+#~ msgid "cannot find method"
+#~ msgstr "kan ikke finde metode"
+
+#~ msgid "undeclared selector `%s'"
+#~ msgstr "uerklæret vælger '%s'"
+
+#~ msgid "instance variable `%s' accessed in class method"
+#~ msgstr "instansvariablen '%s' tilgået 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 erklæring 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 erklæring af instansmetoden '%s'"
+
+#~ msgid "duplicate interface declaration for category `%s(%s)'"
+#~ msgstr "mere end én grænsefladeerklæring af kategorien '%s(%s)'"
+
+#~ msgid "instance variable `%s' is declared private"
+#~ msgstr "instansvariablen '%s' er erklæret privat"
+
+#~ msgid "instance variable `%s' is declared %s"
+#~ msgstr "instansvariablen '%s' er erklæret '%s'"
+
+#~ msgid "static access to object of type `id'"
+#~ msgstr "statisk tilgang til objekt af typen 'id'"
+
+#~ msgid "incomplete implementation of class `%s'"
+#~ msgstr "ufuldstændig implementering af klassen '%s'"
+
+#~ msgid "incomplete implementation of category `%s'"
+#~ msgstr "ufuldstændig 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 grænsefladeerklæring af klassen '%s'"
+
+#~ msgid "duplicate declaration for protocol `%s'"
+#~ msgstr "mere end én erklæring af protokollen '%s'"
+
+#~ msgid "[super ...] must appear in a method context"
+#~ msgstr "[super ...] skal optræde i en metodekontekst"
+
+#~ msgid "potential selector conflict for method `%s'"
+#~ msgstr "potentiel vælgerkonflikt for metoden '%s'"
+
+#~ msgid "`@end' must appear in an implementation context"
+#~ msgstr "'@end' skal optræde i en implementationskontekst"
+
+#~ msgid "method definition not in class context"
+#~ msgstr "metodedefinitionen optræder ikke i en klassekontekst"
+
+#~ msgid "Dump decls to a .decl file"
+#~ msgstr "Udskriv erklæringer i en .decl-fil"
+
+#~ msgid "Generate code for GNU runtime environment"
+#~ msgstr "Generér kode til GNU-kørselmiljø"
+
+#~ msgid "Generate code for NeXT runtime environment"
+#~ msgstr "Generér kode til NeXT-kørselmiljø"
+
+#~ msgid "Warn if a selector has multiple methods"
+#~ msgstr "Advar hvis en vælger 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 "Generér 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) følg fortolkningsprocessen"
+
+#~ msgid "(debug) trace lexical analysis"
+#~ msgstr "(fejlretning) følg 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 understøtter ikke -C uden -E"
+
+#~ msgid "GNU C does not support -CC without using -E"
+#~ msgstr "GNU C understøtter ikke -CC uden -E"
+
+#~ msgid "`-p' not supported; use `-pg' and gprof(1)"
+#~ msgstr "'-p' understøttes 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 understøttes i øjeblikket ikke for VAX ELF."
+
+#~ msgid "profiling not supported with -mg\n"
+#~ msgstr "profilgenerering understøttes ikke med -mg\n"
+
+#~ msgid "-pipe is not supported"
+#~ msgstr "-pipe understøttes ikke"
+
+#~ msgid "may not use both -EB and -EL"
+#~ msgstr "kan ikke bruge både -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 påkrævet når inddata kommer fra standardind"
+
+#~ msgid "compilation of header file requested"
+#~ msgstr "oversættelse 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 "vælg enten stor- eller lilleendet, ikke begge"
+
+#~ msgid "choose either m340 or m210 not both"
+#~ msgstr "vælg enten m340 eller m210, ikke begge"
+
+#~ msgid "the m210 does not have little endian support"
+#~ msgstr "m210 har ikke understøttelse 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 understøttes 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 kræves 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 ufuldstændig type"
+
+#~ msgid "-traditional is deprecated and may be removed"
+#~ msgstr "-traditional er forældet 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 startværdi"
+
+#~ 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 "både '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 imaginære 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 oversætteren - 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 større end den maksimale værdi 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 større end den maksimale værdi 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 tabelerklæring"
+
+#~ 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 ufuldstændig type"
+
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "variabelafsæt bliver viderebragt delvis i stak og i register"
+
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "variabelstørrelse 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 større 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 binær operator"
+
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "skifter søgeorden 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 mål 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 påkrævet for nøje ISO C\n"
+#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n"
+#~ " -traditional Iagttag opførsel som en K&R-præprocessor\n"
+#~ " -trigraphs Understøt 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 forældede"
+
+#~ 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 optræde 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 "desværre, ikke implementeret: "
+
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "Intern oversætterfejl 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 udtømt for tidligt\n"
+
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr "indholdet af .da-filen ikke udtømt\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% af %d kildekodelinjer udført i funktionen %s\n"
+
+#~ msgid "No executable source lines in function %s\n"
+#~ msgstr "Ingen kørbare kildelinjer i funktionen %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger udført 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 udført 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 udført i filen %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in file %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger udført 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 udført 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 udtømt for tidligt"
+
+#~ msgid ".da file contents not exhausted"
+#~ msgstr "indholdet af .da-filen ikke udtømt"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "konvertering fra NaN til int"
+
+#~ msgid "floating point overflow"
+#~ msgstr "kommatalsoverløb"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "overløb ved afkortelse til heltal"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "overløb ved afkortelse til heltal uden fortegn"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: parameterdomænefejl"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: funktionssingularitet"
+
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: overløbsintervalfejl"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: underløbsintervalfejl"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: samlet tab af præcision"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: delvist tab af præcision"
+
+#~ 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 værten og målet bruger samme kommatalsformat"
+
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Oversæt henvisningsvariabler som tretupler: værdi, 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 "Forsøg at understøtte 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 Aktivér blokprofilering\n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax Aktivér 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 anførselstegn 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 være i en byte"
+
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "hexadecimal tegnkonstant kan ikke være 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 understøttes 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 mål 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 efterfølges 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 efterfølges 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 betingelsessætning"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s ikke inde i betingelsessætning"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else eller #elif efter #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else er ikke inde i betingelsessætning"
+
+#~ 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 slået til"
+
+#~ msgid "optimization turned off"
+#~ msgstr "optimeringer slået 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-værdi"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Generér kode der antager at DW-bitten er sat"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Generér kode der antager at DW-bitten ikke er sat"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Generér kode der bruger byte-skrivninger"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Generér 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 "Generér 29050-kode"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "Generér 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 "Generér stakkontrolleringskode"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Generér 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 "Generér ikke multm-instruktioner"
+
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Foretag symbolomdøbning for BSD"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Foretag symbolomdøbning for X/OPEN"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "Foretag ikke symbolomdøbning"
+
+#~ msgid "MCU `%s' not supported"
+#~ msgstr "MCU '%s' ikke understøttet"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Generér kode til en C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Generér kode til en C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Generér kode til en c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Generér kode til en c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Generér kode til en c32"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Generér 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, afhæng 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 understøttede på denne vært"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Generér kode som Unix-maskinkodeoversætteren kan håndtere"
+
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Generér kode som en indlejret maskinkodeoversætter kan håndtere"
+
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Bevar standard-MXDB-info"
+
+#~ msgid "Retain legend information"
+#~ msgstr "Bevar indholdsinfo"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "Generér 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 når 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-klargøring kaldt på systemer der ikke understøtter 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 "Justér til >word-grænserne"
+
+#~ 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 "Generér kode som bruger FPU'en"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Generér 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 understøttet"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s understøtter ikke -mips%d"
+
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "denne målarkitektur understøtter ikke tilvalget -mabi"
+
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
+
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d understøtter ikke 64-bit kommatalsregistre"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d understøtter 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 "Optimér for 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimér 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 værdi:"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Generér lilleendet data"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Generér storendet data"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Aktivér vedligeholdertestkode"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Aktivér Transmeta picoJava-udvidelser"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Deaktivér Transmeta picoJava-udvidelser"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Deaktivér omorganiseringsfase"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s ignoreret (al kode er positionsuafhængigt)"
+
+#~ 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 understøttet på AIX"
+
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr "parameter til '%s' skal være 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 erklæret i '%T'"
+
+#~ msgid "typedef `%D' is initialized"
+#~ msgstr "typedef '%D' bliver tildelt en startværdi"
+
+#~ msgid "`%D' as declarator"
+#~ msgstr "'%D' som erklærer"
+
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "størrelsen af medlemmet '%D' er ikke konstant"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "kan ikke erklære %s til referencer"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "ugyldig type: 'void &'"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "typedef-erklæringen indeholder en startværdi"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version understøttes ikke længere"
+
+#~ msgid "candidate%s: %+#D"
+#~ msgstr "candidate%s: %+#D"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "medlemsstartværdier for '%#D'"
+
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " vil blive omordnet for at passe til erklæringsordenen"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "flere startværdier angivet for medlemmet '%D'"
+
+#~ msgid "base initializers for `%#T'"
+#~ msgstr "stamklasseklargøring 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 "stamklasseklargøring for '%T'"
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " vil blive omordnet for at komme før medlemsklargøringer"
+
+#~ 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 ufuldstændig 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 ufuldstændig type '%T'"
+
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "forespørgsel 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 typeerklæring '%#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' erklæret flertydigt, men ingen definition optræder 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 "unær '&'"
+
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "ugyldig brug af en ikke-defineret type '%#T'"
+
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "forhåndserklæring 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 "utilstrækkelige kontekstuelle oplysninger til at afgøre typen"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "klargøringslistekonstruktion er ugyldig for nedarvet klasseobjekt '%D'"
+
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "klargøringslistekonstruktion er ugyldig for polymorfisk klasseobjekt '%D'"
+
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "klargøringslistekonstruktion er ugyldig for '%D'"
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "pga. af tilstedeværelsen 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 startværdiudtryk 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 løbet tør for virtuel hukommelse"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Kan ikke angive tabeldimension i en erklæring"
+
+#~ 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 understøttes ikke længere; 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 understøttes 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 startværdi kan placeres i programhukommelsesområdet."
+
+#~ msgid "declaration of `%#T'"
+#~ msgstr "erklæring af '%#T'"
+
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
+
+#~ msgid "%s before character constant"
+#~ msgstr "%s før tegnkonstant"
+
+#~ msgid "%s before character 0%o"
+#~ msgstr "%s før 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, optræder 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 parametererklæring kun tilladt i ISO C 99"
+
+#~ msgid "invalid `for (ITERATOR)' syntax"
+#~ msgstr "ugyldigt 'for (LØKKEVARIABEL)'-syntaks"
+
+#~ msgid "`for (%s)' inside expansion of same iterator"
+#~ msgstr "'for (%s)' inden i udfoldning af samme løkkevariabel"
+
+#~ msgid "case label within scope of cleanup or variable array"
+#~ msgstr "case-etiket i oprydningsområde eller i en variabel tabel"
+
+#~ msgid "wrong type argument to %s"
+#~ msgstr "forkert parametertype til %s"
+
+#~ msgid "invalid lvalue in increment"
+#~ msgstr "ugyldig venstreværdi i forøgelse"
+
+#~ msgid "invalid lvalue in decrement"
+#~ msgstr "ugyldig venstreværdi i formindskelse"
+
+#~ msgid "increment"
+#~ msgstr "forøgelse"
+
+#~ msgid "decrement"
+#~ msgstr "formindskelse"
+
+#~ msgid "duplicate array index in initializer"
+#~ msgstr "tabelindeks i startværdi optræder 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 håndteret"
+
+#~ 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 "Konstruér instruktionerne til maskinkodeoversætteren med Intel-syntaks"
+
+#~ msgid "invalid %H value"
+#~ msgstr "ugyldig %H-værdi"
+
+#~ msgid "invalid %h value"
+#~ msgstr "ugyldig %h-værdi"
+
+#~ msgid "invalid %Q value"
+#~ msgstr "ugyldig %Q-værdi"
+
+#~ msgid "invalid %q value"
+#~ msgstr "ugyldig %q-værdi"
+
+#~ msgid "invalid %p value"
+#~ msgstr "ugyldig %p-værdi"
+
+#~ msgid "invalid %B value"
+#~ msgstr "ugyldig %B-værdi"
+
+#~ msgid "invalid %C value"
+#~ msgstr "ugyldig %C-værdi"
+
+#~ msgid "invalid %E value"
+#~ msgstr "ugyldig %E-værdi"
+
+#~ msgid "invalid %r value"
+#~ msgstr "ugyldig %r-værdi"
+
+#~ msgid "-mcpu=%s does not support -mips%d"
+#~ msgstr "-mcpu=%s understøtter 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 "løbet tør for virtuel hukommelse"
+
+#~ msgid "the new ABI requires vtable thunks"
+#~ msgstr "den nye binære grænseflade kræver virtuel tabel-afdelinger"
+
+#~ msgid "`void' in parameter list must be entire list"
+#~ msgstr "'void' i en parameterliste skal udgøre 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 "(klargør 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 oprydningsområde eller i en variabel tabel"
+
+#~ msgid "initializer for unnamed base class ambiguous"
+#~ msgstr "klargøring 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 forespørgsel efter medlemsfunktionshenvisningen '%s'"
+
+#~ msgid "taking dynamic typeid of object with -fno-rtti"
+#~ msgstr "forsøg på at finde den dynamiske typeid af et objekt med -fno-rtti"
+
+#~ msgid "`com_interface' only supported with -fvtable-thunks"
+#~ msgstr "'com_interface' understøttes 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-sætningen"
+
+#~ msgid "duplicate label (%d) in switch statement"
+#~ msgstr "mere end én etiket (%d) i switch-sætningen"
+
+#~ msgid "range values `%s' and `%s' reversed"
+#~ msgstr "intervalværdierne '%s' og '%s' vender omvendt"
+
+#~ msgid "range values reversed"
+#~ msgstr "intervalværdierne 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' optræder 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 "første 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 optræder 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 "forsøg på at bruge forgiftet '%s'"
+
+#~ msgid "macroexpand: unexpected token %d (wanted LPAREN)"
+#~ msgstr "macroexpand: forventede ikke symbol %d (skulle have været 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> Inkludér indholdet af <fil> før andre filer\n"
+#~ " -imacros <fil> Læs makrodefinitionerne i <fil>\n"
+#~ " -iprefix <sti> Angiv <sti> som et præfiks til de næste to tilvalg\n"
+#~ " -iwithprefix <ktlg> Føj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -withprefixbefore <ktlg> Føj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -isystem <ktlg> Føj <ktlg> til begyndelsen af systeminkluderingsstien\n"
+#~ " -idirafter <ktlg> Føj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -I <ktlg> Føj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -I- Nøje kontrolleret inkluderingssti; se info-hjælpen\n"
+#~ " -nostdinc Søg ikke i systeminkluderingskataloger\n"
+#~ " (kataloger angivet med -isystem søges dog stadig)\n"
+#~ " -nostdinc++ Søg ikke i systeminkluderingskataloger til C++\n"
+#~ " -o <fil> Send uddata til <fil>\n"
+#~ " -pedantic Fremkom med alle advarsler påkrævet for nøje ISO C\n"
+#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n"
+#~ " -traditional Iagttag opførsel som en K&R-præprocessor\n"
+#~ " -trigraphs Understøt 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 Blokér advarselsmeddelelser\n"
+#~ " -Wtrigraphs Advar hvis der optræder 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 præprocessoradvarsler til\n"
+#~ " -M Generér afhængigheder til make\n"
+#~ " -MM Som -M, men ignorér systeminkluderingsfiler\n"
+#~ " -MD Som -M, men anbring uddata i en '.d'-fil\n"
+#~ " -MMD Som -MD, men ignorér systeminkluderingsfiler\n"
+#~ " -MG Behandl manglende inkl.-filer som genererede filer\n"
+#~ " -g3 Inkludér #define- og #undef-direktiver i uddata\n"
+#~ " -D<makro> Definér makroen <makro> med strengen '1' som værdi\n"
+#~ " -D<makro>=<værdi> Definér makroen <makro> med værdien <værdi>\n"
+#~ " -A<spørgsmål> (<svar>) Angiv at <svar> er svar på <spørgsmål>\n"
+#~ " -A-<spørgsmål> (<svar>) Angiv at <svar> ikke er svar på <spørgsmål>\n"
+#~ " -U<makro> Glem definitionen af <makro>\n"
+#~ " -v Skriv versionsnummeret\n"
+#~ " -H Skriv navnene på inkluderingsfilerne når 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 Inkludér #include-anvisninger i uddata\n"
+#~ " -ftabstop=<tal> Afstand mellem tabulatorstop i kolonnerapportering\n"
+#~ " -P Generér 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 "markér aktiv i cpp_pop_buffer"
+
+#~ msgid "length < 0 in cpp_expand_to_buffer"
+#~ msgstr "længden < 0 i cpp_expand_to_buffer"
+
+#~ msgid "backslash-newline within line comment"
+#~ msgstr "omvendt skråstreg 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 går 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 præprocessordirektiv"
+
+#~ msgid "form feed in preprocessing directive"
+#~ msgstr "sideskift i præprocessordirektiv"
+
+#~ 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 mangfoldiggøre en ikkeeksisterende undtagelsesregion."
+
+#~ msgid "Never issued previous false_label"
+#~ msgstr "Sørgede 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 "stipræfikset '%s%s' blev aldrig brugt"
+
+#~ msgid "file path prefix `%s' never used"
+#~ msgstr "stipræfikset '%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 understøttes 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 "uddataoperandbegrænsning %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 forældet)\n"
+
+#~ msgid "Data size %ld.\n"
+#~ msgstr "Datastørrelse %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 understøttes ikke på denne målarkitektur"
+
+#~ msgid "`%s' previously defined here"
+#~ msgstr "'%s' tidligere defineret her"
+
+#~ msgid "`%s' previously declared here"
+#~ msgstr "'%s' tidligere erklæret her"
+
+#~ msgid "profiling does not support code models other than medlow"
+#~ msgstr "profilgenerering understøtter ikke andre kodemodeller end medlow"
+
+#~ msgid "Control allocation order of integer registers"
+#~ msgstr "Kontrollér tildelingsordenen for heltalsregistrene"
diff --git a/gcc-4.7/libcpp/po/de.gmo b/gcc-4.7/libcpp/po/de.gmo
new file mode 100644
index 000000000..cfe3e4f01
--- /dev/null
+++ b/gcc-4.7/libcpp/po/de.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/de.po b/gcc-4.7/libcpp/po/de.po
new file mode 100644
index 000000000..b449fddb9
--- /dev/null
+++ b/gcc-4.7/libcpp/po/de.po
@@ -0,0 +1,6611 @@
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.7-b20120128\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-01-29 23:11+0100\n"
+"Last-Translator: Roland Stigge <stigge@antcom.de>\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"
+
+#: charset.c:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "Konvertierung in Zeichensatz der Ausführung"
+
+#: charset.c:804
+#, 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:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Zeichen %x ist nicht in NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universelle Zeichennamen sind nur in C++ und C99 gültig"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "die Bedeutung von '\\%c' ist in traditionellem C anders"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "In _cpp_valid_ucn, aber kein UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "unvollständiger Universal-Zeichenname %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "»%.*s« ist kein gültiges universelles Zeichen"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "'$' in Bezeichner oder Zahl"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universelles Zeichen %.*s ist nicht gültig in Bezeichner"
+
+#: charset.c:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "UCN wird in Quellzeichensatz konvertiert"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "UCN wird in Ausführungszeichensatz konvertiert"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "die Bedeutung von '\\x' ist in traditionellem C anders"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x ohne folgende Hex-Ziffern verwendet"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "Hex-Fluchtsequenz außerhalb des Wertebereiches"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "Oktal-Fluchtsequenz außerhalb des Wertebereiches"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "die Bedeutung von '\\a' ist in traditionellem C anders"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "nicht-ISO-standardkonforme Fluchtsequenz '\\%c'"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "unbekannte Fluchtsequenz: '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "unbekannte Fluchtsequenz: '\\%s'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "Fluchtsequenz wird in Zeichensatz der Ausführung konvertiert"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "Zeichenkonstante zu lang für ihren Typ"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "Zeichenkonstante mit mehreren Zeichen"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "Leere Zeichenkonstante"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "Fehler beim Konvertieren von %s nach %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "mehrere Token am Ende der Direktive #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s ist eine Erweiterung des GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s ist eine veraltete Erweiterung des GCC"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "es wird empfohlen, in traditionellem C nicht #elif zu verwenden"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionelles C ignoriert #%s mit eingerücktem #"
+
+#: directives.c:381
+#, 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:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "das Einbetten einer Direktive innerhalb von Makroargumenten ist nicht portierbar"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "der Stil der line-Direktive ist eine Erweiterung des GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ungültige Präprozessordirektive #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "»defined« kann nicht als Makroname verwendet werden"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "kein Makroname in Direktive #%s angegeben"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "Makronamen müssen Bezeichner sein"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "»%s« wird un-definiert"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "fehlendes abschließendes »>«-Zeichen"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "leerer Dateiname in #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include ist zu tief geschachtelt"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next in erster Quelldatei"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ungültiges Kennzeichen »%s« in line-Direktive"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "unerwartetes Dateiende nach #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "»%s« hinter #line ist keine positive Ganzzahl"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "Zeilennummer ist außerhalb des Wertebereiches"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "»%s« ist kein gültiger Dateiname"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "»%s« hinter # ist keine positive Ganzzahl"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "ungültige #%s-Direktive"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "Pragmas im Namespace »%s« werden ohne passende Namensauflösung registriert"
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "Pragma »%s« wird mit Namensauflösung und ohne Namespace registriert"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "»%s« wird sowohl als Pragma als auch als Pragma-Namespace registriert"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s ist bereits registriert"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s ist bereits registriert"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "Pragma mit NULL-Handler wird registriert"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once in Hauptdatei"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "ungültige #pragma push_macro Direktive"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "ungültige #pragma pop_macro Direktive"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "ungültige #pragma GCC Poison Direktive"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "schlechtes existierendes Makro »%s«"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header außerhalb include-Datei ignoriert"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "Quelldatei %s kann nicht gefunden werden"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuelle Datei ist älter als %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else ohne #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else hinter #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "die Bedingung begann hier"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif ohne #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif hinter #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif ohne #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "fehlendes '(' hinter Prädikat"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "fehlendes ')', um Antwort abzuschließen"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "Prädikatantwort ist leer"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "Behauptung ohne Prädikat"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "Prädikat muss ein Bezeichner sein"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "»%s« wieder behauptet"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "unbeendetes #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "nicht beendeter Kommentar"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "Standardausgabe"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "zu viele Dezimalpunkte in Zahl"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "Festkommakonstanten sind eine GCC-Erweiterung"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "ungültige Ziffer »%c« in binärer Konstante"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ungültige Ziffer »%c« in Oktal-Konstante"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ungültiger Prefix »0b« für Gleitkommakonstante"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "keine Ziffern in hexadezimaler Gleitkommakonstante"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "Verwendung von hexadezimaler C99-Gleitkommakonstante"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "Exponent hat keine Ziffern"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadezimale Gleitkommakonstanten benötigen Exponenten"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ungültiger Suffix »%.*s« an Gleitkommakonstante"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionelles C lehnt den Suffix »%.*s« ab"
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "Suffix an Gleitkommakonstante ist eine GCC-Erweiterung"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ungültiger Suffix »%.*s« mit hexadezimaler Gleitkommakonstante"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "dezimale Gleitkommakonstanten sind eine GCC-Erweiterung"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ungültiger Suffix »%.*s« an Ganzzahlkonstante"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "C++0x long long Ganzzahlkonstante verwendet"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "C99 long long Ganzzahlkonstante verwendet"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginäre Konstanten sind eine GCC-Erweiterung"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "binäre Konstanten sind eine GCC-Erweiterung"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "Ganzzahlkonstante ist zu groß für ihren Typ"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "Ganzzahlkonstante ist so groß, dass sie vorzeichenlos ist"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "fehlendes ')' hinter »defined«"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "Operator »defined« erfordert einen Bezeichner"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(»%s« ist ein alternatives Token for »%s« in C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "diese Verwendung von »defined« könnte nicht portierbar sein"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "benutzerdefiniertes Symbol in Präprozessorausdruck"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "Gleitkommakonstante in Präprozessorausdruck"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginäre Zahl in Präprozessorausdruck"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "»%s« ist nicht definiert"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "Assertions sind eine GCC-Erweiterung"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "Assertions sind eine veraltete Erweiterung"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "fehlender binärer Operator vor Token »%s«"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "fehlender Ausdruck zwischen '(' und ')'"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s ohne Ausdruck"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "Operator »%s« hat keinen rechten Operanden"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "Operator »%s« hat keinen linken Operanden"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ':' ohne vorangehendes '?'"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "unausgeglichener Keller in %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "unmöglicher Operator '%u'"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "fehlendes ')' in Ausdruck"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' ohne folgendes ':'"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "Ganzzahlüberlauf in Präprozessorausdruck"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "fehlendes '(' in Ausdruck"
+
+#: expr.c:1419
+#, 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:1424
+#, 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:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionelles C weist den unären Plus-Operator zurück"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "Kommaoperator in Operand von #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "Division durch Null in #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "NULL-Verzeichnis in find_file"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "ein oder mehrere PCH-Dateien wurden gefunden, aber sie sind ungültig"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "-Winvalid-pch für mehr Informationen verwenden"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s ist ein Block-Gerät"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s ist zu groß"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s ist kürzer als erwartet"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "kein Include-Pfad, um %s zu finden"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t muss ein vorzeichenloser Typ sein"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "Ziel-char ist weniger als 8 Bits breit"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "Ziel-wchar_t ist schmaler als Ziel char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "Ziel-int ist schmaler als Ziel-char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "Backslash und Newline durch Leerzeichen getrennt"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "Backslash-Newline am Dateiende"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "Trigraph ??%c in %c konvertiert"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "Trigraph ??%c ignoriert, -trigraphs zum Aktivieren verwenden"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "»/*« innerhalb des Kommentars"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s in Präprozessordirektive"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "Null-Zeichen ignoriert"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "»%.*s« ist nicht in NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "»%.*s« ist nicht in NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "Versuch, schlechtes »%s« zu verwenden"
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "Bezeichner »%s« ist ein besonderer Operatorname in C++"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "Roh-Zeichenketten-Trennsymbol länger als 16 Zeichen"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ungültiges Zeichen '%c' in Roh-Zeichenketten-Trennsymbol"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "unbeendete Roh-Zeichenkette"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "Null-Zeichen im Literal erhalten"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "fehlendes abschließendes Zeichen %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "mehrzeiliger Kommentar"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "nicht buchstabierbares Token %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Makro »%s« wird nicht benutzt"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ungültiges eingebautes Makro »%s«"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "Datum und Zeit der Datei konnten nicht bestimmt werden"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "Datum und Zeit konnten nicht bestimmt werden"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ innerhalb von Anweisung mit -fdirectives-only expandiert"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ungültiges Zeichenkettenliteral, abschließendes '\\' wird ignoriert"
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO-C99 erfordert, dass Restargumente verwendet werden"
+
+#: macro.c:687
+#, 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:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "dem Makro »%s« wurden %u Argumente übergeben, aber es nimmt nur %u"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "unvollendete Argumentliste beim Makroaufruf »%s«"
+
+#: macro.c:1026
+#, 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:1694
+#, 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 Argument %2$d des Makros %1$s: Leere Makroargumente sind nach ISO-C90 und ISO-C++98 unbestimmt"
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "doppelter Makroparameter »%s«"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "»%s« darf nicht in Makroparameterliste auftreten"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "Makroparameter müssen mit Komma getrennt sein"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "Parametername fehlt"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyme variadische Makros wurden in C99 eingeführt"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO-C erlaubt keine benannten variadischen Makros"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "fehlendes ')' in Makroparameterliste"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' kann nicht an den Enden einer Makroexpansion auftreten"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO-C99 erfordert Whitespace hinter Makroname"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "Whitespace hinter Makroname fehlt"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' wird nicht von einem Makroparameter gefolgt"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "»%s« redefiniert"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "dies ist die Stelle der vorherigen Definition"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "Makroargument »%s« würde in traditionellem C zum String gewandelt werden"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "beim Schreiben des vorkompilierten Headers"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: nicht verwendet, da »%.*s« vergiftet ist"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: nicht verwendet, da »%.*s« nicht definiert"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: nicht verwendet, da »%s« definiert ist"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: nicht verwendet, da »__COUNTER__« ungültig ist"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "beim Lesen des vorkompilierten Headers"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "Rekursion bei Expansion des Makros »%s« entdeckt"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "Syntaxfehler in Makroparameterliste"
+
+#~ 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 Fluchtsequenz: '\\%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"
+
+# can we use j/n here, too?
+# 2002-04-23 18:57:43 CEST -ke-
+#~ msgid ""
+#~ "\n"
+#~ "Go ahead? (y or n) "
+#~ msgstr ""
+#~ "\n"
+#~ "Fortfahren? (y oder n) "
+
+#~ msgid ""
+#~ "Internal error: %s (program %s)\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Interner Fehler: %s (Programm %s)\n"
+#~ "Bitte senden Sie einen vollständigen Fehlerbericht\n"
+#~ "auf Englisch ein; Fehler in der deutschen Ãœbersetzung\n"
+#~ "sind an de@li.org zu melden.\n"
+#~ "Gehen Sie gemäß den Hinweisen in %s vor."
+
+#~ msgid "# %s %.2f %.2f\n"
+#~ msgstr "# %s %.2f %.2f\n"
+
+#~ msgid "Usage: %s [options] file...\n"
+#~ msgstr "Aufruf: %s [Optionen] Datei...\n"
+
+#~ msgid "Options:\n"
+#~ msgstr "Optionen:\n"
+
+#~ msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+#~ msgstr " -pass-exit-codes Ende mit höchstem Rückgabe-Code einer Phase\n"
+
+#~ msgid " --help Display this information\n"
+#~ msgstr " --help Diese Informationen anzeigen\n"
+
+#~ msgid " --target-help Display target specific command line options\n"
+#~ msgstr " --target-help Zielspezifische Kommandozeilenoptionen anzeigen\n"
+
+#~ msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+#~ msgstr " ('-v --help' zum Anzeigen der Kommandozeilenoptionen von Subprozessen verwenden)\n"
+
+#~ msgid " -dumpspecs Display all of the built in spec strings\n"
+#~ msgstr " -dumpspecs Alle eingebauten Spezifikationszeichenketten anzeigen\n"
+
+#~ msgid " -dumpversion Display the version of the compiler\n"
+#~ msgstr " -dumpversion Compilerversion anzeigen\n"
+
+#~ msgid " -dumpmachine Display the compiler's target processor\n"
+#~ msgstr " -dumpmachine Zielprozessor des Compilers anzeigen\n"
+
+#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+#~ msgstr " -print-search-dirs Verzeichnisse im Suchpfad des Compilers anzeigen\n"
+
+#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+#~ msgstr " -print-libgcc-file-name Name der Begleitbibliothek des Compilers anzeigen\n"
+
+#~ msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+#~ msgstr " -print-file-name=<lib> Vollen Pfad zur Bibliothek <lib> anzeigen\n"
+
+#~ msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+#~ msgstr " -print-prog-name=<prog> Vollen Pfad zur Compilerkomponente <prog> anzeigen\n"
+
+#~ msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+#~ msgstr " -print-multi-directory Wurzelverzeichnis für Versionen von libgcc anzeigen\n"
+
+#~ msgid ""
+#~ " -print-multi-lib Display the mapping between command line options and\n"
+#~ " multiple library search directories\n"
+#~ msgstr ""
+#~ " -print-multi-lib Abbildung zwischen Kommandozeilenoptionen und\n"
+#~ " mehreren Suchverzeichnissen für Bibliotheken anzeigen\n"
+
+#~ msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+#~ msgstr ""
+#~ " -print-multi-os-directory Relativen Pfad zu Betriebssystembibliotheken\n"
+#~ " anzeigen\n"
+
+#~ msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+#~ msgstr " -Wa,<Optionen> Komma-getrennte <Optionen> an Assembler übergeben\n"
+
+#~ msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+#~ msgstr " -Wp,<Optionen> Komma-getrennte <Optionen> an Präprozessor übergeben\n"
+
+#~ msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#~ msgstr " -Wl,<Optionen> Komma-getrennte <Optionen> an Linker übergeben\n"
+
+#~ msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
+#~ msgstr " -Xassembler <arg> <arg> an den Assembler übergeben\n"
+
+#~ msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
+#~ msgstr " -Xpreprocessor <arg> <arg> an den Präprozessor übergeben\n"
+
+#~ msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+#~ msgstr " -Xlinker <arg> <arg> an den Linker übergeben\n"
+
+#~ msgid " -save-temps Do not delete intermediate files\n"
+#~ msgstr " -save-temps Temporäre Dateien nicht löschen\n"
+
+#~ msgid " -pipe Use pipes rather than intermediate files\n"
+#~ msgstr " -pipe Pipes statt temporärer Dateien verwenden\n"
+
+#~ msgid " -time Time the execution of each subprocess\n"
+#~ msgstr " -time Zeit für Ausführung jedes Subprozesses stoppen\n"
+
+#~ msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+#~ msgstr ""
+#~ " -specs=<Datei> Eingebaute Spezifikationen mit Inhalt der <Datei>\n"
+#~ " überschreiben\n"
+
+#~ msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+#~ msgstr " -std=<Standard> Annehmen, dass die Eingabequellen für <Standard> sind\n"
+
+#~ msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+#~ msgstr " -B <Verzeichnis> <Verzeichnis> zum Suchpfad des Compilers hinzufügen\n"
+
+#~ msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+#~ msgstr ""
+#~ " -b <Maschine> GCC für die Ziel-<Maschine> laufen lassen, falls\n"
+#~ " installiert\n"
+
+#~ msgid " -V <version> Run gcc version number <version>, if installed\n"
+#~ msgstr " -V <Version> GCC <Version> laufen lassen, falls installiert\n"
+
+#~ msgid " -v Display the programs invoked by the compiler\n"
+#~ msgstr " -v Vom Compiler aufgerufene Programme anzeigen\n"
+
+#~ msgid " -### Like -v but options quoted and commands not executed\n"
+#~ msgstr ""
+#~ " -### Wie -v, aber mit zitierten Optionen und nicht\n"
+#~ " ausgeführten Befehlen\n"
+
+#~ msgid " -E Preprocess only; do not compile, assemble or link\n"
+#~ msgstr ""
+#~ " -E Nur Präprozessor, kein Compiler, Assembler oder\n"
+#~ " Binder\n"
+
+#~ msgid " -S Compile only; do not assemble or link\n"
+#~ msgstr " -S Nur kompilieren, nicht assemblieren oder binden\n"
+
+#~ msgid " -c Compile and assemble, but do not link\n"
+#~ msgstr " -c Nur kompilieren und assemblieren, aber nicht binden\n"
+
+#~ msgid " -o <file> Place the output into <file>\n"
+#~ msgstr " -o <Datei> Ausgabe in <Datei> schreiben\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 <Sprache> Sprache der folgenden Eingabedateien angeben\n"
+#~ " Zulässige Sprachen sind: c c++ assembler none\n"
+#~ " 'none' bedeutet den Rückfall auf das Standard-\n"
+#~ " verhalten, die Sprache aufgrund der Dateinamens-\n"
+#~ " erweiterung zu vermuten\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"
+#~ "Optionen, die mit -g, -f, -m, -O, -W, oder --param beginnen, werden automatisch\n"
+#~ " an die verschiedenen Subprozesse, die von %s aufgerufen werden, übergeben.\n"
+#~ " Um andere Optionen an diese Prozesse zu übergeben, müssen die Optionen\n"
+#~ " -W<Buchstabe> verwendet werden.\n"
+
+#~ msgid "`-%c' option must have argument"
+#~ msgstr "Die Option »-%c« muss ein Argument haben"
+
+#~ msgid "couldn't run `%s': %s"
+#~ msgstr "konnte »%s« nicht ausführen: %s"
+
+#~ msgid "%s (GCC) %s\n"
+#~ msgstr "%s (GCC) %s\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 ""
+#~ "Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es\n"
+#~ "gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE.\n"
+#~ "\n"
+
+#~ msgid "argument to `-Xlinker' is missing"
+#~ msgstr "Argument für »-Xlinker« fehlt"
+
+#~ msgid "argument to `-Xpreprocessor' is missing"
+#~ msgstr "Argument für »-Xpreprocessor« fehlt"
+
+#~ msgid "argument to `-Xassembler' is missing"
+#~ msgstr "Argument für »-Xassembler« fehlt"
+
+#~ msgid "argument to `-l' is missing"
+#~ msgstr "Argument für »-l« fehlt"
+
+#~ msgid "argument to `-specs' is missing"
+#~ msgstr "Argument für »-specs« fehlt"
+
+#~ msgid "argument to `-specs=' is missing"
+#~ msgstr "Argument für »-specs=« fehlt"
+
+#~ msgid "`-%c' must come at the start of the command line"
+#~ msgstr "»-%c« muss am Anfang der Kommandozeile stehen"
+
+#~ msgid "argument to `-B' is missing"
+#~ msgstr "Argument für »-B« fehlt"
+
+#~ msgid "warning: -pipe ignored because -save-temps specified"
+#~ msgstr "Warnung: -pipe ignoriert, da -save-temps angegeben"
+
+#~ msgid "warning: -pipe ignored because -time specified"
+#~ msgstr "Warnung: -pipe ignoriert, da -time angegeben"
+
+#~ msgid "argument to `-x' is missing"
+#~ msgstr "Argument für »-x« fehlt"
+
+#~ msgid "argument to `-%s' is missing"
+#~ msgstr "Argument für »-%s« fehlt"
+
+#~ msgid "warning: `-x %s' after last input file has no effect"
+#~ msgstr "Warnung: »-x %s« hinter letzter Eingabedatei hat keine Wirkung"
+
+#~ msgid "invalid specification! Bug in cc"
+#~ msgstr "ungültige Spezifikation! Fehler in cc"
+
+#~ msgid "%s\n"
+#~ msgstr "%s\n"
+
+#~ msgid "spec failure: '%%*' has not been initialized by pattern match"
+#~ msgstr "Spezifikationsfehler: »%%*« wurde nicht durch Mustererkennung initialisiert"
+
+#~ msgid "warning: use of obsolete %%[ operator in specs"
+#~ msgstr "Warnung: Verwendung des veralteten Operators %%[ in Spezifikation"
+
+#~ msgid "Processing spec %c%s%c, which is '%s'\n"
+#~ msgstr "Verarbeite Spezifikation %c%s%c, welche »%s« ist\n"
+
+#~ msgid "spec failure: unrecognized spec option '%c'"
+#~ msgstr "Spezifikationsfehler: nicht erkannte Option »%c«"
+
+#~ msgid "unknown spec function `%s'"
+#~ msgstr "unbekannte Spezifikationsfunktion »%s«"
+
+#~ msgid "error in args to spec function `%s'"
+#~ msgstr "Fehler in Argumenten für Spezifikationsfunktion »%s«"
+
+#~ msgid "malformed spec function name"
+#~ msgstr "schlechter Name für Spezifikationsfunktion"
+
+#~ msgid "no arguments for spec function"
+#~ msgstr "keine Argumente für Spezifikationsfunktion"
+
+#~ msgid "malformed spec function arguments"
+#~ msgstr "schlechte Argumente für Spezifikationsfunktion"
+
+#~ msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
+#~ msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_SUFFIX_SPEC."
+
+#~ msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
+#~ msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_HEADERS_SUFFIX_SPEC."
+
+#~ msgid "unrecognized option `-%s'"
+#~ msgstr "nicht erkannte Option »-%s«"
+
+#~ msgid "install: %s%s\n"
+#~ msgstr "installiere: %s%s\n"
+
+#~ msgid "programs: %s\n"
+#~ msgstr "Programme: %s\n"
+
+#~ msgid "libraries: %s\n"
+#~ msgstr "Bibliotheken: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Zum Einsenden von Fehlerberichten (auf Englisch) lesen Sie bitte die\n"
+#~ "folgenden Hinweise; Fehler in der deutschen Ãœbersetzung sind an de@li.org\n"
+#~ "zu melden:\n"
+
+#~ msgid "Configured with: %s\n"
+#~ msgstr "Konfiguriert mit: %s\n"
+
+#~ msgid "Thread model: %s\n"
+#~ msgstr "Thread-Modell: %s\n"
+
+#~ msgid "gcc version %s\n"
+#~ msgstr "gcc-Version %s\n"
+
+#~ msgid "gcc driver version %s executing gcc version %s\n"
+#~ msgstr "gcc-Treiberversion %s führt gcc Version %s aus\n"
+
+#~ msgid "no input files"
+#~ msgstr "keine Eingabedateien"
+
+#~ msgid "%s: linker input file unused because linking not done"
+#~ msgstr "%s: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht"
+
+#~ msgid "cannot specify -o with -c or -S and multiple languages"
+#~ msgstr "-o kann nicht mit -c oder -S und mehreren Sprachen angegeben werden"
+
+#~ msgid "%s: %s compiler not installed on this system"
+#~ msgstr "%s: %s-Compiler ist auf diesem System nicht installiert"
+
+#~ msgid "language %s not recognized"
+#~ msgstr "Sprache %s nicht erkannt"
+
+#~ msgid "internal gcc abort"
+#~ msgstr "interner Abruch des gcc"
+
+#~ msgid "Internal gcov abort.\n"
+#~ msgstr "Interner gcov-Abbruch.\n"
+
+#~ msgid ""
+#~ "Usage: gcov [OPTION]... SOURCEFILE\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Aufruf: gcov [OPTION]... QUELLDATEI\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Print code coverage information.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Information zur Code-Ãœberdeckung ausgeben.\n"
+#~ "\n"
+
+#~ msgid " -h, --help Print this help, then exit\n"
+#~ msgstr " -h, --help Diese Hilfe anzeigen\n"
+
+#~ msgid " -v, --version Print version number, then exit\n"
+#~ msgstr " -v, --version Versionsnummer anzeigen\n"
+
+#~ msgid " -a, --all-blocks Show information for every basic block\n"
+#~ msgstr " -a, --all-blocks Informationen für jeden Basisblock zeigen\n"
+
+#~ msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+#~ msgstr " -b, --branch-probabilities Zweigwahrscheinlichkeiten in Ausgabe aufnehmen\n"
+
+#~ msgid ""
+#~ " -c, --branch-counts Given counts of branches taken\n"
+#~ " rather than percentages\n"
+#~ msgstr " -c, --branch-counts Angegebene Zweigzahlen statt Anteilen nehmen\n"
+
+#~ msgid " -n, --no-output Do not create an output file\n"
+#~ msgstr " -n, --no-output Keine Ausgabedatei erzeugen\n"
+
+#~ msgid ""
+#~ " -l, --long-file-names Use long output file names for included\n"
+#~ " source files\n"
+#~ msgstr ""
+#~ " -l, --long-file-names Lange Dateinamen für Ausgabedateien für\n"
+#~ " eingefügte Quelldateien verwenden\n"
+
+#~ msgid " -f, --function-summaries Output summaries for each function\n"
+#~ msgstr " -f, --function-summaries Ausgabezusammenfassungen für jede Funktion\n"
+
+#~ msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+#~ msgstr ""
+#~ " -o, --object-directory DIR|FILE In DIR oder aufgerufener Datei FILE nach\n"
+#~ " Objektdateien suchen\n"
+
+#~ msgid " -p, --preserve-paths Preserve all pathname components\n"
+#~ msgstr " -p, --preserve-paths Alle Pfadnamenskomponenten bewahren\n"
+
+#~ msgid " -u, --unconditional-branches Show unconditional branch counts too\n"
+#~ msgstr " -u, --unconditional-branches Auch unbedingte Zweigzähler zeigen\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ "%s.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Zum Einsenden von Fehlerberichten (auf Englisch) lesen Sie bitte die Hinweise in:\n"
+#~ "%s.\n"
+#~ "Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+
+#~ msgid "gcov (GCC) %s\n"
+#~ msgstr "gcov (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.\n"
+#~ "There is NO warranty; not even for MERCHANTABILITY or \n"
+#~ "FITNESS FOR A PARTICULAR PURPOSE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es\n"
+#~ "gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE.\n"
+#~ "\n"
+
+#~ msgid "%s:no functions found\n"
+#~ msgstr "%s: keine Funktionen gefunden\n"
+
+#~ msgid "\n"
+#~ msgstr "\n"
+
+#~ msgid "%s:creating `%s'\n"
+#~ msgstr "%s: Erzeugen von »%s«\n"
+
+#~ msgid "%s:error writing output file `%s'\n"
+#~ msgstr "%s: Fehler beim Schreiben der Ausgabedatei »%s«\n"
+
+#~ msgid "%s:could not open output file `%s'\n"
+#~ msgstr "%s: Ausgabedatei %s konnte nicht geöffnet werden\n"
+
+#~ msgid "%s:cannot open graph file\n"
+#~ msgstr "%s: Graph-Datei kann nicht geöffnet werden\n"
+
+#~ msgid "%s:not a gcov graph file\n"
+#~ msgstr "%s: keine gcov-Graph-Datei\n"
+
+#~ msgid "%s:version `%.4s', prefer `%.4s'\n"
+#~ msgstr "%s: Version »%.4s«, aber »%.4s« wird bevorzugt\n"
+
+#~ msgid "%s:already seen blocks for `%s'\n"
+#~ msgstr "%s: bereits gesehene Blöcke für »%s«\n"
+
+#~ msgid "%s:corrupted\n"
+#~ msgstr "%s: beschädigt\n"
+
+#~ msgid "%s:cannot open data file\n"
+#~ msgstr "%s: kann nicht geöffnet werden\n"
+
+#~ msgid "%s:not a gcov data file\n"
+#~ msgstr "%s: keine gcov-Datei\n"
+
+#~ msgid "%s:version `%.4s', prefer version `%.4s'\n"
+#~ msgstr "%s: Version »%.4s«, aber Version »%.4s« wird bevorzugt\n"
+
+#~ msgid "%s:stamp mismatch with graph file\n"
+#~ msgstr "%s: Marke passt nicht zur Graph-Datei\n"
+
+#~ msgid "%s:unknown function `%u'\n"
+#~ msgstr "%s: unbekannte Funktion »%u«\n"
+
+#~ msgid "%s:profile mismatch for `%s'\n"
+#~ msgstr "%s: Profil passt nicht für `%s'\n"
+
+#~ msgid "%s:overflowed\n"
+#~ msgstr "%s: übergelaufen\n"
+
+#~ msgid "%s:`%s' lacks entry and/or exit blocks\n"
+#~ msgstr "%s: Eintrag und/oder Exit-Blöcke fehlen in »%s«\n"
+
+#~ msgid "%s:`%s' has arcs to entry block\n"
+#~ msgstr "%s: »%s« hat Bögen zum Eintrittsblock\n"
+
+#~ msgid "%s:`%s' has arcs from exit block\n"
+#~ msgstr "%s: »%s« hat Bögen vom Eintrittsblock\n"
+
+#~ msgid "%s:graph is unsolvable for `%s'\n"
+#~ msgstr "%s: Graph ist für »%s« unlösbar\n"
+
+#~ msgid "%s `%s'\n"
+#~ msgstr "%s: »%s«\n"
+
+#~ msgid "Lines executed:%s of %d\n"
+#~ msgstr "%s von %d Zeilen ausgeführt\n"
+
+#~ msgid "No executable lines"
+#~ msgstr "Keine ausführbaren Zeilen"
+
+#~ msgid "Branches executed:%s of %d\n"
+#~ msgstr "%s von %d Zweigen ausgeführt\n"
+
+#~ msgid "Taken at least once:%s of %d\n"
+#~ msgstr "%s von %d Zweigen mindestens einmal genommen\n"
+
+#~ msgid "No branches\n"
+#~ msgstr "Keine Zweige\n"
+
+#~ msgid "Calls executed:%s of %d\n"
+#~ msgstr "%s von %d Aufrufe ausgeführt\n"
+
+#~ msgid "No calls\n"
+#~ msgstr "Keine Aufrufe\n"
+
+#~ msgid "%s:no lines for `%s'\n"
+#~ msgstr "%s: keine Zeilen für »%s«\n"
+
+#~ msgid "call %2d returned %s\n"
+#~ msgstr "Aufruf %2d gab %s zurück\n"
+
+#~ msgid "call %2d never executed\n"
+#~ msgstr "Aufruf %2d niemals ausgeführt\n"
+
+#~ msgid "branch %2d taken %s%s\n"
+#~ msgstr "Zweig %2d wurde genommen: %s%s\n"
+
+#~ msgid "branch %2d never executed\n"
+#~ msgstr "Zweig %2d niemals ausgeführt\n"
+
+#~ msgid "unconditional %2d taken %s\n"
+#~ msgstr "unbedingtes %2d, genommen: %s\n"
+
+#~ msgid "unconditional %2d never executed\n"
+#~ msgstr "unbedingtes %2d niemals ausgeführt\n"
+
+#~ msgid "%s:cannot open source file\n"
+#~ msgstr "%s: Quelldatei kann nicht geöffnet werden\n"
+
+#~ msgid "%s:source file is newer than graph file `%s'\n"
+#~ msgstr "%s: Quelldatei ist neuer als Graph-Datei »%s«\n"
+
+#~ msgid "GCSE disabled"
+#~ msgstr "GCSE ausgeschaltet"
+
+#~ msgid "NULL pointer checks disabled"
+#~ msgstr "NULL-Zeiger Tests ausgeschaltet"
+
+#~ msgid "jump bypassing disabled"
+#~ msgstr "Sprungumgehungen ausgeschaltet"
+
+#~ msgid "%s: %d basic blocks and %d edges/basic block"
+#~ msgstr "%s: %d Basis-Blöcke und %d Kanten/Basis-Blöcke"
+
+#~ msgid "%s: %d basic blocks and %d registers"
+#~ msgstr "%s: %d Basis-Blöcke und %d Register"
+
+#~ msgid "can't write PCH file: %m"
+#~ msgstr "PCH-Datei kann nicht geschrieben werden: %m"
+
+#~ msgid "can't get position in PCH file: %m"
+#~ msgstr "Position in PCH-Datei kann nicht ermittelt werden: %m"
+
+#~ msgid "can't write padding to PCH file: %m"
+#~ msgstr "Auffüllung für PCH-Datei kann nicht geschrieben werden: %m"
+
+#~ msgid "can't read PCH file: %m"
+#~ msgstr "PCH-Datei kann nicht gelesen werden: %m"
+
+#~ msgid "had to relocate PCH"
+#~ msgstr "PCH musste verschoben werden"
+
+#~ msgid "open /dev/zero: %m"
+#~ msgstr "/dev/zero öffnen: %m"
+
+#~ msgid "can't write PCH file"
+#~ msgstr "PCH-Datei kann nicht geschrieben werden"
+
+#~ msgid "Generating PCH files is not supported when using ggc-simple.c"
+#~ msgstr "Das Erzeugen von PCH-Dateien wird bei Verwendung von ggc-simple.c nicht unterstützt"
+
+#~ msgid "%s cannot be used in asm here"
+#~ msgstr "%s kann nicht hier in »asm« verwendet werden"
+
+#~ msgid "can't open %s: %m"
+#~ msgstr "%s kann nicht geöffnet werden: %m"
+
+#~ msgid "fix_sched_param: unknown param: %s"
+#~ msgstr "fix_sched_param: unbekannter Parameter: %s"
+
+#~ msgid "function cannot be inline"
+#~ msgstr "Funktion kann nicht »inline« sein"
+
+#~ msgid "varargs function cannot be inline"
+#~ msgstr "Varargs-Funktion kann nicht »inline« sein"
+
+#~ msgid "function using alloca cannot be inline"
+#~ msgstr "alloca benutzende Funktion kann nicht »inline« sein"
+
+#~ msgid "function using longjmp cannot be inline"
+#~ msgstr "longjmp benutzende Funktion kann nicht »inline« sein"
+
+#~ msgid "function using setjmp cannot be inline"
+#~ msgstr "setjmp benutzende Funktion kann nicht »inline« sein"
+
+#~ msgid "function uses __builtin_eh_return"
+#~ msgstr "Funktion verwendet __builtin_eh_return"
+
+#~ msgid "function with nested functions cannot be inline"
+#~ msgstr "Funktion mit geschachtelten Funktionen kann nicht »inline« sein"
+
+#~ msgid "function with label addresses used in initializers cannot inline"
+#~ msgstr "Funktion mit Markenadressen in Initialisierungen kann nicht »inline« sein"
+
+#~ msgid "function too large to be inline"
+#~ msgstr "Funktion zu groß um »inline« sein zu können"
+
+#~ msgid "no prototype, and parameter address used; cannot be inline"
+#~ msgstr "kein Prototyp, und Parameteradresse verwendet; kann nicht »inline« sein"
+
+#~ msgid "inline functions not supported for this return value type"
+#~ msgstr "»inline«-Funktionen für diesen Rückgabetyp nicht unterstützt"
+
+#~ msgid "function with varying-size return value cannot be inline"
+#~ msgstr "Funktion mit Rückgabetyp variabler Größe kann nicht »inline« sein"
+
+#~ msgid "function with varying-size parameter cannot be inline"
+#~ msgstr "Funktion mit Parameter variabler Größe kann nicht »inline« sein"
+
+#~ msgid "function with transparent unit parameter cannot be inline"
+#~ msgstr "Funktion mit transparentem Einheiten-Parameter kann nicht »inline« sein"
+
+#~ msgid "function with computed jump cannot inline"
+#~ msgstr "Funktion mit berechnetem Sprung kann nicht »inline« sein"
+
+#~ msgid "function with nonlocal goto cannot be inline"
+#~ msgstr "Funktion mit nichtlokalem Goto kann nicht »inline« sein"
+
+#~ msgid "function with target specific attribute(s) cannot be inlined"
+#~ msgstr "Funktion mit zielspezifischen Attributen kann nicht »inline« sein"
+
+#~ msgid "%Hwill never be executed"
+#~ msgstr "%Hwird niemals ausgeführt"
+
+#~ msgid "This switch lacks documentation"
+#~ msgstr "Dieser Schalter ist undokumentiert"
+
+#~ msgid "command line option \"%s\" is valid for %s but not for %s"
+#~ msgstr "Kommandozeilenoption \"%s\" ist gültig für %s, aber nicht für %s"
+
+#~ msgid "missing argument to \"%s\""
+#~ msgstr "fehlendes Argument für »%s«"
+
+#~ msgid "argument to \"%s\" should be a non-negative integer"
+#~ msgstr "Argument von »%s« sollte eine nicht-negative Ganzzahl sein"
+
+#~ msgid "unrecognized command line option \"%s\""
+#~ msgstr "nicht erkannte Kommandozeilenoption »%s«"
+
+#~ msgid "-Wuninitialized is not supported without -O"
+#~ msgstr "-Wuninitialized wird nicht ohne -O unterstützt"
+
+#~ msgid "unrecognized register name \"%s\""
+#~ msgstr "unbekannter Registername: \"%s\""
+
+#~ msgid "unknown tls-model \"%s\""
+#~ msgstr "unbekanntes tls-Modell »%s«"
+
+#~ msgid "-fwritable-strings is deprecated; see documentation for details"
+#~ msgstr "-fwritable-strings veraltet, schauen Sie in die Dokumentation für Details"
+
+#~ msgid "%s: --param arguments should be of the form NAME=VALUE"
+#~ msgstr "%s: »--param«-Argumente sollten von der Form NAME=VALUE sein"
+
+#~ msgid "invalid --param value `%s'"
+#~ msgstr "ungültiger Wert für --param: »%s«"
+
+#~ msgid "target system does not support debug output"
+#~ msgstr "Zielsystem unterstützt nicht Testausgaben"
+
+#~ msgid "debug format \"%s\" conflicts with prior selection"
+#~ msgstr "Testformat »%s« steht in Konflikt mit vorheriger Auswahl"
+
+#~ msgid "unrecognised debug output level \"%s\""
+#~ msgstr "Testausgabestufe »%s« nicht erkannt"
+
+#~ msgid "debug output level %s is too high"
+#~ msgstr "Testausgabestufe »%s« ist zu groß"
+
+#~ msgid "The following options are language-independent:\n"
+#~ msgstr "Die folgenden Optionen sind sprach-unabhängig:\n"
+
+#~ msgid ""
+#~ "The %s front end recognizes the following options:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Das %s-Frontend erkennt die folgenden Optionen:\n"
+#~ "\n"
+
+#~ msgid "The --param option recognizes the following as parameters:\n"
+#~ msgstr "Die Option »--param« erkennt die folgenden Parameter:\n"
+
+#~ msgid "invalid parameter `%s'"
+#~ msgstr "ungültiger Parameter »%s«"
+
+#~ msgid "corrupted profile info: run_max * runs < sum_max"
+#~ msgstr "beschädigte Profilinformation: run_max * runs < sum_max"
+
+#~ msgid "corrupted profile info: sum_all is smaller than sum_max"
+#~ msgstr "beschädigte Profilinformation: sum_all ist kleiner als sum_max"
+
+#~ msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
+#~ msgstr "Info zum beschädigten Profil: Kante von %i nach %i überschreitet Höchstzahl"
+
+#~ msgid "corrupted profile info: number of iterations for basic block %d thought to be %i"
+#~ msgstr "Info zum beschädigten Profil: Anzahl der Durchläufe des Basisblocks %d sollte %i sein"
+
+#~ msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i"
+#~ msgstr "Info zum beschädigten Profil: Anzahl der Ausführungen der Kante »%d-%d« sollte %i sein"
+
+#~ msgid "%s: internal abort\n"
+#~ msgstr "%s: interner Abbruch\n"
+
+#~ msgid "%s: error writing file `%s': %s\n"
+#~ msgstr "%s: Fehler beim Schreiben der Datei »%s«: %s\n"
+
+#~ msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+#~ msgstr "%s: Aufruf '%s [ -VqfnkN ] [ -i <istring> ] [ Dateiname ... ]'\n"
+
+#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+#~ msgstr "%s: Aufruf '%s [ -VqfnkNlgC ] [ -B <VerzName> ] [ Dateiname ... ]'\n"
+
+#~ msgid "%s: warning: no read access for file `%s'\n"
+#~ msgstr "%s: Warnung: kein Leserecht für Datei »%s«\n"
+
+#~ msgid "%s: warning: no write access for file `%s'\n"
+#~ msgstr "%s: Warnung: kein Schreibrecht für Datei »%s«\n"
+
+#~ msgid "%s: warning: no write access for dir containing `%s'\n"
+#~ msgstr "%s: Warnung: kein Schreibrecht für Verzeichnis von »%s«\n"
+
+#~ msgid "%s: invalid file name: %s\n"
+#~ msgstr "%s: ungültiger Dateiname: %s\n"
+
+#~ msgid "%s: %s: can't get status: %s\n"
+#~ msgstr "%s: %s: kann Status nicht ermitteln: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: fatal error: aux info file corrupted at line %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: kritischer Fehler: Datei mit Hilfsinformationen beschädigt in Zeile %d\n"
+
+#~ msgid "%s:%d: declaration of function `%s' takes different forms\n"
+#~ msgstr "%s:%d: Deklaration der Funktion »%s« nimmt verschiedene Formen an\n"
+
+#~ msgid "%s: compiling `%s'\n"
+#~ msgstr "%s: »%s« wird kompiliert\n"
+
+#~ msgid "%s: wait: %s\n"
+#~ msgstr "%s: warten: %s\n"
+
+#~ msgid "%s: subprocess got fatal signal %d\n"
+#~ msgstr "%s: Subprozess empfing kritischen Fehler %d\n"
+
+#~ msgid "%s: %s exited with status %d\n"
+#~ msgstr "%s: %s beendet mit Status %d\n"
+
+#~ msgid "%s: warning: missing SYSCALLS file `%s'\n"
+#~ msgstr "%s: Warnung: SYSCALLS-Datei »%s« fehlt\n"
+
+#~ msgid "%s: can't read aux info file `%s': %s\n"
+#~ msgstr "%s: Datei mit Hilfsinformationen »%s« kann nicht gelesen werden: %s\n"
+
+#~ msgid "%s: can't get status of aux info file `%s': %s\n"
+#~ msgstr "%s: Status der Datei mit Hilfsinformationen »%s« kann nicht ermittelt werden: %s\n"
+
+#~ msgid "%s: can't open aux info file `%s' for reading: %s\n"
+#~ msgstr "%s: Datei mit Hilfsinformationen »%s« kann nicht zum Lesen geöffnet werden: %s\n"
+
+#~ msgid "%s: error reading aux info file `%s': %s\n"
+#~ msgstr "%s: Fehler beim Lesen der Datei mit Hilfsinformationen »%s«: %s\n"
+
+#~ msgid "%s: error closing aux info file `%s': %s\n"
+#~ msgstr "%s: Fehler beim Schließen der Datei mit Hilfsinformationen »%s«: %s\n"
+
+#~ msgid "%s: can't delete aux info file `%s': %s\n"
+#~ msgstr "%s: Fehler beim Löschen der Datei mit Hilfsinformationen »%s«: %s\n"
+
+#~ msgid "%s: can't delete file `%s': %s\n"
+#~ msgstr "%s: Fehler beim Löschen der Datei »%s«: %s\n"
+
+#~ msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+#~ msgstr "%s: Warnung: Fehler beim Umbenennen der Datei »%s« in »%s«: %s\n"
+
+#~ msgid "%s: conflicting extern definitions of '%s'\n"
+#~ msgstr "%s: externe Definitionen von »%s« stehen in Konflikt\n"
+
+#~ msgid "%s: declarations of '%s' will not be converted\n"
+#~ msgstr "%s: Deklarationen von »%s« werden nicht konvertiert\n"
+
+#~ msgid "%s: conflict list for '%s' follows:\n"
+#~ msgstr "%s: Konfliktliste für »%s« folgt:\n"
+
+#~ msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+#~ msgstr "%s: Warnung: Formalliste von %s(%d) für Funktion »%s« verwendet\n"
+
+#~ msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+#~ msgstr "%s: %d: »%s« verwendet, fehlt jedoch in SYSCALLS\n"
+
+#~ msgid "%s: %d: warning: no extern definition for `%s'\n"
+#~ msgstr "%s: %d: Warnung: keine externe Definition für »%s«\n"
+
+#~ msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+#~ msgstr "%s: Warnung: keine statische Definition für »%s« in Datei »%s«\n"
+
+#~ msgid "%s: multiple static defs of `%s' in file `%s'\n"
+#~ msgstr "%s: mehrere statische Definitionen von »%s« in Datei »%s«\n"
+
+#~ msgid "%s: %d: warning: source too confusing\n"
+#~ msgstr "%s: %d: Warnung: Quelle zu verworren\n"
+
+#~ msgid "%s: %d: warning: varargs function declaration not converted\n"
+#~ msgstr "%s: %d: Warnung: Funktionsdeklaration mit variablen Argumenten nicht konvertiert\n"
+
+#~ msgid "%s: declaration of function `%s' not converted\n"
+#~ msgstr "%s: Deklaration der Funktion »%s« nicht konvertiert\n"
+
+#~ msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+#~ msgstr "%s: Warnung: zu viele Parameterlisten in Deklaration von »%s«\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: warning: too few parameter lists in declaration of `%s'\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: Warnung: zu wenige Parameterlisten in Deklaration von »%s«\n"
+
+#~ msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+#~ msgstr "%s: %d: Warnung: »%s« gefunden, aber »%s« erwartet\n"
+
+#~ msgid "%s: local declaration for function `%s' not inserted\n"
+#~ msgstr "%s: lokale Deklaration für Funktion »%s« nicht eingefügt\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: %d: warning: can't add declaration of `%s' into macro call\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: %d: Warnung: kann Deklaration von »%s« nicht zu Makro-Aufruf hinzufügen\n"
+
+#~ msgid "%s: global declarations for file `%s' not inserted\n"
+#~ msgstr "%s: globale Deklarationen für Datei »%s« wurden nicht eingefügt\n"
+
+#~ msgid "%s: definition of function `%s' not converted\n"
+#~ msgstr "%s: Definition der Funktion »%s« nicht konvertiert\n"
+
+#~ msgid "%s: %d: warning: definition of %s not converted\n"
+#~ msgstr "%s: %d: Warnung: Definition von %s nicht konvertiert\n"
+
+#~ msgid "%s: found definition of `%s' at %s(%d)\n"
+#~ msgstr "%s: Definition von »%s« an Stelle %s(%d) gefunden\n"
+
+#~ msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+#~ msgstr "%s: %d: Warnung: »%s« durch Präprozessor ausgeschlossen\n"
+
+#~ msgid "%s: function definition not converted\n"
+#~ msgstr "%s: Funktionsdefinition nicht konvertiert\n"
+
+#~ msgid "%s: `%s' not converted\n"
+#~ msgstr "%s: »%s« nicht konvertiert\n"
+
+#~ msgid "%s: would convert file `%s'\n"
+#~ msgstr "%s: würde Datei »%s« konvertieren\n"
+
+#~ msgid "%s: converting file `%s'\n"
+#~ msgstr "%s: Datei »%s« wird konvertiert\n"
+
+#~ msgid "%s: can't get status for file `%s': %s\n"
+#~ msgstr "%s: Status der Datei »%s« kann nicht ermittelt werden: %s\n"
+
+#~ msgid "%s: can't open file `%s' for reading: %s\n"
+#~ msgstr "%s: Datei »%s« kann nicht zum Schreiben geöffnet werden: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: error reading input file `%s': %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: Fehler beim Lesen der Eingabedatei »%s«: %s\n"
+
+#~ msgid "%s: can't create/open clean file `%s': %s\n"
+#~ msgstr "%s: die leere Datei »%s« kann nicht erzeugt oder geöffnet werden: %s\n"
+
+#~ msgid "%s: warning: file `%s' already saved in `%s'\n"
+#~ msgstr "%s: Warnung: Datei »%s« bereits in »%s« gesichert\n"
+
+#~ msgid "%s: can't link file `%s' to `%s': %s\n"
+#~ msgstr "%s: die Datei »%s« kann nicht mit »%s« verbunden werden (Link): %s\n"
+
+#~ msgid "%s: can't create/open output file `%s': %s\n"
+#~ msgstr "%s: die Ausgabedatei »%s« kann nicht erzeugt oder geöffnet werden: %s\n"
+
+#~ msgid "%s: can't change mode of file `%s': %s\n"
+#~ msgstr "%s: Rechte der Datei »%s« können nicht geändert werden: %s\n"
+
+#~ msgid "%s: cannot get working directory: %s\n"
+#~ msgstr "%s: aktuelles Verzeichnis kann nicht ermittelt werden: %s\n"
+
+#~ msgid "%s: input file names must have .c suffixes: %s\n"
+#~ msgstr "%s: Namen der Eingabedateien müssen Suffix ».c« haben: %s\n"
+
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "Färbung konnte nicht gefunden werden.\n"
+
+#~ msgid "output constraint %d must specify a single register"
+#~ msgstr "Ausgabebedingung %d muss ein einzelnes Register angeben"
+
+#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+#~ msgstr "Ausgabebedingung %d kann nicht zusammen mit »%s« angegeben werden"
+
+#~ msgid "output regs must be grouped at top of stack"
+#~ msgstr "Ausgaberegister müssen oben auf dem Stack gruppiert werden"
+
+#~ msgid "implicitly popped regs must be grouped at top of stack"
+#~ msgstr "implizit geholte (»pop«) Register müssen oben auf dem Stack gruppiert werden"
+
+#~ msgid "output operand %d must use `&' constraint"
+#~ msgstr "Ausgabeoperand %d muss »&«-Bedingung benutzen"
+
+#~ msgid "can't use '%s' as a %s register"
+#~ msgstr "»%s« kann nicht als ein %s-Register verwendet werden"
+
+#~ msgid "unknown register name: %s"
+#~ msgstr "unbekannter Registername: %s"
+
+#~ msgid "global register variable follows a function definition"
+#~ msgstr "globale Registervariable folgt einer Funktionsdefinition"
+
+#~ msgid "register used for two global register variables"
+#~ msgstr "Register für zwei globale Registervariablen verwendet"
+
+#~ msgid "call-clobbered register used for global register variable"
+#~ msgstr "für Ruf vorgesehenes Register wurde für globale Registervariable verwendet"
+
+#~ msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+#~ msgstr "validate_value_data: [%u] Falsches next_regno für leere Kette (%u)"
+
+#~ msgid "validate_value_data: Loop in regno chain (%u)"
+#~ msgstr "validate_value_data: Zyklus in regno-Kette (%u)"
+
+#~ msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+#~ msgstr "validate_value_data: [%u] Falsches oldest_regno (%u)"
+
+#~ msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+#~ msgstr "validate_value_data: [%u] Nicht leeres Register in Kette (%s %u %i)"
+
+#~ msgid "cannot reload integer constant operand in `asm'"
+#~ msgstr "Ganzzahlkonstantenoperand kann in »asm« nicht neu geladen werden"
+
+#~ msgid "impossible register constraint in `asm'"
+#~ msgstr "unmögliche Registerbedingung in »asm«"
+
+#~ msgid "`&' constraint used with no register class"
+#~ msgstr "»&«-Bedingung ohne Registerklasse verwendet"
+
+#~ msgid "unable to generate reloads for:"
+#~ msgstr "Neuladungen konnten nicht generiert werden für:"
+
+#~ msgid "inconsistent operand constraints in an `asm'"
+#~ msgstr "inkonsistente Operandenbedingungen in einem »asm«"
+
+#~ msgid "frame size too large for reliable stack checking"
+#~ msgstr "Rahmengröße zu groß für zuverlässige Kellerüberprüfung"
+
+#~ msgid "try reducing the number of local variables"
+#~ msgstr "versuchen Sie, die Anzahl der lokalen Variablen zu verringern"
+
+#~ msgid "can't find a register in class `%s' while reloading `asm'"
+#~ msgstr "in der Klasse »%s« konnte während des Neuladens von »asm« kein Register gefunden werden"
+
+#~ msgid "unable to find a register to spill in class `%s'"
+#~ msgstr "in Klasse »%s« konnte kein Register für Überlauf gefunden werden"
+
+#~ msgid "this is the insn:"
+#~ msgstr "dies ist das insn:"
+
+#~ msgid "`asm' operand requires impossible reload"
+#~ msgstr "»asm«-Operand erfordert unmögliches Neuladen"
+
+#~ msgid "could not find a spill register"
+#~ msgstr "es konnte kein Ãœberlaufregister gefunden werden"
+
+#~ msgid "`asm' operand constraint incompatible with operand size"
+#~ msgstr "»asm«-Operandenbedingung inkompatibel mit Operandengröße"
+
+#~ msgid "VOIDmode on an output"
+#~ msgstr "VOIDmode bei einer Ausgabe"
+
+#~ msgid "output operand is constant in `asm'"
+#~ msgstr "Ausgabeoperand ist in »asm« konstant"
+
+#~ msgid "unrecognizable insn:"
+#~ msgstr "unerkennbares insn:"
+
+#~ msgid "insn does not satisfy its constraints:"
+#~ msgstr "insn erfüllt nicht seine Bedingungen:"
+
+#~ msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+#~ msgstr "RTL-Überprüfung: Zugriff von Elt %d von »%s« mit letztem Elt %d in %s, bei %s:%d"
+
+#~ msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#~ msgstr "RTL-Überprüfung: Elt-%d-Typ %c erwartet, haben Typ %c (rtx %s) in %s, bei %s:%d"
+
+#~ msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#~ msgstr "RTL-Überprüfung: Elt-%d-Typ %c oder %c erwartet, haben Typ %c (rtx %s) in %s, bei %s:%d"
+
+#~ msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+#~ msgstr "RTL-Überprüfung: Code »%s« erwartet, haben »%s« in %s, bei %s:%d"
+
+#~ msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+#~ msgstr "RTL-Überprüfung: Code »%s« oder »%s« erwartet, haben »%s« in %s, bei %s:%d"
+
+#~ msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+#~ msgstr "RTL-Überprüfung: Zugriff von Elt %d von Vektor mit letztem Elt %d in %s, bei %s:%d"
+
+#~ msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+#~ msgstr "RTL-Kennzeichenüberprüfung: %s mit unerwartetem RTX-Code »%s« in %s bei %s:%d verwendet"
+
+#~ msgid "jump to `%s' invalidly jumps into binding contour"
+#~ msgstr "Sprung zu »%s« springt ungültig in bindenden Querschnitt"
+
+#~ msgid "%Jlabel '%D' used before containing binding contour"
+#~ msgstr "%JMarke »%D« verwendet vor enthaltendem bindenden Querschnitt"
+
+#~ msgid "output operand constraint lacks `='"
+#~ msgstr "Bedingung des Ausgabeoperanden erfordert »=«"
+
+#~ msgid "output constraint `%c' for operand %d is not at the beginning"
+#~ msgstr "Ausgabebedingung »%c« für Operand %d steht nicht am Anfang"
+
+#~ msgid "operand constraint contains incorrectly positioned '+' or '='"
+#~ msgstr "Operandenbedingung enthält falsch positioniertes »+« oder »=«"
+
+#~ msgid "`%%' constraint used with last operand"
+#~ msgstr "»%%«-Bedingung mit letztem Operanden verwendet"
+
+#~ msgid "matching constraint not valid in output operand"
+#~ msgstr "dazu passende Bedingung in Ausgabeoperanden ungültig"
+
+#~ msgid "read-write constraint does not allow a register"
+#~ msgstr "Schreib- und Lesebeschränkungen erlauben kein Register"
+
+#~ msgid "input operand constraint contains `%c'"
+#~ msgstr "Bedingung für Eingabeoperanden enthält »%c«"
+
+#~ msgid "matching constraint references invalid operand number"
+#~ msgstr "dazu passende Bedingung referenziert ungültige Operandennummer"
+
+#~ msgid "invalid punctuation `%c' in constraint"
+#~ msgstr "ungültiges Zeichen »%c« in Bedingung"
+
+#~ msgid "matching constraint does not allow a register"
+#~ msgstr "dazu passende Bedingung erlaubt kein Register"
+
+#~ msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+#~ msgstr "asm-Spezifizierer für Variable »%s« steht in Konflikt mit asm-Konflikt-Liste"
+
+#~ msgid "unknown register name `%s' in `asm'"
+#~ msgstr "unbekannter Registername »%s« in »asm«"
+
+#~ msgid "PIC register `%s' clobbered in `asm'"
+#~ msgstr "PIC-Register »%s« wird in »asm« zerstört"
+
+#~ msgid "more than %d operands in `asm'"
+#~ msgstr "mehr als %d Operanden in »asm«"
+
+#~ msgid "output number %d not directly addressable"
+#~ msgstr "Ausgabezahl %d nicht direkt adressierbar"
+
+#~ msgid "asm operand %d probably doesn't match constraints"
+#~ msgstr "asm-Operand %d passt wahrscheinlich nicht zu den Bedingungen"
+
+#~ msgid "use of memory input without lvalue in asm operand %d is deprecated"
+#~ msgstr "die Verwendung einer Speichereingabe ohne L-Wert in asm-Operand %d ist veraltet"
+
+#~ msgid "asm clobber conflict with output operand"
+#~ msgstr "asm-Konflikt mit Ausgabeoperand"
+
+#~ msgid "asm clobber conflict with input operand"
+#~ msgstr "asm-Konflikt mit Eingabeoperand"
+
+#~ msgid "too many alternatives in `asm'"
+#~ msgstr "zu viele Alternativen in »asm«"
+
+#~ msgid "operand constraints for `asm' differ in number of alternatives"
+#~ msgstr "Operandenbedingungen für »asm« unterscheiden sich in der Anzahl der Alternativen"
+
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr "doppelter asm-Operandenname »%s«"
+
+#~ msgid "missing close brace for named operand"
+#~ msgstr "schließende geschweifte Klammer für benannten Operanden fehlt"
+
+#~ msgid "undefined named operand '%s'"
+#~ msgstr "benannter Operand »%s« ist nicht definiert"
+
+#~ msgid "%Hstatement with no effect"
+#~ msgstr "%HAnweisung ohne Effekt"
+
+#~ msgid "%Hvalue computed is not used"
+#~ msgstr "%Hberechneter Wert ist unbenutzt"
+
+#~ msgid "%Junused variable '%D'"
+#~ msgstr "%JVariable »%D« wird nicht verwendet"
+
+#~ msgid "%Hunreachable code at beginning of %s"
+#~ msgstr "%Hunerreichbarer Code am Anfang von %s"
+
+#~ msgid "enumeration value `%s' not handled in switch"
+#~ msgstr "Aufzählungswert »%s« wird nicht von switch behandelt"
+
+#~ msgid "case value `%ld' not in enumerated type"
+#~ msgstr "case-Wert »%ld« nicht in Aufzählungstyp"
+
+#~ msgid "case value `%ld' not in enumerated type `%s'"
+#~ msgstr "case-Wert »%ld« nicht in Aufzählungstyp »%s«"
+
+#~ msgid "switch missing default case"
+#~ msgstr "die Standardfallbehandlung in switch fehlt"
+
+#~ msgid "type size can't be explicitly evaluated"
+#~ msgstr "die Typgröße kann nicht explizit ausgewertet werden"
+
+#~ msgid "variable-size type declared outside of any function"
+#~ msgstr "Typ mit variabler Größe wurde außerhalb einer Funktion definiert"
+
+#~ msgid "%Jsize of '%D' is %d bytes"
+#~ msgstr "%JGröße von »%Ds« ist %d Bytes"
+
+#~ msgid "%Jsize of '%D' is larger than %d bytes"
+#~ msgstr "%JGröße von »%D« übertrifft %d Bytes"
+
+#~ msgid "%Jpacked attribute causes inefficient alignment for '%D'"
+#~ msgstr "%Jgepacktes Attribut verursacht ineffiziente Ausrichtung für »%D«"
+
+#~ msgid "%Jpacked attribute is unnecessary for '%D'"
+#~ msgstr "%Jgepacktes Attribut ist unnötig für »%D«"
+
+#~ msgid "%Jpadding struct to align '%D'"
+#~ msgstr "%Jstruct wird aufgefüllt, um »%D« auszurichten"
+
+#~ msgid "padding struct size to alignment boundary"
+#~ msgstr "struct wird bis zur Ausrichtungsgrenze aufgefüllt"
+
+#~ msgid "packed attribute causes inefficient alignment for `%s'"
+#~ msgstr "gepacktes Attribut verursacht ineffiziente Ausrichtung für »%s«"
+
+#~ msgid "packed attribute is unnecessary for `%s'"
+#~ msgstr "gepacktes Attribut ist unnötig für »%s«"
+
+#~ msgid "packed attribute causes inefficient alignment"
+#~ msgstr "gepacktes Attribut führt zu ineffizienter Ausrichtung"
+
+#~ msgid "packed attribute is unnecessary"
+#~ msgstr "gepacktes Attribut ist unnötig"
+
+#~ msgid "__builtin_saveregs not supported by this target"
+#~ msgstr "__builtin_saveregs wird von diesem Ziel nicht unterstützt"
+
+#~ msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+#~ msgstr "timevar_pop '%s' kann nicht ausgeführt werden, wenn am Anfang des timevars-Stacks '%s' steht"
+
+#~ msgid ""
+#~ "\n"
+#~ "Execution times (seconds)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Ausführungszeiten (Sekunden)\n"
+
+#~ msgid " TOTAL :"
+#~ msgstr " GESAMT :"
+
+#~ msgid "time in %s: %ld.%06ld (%ld%%)\n"
+#~ msgstr "Zeit in %s: %ld.%06ld (%ld%%)\n"
+
+#~ msgid "collect: reading %s\n"
+#~ msgstr "sammeln: %s lesen\n"
+
+#~ msgid "collect: recompiling %s\n"
+#~ msgstr "sammeln: %s neu kompilieren\n"
+
+#~ msgid "collect: tweaking %s in %s\n"
+#~ msgstr "sammeln: %s wird in %s eingestellt\n"
+
+#~ msgid "collect: relinking\n"
+#~ msgstr "sammeln: neu binden\n"
+
+#~ msgid "ld returned %d exit status"
+#~ msgstr "ld gab %d als Ende-Status zurück"
+
+#~ msgid "%s "
+#~ msgstr "%s "
+
+#~ msgid " %s"
+#~ msgstr " %s"
+
+#~ msgid "invalid option argument `%s'"
+#~ msgstr "ungültiges Optionsargument »%s«"
+
+#~ msgid "getting core file size maximum limit: %m"
+#~ msgstr "Kern-Dateigrößenlimit wird geholt: %m"
+
+#~ msgid "setting core file size limit to maximum: %m"
+#~ msgstr "Kern-Dateigrößenlimit wird gesetzt: %m"
+
+#~ msgid "%J'%F' used but never defined"
+#~ msgstr "%J»%F« verwendet, aber nirgendwo definiert"
+
+#~ msgid "%J'%F' declared `static' but never defined"
+#~ msgstr "%J»%F« als »static« deklariert, aber nirgendwo definiert"
+
+#~ msgid "%J'%D' defined but not used"
+#~ msgstr "%J»%D« definiert, aber nicht verwendet"
+
+#~ msgid "`%s' is deprecated (declared at %s:%d)"
+#~ msgstr "»%s« ist veraltet (deklariert bei %s:%d)"
+
+#~ msgid "`%s' is deprecated"
+#~ msgstr "»%s« ist veraltet"
+
+#~ msgid "type is deprecated (declared at %s:%d)"
+#~ msgstr "Typ ist veraltet (in %s:%d deklariert)"
+
+#~ msgid "type is deprecated"
+#~ msgstr "Typ ist veraltet"
+
+#~ msgid "invalid register name `%s' for register variable"
+#~ msgstr "ungültiger Registername »%s« für Registervariable"
+
+#~ msgid "branch target register load optimization is not intended to be run twice"
+#~ msgstr "Ladeoptimierung für Zweig-Zielregister ist nicht dafür vorgesehen, mehrfach zu laufen"
+
+#~ msgid ""
+#~ "\n"
+#~ "Target specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Zielspezifische Optionen:\n"
+
+#~ msgid " -m%-23s [undocumented]\n"
+#~ msgstr " -m%-23s [undokumentiert]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "There are undocumented target specific options as well.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Es gibt auch undokumentierte zielspezifische Optionen.\n"
+
+#~ msgid " They exist, but they are not documented.\n"
+#~ msgstr " Es gibt sie, aber sie sind nicht dokumentiert.\n"
+
+#~ msgid "unrecognized gcc debugging option: %c"
+#~ msgstr "gcc-Debuggingoption nicht erkannt: %c"
+
+#~ msgid "invalid option `%s'"
+#~ msgstr "ungültige Option »%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\tkompiliert von GNU-C-Version %s.\n"
+#~ "%s%s%s Version %s (%s) kompiliert von CC.\n"
+
+#~ msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+#~ msgstr "%s%sGGC-Heuristik: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#~ msgid "options passed: "
+#~ msgstr "angegebene Optionen: "
+
+#~ msgid "options enabled: "
+#~ msgstr "angeschaltete Optionen: "
+
+#~ msgid "can't open %s for writing: %m"
+#~ msgstr "Datei »%s« kann nicht zum Schreiben geöffnet werden: %m"
+
+#~ msgid "created and used with different settings of -fpic"
+#~ msgstr "erzeugt und mit anderen Einstellungen von -fpic verwendet"
+
+#~ msgid "created and used with different settings of -fpie"
+#~ msgstr "erzeugt und mit anderen Einstellungen von -fpie verwendet"
+
+#~ msgid "created and used with differing settings of `-m%s'"
+#~ msgstr "erzeugt und mit anderen Einstellungen von »-m%s« verwendet"
+
+#~ msgid "out of memory"
+#~ msgstr "Platz im Hauptspeicher reicht nicht aus"
+
+#~ msgid "instruction scheduling not supported on this target machine"
+#~ msgstr "Befehlsplanung wird von dieser Zielmaschine nicht unterstützt"
+
+#~ msgid "this target machine does not have delayed branches"
+#~ msgstr "diese Zielmaschine hat keine verzögerten Zweige"
+
+#~ msgid "-f%sleading-underscore not supported on this target machine"
+#~ msgstr "-f%sleading-underscore wird auf dieser Zielmaschine nicht unterstützt"
+
+#~ msgid "target system does not support the \"%s\" debug format"
+#~ msgstr "Zielsystem unterstützt nicht das Testformat \"%s\""
+
+#~ msgid "-ffunction-sections not supported for this target"
+#~ msgstr "-ffunction-sections wird für dieses Ziel nicht unterstützt"
+
+#~ msgid "-fdata-sections not supported for this target"
+#~ msgstr "-fdata-sections wird für dieses Ziel nicht unterstützt"
+
+#~ msgid "-ffunction-sections disabled; it makes profiling impossible"
+#~ msgstr "-ffunction-sections ausgeschaltet; das macht Profiling unmöglich"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target"
+#~ msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+#~ msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt (versuchen Sie die »-march«-Schalter)"
+
+#~ msgid "-fprefetch-loop-arrays is not supported with -Os"
+#~ msgstr "-fprefetch-loop-arrays wird nicht mit -Os unterstützt"
+
+#~ msgid "-ffunction-sections may affect debugging on some targets"
+#~ msgstr "-ffunction-sections kann für verschiedene Ziele die Fehlersuche beeinträchtigen"
+
+#~ msgid "error writing to %s: %m"
+#~ msgstr "Fehler beim Schreiben der Datei %s: %m"
+
+#~ msgid "error closing %s: %m"
+#~ msgstr "Fehler beim Schließen von %s: %m"
+
+#~ msgid "could not open dump file `%s'"
+#~ msgstr "Abzugsdatei »%s« konnte nicht geöffnet werden"
+
+#~ msgid "ignoring unknown option `%.*s' in `-fdump-%s'"
+#~ msgstr "unbekannte Option »%.*s« in »-fdump-%s« wird ignoriert"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses alloca (override using the always_inline attribute)"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie alloca verwendet (zum Aufheben: Attribut »always_inline« verwenden)"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses setjmp"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie setjmp verwendet"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses variable argument lists"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie eine variable Argumentliste verwendet"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses setjmp-longjmp exception handling"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie »setjmp-longjmp«-Ausnahmebehandlung verwendet"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it contains a nested function"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie eine geschachtelte Funktion enthält"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it contains a computed goto"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie ein berechnetes »goto« enthält"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it contains a nonlocal goto"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables"
+#~ msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie Variablen variabler Größe verwendet"
+
+#~ msgid "%Jinlining failed in call to '%F': %s"
+#~ msgstr "%J»inline« beim Aufruf von »%F« gescheitert: %s"
+
+#~ msgid "%Jsize of return value of '%D' is %u bytes"
+#~ msgstr "%JGröße des Rückgabewertes von »%D« ist %u Bytes"
+
+#~ msgid "%Jsize of return value of '%D' is larger than %wd bytes"
+#~ msgstr "%JGröße des Rückgabewertes von »%D« ist größer als %wd Bytes"
+
+#~ msgid "arrays of functions are not meaningful"
+#~ msgstr "Felder von Funktionen sind sinnlos"
+
+#~ msgid "function return type cannot be function"
+#~ msgstr "Rückgabetyp der Funktion kann keine Funktion sein"
+
+#~ msgid "invalid initializer for bit string"
+#~ msgstr "ungültige Initialisierung für Bitstring"
+
+#~ msgid "tree check: expected %s, have %s in %s, at %s:%d"
+#~ msgstr "Baumprüfung: %s erwartet, haben %s in %s, bei %s:%d"
+
+#~ msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+#~ msgstr "Baumprüfung: Klasse %c erwartet, haben '%c' (%s) in %s, bei %s:%d"
+
+#~ msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+#~ msgstr "Baumprüfung: auf Elt %d von tree_vec mit %d Elts in %s bei %s:%d zugegriffen"
+
+#~ msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
+#~ msgstr "Baumprüfung: auf Operand %d von %s mit %d Operanden in %s bei %s:%d zugegriffen"
+
+#~ msgid "%J%D causes a section type conflict"
+#~ msgstr "%J%D löst einen Abschnittstypkonflikt aus"
+
+#~ msgid "%Jregister name not specified for '%D'"
+#~ msgstr "%Jfür »%D« wurde kein Registername angegeben"
+
+#~ msgid "%Jinvalid register name for '%D'"
+#~ msgstr "%Jungültiger Registername für »%D«"
+
+#~ msgid "%Jdata type of '%D' isn't suitable for a register"
+#~ msgstr "%JDatentyp von »%D« eignet sich nicht für Register"
+
+#~ msgid "%Jregister specified for '%D' isn't suitable for data type"
+#~ msgstr "%Jfür »%D« angegebenes Register eignet sich nicht für Datentyp"
+
+#~ msgid "global register variable has initial value"
+#~ msgstr "globle Registervariable hat Anfangswert"
+
+#~ msgid "volatile register variables don't work as you might wish"
+#~ msgstr "»volatile«-Registervariablen funktionieren oft nicht so wie erhofft"
+
+#~ msgid "%Jregister name given for non-register variable '%D'"
+#~ msgstr "%JRegistername für Nicht-Registervariable »%D« verwendet"
+
+#~ msgid "%Jstorage size of `%D' isn't known"
+#~ msgstr "%JSpeichergröße von »%D« ist unbekannt"
+
+#~ msgid "%Jalignment of '%D' is greater than maximum object file alignment. Using %d"
+#~ msgstr "%JAusrichtung von »%D ist größer als maximale Objektdateiausrichtung. %d verwendet«"
+
+#~ msgid "thread-local COMMON data not implemented"
+#~ msgstr "Thread-lokale COMMON-Daten nicht implementiert"
+
+#~ msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d"
+#~ msgstr "%Jangeforderte Ausrichtung für »%D« ist größer als die implementierte Ausrichtung von %d"
+
+#~ msgid "initializer for integer value is too complicated"
+#~ msgstr "Initialisierung für Ganzzahlwert ist zu kompliziert"
+
+#~ msgid "initializer for floating value is not a floating constant"
+#~ msgstr "Initialisierung für Gleitkommawert ist keine Gleitkommakonstante"
+
+#~ msgid "unknown set constructor type"
+#~ msgstr "unbekannter Mengenkonstruktortyp"
+
+#~ msgid "invalid initial value for member `%s'"
+#~ msgstr "ungültiger Anfangswert für Element »%s«"
+
+#~ msgid "%Jweak declaration of '%D' must precede definition"
+#~ msgstr "%Jschwache Deklaration von »%D« muss der Definition vorangehen"
+
+#~ msgid "%Jweak declaration of '%D' after first use results in unspecified behavior"
+#~ msgstr "%Jschwache Deklaration von »%D« nach erster Benutzung führt zu undefiniertem Verhalten"
+
+#~ msgid "%Jweak declaration of '%D' must be public"
+#~ msgstr "%Jschwache Deklaration von »%D« muss öffentlich sein"
+
+#~ msgid "%Jweak declaration of '%D' not supported"
+#~ msgstr "%Jschwache Deklaration von »%D« wird nicht unterstützt"
+
+#~ msgid "only weak aliases are supported in this configuration"
+#~ msgstr "in dieser Konfiguration werden nur schwache Aliase unterstützt"
+
+#~ msgid "alias definitions not supported in this configuration; ignored"
+#~ msgstr "Alias-Definitionen werden in dieser Konfiguration nicht unterstützt; ignoriert"
+
+#~ msgid "visibility attribute not supported in this configuration; ignored"
+#~ msgstr "Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert"
+
+#~ msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+#~ msgstr "virtuelles Feld %s[%lu]: Element %lu außerhalb der Grenzen in %s, bei %s:%d"
+
+#~ msgid "underflowed virtual array %s in %s, at %s:%d"
+#~ msgstr "Unterlauf im virtuellen Feld %s in %s bei %s:%d"
+
+#~ msgid "no sclass for %s stab (0x%x)\n"
+#~ msgstr "kein »sclass« für %s Stab (0x%x)\n"
+
+#~ msgid "fatal error: "
+#~ msgstr "schwerwiegender Fehler: "
+
+#~ msgid "internal compiler error: "
+#~ msgstr "interner Compiler-Fehler: "
+
+#~ msgid "sorry, unimplemented: "
+#~ msgstr "nicht implementiert: "
+
+#~ msgid "anachronism: "
+#~ msgstr "Anachronismus: "
+
+#~ msgid "note: "
+#~ msgstr "Anmerkung: "
+
+#~ msgid "debug: "
+#~ msgstr "zur Fehlersuche: "
+
+#~ msgid "The maximum number of instructions in a single function eligible for inlining"
+#~ msgstr "Die Höchstzahl der Anweisungen in einer einzelnen für »inline« geeigneten Funktion"
+
+#~ msgid "The maximum number of instructions when automatically inlining"
+#~ msgstr "Die Höchstzahl der Anweisungen für automatisches »inline«"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "Die Höchstzahl der Anweisungen für RTL »inline«"
+
+#~ msgid "The maximum number of instructions to consider to fill a delay slot"
+#~ msgstr "Die Höchstzahl der zu betrachtenden Anweisungen um Verzögerungsschlitz zu füllen"
+
+#~ msgid "The maximum number of instructions to consider to find accurate live register information"
+#~ msgstr "Die Höchstzahl der zu betrachtenden Anweisungen um richtige aktive Registerinformationen zu finden"
+
+#~ msgid "The maximum length of scheduling's pending operations list"
+#~ msgstr "Die Maximallänge der Liste der anhängigen geplanten Operationen"
+
+#~ msgid "The size of function body to be considered large"
+#~ msgstr "Die Größe eines als groß angesehenen Funktionskörpers"
+
+#~ msgid "Maximal growth due to inlining of large function (in percent)"
+#~ msgstr "Maximales Wachstum durch »inline« einer großen Funktion (in Prozent)"
+
+#~ msgid "how much can given compilation unit grow because of the inlining (in percent)"
+#~ msgstr "um wie viel eine Übersetzungseinheit durch »inline« wachsen kann (in Prozent)"
+
+#~ msgid "The maximum amount of memory to be allocated by GCSE"
+#~ msgstr "Maximalbetrag des von GCSE zu belegenden Speichers"
+
+#~ msgid "The maximum number of passes to make when doing GCSE"
+#~ msgstr "Die Höchstzahl der Durchläufe für GCSE"
+
+#~ msgid "The maximum number of instructions to consider to unroll in a loop"
+#~ msgstr "Die Höchstzahl der zum Aufrollen von Schleifen zu betrachtenden Anweisungen"
+
+#~ msgid "The maximum number of instructions to consider to unroll in a loop on average"
+#~ msgstr "Die Höchstzahl der zum Aufrollen von Schleifen im Mittel zu betrachtenden Anweisungen"
+
+#~ msgid "The maximum number of unrollings of a single loop"
+#~ msgstr "Die Höchstzahl der Iterationen zum Aufrollen in einzelner Schleife"
+
+#~ msgid "The maximum number of insns of a peeled loop"
+#~ msgstr "Die Höchstzahl der insns einer geschälten Schleife"
+
+#~ msgid "The maximum number of peelings of a single loop"
+#~ msgstr "Die Höchstzahl der Schälvorgänge einer einzelnen Schleife"
+
+#~ msgid "The maximum number of insns of a completely peeled loop"
+#~ msgstr "Die Höchstzahl der insns einer vollständig geschälten Schleife"
+
+#~ msgid "The maximum number of peelings of a single loop that is peeled completely"
+#~ msgstr "Die Höchstzahl der Schälvorgänge einer einzelnen Schleife, die vollständig geschält wird"
+
+#~ msgid "The maximum number of insns of a peeled loop that rolls only once"
+#~ msgstr "Die Höchstzahl der insns einer geschälten Schleife, die nur einmal rollt"
+
+#~ msgid "`%s' incompatible attribute ignored"
+#~ msgstr "»%s«-inkompatibles Attribut wird ignoriert"
+
+#~ msgid "%Jfunction `%D' definition is marked dllimport."
+#~ msgstr "%JFunktionsdefinition von »%D« ist als »dllimport« markiert"
+
+#~ msgid "%Jinline function '%D' is declared as dllimport: attribute ignored."
+#~ msgstr "%J»inline«-Funktion »%D« ist als »dllimport« deklariert: Attribute ignoriert."
+
+#~ msgid "ms-bitfields not supported for objc"
+#~ msgstr "ms-Bitfelder nicht unterstützt für objc"
+
+#~ msgid "%Jan address area attribute cannot be specified for local variables"
+#~ msgstr "%Jfür lokale Variablen kann kein Adressabschnittsattribut angegeben werden"
+
+#~ msgid "%Jaddress area of '%s' conflicts with previous declaration"
+#~ msgstr "%JAdressabschnitt von »%s« in Konflikt mit vorheriger Deklaration"
+
+#~ msgid "%Jaddress area attribute cannot be specified for functions"
+#~ msgstr "%JAdressabschnittsattribut kann nicht für Funktionen angegeben werden"
+
+#~ msgid "The compiler does not support -march=%s."
+#~ msgstr "Der Compiler unterstützt nicht -march=%s."
+
+#~ msgid "argument `%d' is not a constant"
+#~ msgstr "Argument »%d« ist keine Konstante"
+
+#~ msgid "`trap' attribute is already used"
+#~ msgstr "»trap«-Attribut wird bereits verwendet"
+
+#~ msgid "cannot specify both -msep-data and -mid-shared-library"
+#~ msgstr "-msep-data und -mid-shared-library können nicht zusammen angegeben werden"
+
+#~ msgid "Generate code for a 68040, without any new instructions"
+#~ msgstr "Code für einen 68040 ohne neue Befehle erzeugen"
+
+#~ msgid "Generate code for a 68060, without any new instructions"
+#~ msgstr "Code für einen 68060 ohne neue Befehle erzeugen"
+
+#~ msgid "Generate code for a 68030"
+#~ msgstr "Code für einen 68030 erzeugen"
+
+#~ msgid "Generate code for a 68040"
+#~ msgstr "Code für einen 68040 erzeugen"
+
+#~ msgid "Generate code for a 68060"
+#~ msgstr "Code für einen 68060 erzeugen"
+
+#~ msgid "Generate code for a 520X"
+#~ msgstr "Code für einen 520X erzeugen"
+
+#~ msgid "Generate code for a 5206e"
+#~ msgstr "Code für einen 5206e erzeugen"
+
+#~ msgid "Generate code for a 528x"
+#~ msgstr "Code für einen 528x erzeugen"
+
+#~ msgid "Generate code for a 5307"
+#~ msgstr "Code für einen 5307 erzeugen"
+
+#~ msgid "Generate code for a 5407"
+#~ msgstr "Code für einen 5407 erzeugen"
+
+#~ msgid "Generate code for a 68851"
+#~ msgstr "Code für einen 68851 erzeugen"
+
+#~ msgid "Do no generate code for a 68851"
+#~ msgstr "Code für einen 68851 erzeugen"
+
+#~ msgid "Generate code for a 68302"
+#~ msgstr "Code für einen 68302 erzeugen"
+
+#~ msgid "Generate code for a 68332"
+#~ msgstr "Code für einen 68332 erzeugen"
+
+#~ msgid "Generate code for a cpu32"
+#~ msgstr "Code für eine cpu32 erzeugen"
+
+#~ msgid "can't rewind temp file: %m"
+#~ msgstr "temporäre Datei konnte nicht zurückgesetzt werden: %m"
+
+#~ msgid "can't write to output file: %m"
+#~ msgstr "in die Ausgabedatei kann nicht geschrieben werden: %m"
+
+#~ msgid "can't read from temp file: %m"
+#~ msgstr "von der temporären Datei kann nicht gelesen werden: %m"
+
+#~ msgid "can't close temp file: %m"
+#~ msgstr "die temporäre Datei kann nicht geschlossen werden: %m"
+
+#~ msgid "-fpic is not supported; -fPIC assumed"
+#~ msgstr "-fpic wird nicht unterstützt; -fPIC angenommen"
+
+#~ msgid "-m%s not supported in this configuration"
+#~ msgstr "-m%s wird in dieser Konfiguration nicht unterstützt"
+
+#~ msgid "%Jdata area attributes cannot be specified for local variables"
+#~ msgstr "%JDatenabschnittsattribute können nicht für lokale Variablen angegeben werden"
+
+#~ msgid "%Jdata area of '%D' conflicts with previous declaration"
+#~ msgstr "%JDatenabschnitt von »%D« in Konflikt mit vorheriger Deklaration"
+
+#~ msgid "invalid %%x value"
+#~ msgstr "ungültiger %%x-Wert"
+
+#~ msgid "invalid %%d value"
+#~ msgstr "ungültiger %%x-Wert"
+
+#~ msgid "invalid %%t/%%b value"
+#~ msgstr "ungültiger %%t/%%b-Wert"
+
+#~ msgid "missing argument to \"-%s\""
+#~ msgstr "fehlendes Argument für »-%s«"
+
+#~ msgid "%s for '%s' in '%s %E'"
+#~ msgstr "%s vor »%s« in »%s %E«"
+
+#~ msgid "no suitable `operator %s' for `%T'"
+#~ msgstr "kein geeigneter »operator %s« für »%T«"
+
+#~ msgid "cannot bind bitfield `%E' to `%T'"
+#~ msgstr "das Bitfeld »%E« kann nicht mit »%T« verbunden werden"
+
+#~ msgid "cannot bind packed field `%E' to `%T'"
+#~ msgstr "das gepackte Feld »%E« kann nicht mit »%T« verbunden werden"
+
+#~ msgid "cannot bind rvalue `%E' to `%T'"
+#~ msgstr "der R-Wert »%E« kann nicht mit »%T« verbunden werden"
+
+#~ msgid "%s has no effect"
+#~ msgstr "%s hat keinen Effekt"
+
+#~ msgid "%Jfunction '%D' redeclared as inline"
+#~ msgstr "%JFunktion »%D« als inline redeklariert"
+
+#~ msgid "%Jprevious declaration of '%D' with attribute noinline"
+#~ msgstr "%Jvorherige Deklaration von »%D« mit Attribut noinline"
+
+#~ msgid "%Jfunction '%D' redeclared with attribute noinline"
+#~ msgstr "%JFunktion »%D« redeklariert mit Attribut noinline"
+
+#~ msgid "%Jprevious declaration of '%D' was inline"
+#~ msgstr "%Jvorherige Deklaration von »%D« war inline"
+
+#~ msgid "conflicting declaration '%#D'"
+#~ msgstr "in Konflikt stehende Deklaration »%#D«"
+
+#~ msgid "'%D' has a previous declaration as `%#D'"
+#~ msgstr "»%D« hat eine vorherige Deklaration als »%#Ds«"
+
+#~ msgid "%Jfollows non-prototype definition here"
+#~ msgstr "%Jfolgt Nicht-Prototyp-Definition hier"
+
+#~ msgid "%Jprevious non-inline declaration here"
+#~ msgstr "%Jvorherige nicht-inline-Deklaration hier"
+
+#~ msgid "%Jconflicts with previous declaration here"
+#~ msgstr "%Jin Konflikt mit vorheriger Deklaration hier"
+
+#~ msgid "%H from here"
+#~ msgstr "%H von hier"
+
+#~ msgid "too many initializers for `%T'"
+#~ msgstr "zu viele Initialisierer für »%T«"
+
+#~ msgid "size of array `%D' has non-integral type `%T'"
+#~ msgstr "Feldgröße von »%D« hat Nicht-Ganzzahltyp »%T«"
+
+#~ msgid "size of array has non-integral type `%T'"
+#~ msgstr "Feldgröße hat Nicht-Ganzzahltyp »%T«"
+
+#~ msgid "declaration of `%D' as %s"
+#~ msgstr "Deklaration von »%D« als %s"
+
+#~ msgid "creating %s"
+#~ msgstr "Erzeugen von %s"
+
+#~ msgid "top-level declaration of `%s' specifies `auto'"
+#~ msgstr "Deklaration höchster Ebene von »%s« spezifiziert »auto«"
+
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "%Jungültiger Typkennzeichner für Nicht-Element-Funktionstyp"
+
+#~ msgid "%Jprevious definition here"
+#~ msgstr "%Jvorherige Definition hier"
+
+#~ msgid "invalid member function declaration"
+#~ msgstr "ungültige Elementfunktionsdeklaration"
+
+#~ msgid "anonymous union with no members"
+#~ msgstr "anonymes union ohne Element"
+
+#~ msgid "inline function `%D' used but never defined"
+#~ msgstr "inline-Funktion »%D«, aber nirgendwo definiert"
+
+#~ msgid " when initialized here"
+#~ msgstr " während es hier initialisiert wurde"
+
+#~ msgid "`%#D' is not a non-static data member of `%T'"
+#~ msgstr "»%#D« ist kein Nicht-static-Datenelement von »%T«"
+
+#~ msgid "invalid use of non-static member function `%D'"
+#~ msgstr "ungültige Verwendung der Nicht-static-Elementfunktion »%D«"
+
+#~ msgid "invalid use of non-static data member `%D'"
+#~ msgstr "ungültige Verwendung des Nicht-static-Datenelementes »%D«"
+
+#~ msgid "type mismatch with previous external decl of `%#D'"
+#~ msgstr "Typen passen nicht zu vorheriger externer Deklaration von »%#D«"
+
+#~ msgid "%s %s %p %d\n"
+#~ msgstr "%s %s %p %d\n"
+
+#~ msgid "`%D' attribute directive ignored"
+#~ msgstr "Attribut-Anweisung »%D« wird ignoriert"
+
+#~ msgid "invalid token"
+#~ msgstr "ungültiges Token"
+
+#~ msgid "`%D::%D' has not been declared"
+#~ msgstr "»%D::%D« wurde nicht deklariert"
+
+#~ msgid "`::%D' has not been declared"
+#~ msgstr "»::%D« wurde nicht deklariert"
+
+#~ msgid "`%D' has not been declared"
+#~ msgstr "»%D« wurde nicht deklariert"
+
+#~ msgid "`%D' %s"
+#~ msgstr "»%D« %s"
+
+#~ msgid "invalid template-id"
+#~ msgstr "ungültige Template-ID"
+
+#~ msgid "%s cannot appear in a constant-expression"
+#~ msgstr "%s kann nicht in einem Konstanten-Ausdruck auftreten"
+
+#~ msgid "`%s' does not name a type"
+#~ msgstr "»%s« bezeichnet keinen Typ"
+
+#~ msgid "statement-expressions are allowed only inside functions"
+#~ msgstr "Anweisungs-Ausdrücke sind nur innerhalb von Funktionen erlaubt"
+
+#~ msgid "ISO C++ forbids compound-literals"
+#~ msgstr "ISO-C++ verbietet zusammengesetzte Literale"
+
+#~ msgid "duplicate `friend'"
+#~ msgstr "doppeltes »friend«"
+
+#~ msgid "attributes are not allowed on a function-definition"
+#~ msgstr "bei einer Funktionsdefinition sind keine Attribute erlaubt"
+
+#~ msgid "attributes after parenthesized initializer ignored"
+#~ msgstr "Attribute hinter geklammerter Initialisierung werden ignoriert"
+
+#~ msgid "friend declaration does not name a class or function"
+#~ msgstr "»friend«-Deklaration benennt keine Klasse oder Funktion"
+
+#~ msgid "invalid function declaration"
+#~ msgstr "ungültige Funktionsdeklaration"
+
+#~ msgid "named return values are no longer supported"
+#~ msgstr "benannte Rückgabewerte werden nicht mehr unterstützt"
+
+#~ msgid "%D redeclared with different access"
+#~ msgstr "%D mit anderem Zugriff redeklariert"
+
+#~ msgid "destructor `%D' declared as member template"
+#~ msgstr "Destruktor »%D« als Element-Template deklariert"
+
+#~ msgid "%J original definition appeared here"
+#~ msgstr "%J ursprüngliche Definition trat hier auf"
+
+#~ msgid "`%T' uses anonymous type"
+#~ msgstr "»%T« verwendet anonymen Typen"
+
+#~ msgid "`%T' uses local type `%T'"
+#~ msgstr "»%T« verwendet lokalen Typen »%T«"
+
+#~ msgid "integral expression `%E' is not constant"
+#~ msgstr "Integralausdruck »%E« ist nicht konstant"
+
+#~ msgid "object missing in reference to `%D'"
+#~ msgstr "Objekt fehlt in Referenz auf »%D«"
+
+#~ msgid "`%D' is not a member of `%D'"
+#~ msgstr "»%D« ist kein Element von »%D«"
+
+#~ msgid "`%D' cannot appear in a constant-expression"
+#~ msgstr "»%D« kann nicht in Konstanten-Ausdruck auftreten"
+
+#~ msgid "%s between distinct pointer-to-member types `%T' and `%T' lacks a cast"
+#~ msgstr "%s zwischen verschiedenen Zeiger-auf-Element-Typen »%T« und »%T« fehlt eine Typkonvertierung"
+
+#~ msgid "invalid application of `%s' to a bit-field"
+#~ msgstr "ungültige Anwendung von »%s« auf ein Bitfeld"
+
+#~ msgid "ISO C++ forbids applying `%s' to an expression of function type"
+#~ msgstr "ISO-C++ verbietet Anwendung von »%s« auf einen Ausdruck mit Funktionstyp"
+
+#~ msgid "invalid use of non-static member function"
+#~ msgstr "falsche Benutzung einer nicht-statischen Elementfunktion"
+
+#~ msgid "invalid use of nonstatic data member '%E'"
+#~ msgstr "ungültige Benutzung des nicht-statischen Datenelements »%E«"
+
+#~ msgid "parameter %P of `%D' has incomplete type `%T'"
+#~ msgstr "Parameter %P von »%D« hat unvollständigen Typen »%T«"
+
+#~ msgid "parameter %P has incomplete type `%T'"
+#~ msgstr "Parameter %P hat unvollständigen Typen »%T«"
+
+#~ msgid "%s expression list treated as compound expression"
+#~ msgstr "%s Ausdrucksliste als zusammengesetzten Ausdruck behandelt"
+
+#~ msgid "pointer to member cast via virtual base `%T'"
+#~ msgstr "Typumwandlung von Zeiger in Element über virtuelle Basis »%T«"
+
+#~ msgid "pointer to member conversion via virtual base `%T'"
+#~ msgstr "Konvertierung von Zeiger in Element über virtuelle Basis »%T«"
+
+#~ msgid "return-statement with no value, in function returning '%T'"
+#~ msgstr "Return-Anweisung ohne Wert, in »%T« zurückgebender Funktion"
+
+#~ msgid "return-statement with a value, in function returning 'void'"
+#~ msgstr "Return-Anweisung mit Wert in »void« zurückgebender Funktion"
+
+#~ msgid "Please keep this in mind before you report bugs."
+#~ msgstr "Bitte bedenken Sie dies, wenn Sie einen Fehlerbericht einsenden."
+
+#~ msgid "%Jfinal field '%D' may not have been initialized"
+#~ msgstr "%Jletztes Feld »%D« könnte nicht initialisiert worden sein"
+
+#~ msgid "%J'%D' used prior to declaration"
+#~ msgstr "%J»%D« bereits vor Deklaration benutzt"
+
+#~ msgid "declaration of `%s' shadows a parameter"
+#~ msgstr "Deklaration von »%s« überdeckt einen Parameter"
+
+#~ msgid "declaration of `%s' shadows a symbol from the parameter list"
+#~ msgstr "Deklaration von »%s« überdeckt ein Symbol aus der Parameterliste"
+
+#~ 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 "can't reopen %s: %m"
+#~ msgstr "Es ist nicht möglich, »%s« erneut zu öffnen: %m"
+
+#~ msgid "can't close %s: %m"
+#~ msgstr "Es ist nicht möglich, »%s« zu schließen: %m"
+
+#~ msgid "can't close input file %s: %m"
+#~ msgstr "die Eingabedatei »%s« kann nicht geschlossen werden: %m"
+
+#~ msgid "can't create directory %s: %m"
+#~ msgstr "das Verzeichnis %s kann nicht erzeugt werden: %m"
+
+#~ msgid "can't create %s: %m"
+#~ msgstr "Es ist nicht möglich, %s zu erzeugen: %m"
+
+#~ msgid "`%s' is not a valid class name"
+#~ msgstr "»%s« ist kein gültiger Klassenname"
+
+#~ msgid "--resource requires -o"
+#~ msgstr "--resource erfordert -o"
+
+#~ msgid "cannot specify both -C and -o"
+#~ msgstr "-C und -o können nicht zusammen angegeben werden"
+
+#~ msgid "cannot create temporary file"
+#~ msgstr "temporäre Datei konnte nicht angelegt werden"
+
+#~ msgid "interface `%s' does not have valid constant string layout"
+#~ msgstr "die Schnittstelle »%s« hat nicht die Form einer konstanten Zeichenkette"
+
+#~ msgid "`%s' is not an Objective-C class name or alias"
+#~ msgstr "»%s« ist kein Klassenname oder Alias in Objective-C"
+
+#~ msgid "`%s' redeclared as different kind of symbol"
+#~ msgstr "»%s« redeklariert als andere Symbolart"
+
+#~ msgid "%J%s `%s'"
+#~ msgstr "%J%s: »%s«"
+
+#~ msgid "multiple %s named `%c%s' found"
+#~ msgstr "mehrere %s namens »%c%s« gefunden"
+
+#~ msgid "no super class declared in @interface for `%s'"
+#~ msgstr "keine Superklasse im @interface für »%s« deklariert"
+
+#~ msgid "`%s' may not respond to `%c%s'"
+#~ msgstr "»%s« antwortet möglicherweise nicht auf »%c%s«"
+
+#~ msgid "`%c%s' not implemented by protocol(s)"
+#~ msgstr "»%c%s« nicht von Protokoll(en) implementiert"
+
+#~ msgid "`...' as arguments.)"
+#~ msgstr "»...« als Argumente.)"
+
+#~ msgid "duplicate declaration of method `%c%s'"
+#~ msgstr "doppelte Deklaration der Methode »%c%s«"
+
+#~ msgid "illegal reference type specified for instance variable `%s'"
+#~ msgstr "unzulässiger Referenztyp für Instanzvariable »%s« angegeben"
+
+#~ msgid "instance variable `%s' has unknown size"
+#~ msgstr "Instanzvariable »%s« hat unbekannte Größe"
+
+#~ msgid "type `%s' has virtual member functions"
+#~ msgstr "der Typ »%s« hat virtuelle Elementfunktionen"
+
+#~ msgid "illegal aggregate type `%s' specified for instance variable `%s'"
+#~ msgstr "unzulässiger Aggregattyp »%s« für Instanzvariable »%s« angegeben"
+
+#~ msgid "%s `%s' does not fully implement the `%s' protocol"
+#~ msgstr "%s »%s« implementiert das »%s«-Protokoll nicht vollständig"
+
+#~ msgid "previous declaration of `%s'"
+#~ msgstr "vorherige Deklaration von »%s«"
+
+#~ msgid "Display this information"
+#~ msgstr "Diese Informationen anzeigen"
+
+#~ msgid "Do not discard comments"
+#~ msgstr "Kommentare nicht verwerfen"
+
+#~ msgid "Warn about subscripts whose type is \"char\""
+#~ msgstr "Vor Indizes mit Typ \"char\" warnen"
+
+#~ msgid "Make implicit function declarations an error"
+#~ msgstr "Fehler bei impliziten Funktionsdeklaration erzeugen"
+
+#~ msgid "Warn if passing too many arguments to a function for its format string"
+#~ msgstr "Bei zu vielen Argumenten für eine Funktion (anhand Formatzeichenkette) warnen"
+
+#~ msgid "Warn about suspicious declarations of \"main\""
+#~ msgstr "Vor verdächtigen Deklarationen von \"main\" warnen"
+
+#~ msgid "Warn about global functions without previous declarations"
+#~ msgstr "Vor globalen Funktionen ohne vorherige Deklaration warnen"
+
+#~ msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
+#~ msgstr "Vor Funktionen, die Kandidaten für __attribute__((noreturn)) sind, warnen"
+
+#~ msgid "Warn about use of multi-character character constants"
+#~ msgstr "Bei Verwendung von Zeichenkonstanten mit mehreren Zeichen warnen"
+
+#~ msgid "Warn about \"extern\" declarations not at file scope"
+#~ msgstr "Vor \"extern\"-Deklarationen außerhalb des Dateisichtbarkeitsbereiches warnen"
+
+#~ msgid "Warn about code which might break strict aliasing rules"
+#~ msgstr "Vor Code warnen, der strict-aliasing-Regeln verletzen könnte"
+
+#~ msgid "Warn about unprototyped function declarations"
+#~ msgstr "Vor Funktionsdeklarationen ohne Prototyp warnen"
+
+#~ msgid "Warn about features not present in traditional C"
+#~ msgstr "Vor Sprachmerkmalen, die in traditionellem C nicht verfügbar sind, warnen"
+
+#~ msgid "Recognize built-in functions"
+#~ msgstr "Eingebaute Funktionen erkennen"
+
+#~ msgid "Preserve case used in program"
+#~ msgstr "Im Programm verwendete Groß-/Kleinschreibung beibehalten"
+
+#~ msgid "Inline member functions by default"
+#~ msgstr "Standardmäßig »inline«-Elementfunktionen"
+
+#~ msgid "Permit '$' as an identifier character"
+#~ msgstr "'$' als Bezeichnerzeichen zulassen"
+
+#~ msgid "Generate code to check exception specifications"
+#~ msgstr "Code zur Überprüfung von Exception-Spezifikationen erzeugen"
+
+#~ msgid "Place each function into its own section"
+#~ msgstr "Jede Funktion in ihren eigenen Abschnitt platzieren"
+
+#~ msgid "Generate code for GNU runtime environment"
+#~ msgstr "Code für die GNU-Laufzeitumgebung erzeugen"
+
+#~ msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
+#~ msgstr "Code für die NeXT (Apple Mac OS X) Laufzeitumgebung erzeugen"
+
+#~ msgid "Convert floating point constants to single precision constants"
+#~ msgstr "Fließkommakonstanten in Konstanten einfacher Genauigkeit konvertieren"
+
+#~ msgid "Print internal debugging-related information"
+#~ msgstr "Interne Testinformationen ausgeben"
+
+#~ msgid "Dump declarations to a .decl file"
+#~ msgstr "Deklaration in .decl-Datei ausgeben"
+
+#~ msgid "-o <file>\tPlace output into <file>"
+#~ msgstr "-o <Datei>\tAusgabe in <Datei> schreiben"
+
+#~ msgid "Generate C header of platform-specific features"
+#~ msgstr "C-Header mit Plattform-spezifischen Merkmalen erzeugen"
+
+#~ msgid "Remap file names when including files"
+#~ msgstr "Dateinamen beim Einfügen von Dateien neu abbilden"
+
+#~ msgid "GCC does not support -C or -CC without -E"
+#~ msgstr "GCC unterstützt nicht -C oder -CC ohne -E"
+
+#~ msgid "-pipe is not supported"
+#~ msgstr "-pipe wird nicht unterstützt"
+
+#~ msgid "-keep_private_externs not allowed with -dynamiclib"
+#~ msgstr "-keep_private_externs ist mit -dynamiclib nicht erlaubt"
+
+#~ msgid "-private_bundle not allowed with -dynamiclib"
+#~ msgstr "-private_bundle ist mit -dynamiclib nicht erlaubt"
+
+#~ msgid "-pg not supported on this platform"
+#~ msgstr "-pg wird auf dieser Plattform nicht unterstützt"
+
+#~ msgid "GCC does not support -C without using -E"
+#~ msgstr "GCC unterstützt nicht -C ohne -E"
+
+#~ msgid "GCC does not support -CC without using -E"
+#~ msgstr "GCC unterstützt nicht -CC ohne -E"
+
+#~ msgid "`-p' not supported; use `-pg' and gprof(1)"
+#~ msgstr "»-p« wird nicht unterstützt; verwenden Sie »-pg« und gprof(1)"
+
+#~ msgid "may not use both -m32 and -m64"
+#~ msgstr "-m32 und -m64 können nicht zusammen angegeben werden"
+
+#~ msgid "profiling not supported with -mg\n"
+#~ msgstr "Profiling wird mit -mg nicht unterstützt\n"
+
+#~ msgid "does not support multilib"
+#~ msgstr "unterstützt nicht multilib"
+
+#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+#~ msgstr "Verkettung von Zeichenkettenliteralen mit __FUNCTION__ ist veraltet"
+
+#~ msgid "ISO C++ forbids range expressions in switch statements"
+#~ msgstr "ISO-C++ verbietet Wertebereichsausdrücke in switch-Anweisungen"
+
+#~ msgid "ISO C++ forbids taking the address of a label"
+#~ msgstr "ISO-C++ verbietet die Adresse einer Marke"
+
+#~ msgid "declaration of `%s' shadows %s"
+#~ msgstr "Deklaration von »%s« verdeckt %s"
+
+#~ msgid "`struct %s' incomplete in scope ending here"
+#~ msgstr "»struct %s« im Gültigkeitsbereich, der hier endet, unvollständig"
+
+#~ msgid "`union %s' incomplete in scope ending here"
+#~ msgstr "»union %s« im Gültigkeitsbereich, der hier endet, unvollständig"
+
+#~ msgid "`enum %s' incomplete in scope ending here"
+#~ msgstr "»enum %s« im Gültigkeitsbereich, der hier endet, unvollständig"
+
+#~ msgid "shadowing library function `%s'"
+#~ msgstr "Bibliotheksfunktion »%s« überdeckt"
+
+#~ msgid "library function `%s' declared as non-function"
+#~ msgstr "Bibliotheksfunktion »%s« als Nicht-Funktion deklariert"
+
+#~ msgid "redeclaration of `%s'"
+#~ msgstr "Redeklaration von »%s«"
+
+#~ msgid "prototype for `%s' follows and number of arguments doesn't match"
+#~ msgstr "Prototyp für »%s« folgt und Anzahl der Argumente passt nicht"
+
+#~ msgid "prototype for `%s' follows and argument %d doesn't match"
+#~ msgstr "Prototyp für »%s« folgt und Argument %d passt nicht"
+
+#~ msgid "type qualifiers for `%s' conflict with previous decl"
+#~ msgstr "Typ-Kennzeichner für »%s« stehen in Konflikt mit vorheriger Deklaration"
+
+#~ msgid "a parameter"
+#~ msgstr "ein Parameter"
+
+#~ msgid "a previous local"
+#~ msgstr "ein vorheriges »local«"
+
+#~ msgid "a global declaration"
+#~ msgstr "eine globale Deklaration"
+
+#~ msgid "`%s' was declared implicitly `extern' and later `static'"
+#~ msgstr "»%s« wurde implizit als »extern« und später als »static« deklariert"
+
+#~ msgid "previous external decl of `%s'"
+#~ msgstr "vorherige externe Deklaration von »%s«"
+
+#~ msgid "type mismatch with previous implicit declaration"
+#~ msgstr "Typen passen nicht zu vorheriger impliziter Deklaration"
+
+#~ msgid "`%s' was previously implicitly declared to return `int'"
+#~ msgstr "»%s« wurde bereits implizit deklariert, »int« zurückzugeben"
+
+#~ msgid "`%s' was declared `extern' and later `static'"
+#~ msgstr "»%s« wurde »extern« deklariert und später »static«"
+
+#~ msgid "`%s' locally external but globally static"
+#~ msgstr "»%s« ist lokal extern, aber global »static«"
+
+#~ msgid "function `%s' was previously declared within a block"
+#~ msgstr "Funktion »%s« wurde bereits innerhalb eines Blockes deklariert"
+
+#~ msgid "declaration of `%s' has `extern' and is initialized"
+#~ msgstr "Deklaration von »%s« hat »extern« und ist initialisiert"
+
+#~ msgid "ISO C forbids parameter `%s' shadowing typedef"
+#~ msgstr "ISO-C verbietet typedef verdeckenden Parameter »%s«"
+
+#~ msgid "parameter `%s' points to incomplete type"
+#~ msgstr "Parameter »%s« zeigt auf unvollständigen Typen"
+
+#~ msgid "parameter points to incomplete type"
+#~ msgstr "Parameter zeigt auf unvollständigen Typen"
+
+#~ msgid "`void' in parameter list must be the entire list"
+#~ msgstr "»void« in Parameterliste muss die gesamte Liste sein"
+
+#~ msgid "`union %s' declared inside parameter list"
+#~ msgstr "»union %s« innerhalb Parameterliste deklariert"
+
+#~ msgid "`enum %s' declared inside parameter list"
+#~ msgstr "»enum %s« innerhalb Parameterliste deklariert"
+
+#~ msgid "anonymous enum declared inside parameter list"
+#~ msgstr "anonymes »enum« innerhalb Parameterliste deklariert"
+
+#~ msgid "bit-field `%s' type invalid in ISO C"
+#~ msgstr "Typ des Bitfeldes »%s« ist ungültig in ISO-C"
+
+#~ msgid "parm types given both in parmlist and separately"
+#~ msgstr "Parametertypen sowohl in Parameterliste als auch separat angegeben"
+
+#~ msgid "universal-character-name '\\u%04x' not valid in identifier"
+#~ msgstr "universeller Zeichenname »\\u%04x« nicht gültig in Bezeichner"
+
+#~ msgid "ignoring invalid multibyte character"
+#~ msgstr "ungültiges Multibyte-Zeichen wird ignoriert"
+
+#~ msgid "options array incorrectly sorted: %s is before %s"
+#~ msgstr "Optionenliste falsch sortiert: %s kommt vor %s"
+
+#~ msgid "-Wno-strict-prototypes is not supported in C++"
+#~ msgstr "-Wno-strict-prototypes wird in C++ nicht unterstützt"
+
+#~ 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 ""
+#~ "Optionen:\n"
+#~ " -include <Datei> Inhalt von <Datei> vor anderen Dateien einfügen\n"
+#~ " -imacros <Datei> die Definition von Makros in <Datei> akzeptieren\n"
+#~ " -iprefix <Pfad> <Pfad> als Präfix für die nächsten beiden Optionen\n"
+#~ " angeben\n"
+#~ " -iwithprefix <Verz> <Verz> zum Ende des System-Einfüge-Pfades\n"
+#~ " hinzufügen\n"
+#~ " -iwithprefixbefore <Verz> <Verz> zum das Ende des Haupt-Einfüge-Pfades\n"
+#~ " hinzufügen\n"
+#~ " -isystem <Verz> <Verz> zum Anfang des System-Einfüge-Pfades\n"
+#~ " hinzufügen\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 <Verz> <Verz> zum Ende des System-Einfüge-Pfades\n"
+#~ " hinzufügen\n"
+#~ " -I <Verz> <Verz> zum Anfang des Haupt-Einfüge-Pfades\n"
+#~ " hinzufügen\n"
+#~ " -I- Feineinstellung des Einfügepfades; siehe info-\n"
+#~ " Seiten\n"
+#~ " -nostdinc keine System-Einfüge-Verzeichnisse durchsuchen\n"
+#~ " (-isystem Verzeichnisse werden aber verwendet)\n"
+#~ " -nostdinc++ keine System-Einfüge-Verzeichnisse nach C++\n"
+#~ " durchsuchen\n"
+#~ " -o <Datei> Ausgabe in <Datei> leiten\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 ISO-C-»Trigraphs« unterstützen\n"
+#~ " -std=<Name> Standardkonformität angeben; eines von:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999, c++98\n"
+#~ " -w Warnungen unterdrücken\n"
+#~ " -W[no-]trigraphs Warnungen bei »Trigraphs«\n"
+#~ " -W[no-]comment{s} Warnungen bei geschachtelten Kommentaren\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 Warnungen bei Merkmalen von traditionellem C\n"
+#~ " -W[no-]undef Warnungen bei Verwendung undefinierter Makros\n"
+#~ " mit #if\n"
+#~ " -W[no-]import Warnungen über die Verwendung der Direktive\n"
+#~ " #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 alle Warnungen als Fehler behandeln\n"
+#~ " -W[no-]system-headers keine Warnungen von System-Headern unterdrücken\n"
+#~ " -W[no-]all die meisten Präprozessorwarnungen einschalten\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 make-Abhängigkeiten generieren\n"
+#~ " -MM wie -M, aber System-Header ignorieren\n"
+#~ " -MD make-Abhängigkeiten generieren und kompilieren\n"
+#~ " -MMD wie -MD, aber System-Header ignorieren\n"
+#~ " -MF <Datei> Abhängigkeiten-Ausgabe in die angegebene Datei\n"
+#~ " schreiben\n"
+#~ " -MG fehlende Header-Dateien als generierte Dateien\n"
+#~ " behandeln\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 Generiere falsche (phony) Ziele für Header\n"
+#~ " -MQ <Ziel> MAKE-zitiertes Ziel hinzufügen\n"
+#~ " -MT <Ziel> ein unzitiertes Ziel hinzufügen\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> <Makro> mit Wert \"1\" definieren\n"
+#~ " -D<Makro>=<Wert> <Makro> mit Wert <Wert> definieren\n"
+#~ " -A<Frage>=<Antwort> die <Antwort> auf <Frage> annehmen\n"
+#~ " -A-<Frage>=<Antwort> die <Antwort> auf <Frage> abschalten\n"
+#~ " -U<Makro> <Makro> löschen\n"
+#~ " -v Version anzeigen\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 Namen von Header-Dateien anzeigen wenn sie\n"
+#~ " verwendet werden\n"
+#~ " -C Kommentare nicht streichen\n"
+#~ " -dM am Ende eine Liste von Makrodefinitionen anzeigen\n"
+#~ " -dD Makrodefinitionen in der Ausgabe bewahren\n"
+#~ " -dN wie -dD nur dass die Namen bewahrt werden\n"
+#~ " -dI #include-Anweisungen in die Ausgabe einfügen\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 Eingabedatei als bereits vorverarbeitet behandeln\n"
+#~ " -ftabstop=<Zahl> Tabulatorenabstand für Spaltenmeldungen\n"
+#~ " -P keine #line-Direktiven generieren\n"
+#~ " -remap Dateinamen beim Einfügen neu abbilden\n"
+#~ " --help diese Information anzeigen\n"
+
+#~ msgid "parse error"
+#~ msgstr "Fehler beim Parsen"
+
+#~ msgid "ISO C forbids the address of a cast expression"
+#~ msgstr "ISO-C verbietet die Adresse eines cast-Ausdruckes"
+
+#~ msgid "initializer for static variable is not constant"
+#~ msgstr "Initialisierer für statische Variable ist nicht konstant"
+
+#~ msgid "initializer for static variable uses complicated arithmetic"
+#~ msgstr "Initialisierer für statische Variable verwendet komplizierte Arithmetik"
+
+#~ msgid "aggregate initializer is not constant"
+#~ msgstr "Gesamt-Initialisierer ist nicht konstant"
+
+#~ msgid "aggregate initializer uses complicated arithmetic"
+#~ msgstr "Gesamt-Initialisierer verwendet komplizierte Arithmetik"
+
+#~ msgid "open %s"
+#~ msgstr "öffne %s"
+
+#~ msgid "incompatibilities between object file & expected values"
+#~ msgstr "Inkompatibilitäten zwischen Objektdatei und erwarteten Werten"
+
+#~ msgid ""
+#~ "\n"
+#~ "Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Verarbeite Symboltabelle #%d, Versatz = 0x%.8lx, Art = %s\n"
+
+#~ msgid "string section missing"
+#~ msgstr "Zeichenkettenabschnitt fehlt"
+
+#~ msgid "section pointer missing"
+#~ msgstr "Abschnittszeiger fehlt"
+
+#~ msgid "no symbol table found"
+#~ msgstr "keine Symboltabelle gefunden"
+
+#~ msgid ""
+#~ "\n"
+#~ "Updating header and load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Aktualisiere Kopf und lokale Befehle.\n"
+#~ "\n"
+
+#~ msgid "load command map, %d cmds, new size %ld.\n"
+#~ msgstr "lade Befehlstabelle, %d Befehle, neue Größe: %ld.\n"
+
+#~ msgid ""
+#~ "writing load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "schreibe Ladebefehle.\n"
+#~ "\n"
+
+#~ msgid "close %s"
+#~ msgstr "schließe %s"
+
+#~ msgid "could not convert 0x%l.8x into a region"
+#~ msgstr "konnte 0x%l.8x nicht in eine Region konvertieren"
+
+#~ msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+#~ msgstr "Funktion %s, Region %d, Versatz = %ld (0x%.8lx)\n"
+
+#~ msgid "bad magic number"
+#~ msgstr "falsche magische Zahl"
+
+#~ msgid "bad header version"
+#~ msgstr "falsche Kopf-Version"
+
+#~ msgid "bad raw header version"
+#~ msgstr "falsche Version des Original-Kopfes"
+
+#~ msgid "raw header buffer too small"
+#~ msgstr "Original-Kopf-Puffer zu klein"
+
+#~ msgid "old raw header file"
+#~ msgstr "alte Original-Kopf-Datei"
+
+#~ msgid "unsupported version"
+#~ msgstr "nicht unterstützte Version"
+
+#~ msgid "unknown {de,en}code_mach_o_hdr return value %d"
+#~ msgstr "unbekannter Rückgabewert %d für {de,en}code_mach_o_hdr"
+
+#~ msgid "fstat %s"
+#~ msgstr "fstat %s"
+
+#~ msgid "lseek %s 0"
+#~ msgstr "lseek %s 0"
+
+#~ msgid "read %s"
+#~ msgstr "Lese %s"
+
+#~ msgid "read %ld bytes, expected %ld, from %s"
+#~ msgstr "%ld Bytes gelesen, %ld erwartet, von %s"
+
+#~ msgid "msync %s"
+#~ msgstr "msync %s"
+
+#~ msgid "munmap %s"
+#~ msgstr "munmap %s"
+
+#~ msgid "write %s"
+#~ msgstr "schreibe %s"
+
+#~ msgid "wrote %ld bytes, expected %ld, to %s"
+#~ msgstr "%ld Bytes geschrieben, %ld erwartet, nach %s"
+
+#~ msgid "ISO C++ does not permit \"%s\" in #if"
+#~ msgstr "ISO-C++ lässt nicht »%s« in #if zu"
+
+#~ msgid "invalid character '\\%03o' in #if"
+#~ msgstr "ungültiges Zeichen '\\%03o' in #if"
+
+#~ msgid "absolute file name in remap_filename"
+#~ msgstr "absoluter Dateiname in remap_filename"
+
+#~ msgid "%s: Not a directory"
+#~ msgstr "%s: Kein Verzeichnis"
+
+#~ msgid "directory name missing after %s"
+#~ msgstr "Verzeichnisname fehlt hinter %s"
+
+#~ msgid "file name missing after %s"
+#~ msgstr "Dateiname fehlt hinter %s"
+
+#~ msgid "path name missing after %s"
+#~ msgstr "Pfadname fehlt hinter %s"
+
+#~ msgid "unknown string token %s\n"
+#~ msgstr "Unbekanntes Zeichenketten-Token %s\n"
+
+#~ msgid "non-hex digit '%c' in universal-character-name"
+#~ msgstr "Nicht-Hex-Ziffer '%c' in Universal-Zeichen-Name"
+
+#~ msgid "universal-character-name on EBCDIC target"
+#~ msgstr "Universal-Zeichen-Name auf EBCDIC Ziel"
+
+#~ msgid "universal-character-name out of range"
+#~ msgstr "Universal-Zeichen-Name außerhalb des Wertebereiches"
+
+#~ msgid "escape sequence out of range for its type"
+#~ msgstr "Fluchtsequenz außerhalb des Wertebereiches seines Typs"
+
+#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+#~ msgstr "#import ist veraltet, benutzen Sie einen #ifndef-Wrapper in der Header-Datei"
+
+#~ msgid "#pragma once is obsolete"
+#~ msgstr "#pragma once ist veraltet"
+
+#~ msgid "%s: warnings being treated as errors\n"
+#~ msgstr "%s: Warnungen als Fehler behandelt\n"
+
+#~ msgid "At top level:"
+#~ msgstr "Auf höchster Ebene:"
+
+#~ msgid "In function `%s':"
+#~ msgstr "In Funktion »%s«:"
+
+#~ msgid ""
+#~ "Please submit a full bug report,\n"
+#~ "with preprocessed source if appropriate.\n"
+#~ "See %s for instructions.\n"
+#~ msgstr ""
+#~ "Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;\n"
+#~ "bearbeiten Sie die Quellen zunächst mit einem Präprozessor, wenn es\n"
+#~ "dienlich ist.\n"
+#~ "Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+#~ "\n"
+#~ "Gehen Sie gemäß den Hinweisen in %s vor.\n"
+
+#~ msgid "In file included from %s:%d"
+#~ msgstr "In von %s:%d eingefügter Datei"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%d"
+#~ msgstr ""
+#~ ",\n"
+#~ " von %s:%d"
+
+#~ msgid "internal regno botch: `%s' has regno = %d\n"
+#~ msgstr "interner RegNr-Fehler: »%s« hat RegNr = %d\n"
+
+#~ msgid "support for the DWARF1 debugging format is deprecated"
+#~ msgstr "Unterstützung für das DWARF1-Debugging-Format ist veraltet"
+
+#~ msgid "unsupported wide integer operation"
+#~ msgstr "breite Ganzzahloperation nicht unterstützt"
+
+#~ msgid "mismatched braces in specs"
+#~ msgstr "unpassende geschweifte Klammern in Spezifikation"
+
+#~ 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 "Konnte einfache Blockdatei %s nicht öffnen.\n"
+
+#~ msgid "Could not open program flow graph file %s.\n"
+#~ msgstr "Konnte Programmflussgraphdatei %s nicht öffnen.\n"
+
+#~ msgid "Could not open data file %s.\n"
+#~ msgstr "Konnte Datei %s nicht öffnen.\n"
+
+#~ msgid "Assuming that all execution counts are zero.\n"
+#~ msgstr "Angenommen, dass alle Ausführungszähler null sind.\n"
+
+#~ msgid "No executable code associated with file %s.\n"
+#~ msgstr "Kein ausführbarer Code mit Datei %s verbunden.\n"
+
+#~ msgid "didn't use all bb entries of graph, function %s\n"
+#~ msgstr "nicht alle bb-Einträge des Graphen wurden benutzt, 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 "FEHLER: nicht erwartete Zeilennummer %ld\n"
+
+#~ msgid "ERROR: too many basic blocks in function %s\n"
+#~ msgstr "FEHLER: zu viele Basis-Blöcke in Funktion %s\n"
+
+#~ msgid "ERROR: out of range line number in function %s\n"
+#~ msgstr "FEHLER: Zeilennummer außerhalb des Wertebereiches in Funktion %s\n"
+
+#~ msgid "Could not open source file %s.\n"
+#~ msgstr "Konnte Quelldatei %s nicht öffnen.\n"
+
+#~ msgid "Unexpected EOF while reading source file %s.\n"
+#~ msgstr "Unerwartetes Dateiende beim Lesen der Quelldatei %s.\n"
+
+#~ msgid "Creating %s.\n"
+#~ msgstr "Erzeuge %s.\n"
+
+#~ msgid "Name `%s' contains quotes"
+#~ msgstr "Name »%s« enthält Anführungszeichen"
+
+#~ msgid "invalid string `%s' in define_cpu_unit"
+#~ msgstr "ungültige Zeichenkette »%s« in define_cpu_unit"
+
+#~ msgid "invalid string `%s' in define_query_cpu_unit"
+#~ msgstr "ungültige Zeichenkette »%s« in define_query_cpu_unit"
+
+#~ msgid "invalid string `%s' in define_bypass"
+#~ msgstr "ungültige Zeichenkette »%s« in define_bypass"
+
+#~ msgid "invalid second string `%s' in exclusion_set"
+#~ msgstr "ungültige zweite Zeichenkette »%s« in exclusion_set"
+
+#~ msgid "invalid first string `%s' in presence_set"
+#~ msgstr "ungültige erste Zeichenkette »%s« in presence_set"
+
+#~ msgid "invalid second string `%s' in presence_set"
+#~ msgstr "ungültige zweite Zeichenkette »%s« in presence_set"
+
+#~ msgid "invalid first string `%s' in absence_set"
+#~ msgstr "ungültige erste Zeichenkette »%s« in absence_set"
+
+#~ msgid "invalid second string `%s' in absence_set"
+#~ msgstr "ungültige zweite Zeichenkette »%s« in absence_set"
+
+#~ msgid "invalid string `%s' in define_automaton"
+#~ msgstr "ungültige Zeichenkette »%s« in define_automaton"
+
+#~ msgid "invalid option `%s' in automata_option"
+#~ msgstr "ungültige Option »%s« in automata_option"
+
+#~ msgid "garbage after ) in reservation `%s'"
+#~ msgstr "Müll hinter ) in Reservierung »%s«"
+
+#~ msgid "invalid `%s' in reservation `%s'"
+#~ msgstr "ungültiges »%s« in Reservierung »%s«"
+
+#~ msgid "repetition `%s' <= 1 in reservation `%s'"
+#~ msgstr "Wiederholung »%s« <= 1 in Reservierung »%s«"
+
+#~ msgid "unit `%s' in exclusion is not declared"
+#~ msgstr "Einheit »%s« ist nicht im Ausschluss deklariert"
+
+#~ msgid "`%s' in exclusion is not unit"
+#~ msgstr "»%s« im Ausschluss ist keine Einheit"
+
+#~ msgid "unit `%s' excludes itself"
+#~ msgstr "Einheit »%s« schließt sich selbst aus"
+
+#~ msgid "units `%s' and `%s' in exclusion set belong to different automata"
+#~ msgstr "Einheiten »%s« und »%s« in Ausschlussmenge gehören zu verschiedenen Automaten"
+
+#~ msgid "unit `%s' excludes and requires presence of `%s'"
+#~ msgstr "Einheit »%s« schließt »%s« aus und erfordert dessen Anwesenheit"
+
+#~ msgid "unit `%s' requires absence and presence of `%s'"
+#~ msgstr "Einheit »%s« erfordert die An- und Abwesenheit von »%s«"
+
+#~ msgid "repeated declaration of automaton `%s'"
+#~ msgstr "wiederholte Deklaration des Automaten %s"
+
+#~ msgid "define_insn_reservation `%s' has negative latency time"
+#~ msgstr "define_insn_reservation »%s« hat negative Latenzzeit"
+
+#~ msgid "`%s' is already used as insn reservation name"
+#~ msgstr "»%s« wurde bereits als insn Reservierungsname verwendet"
+
+#~ msgid "define_bypass `%s - %s' has negative latency time"
+#~ msgstr "define_bypass »%s - %s« hat negative Latenzzeit"
+
+#~ msgid "define_unit `%s' without automaton when one defined"
+#~ msgstr "define_unit »%s« ohne Automat trotz Automatendefinition"
+
+#~ msgid "`%s' is declared as cpu unit"
+#~ msgstr "»%s« wurde als CPU-Einheit deklariert"
+
+#~ msgid "`%s' is declared as cpu reservation"
+#~ msgstr "»%s« wurde als CPU-Reservierung deklariert"
+
+#~ msgid "repeated declaration of unit `%s'"
+#~ msgstr "wiederholte Deklaration der Einheit »%s«"
+
+#~ msgid "repeated declaration of reservation `%s'"
+#~ msgstr "wiederholte Deklaration der Reservierung »%s«"
+
+#~ msgid "there is no insn reservation `%s'"
+#~ msgstr "es gibt keine insn-Reservierung »%s«"
+
+#~ msgid "the same bypass `%s - %s' is already defined"
+#~ msgstr "die selbe Überbrückung »%s - %s« wurde bereits definiert"
+
+#~ msgid "bypass `%s - %s' is already defined"
+#~ msgstr "Überbrückung »%s - %s« wurde bereits definiert"
+
+#~ msgid "undeclared unit or reservation `%s'"
+#~ msgstr "nicht deklarierte Einheit oder Reservierung »%s«"
+
+#~ msgid "unit `%s' is not used"
+#~ msgstr "Einheit »%s« wird nicht verwendet"
+
+#~ msgid "reservation `%s' is not used"
+#~ msgstr "Reservierung »%s« ist unbenutzt"
+
+#~ msgid "cycle in definition of reservation `%s'"
+#~ msgstr "Zyklus in Definition der Reservierung »%s«"
+
+#~ msgid "Units `%s' and `%s' should be in the same automaton"
+#~ msgstr "Einheiten »%s« und »%s« sollten im selben Automat sein"
+
+#~ msgid "-split has no argument."
+#~ msgstr "-split hat kein Argument."
+
+#~ msgid "option `-split' has not been implemented yet\n"
+#~ msgstr "Option »-split« wurde noch nicht implementiert\n"
+
+#~ msgid "Automaton `%s': Insn `%s' will never be issued"
+#~ msgstr "Automat »%s«: Insn »%s« wird nie verwendet"
+
+#~ msgid "Insn `%s' will never be issued"
+#~ msgstr "Insn »%s« wird nie verwendet"
+
+#~ msgid "Errors in DFA description"
+#~ msgstr "Fehler in DFA-Beschreibung"
+
+#~ msgid "Error in writing DFA description file %s"
+#~ msgstr "Fehler beim Schreiben der DFA-Definitionsdatei %s"
+
+#~ msgid "No input file name."
+#~ msgstr "Kein Eingabedateiname."
+
+#~ msgid "Profile does not match flowgraph of function %s (out of date?)"
+#~ msgstr "Profil passt nicht zum Flussgraphen der Funktion %s (veraltet?)"
+
+#~ msgid ".da file corrupted"
+#~ msgstr ".da-Datei beschädigt"
+
+#~ msgid "#`%s' not supported by %s#"
+#~ msgstr "#»%s« wird von %s# nicht unterstützt"
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2002 Free Software Foundation, Inc.\n"
+
+#~ msgid "I/O error on output"
+#~ msgstr "Ein-/Ausgabefehler bei der Ausgabe"
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Interner Fehler in %s bei tradcpp.c:%d\n"
+#~ "Bitte senden Sie einen vollständigen Fehlerbericht\n"
+#~ "auf Englisch ein; Fehler in der deutschen Ãœbersetzung\n"
+#~ "sind an de@li.org zu melden.\n"
+#~ "Gehen Sie gemäß den Hinweisen in %s vor."
diff --git a/gcc-4.7/libcpp/po/el.gmo b/gcc-4.7/libcpp/po/el.gmo
new file mode 100644
index 000000000..524be8f9d
--- /dev/null
+++ b/gcc-4.7/libcpp/po/el.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/el.po b/gcc-4.7/libcpp/po/el.po
new file mode 100644
index 000000000..633710ce2
--- /dev/null
+++ b/gcc-4.7/libcpp/po/el.po
@@ -0,0 +1,5317 @@
+# 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: 2012-01-27 16:12+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:674
+#, fuzzy, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr ""
+
+#: charset.c:994
+#, fuzzy
+msgid "universal character names are only valid in C++ and C99"
+msgstr "U+%04X: åêôüò ïñßùí ÷áñáêôÞñáò"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr ""
+
+#: charset.c:1046
+#, fuzzy, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr ""
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr ""
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr ""
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr ""
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr ""
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: charset.c:1202
+#, fuzzy
+msgid "hex escape sequence out of range"
+msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
+
+#: charset.c:1240
+#, fuzzy
+msgid "octal escape sequence out of range"
+msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+# src/main.c:663
+#: charset.c:1321
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
+
+# src/main.c:663
+#: charset.c:1329
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
+
+#: charset.c:1336
+#, fuzzy
+msgid "converting escape sequence to execution character set"
+msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
+
+#: charset.c:1509 charset.c:1573
+#, fuzzy
+msgid "character constant too long for its type"
+msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
+
+#: charset.c:1512
+#, fuzzy
+msgid "multi-character character constant"
+msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
+
+#: charset.c:1612
+#, fuzzy
+msgid "empty character constant"
+msgstr "êåíü áëöáñéèìçôéêü"
+
+#: charset.c:1721
+#, fuzzy, c-format
+msgid "failure to convert %s to %s"
+msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: directives.c:361
+#, fuzzy, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: directives.c:562
+#, fuzzy
+msgid "macro names must be identifiers"
+msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
+
+#: directives.c:611
+#, fuzzy, c-format
+msgid "undefining \"%s\""
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#: directives.c:666
+#, fuzzy
+msgid "missing terminating > character"
+msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: directives.c:771
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr ""
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:911
+#, fuzzy, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: directives.c:917 directives.c:919
+#, fuzzy
+msgid "line number out of range"
+msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
+
+#: directives.c:932 directives.c:1012
+#, fuzzy, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: directives.c:972
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, fuzzy, c-format
+msgid "invalid #%s directive"
+msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr ""
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr ""
+
+#: directives.c:1191
+#, fuzzy, c-format
+msgid "#pragma %s is already registered"
+msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr ""
+
+#: directives.c:1485
+#, fuzzy
+msgid "invalid #pragma push_macro directive"
+msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
+
+#: directives.c:1540
+#, fuzzy
+msgid "invalid #pragma pop_macro directive"
+msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: directives.c:1648
+#, fuzzy, c-format
+msgid "cannot find source file %s"
+msgstr "áäõíáìßá áíïßãìáôïò õðïäï÷Þò: %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr ""
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else ìåôÜ áðü #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr ""
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr ""
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif ìåôÜ áðü #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr ""
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: directives.c:2176
+#, fuzzy
+msgid "assertion without predicate"
+msgstr "Ç ëåéôïõñãßá äåí åðéôñÝðåôáé"
+
+#: directives.c:2179
+#, fuzzy
+msgid "predicate must be an identifier"
+msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2556
+#, fuzzy, c-format
+msgid "unterminated #%s"
+msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+#, fuzzy
+msgid "unterminated comment"
+msgstr "Ìç ôåñìáôéóìÝíç åíôïëÞ `s'"
+
+#: errors.c:235
+msgid "stdout"
+msgstr ""
+
+# src/request.c:37
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+#, fuzzy
+msgid "too many decimal points in number"
+msgstr "Õðåñâïëéêá ðïëëÜ áíïéêôÜ áñ÷åßá óôï óýóôçìá"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr ""
+
+#: expr.c:466
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: expr.c:468
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: expr.c:476
+#, fuzzy
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr ""
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr ""
+
+#: expr.c:515
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr ""
+
+#: expr.c:540
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
+
+#: expr.c:551
+#, fuzzy
+msgid "decimal float constants are a GCC extension"
+msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
+
+#: expr.c:569
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: expr.c:593
+#, fuzzy
+msgid "use of C++0x long long integer constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: expr.c:594
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:704
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
+
+#: expr.c:735
+#, fuzzy
+msgid "integer constant is so large that it is unsigned"
+msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
+
+#: expr.c:830
+#, fuzzy
+msgid "missing ')' after \"defined\""
+msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr ""
+
+#: expr.c:919
+#, fuzzy
+msgid "floating constant in preprocessor expression"
+msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
+
+#: expr.c:925
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "ìç Ýãêõñïò áñéèìüò áðü ãñáììÝò"
+
+#: expr.c:972
+#, fuzzy, c-format
+msgid "\"%s\" is not defined"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr ""
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120 expr.c:1149
+#, fuzzy, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
+
+#: expr.c:1140
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr ""
+
+#: expr.c:1160
+#, fuzzy, c-format
+msgid "%s with no expression"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr ""
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr ""
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+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:1222
+#, fuzzy, c-format
+msgid "unbalanced stack in %s"
+msgstr "Ìç éóóïñïðçìÝíï ["
+
+#: expr.c:1242
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "RPC: Ìç óõìâáôÝò åêäüóåéò ôïõ RPC"
+
+#: expr.c:1343
+#, fuzzy
+msgid "missing ')' in expression"
+msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò"
+
+#: expr.c:1372
+#, fuzzy
+msgid "'?' without following ':'"
+msgstr "óõíôáêôéêü óöÜëìá óôïí ðñüëïãï: %s"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: expr.c:1387
+#, fuzzy
+msgid "missing '(' in expression"
+msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: expr.c:1902
+#, fuzzy
+msgid "division by zero in #if"
+msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:594
+#, fuzzy, c-format
+msgid "%s is a block device"
+msgstr "Äåí Ýìåéíå êáèüëïõ ÷þñïò óôç óõóêåõÞ"
+
+# src/shred.c:1134
+#: files.c:611
+#, fuzzy, c-format
+msgid "%s is too large"
+msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
+
+#: files.c:646
+#, fuzzy, c-format
+msgid "%s is shorter than expected"
+msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr ""
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: init.c:512
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: init.c:543
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr ""
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: lex.c:851
+#, fuzzy
+msgid "backslash-newline at end of file"
+msgstr "ìç Ýãêõñç äéáöõãÞ ìå ðéóùêÜèåôï óôï ôÝëïò ôïõ áëöáñéèìçôéêïý"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr ""
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: lex.c:991
+#, fuzzy
+msgid "null character(s) ignored"
+msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï áñ÷åßï: "
+
+#: lex.c:1028
+#, fuzzy, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: lex.c:1031
+#, fuzzy, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, fuzzy, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
+
+#: lex.c:1460 lex.c:1482
+#, fuzzy
+msgid "unterminated raw string"
+msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "Ý÷åé ðáñáëçöèåß ôåñìáôéêüò ÷áñáêôÞñáò %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr ""
+
+#: lex.c:2471
+#, fuzzy, c-format
+msgid "unspellable token %s"
+msgstr "%s: áäýíáôï ôï Üíïéãìá ôïõ %s: %m\n"
+
+#: macro.c:188
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: macro.c:226 macro.c:423
+#, fuzzy, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ìç Ýãêõñï ìÞêïò ãñáììÞò: %s"
+
+#: macro.c:260
+#, fuzzy
+msgid "could not determine file timestamp"
+msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
+
+#: macro.c:358
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+#, fuzzy
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ìç Ýãêõñïò áñ÷éêüò áñéèìüò ãñáììÞò: `%s'"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: macro.c:682
+#, fuzzy
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: macro.c:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, fuzzy, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr ""
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: macro.c:2783
+#, fuzzy
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: macro.c:2999
+#, fuzzy, c-format
+msgid "\"%s\" redefined"
+msgstr "áüñéóôï"
+
+#: macro.c:3005
+#, fuzzy
+msgid "this is the location of the previous definition"
+msgstr "áõôÞ åßíáé ç èÝóç ôïõ ðñþôïõ ïñéóìïý"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr ""
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr ""
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: traditional.c:969
+#, 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 "missing binary operator"
+#~ msgstr "Áãíùóôïò äõáäéêüò ÷åéñéóôÞò."
+
+#, 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 "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 "invalid #pragma %s"
+#~ msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
+
+#, 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 "ìç Ýãêõñï üñéóìá ìÞêïõò ðåñéå÷ïìÝíïõ"
+
+# 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.7/libcpp/po/es.gmo b/gcc-4.7/libcpp/po/es.gmo
new file mode 100644
index 000000000..d6c2adead
--- /dev/null
+++ b/gcc-4.7/libcpp/po/es.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/es.po b/gcc-4.7/libcpp/po/es.po
new file mode 100644
index 000000000..2c7d09183
--- /dev/null
+++ b/gcc-4.7/libcpp/po/es.po
@@ -0,0 +1,980 @@
+# 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: 2012-01-27 16:12+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:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "convirtiendo al conjunto de caracteres de ejecución"
+
+#: charset.c:804
+#, 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:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "El carácter %x puede no ser NFKC"
+
+#: charset.c:994
+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:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "el significado de '\\%c' es diferente en C tradicional"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "En _cpp_valid_unc pero no es un NUC"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nombre universal de carácter %.*s incompleto"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s no es un carácter universal válido"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "'$' en el identificador o número"
+
+#: charset.c:1066
+#, 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:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "convirtiendo un NUC al conjunto de caracteres fuente"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "convirtiendo un NUC al conjunto de caracteres de ejecución"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "el significado de '\\x' es diferente en C tradicional"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "se usó \\x sin dígitos hexadecimales a continuación"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "secuencia de escape hexadecimal fuera de rango"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "secuencia de escape octal fuera de rango"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "el significado de '\\a' es diferente en C tradicional"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "secuencia de escape que no es estándard ISO, '\\%c'"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "secuencia de escape desconocida: '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "secuencia de escape desconocida: '\\%s'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "convirtiendo una secuencia de escape al conjunto de caracteres de ejecución"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "constante de carácter demasiado grande para su tipo"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "constante de carácter con múltiples caracteres"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "constante de carácter vacía"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "no se puede convertir %s a %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "elementos extra al final de la directiva #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s es una extensión de GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s es una extensión de GCC obsoleta"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "se sugiere no usar #elif en C tradicional"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C tradicional ignora #%s con el # indentado"
+
+#: directives.c:381
+#, 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:407
+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:427
+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:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directiva de preprocesamiento #%s inválida"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" no se puede usar como un nombre de macro"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "no se dio un nombre de macro en la directiva #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "los nombres de macro deben ser identificadores"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "borrando la definición de \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "falta el carácter de terminación >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s espera \"NOMBRE_ARCHIVO\" ó <NOMBRE_ARCHIVO>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nombre de fichero vacío en #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include anidado con demasiada profundidad"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next en fichero primario de código fuente"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "indicador \"%s\" inválido en la línea de la directiva"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "fin de fichero inesperado después de #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" después de #line no es un entero positivo"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "número de línea fuera de rango"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" no es un nombre de fichero válido"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" después de # no es un entero positivo"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "directiva #%s inválida"
+
+#: directives.c:1158
+#, 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:1167
+#, 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:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s ya está registrado"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s ya está registrado"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "se registra un pragma con manejador NULL"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma una vez en el fichero principal"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "directiva #pragma push_macro inválida"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "directiva #pragma pop_macro inválida"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "directiva #pragma de GCC envenenada inválida"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "se envenena la macro existente \"%s\""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorado fuera del fichero a incluir"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "no se puede encontrar el fichero fuente %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "el fichero actual es más antiguo que %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma lleva una cadena literal entre paréntesis"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else sin #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else después de #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "el condicional empezó aquí"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif sin #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif después de #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif sin #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "falta '(' antes del predicado"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "falta ')' para completar la respuesta"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "la respuesta del predicado está vacía"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "afirmación sin predicado"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "el predicado debe ser un identificador"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" reafirmado"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s sin terminar"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "comentario sin terminar"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "salida estándard"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "demasiados puntos decimales en el número"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "las constantes de coma fija son una extensión GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "dígito \"%c\" inválido en la constante binaria"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "dígito \"%c\" inválido en la constante octal"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "prefijo \"0b\" inválido en la constante de coma flotante"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "no hay dígitos en la constante de coma flotante hexadecimal"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "uso de una constante de coma flotante hexadecimal C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "el exponente no tiene dígitos"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "las constantes de coma flotante hexadecimal requieren un exponente"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufijo \"%.*s\" inválido en la constante de coma flotante"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C tradicional rechaza el sufijo \"%.*s\""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "el sufijo para una constante doble es una extensión GCC"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "sufijo \"%.*s\" inválido en la constante de coma flotante hexadecimal"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "las constantes de coma flotante decimal son una extensión GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufijo \"%.*s\" inválido en la constante entera"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "uso de una constante entera long long C++0x"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "uso de una constante entera long long C99"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "las constantes imaginarias son una extensión GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "las constantes binarias son una extensión GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "la constante entera es demasiado grande para su tipo"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "la constante entera es tan grande que es unsigned"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "falta ')' después de \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "el operador \"defined\" requiere un identificador"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" es un elemento alternativo para \"%s\" en C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "este uso de \"defined\" puede no ser transportable"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "literal definida por el usuario en una expresión del preprocesador"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "constante de coma flotante en una expresión del preprocesador"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "número imaginario en una expresión del preprocesador"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" no está definido"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "las aserciones son una extensión GCC"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "las aserciones son una extensión obsoleta"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "falta un operador binario antes del elemento \"%s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "el elemento \"%s\" no es válido en las expresiones del preprocesador"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "falta una expresión entre '(' y ')'"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s sin expresión"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "el operador '%s' no tiene operando derecho"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "el operador '%s' no tiene operando izquierdo"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ':' sin una '?' precedente"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "pila desbalanceada en %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador '%u' imposible"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "falta un ')' en la expresión"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' sin ':' a continuación"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "desbordamiento entero en expresión del preprocesador"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "falta un '(' en la expresión"
+
+#: expr.c:1419
+#, 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:1424
+#, 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:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "C tradicional rechaza el operador unario mas"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "operador coma en operando de #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "división por cero en #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "directorio NULL en find_file"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "use -Winvalid-pch para más información"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s es un dispositivo de bloques"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s es demasiado grande"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s es más corto de lo esperado"
+
+#: files.c:881
+#, 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:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Guardias múltiples de include pueden ser útiles para:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t debe ser de un tipo unsigned"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "el char del objetivo tiene menos de 8 bits de ancho"
+
+#: init.c:530
+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:534
+msgid "target int is narrower than target char"
+msgstr "el int del objetivo es más estrecho que el char del objetivo"
+
+#: init.c:539
+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:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "caracteres de barra invertida y fin de línea separados por espacio"
+
+#: lex.c:851
+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:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "se convierte el trigrafo ??%c a %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "se ignora el trigrafo ??%c, use -trigraphs para reconocerlo"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" dentro de un comentario"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s en la directiva de preprocesamiento"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "caracter(es) nulo(s) ignorados"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' no está en NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' no está en NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "intento de usar \"%s\" envenenado"
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, 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:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "el delimitador de cadena cruda es más largo que 16 caracteres"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "carácter inválido '%c' en un delimitador de cadena cruda"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "cadena cruda sin terminar"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "caracter(es) nulo(s) preservados en la literal"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "falta el carácter de terminación %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "los comentarios de estilo C++ no se permiten en ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(esto se reportará solamente una vez por cada fichero de entrada)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "comentario en múltiples líneas"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "elemento %s impronunciable"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "la macro \"%s\" no se utiliza"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interna \"%s\" inválida"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "no se puede determinar la marca de fecha del fichero"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "no se puede determinar la fecha y la hora"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "se expande __COUNTER__ dentro de una directiva con -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "cadena literal inválida, se ignora el '\\' final"
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requiere que el resto de los argumentos sea usado"
+
+#: macro.c:687
+#, 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:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "lista de argumentos sin terminar al invocar la macro \"%s\""
+
+#: macro.c:1026
+#, 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:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "parámetro de macro \"%s\" duplicado"
+
+#: macro.c:2642
+#, 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:2650
+msgid "macro parameters must be comma-separated"
+msgstr "los parámetros de macro deben ser separados por comas"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "falta el nombre del parámetro"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "los macros variadic anónimos se introdujeron en C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C no permite macros variadic nombrados"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "falta ')' en la lista de parámetros de macro"
+
+#: macro.c:2748
+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:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requiere espacios en blanco después del nombre de macro"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "faltan espacios en blanco después del nombre de macro"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' no es seguido por un parámetro de macro"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "se redefinió \"%s\""
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "esta es la ubicación de la definición previa"
+
+#: macro.c:3066
+#, 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:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipo de hash %d inválido en cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "al escribir el encabezado precompilado"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: no se usa porque `%.*s' está envenenado"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: no se usa porque `%.*s' no está definido"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: no se usa porque `%s' está definido"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: no se usa porque `__COUNTER__' es inválido"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "al leer el encabezado precompilado"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "se detectó recursión al expandir la macro \"%s\""
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "error de sintaxis en la lista de parámetros de macro"
+
+#~ 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.7/libcpp/po/fi.gmo b/gcc-4.7/libcpp/po/fi.gmo
new file mode 100644
index 000000000..628c07390
--- /dev/null
+++ b/gcc-4.7/libcpp/po/fi.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/fi.po b/gcc-4.7/libcpp/po/fi.po
new file mode 100644
index 000000000..bb84f3d36
--- /dev/null
+++ b/gcc-4.7/libcpp/po/fi.po
@@ -0,0 +1,966 @@
+# Finnish messages for cpplib.
+# Copyright © 2010, 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010, 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: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-01-29 20:48+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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv ei tue muunnosta kohteesta %s kohteeseen %s"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "ei iconv-toteutusta, ei voida muuntaa kohteesta %s kohteeseen %s"
+
+#: charset.c:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "muunnetaan suoritusmerkkijoukkoon"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "merkki 0x%lx ei ole yksitavumerkki suoritusmerkkijoukossa"
+
+# NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Merkki %x ei saattaisi olla Unicode-normalisointimerkkijonomuotoa NFKC"
+
+#: charset.c:994
+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:997
+#, 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:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Kohteessa _cpp_valid_ucn mutta ei UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "vaillinainen yleispätevä merkkinimi %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s ei ole kelvollinen yleispätevä merkki"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "’$’ tunnisteessa tai numerossa"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "yleispätevä merkki %.*s ei ole kelvollinen tunniste"
+
+#: charset.c:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "muunnetaan UCN lähdemerkkijoukoksi"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "muunnetaan UCN suoritusmerkkijoukoksi"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "merkin ’\\x’ merkitys on erilainen perinteisessä C:ssä"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x käytetty ilman seuraavia heksadesimaalinumeroita"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "heksadesimaali koodinvaihtosekvenssi lukualueen ulkopuolella"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "oktaaliluku koodinvaihtosekvenssi lukualueen ulkopuolella"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "merkin ’\\a’ merkitys on erilainen perinteisessä C:ssä"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "ei-ISO-standardi koodinvaihtosekvenssi ’\\%c’"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "tuntematon koodinvaihtosekvenssi ’\\%c’"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "tuntematon koodinvaihtosekvenssi ’\\%s’"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "muunnetaan koodinvaihtosekvenssi suoritusmerkkijoukoksi"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "merkkivakio on liian pitkä tälle tyypille"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "monimerkkikirjainvakio"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "tyhjä merkkivakio"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "virhe muuntaa kohde %s kohteeksi %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "direktiivin #%s lopussa ylimääräisiä merkkejä"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s on GCC-laajennus"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s on vanhentunut GCC-laajennus"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "ei suositella #elif-käyttöä perinteisessä C:ssä"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "perinteinen C ohittaa #%s merkillä # sisennettynä"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "suosittelee piilottamaan #%s perinteisestä C:stä sisennetyllä #-merkillä"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "direktiivin upottaminen makroargumenttien sisälle ei ole siirrettävä"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "rividirektiivin tyyli on GCC-laajennus"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "virheellinen esikäsittelijädirektiivi #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "â€defined†ei voida käyttää makronimenä"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "makronimeä ei ole annettu #%s-direktiivissä"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "makronimien on oltava tunnisteita"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "määrittelemätön â€%sâ€"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "puuttuva päättymismerkki >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s odottaa â€TIEDOSTONIMI†tai <TIEDOSTONIMI>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "tyhjä tiedostonimi kohteessa #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include sisäkkäinen liian syvälle"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next ensisijaisessa lähdetiedostossa"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "virheellinen lippu â€%s†rividirektiivissä"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "tiedoston odottamaton loppu #line-direktiivin jälkeen"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "â€%s†direktiivin #line jälkeen ei ole positiivinen kokonaisluku"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "rivinumero lukualueen ulkopuolella"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "â€%s†ei ole kelvollinen tiedostonimi"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "â€%s†merkin # jälkeen ei ole positiivinen kokonaisluku"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "virheellinen #%s-direktiivi"
+
+#: directives.c:1158
+#, 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:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "rekisteröidään pragma â€%s†nimilaajennuksella ja ilman nimiavaruutta"
+
+#: directives.c:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s on jo rekisteröity"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s on jo rekisteröity"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "rekisteröidään pragma NULL-käsittelijällä"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once main-tiedostossa"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "virheellinen #pragma push_macro-direktiivi"
+
+#: directives.c:1540
+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:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "virheelinen #pragma GCC poison-direktiivi"
+
+# poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "kielletään olemassaoleva makro â€%sâ€"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ohitetaan include-tiedoston ulkopuolella"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "ei voi löytää lähdetiedostoa %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "nykyinen tiedosto on vanhempi kuin %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma ottaa sulkumerkkeillä ympäröidyn merkkijonoliteraalin"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else ilman #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else jälkeen #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "ehdollinen alkoi tässä"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif ilman #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif jälkeen #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif ilman #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "merkki ’(’ puuttuu predikaatin jälkeen"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "merkki ’)’ puuttuu täydelliseen vastaukseen"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "predikaatin vastaus on tyhjä"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "assertion-toiminto ilman predikaattia"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "predikaatin on oltava tunniste"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "â€%s†uudelleen assert-toimintoon"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "päättämätön #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "päättämätön kommentti"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "vakiotuloste"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "liian monta desimaalipistettä numerossa"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "kiintopistevakiot ovat GCC-laajennus"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "virheellinen numero â€%c†binäärivakiossa"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "virheellinen numero â€%c†oktaalivakiossa"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "virheellinen etuliite â€0b†liukulukuvakiolle"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "ei lukuja heksadesimaalisessa liukulukuvakiossa"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "käytä C99 heksadesimaaliliukulukuvakiota"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "eksponentilla ei ole numeoita"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "heksadesimaalinen liukulukuvakio vaatii eksponentin"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "virheellinen loppuliite â€%.*s†liukulukuvakiossa"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "perinteinen C hylkää â€%.*sâ€-loppuliitteen"
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "loppuliite double-vakiolle on GCC-laajennus"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "virheellinen loppuliite â€%.*s†heksadesimaalisessa liukulukuvakiossa"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "desimaaliliukulukuvakiot ovat GCC-laajennus"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "virheellinen loppuliite â€%.*s†kokonaislukuvakiossa"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "käytä â€C++0x long longâ€-kokonaislukuvakiota"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "käytä â€C99 long longâ€-kokonaislukuvakiota"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginaarivakiot ovat GCC-laajennus"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "binäärivakiot ovat GCC-laajennus"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "kokonaislukuvakio on liian iso sen tyypiksi"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "kokonaislukuvakio on niin iso, että se on etumerkitön"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "merkki ’)’ puuttuu â€definedâ€-merkkijonon jäljestä"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "operaattori â€defined†vaatii tunnisteen"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(â€%s†on vaihtoehtoinen merkkijono â€%s†C++:ssa)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "tämä â€definedâ€-käyttö ei ehkä ole siirrettävä"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "käyttäjämääritelty literaali esikääntäjälausekkeessa"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "liukulukuvakio esikäsittelijälausekkeessa"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginaariluku esikääntäjälausekkeessa"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "â€%s†ei ole määritelty"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "assertion-toiminnot ovat GCC-laajennus"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "assertion-toiminnot ovat vanhentunut laajennus"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "puuttua binäärioperaattori ennen merkkijonoa â€%sâ€"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "merkkijono â€%s†ei ole kelvollinen esikäsittelijälausekkeissa"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "puuttuva lauseke merkkien ’(’ ja ’)’ välillä"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s ilman lauseketta"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "operaattorilla ’%s’ ei ole oikeaa operandia"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "operaattorilla ’%s’ ei ole vasenta operandia"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ’:’ ilman edeltävää ’?’"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "tasapainoton pino kohteessa %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "mahdoton operaattori ’%u’"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "merkki ’)’ puuttuu lausekkeessa"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "’?’ ilman seuraavaa ’:’"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "kokonaislukuylivuoto esikääntäjälausekkeessa"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "merkki ’(’ puuttuu lausekkeessa"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "vasen â€%sâ€-operandi vaihtaa merkkiä, kun korotettiin"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "oikea â€%sâ€-operandi vaihtaa merkkiä, kun korotettiin"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "perinteinen C hylkää unaariplus-operaattorin"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "pilkkuoperaattori #if-operandissa"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "jako nollalla #if-lauseessa"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "NULL-hakemistto kohteessa find_file"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "käytä lisätietoja varten valitsinta -Winvalid-pch"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s on lohkolaite"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s on liian laaja"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s on lyhyempi kuin otaksuttiin"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "ei include-polkua, jossa etsiä kohdetta %s"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Useat include-vartijat saattavat olla hyödyllisiä kohteelle:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t on oltava etumerkitön tyyppi"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "kohdemerkki on pienempi kuin 8 bittiä leveä"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "kohteen wchar_t-tyyppi on kapeampi kuin kohteen char-tyyppi"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "kohteen kokonaislukutyyppi on kapeampi kuin kohteen char-tyyppi"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP-puolikokonaisluku on kapeampi kuin CPP-merkki"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "kenoviiva ja rivinvaihtomerkki eroteltu välilyönnillä"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "kenoviiva-rivinvaihto tiedoston lopussa"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph-merkki ??%c muunnettu merkiksi %c"
+
+#: lex.c:875
+#, 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:924
+msgid "\"/*\" within comment"
+msgstr "â€/*†kommentin sisällä"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s esikäsittelijädirektiivissä"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "null-merkkejä ei oteta huomioon"
+
+# NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "â€%.*s†ei ole Unicode-normalisointimerkkijonomuodossa NFKC"
+
+# NFC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#: lex.c:1031
+#, 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:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "yritys käyttää poison-kiellettyä makroa â€%sâ€"
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "tunniste â€%s†on erikoisoperaattorinimi C++:ssa"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "raakamerkkijonoerotin pitempi kuin 16 merkkiä"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "virheellinen merkki ’%c’ raakamerkkijonoerottimessa"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "päättämätön raakamerkkijono"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "null-merkit säilytetään literaaleissa"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "puuttuva päättymismerkki %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90-standardissa"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(tästä ilmoitetaan vain kerran per syötetiedosto)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "monirivinen kommentti"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "tavaamaton merkkijono %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makroa â€%s†ei ole käytetty"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "virheellinen sisäinen makro â€%sâ€"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "ei voitu ottaa selvää tiedoston aikaleimasta"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "ei voitu ottaa selvää päivämäärästä ja ajasta"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ laajennettu direktiivin sisällä valitsimella -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "virheellinen merkijonoliteraali, ei oteta huomioon lopun ’\\’ merkkejä"
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 vaatii, että loput argumentit käytetään"
+
+#: macro.c:687
+#, 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:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "päättämätön argumenttiluettelo kutsuttaessa makroa â€%sâ€"
+
+#: macro.c:1026
+#, 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:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "kaksoiskappale makroparametri â€%sâ€"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "â€%s†ei ehkä ilmene makroparametriluettelossa"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametrien on oltava pilkulla eroteltuja"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "parametrinimi puuttuu"
+
+# Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
+#: macro.c:2685
+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:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ei salli nimettyjä variadic-makroja"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "puuttuu ’)’ makroparametriluettelosta"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "’##’ ei voi esiintyä makrolaajennuksen kummassakaan päässä"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 vaatii tyhjemerkin makronimen jälkeen"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "puuttuu tyhjemerkki makronimen jälkeen"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "’#’-merkkiä seuraa makroparametri"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "â€%s†on määritelty uudelleen"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "tämä on edellisen määrittelyn sijainti"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makroargumentti â€%s†muunnettaisiin merkkijonoksi perinteisessä C:ssä"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "virheellinen hash-tyyppi %d kohteessa cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+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:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: ei käytetä, koska â€%.*s†on poison-kielletty"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: ei käytetä, koska â€%.*s†ei ole määritelty"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: ei käytetä, koska â€%s†on määritelty"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: ei käytetty, koska â€__COUNTER__†on virheellinen"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "luettaessa esikäännettyjä otsaketiedostoja"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "havaittu rekursio laajennettaessa makroa â€%sâ€"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "syntaksivirhe makroparameteriluettelossa"
diff --git a/gcc-4.7/libcpp/po/fr.gmo b/gcc-4.7/libcpp/po/fr.gmo
new file mode 100644
index 000000000..d3a294b42
--- /dev/null
+++ b/gcc-4.7/libcpp/po/fr.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/fr.po b/gcc-4.7/libcpp/po/fr.po
new file mode 100644
index 000000000..cfb08dc8f
--- /dev/null
+++ b/gcc-4.7/libcpp/po/fr.po
@@ -0,0 +1,20035 @@
+# Messages français pour GNU concernant cpplib.
+# Copyright © 2001, 2008 Free Software Foundation, Inc.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
+# François-Xavier Coudert <fxcoudert@gcc.gnu.org>
+#
+# Vocabulaire utilisé
+# lvalue = membre gauche
+# deprecated = obsolète
+# out of range = hors des limites
+# range = gamme
+# scope = porté, champ
+# shadowing = masquer
+# embedded PIC = PIC enchâssé
+# CPU = processeur
+# structure with flexible member
+# = structure ayant un membre flexible
+# flag = fanion
+# forward declaration
+# = déclaration anticipée
+# token = élément 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 systématiquement)
+# oui dans le contexte du langage C par exemple MR
+# non autrement ...de manière générale MR
+# section attribute attribut de section OK MR
+# wide char caractère long ...non mieux caractère large MR
+# plus conforme à l'esprit.
+#
+# ------
+# literals littéral, ou mot composé ?
+# msgid "ISO C89 forbids compound literals"
+# msgstr "le C89 ISO interdit les mots composés"
+#
+# 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 requérant un nouvel espace),\n"
+# ";; %d succès.\n"
+# "\n"
+#
+# promote promouvoir
+# msgid "the left operand of \"%s\" changes sign when promoted"
+# msgstr "L'opérande 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 règles:
+# - j'ai ajouté un adjectif par rapport à l'anglais si le message est
+# une phrase avec verbe conjugé.
+# - ISO est considéré comme un adjectif dans « C ISO »
+#
+# Erreurs corrigées:
+# librairies, assumer
+#
+# A faire:
+# - s/en ligne/en-ligne/ modifié 9-janv-2004 MR
+# - s/en-ligne/enligne/ modifié 18-février-2004 MR pcq expression ou terme enlignage vs inlining
+# - hors gamme a été changé pour hors limite ...MR 09-jan-2004
+# - literal
+# - chaîne 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: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2008-03-27 22:46+0000\n"
+"Last-Translator: François-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:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "caractère 0x%lx n'est pas dans le jeu de caractères de base\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "conversion vers un jeu d'exécution de caractères"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "caractère 0x%lx n'est pas unibyte dans le jeu de caractères d'exécution"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Le charactère %x n'est peut-être pas dans la normalisation NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "noms de caractère universel sont seulement valides en C++ et C89"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "la signification de « \\%c » est différente en C traditionel"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Dans _cpp_valid_ucn mais pas un Universal Character Name"
+
+# FIXME
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nom de caractère universel incomplet %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s n'est pas un caractère universel valide"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "« $ » dans un identificateur ou un nombre"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "caractère universel %.*s n'est pas valide dans un identificcateur"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "caractère universel %.*s n'est pas valide au début d'un identificcateur"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "conversion UCN vers le jeu source de caractères"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "conversion UCN vers le jeu d'exécution de caractères"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "la signification de « \\x » est différente en C traditionel"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x utilisé sans être suivi de chiffres en hexdécimal"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "séquence d'échappement hexadécimale hors limite"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "séquence d'échappement octale hors limite"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "la signification de « \\a » est différente en C traditionel"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "séquence d'échappement « \\%c » non conforme au standard ISO"
+
+#: charset.c:1321
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "séquence d'échappement « \\%c » inconnue"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "séquence d'échappement « \\%s » inconnue"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "conversion d'une séquence d'échappement vers un jeu d'exécution de caractères"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "constante caractère trop longue pour son type"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "constante caractère multi-caractères"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "constante caractère vide"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "échec de conversion de %s vers %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "éléments lexicaux superflus à la fin de la directive #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s est une extension GCC"
+
+#: directives.c:361
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s est une extension GCC"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "il est suggéré de ne pas utiliser #elif en C traditionnel"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "le C traditionel ignore la directive #%s si le caractère # est indenté"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "il est suggéré de cacher #%s au C traditionel en indentant le « # »"
+
+#: directives.c:407
+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:427
+msgid "style of line directive is a GCC extension"
+msgstr "la directive de style de ligne est extension GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directive de pré-traitement #%s invalide"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "« defined » ne peut être utilisé comme nom de macro"
+
+#: directives.c:556
+#, 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 opérateur en C++"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "aucun nom de macro donné dans la directive #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "les noms de macro doivent être des identificateurs"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "indéfinition de « %s »"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "caractère > de terminaison manquant"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nom de fichier vide dans #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include imbriqué trop profondément"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next dans un fichier source primaire"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "fanion « %s » invalide dans la ligne de directive"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "fin de fichier inattendue après #ligne"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "« %s » après #ligne n'est pas un nombre entier positif"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "numéro de ligne hors limite"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "« %s » n'est pas un nom de fichier valide"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "« %s » après # n'est pas un nombre entier positif"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "directive #%s invalide"
+
+#: directives.c:1158
+#, 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:1167
+#, 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:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "la #pragma %s %s est déjà enregistrée"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "la #pragma %s est déjà enregistrée"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "enregistrement d'un pragma avec un handler égal à NULL"
+
+# FIXME
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once utilisée une seule fois dans le fichier principal"
+
+# FIXME
+#: directives.c:1485
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+# FIXME
+#: directives.c:1540
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+# FIXME
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+# FIXME
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "élimination de la macro existente « %s »"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorée en dehors du fichier d'inclusion"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "impossible de trouver le fichier source %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "le fichier courant est plus vieux que %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma prend une chaîne entourée de parenthèrese"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else sans #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else après #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "la condition débute ici"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif sans #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif après #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif sans #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "« ( » manquante après le prédicat"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "« ) » manquante pour completer la réponse"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "la réponse du prédicat est vide"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "assertion sans prédicat"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "le prédicat doit être un identificateur"
+
+# FIXME
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "« %s » re-asserti"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s non terminé"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "commentaire non terminé"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s : %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "trop de points décimaux dans le nombre"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "les constantes à virgule fixe sont une extension GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "chiffre « %c » invalide dans la constante binaire"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "chiffre « %c » invalide dans la constante en base 8"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "préfixe « 0b » invalide pour une constante flottante"
+
+#: expr.c:481
+#, fuzzy
+#| msgid "use of C99 hexadecimal floating constant"
+msgid "no digits in hexadecimal floating constant"
+msgstr "usage d'une constante hexadécimale constante à la C99"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "usage d'une constante hexadécimale constante à la C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "l'exposant n'a pas de chiffre"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "la contante hexadécimale flottante requière un exposant"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "suffixe « %.*s » invalide pour une constante flottante"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "le C traditionnel interdit le suffixe « %.*s »"
+
+#: expr.c:534
+#, 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:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "suffixe « %.*s » invalide pour une constante flottante hexadécimale"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "les constantes flottantes décimales sont une extension GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "suffixe « %.*s » invalide pour une constante entière"
+
+#: expr.c:593
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++0x long long integer constant"
+msgstr "usage d'une constante entière « long long » à la C99"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "usage d'une constante entière « long long » à la C99"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "les constantes imaginaires sont une extension GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "les constantes binaires sont une extension GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "constante entière trop grande pour tenir dans son type"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "cette constante entière est si grande qu'elle ne peut être signée"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "« ) » manquant après « defined »"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "l'opérateur « defined » requiert un identificateur"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(« %s » est un élément lexical alternatif pour « %s » en C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "cette utilisation de « defined » peut ne pas être portable"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "débordement d'entier dans l'expresion pour le préprocesseur"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "constante flottante dans une expresion pour le préprocesseur"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "constante complexe dans une expresion pour le préprocesseur"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "« %s » n'est pas défini"
+
+#: expr.c:984
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "les constantes binaires sont une extension GCC"
+
+#: expr.c:987
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "assertions are a deprecated extension"
+msgstr "les constantes binaires sont une extension GCC"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "opérateur binaire manquant avant l'élément lexical « %s »"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "l'élément lexical « %s » n'est pas valide dans les expressions pour le préprocesseur"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "expression manquante entre '(' et ')'"
+
+#: expr.c:1160
+#, fuzzy, c-format
+#| msgid "#if with no expression"
+msgid "%s with no expression"
+msgstr "#if sans expression"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "l'opérateur « %s » n'a pas d'opérande droite"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "opérateur « %s » n'a pas d'opérande gauche"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr "« : » n'est pas précédé de « ? »"
+
+#: expr.c:1222
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "pile non balancée dans #if"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "opérateur impossible « %u »"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "« ) » manquante dans l'expresion"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "« ? » n'est pas suivi de « : »"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "débordement d'entier dans l'expresion pour le préprocesseur"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "« ( » manquante dans l'expresion"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "L'opérande droite de « %s » change de signe lors de sa promotion"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "le C traditionnel rejette le plus unaire"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "opérateur virgule dans l'opérande de #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "division par zéro dans #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "répertoire NUL dans find_file"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "un ou plusieurs fichiers PCH ont été repérés, mais ils étaient invalides"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "utiliser -Winvalid-pch pour plus d'informations"
+
+# FIXME
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s est un périphérique de blocs"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s est trop grand"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s est plus petit que prévu"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "aucun chemin d'inclusion dans lequel on pourrait repérer %s"
+
+# FIXME
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "De multiples balises pour les inclusions peuvent être utiles pour:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t doit être d'un type non signé"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "l'arithmétique du préprocesseur a une précision maximale de %lu bits ; la cible requière %lu bits"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "l'arithmétique de CPP doit être au moins aussi précise que le type int de la cible"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "sur la cible, « char » fait moins de 8 bits"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "sur la cible, « wchar_t » est plus petit que « char »"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "sur la cible, « int » est plus petit que « char »"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "les demi-entiers de CPP sont plus petit que les caractères de CPP"
+
+#: init.c:543
+#, 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 gérer les constantes larges de caractères de plus de %lu bits, mais la cible requière %lu bits"
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr "« \\ » et retour de chariot séparés par un blanc"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "« \\ » en fin de ligne à la fin du fichier"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraphe ??%c converti en %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraphe ??%c ignoré, utilisez -trigraphs pour le permettre"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "« /* » à l'intérieur d'un commentaire"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s dans la directive du préprocesseur"
+
+# I18N
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "caractère(s) nul(s) ignoré(s)"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "« %.*s » n'est pas dans la normalisation NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "« %.*s » n'est pas dans la normalisation NFC"
+
+# FIXME
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "tentative d'utilisation d'un « %s » corrompu"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "« __VA_ARGS__ » peut seulement appraître dans l'expansion des macros C99 à nombre variable d'arguments"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, fuzzy, c-format
+#| msgid "invalid character '%c' in #if"
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "caractère « %c » invalide dans #if"
+
+#: lex.c:1460 lex.c:1482
+#, fuzzy
+#| msgid "unterminated format string"
+msgid "unterminated raw string"
+msgstr "chaîne de format non terminée"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "caractère(s) nul préservé(s) dans la chaîne"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "caractère %c de terminaison manquant"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Les commentaires à la C++ ne sont pas permis en C89 ISO"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(ceci sera rapporté une seule fois seulement par fichier d'entrée)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "commentaire multi-lignes"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "l'élément lexical %s ne peut être épelé"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "la macro « %s » n'est pas utilisée"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interne invalide « %s »"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "ne peut déterminer la date de modification du fichier"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "ne peut déterminer la date et l'heure"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "Expansion de __COUNTER__ à l'intérieur d'une directive avec -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "chaîne invalide, « \\ » final ignoré"
+
+#: macro.c:592
+#, 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'élément lexical de pré-traitement valide"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requiert que tous les arguments soient utilisés"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "macro « %s » requiert %u arguments, mais seulement %u ont été passés"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "la macro « %s » a reçu %u arguments, mais elle n'en prend que %u"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "liste d'arguments non terminée invoquant la macro « %s »"
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "la macro « %s » ressemblant à une fonction doit utilisée avec des arguments en C traditionnel"
+
+#: macro.c:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "paramètre de macro « %s » en double"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "« %s » peut ne pas apparaître parmi les paramètres de macros"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "les paramètres de macro doivent être séparés par des virgules"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "nom de paramètre manquant"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "les macros anonymes à nombre variable d'arguments ont été introduites avec le C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ne permet pas les macros nommées à nombre variable d'arguments"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "« ) » manquante dans la liste des paramètres de macros"
+
+# FIXME
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "« ## » ne peut apparaître à chacune des fins de l'expansion de macros"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requiert un blanc après le nom de la macro"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "blanc d'espacement manquant après le nom de la macro"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "« # » n'est pas suivi d'un paramètre de macro"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "« %s » redéfini"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "ceci est la localisation d'une précédente définition"
+
+#: macro.c:3066
+#, 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:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "type de hachage %d invalide dans cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "lors de l'écriture de l'en-tête pré-compilée"
+
+#: pch.c:608
+#, 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 défini"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: n'est pas utilisé parce que « %.*s » n'est pas définie"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: n'est pas utilisé parce que « %.*s » est défini en tant « %s » et non pas « %.*s »"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: non utilisé parce que « %s » est défini"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: non utilisé parce que « __COUNTER__ » est invalide"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "lors de la lecture de l'en-tête pré-compilée"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "récursion détectée lors de l'expansion de la macro « %s »"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "erreur de syntaxe dans la liste de paramètres macro"
+
+#~ msgid "warning: "
+#~ msgstr "attention : "
+
+#~ msgid "internal error: "
+#~ msgstr "erreur interne : "
+
+#~ msgid "error: "
+#~ msgstr "erreur: "
+
+#~ 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 "séquence 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 spécifié 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 "décalage hors des limites d'une chaîne 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 zéro"
+
+#~ msgid "third arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "troisième argument de « __builtin_prefetch » doit être une constante"
+
+#~ msgid "invalid third arg to __builtin_prefetch; using zero"
+#~ msgstr "troisième argument invalide de « __builtin_prefetch »; utilisation de zéro"
+
+#~ 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 paramètre 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'arrêtera"
+
+#~ 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 supportée"
+
+#~ 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 suggère des accolades explicitement pour éviter des « else » ambiguës"
+
+#~ msgid "%J'%D' is not defined outside of function scope"
+#~ msgstr "%J« %D » n'est pas défini à l'extérieur de la portée 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 chaîne « %d » plus grande que la longueur « %d » que les compilateurs ISO C%d doivent supporter"
+
+#~ msgid "overflow in constant expression"
+#~ msgstr "débordement dans l'expression de la constante"
+
+#~ msgid "integer overflow in expression"
+#~ msgstr "débordement d'entier dans l'expression"
+
+#~ msgid "floating point overflow in expression"
+#~ msgstr "débordement d'un nombre en virgule flottante dans l'expression"
+
+#~ msgid "vector overflow in expression"
+#~ msgstr "débordement 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 négatif implicitement converti en un type non signé"
+
+#~ msgid "overflow in implicit constant conversion"
+#~ msgstr "débordement dans la conversion implicte de la constante"
+
+#~ msgid "operation on `%s' may be undefined"
+#~ msgstr "l'opération portant sur « %s » est peut être indéfinie"
+
+#~ msgid "expression statement has incomplete type"
+#~ msgstr "la déclaration de l'expression a un type incomplet"
+
+#~ msgid "case label does not reduce to an integer constant"
+#~ msgstr "l'étiquette du « case » ne se réduit pas en une constante entière"
+
+#~ msgid "invalid truth-value expression"
+#~ msgstr "expression valeur de vérité invalide"
+
+#~ msgid "invalid operands to binary %s"
+#~ msgstr "opérandes 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 limitée de type de données"
+
+#~ msgid "comparison is always true due to limited range of data type"
+#~ msgstr "comparaison est toujours vraie en raison d'une gamme limitée de type de données"
+
+#~ msgid "comparison of unsigned expression >= 0 is always true"
+#~ msgstr "comparaison d'une expression non signée >=0 est toujours vraie"
+
+#~ msgid "comparison of unsigned expression < 0 is always false"
+#~ msgstr "comparaison d'une expression non signée < 0 est toujours fausse"
+
+#~ msgid "pointer of type `void *' used in arithmetic"
+#~ msgstr "usage en arithmétique d'un pointeur de type « void * »"
+
+#~ msgid "pointer to a function used in arithmetic"
+#~ msgstr "usage en arithmétique d'un pointeur vers une fonction"
+
+#~ msgid "pointer to member function used in arithmetic"
+#~ msgstr "usage en arithmétique 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 évaluée comme étant « true »"
+
+#~ msgid "suggest parentheses around assignment used as truth value"
+#~ msgstr "parenthèses suggérées autour de l'affectation utilisée comme valeur de vérité"
+
+#~ 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 désactiver 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 déclarations switch ne sont pas standard"
+
+#~ msgid "empty range specified"
+#~ msgstr "intervalle vide spécifié"
+
+#~ msgid "duplicate (or overlapping) case value"
+#~ msgstr "valeur du « case » duppliquée (ou en chevauchant une autre)"
+
+#~ msgid "%Jthis is the first entry overlapping that value"
+#~ msgstr "%Jest la première entrée chevauchant cette valeur"
+
+#~ msgid "duplicate case value"
+#~ msgstr "valeur du « case » duppliquée"
+
+#~ msgid "%Jpreviously used here"
+#~ msgstr "%Jprécédemment utilisé ici"
+
+#~ msgid "multiple default labels in one switch"
+#~ msgstr "plusieurs étiquettes par défaut dans un « switch »"
+
+#~ msgid "%Jthis is the first default label"
+#~ msgstr "%Jest la première étiquette par défaut"
+
+#~ 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 » ignorée, déclarée avec l'attribut warn_unused_result"
+
+#~ msgid "%Hignoring return value of function declared with attribute warn_unused_result"
+#~ msgstr "%Hvaleur à retourner ignorée de la fonction déclarée 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 données 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 spécifié pour des variables locales"
+
+#~ msgid "%Jsection of '%D' conflicts with previous declaration"
+#~ msgstr "%Jsection de « %D » en conflit avec une déclaration précédente"
+
+#~ 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 supportés 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 spécifié pour « %D »"
+
+#~ msgid "%J'%D' defined both normally and as an alias"
+#~ msgstr "%J'%D défini à la fois normalement et en tant qu'alias"
+
+#~ msgid "alias arg not a string"
+#~ msgstr "l'argument d'alias n'est pas une chaîne"
+
+#~ msgid "visibility arg not a string"
+#~ msgstr "l'argument de visibilité n'est pas une chaîne"
+
+#~ msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+#~ msgstr "l'argument de visibilité doit être l'un de « default » (par défaut), « hidden » (masqué), « protected » (protégé) ou « internal » (interne)"
+
+#~ msgid "tls_model arg not a string"
+#~ msgstr "l'argument de tls_model n'est pas une chaîne"
+
+#~ 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 » après définition"
+
+#~ 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 spécifié 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'opérande 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'opérande hors des bornes (arg %lu, opérande %lu)"
+
+#~ msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+#~ msgstr "un argument non nul référence une opérande qui n'est pas un pointeur (arg %lu, opérande %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'entrée"
+
+#~ 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 chaîne constante"
+
+#~ msgid "%s before numeric constant"
+#~ msgstr "%s avant une constante numérique"
+
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s avant « %s »"
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s avant un élément lexical « %s »"
+
+#~ msgid "void value not ignored as it ought to be"
+#~ msgstr "valeur void n'a pas été ignorée comme elle aurait dû l'être"
+
+#~ msgid "conversion to non-scalar type requested"
+#~ msgstr "conversion vers un type non scalaire demandée"
+
+#~ msgid "%Jarray '%D' assumed to have one element"
+#~ msgstr "%Jon assume que le tableau « %D » n'a qu'un seul élément"
+
+#~ msgid "%Jlabel `%D' used but not defined"
+#~ msgstr "%Jétiquette « %D » utilisée mais non définie"
+
+#~ msgid "%Jlabel `%D' defined but not used"
+#~ msgstr "%Jétiquette « %D » définie mais non utilisée"
+
+#~ msgid "%Jlabel `%D' declared but not defined"
+#~ msgstr "%Jétiquette « %D » utilisée mais non définie"
+
+#~ msgid "%Junused variable `%D'"
+#~ msgstr "%Jvariable inutilisée « %D »"
+
+#~ msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+#~ msgstr "un paramètre de la liste avec une ellipse ne peut concorder une déclaration vide de liste de noms de paramètres"
+
+#~ 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 défaut ne peut concorder avec une déclaration vide de noms de paramètres"
+
+#~ msgid "%Jprototype for '%D' declares more arguments than previous old-style definition"
+#~ msgstr "%Jprototype pour « %D » déclare plus d'arguments que la définition précédente de style ancien"
+
+#~ msgid "%Jprototype for '%D' declares fewer arguments than previous old-style definition"
+#~ msgstr "%Jprototype pour « %D » déclare moins d'arguments que la définition précédente de style ancien"
+
+#~ msgid "%Jprototype for '%D' declares arg %d with incompatible type"
+#~ msgstr "%Jprototype pour « %D » déclare l'arguments %d avec un type incompatible"
+
+#~ msgid "%Jprototype for '%D' follows non-prototype definition"
+#~ msgstr "%Jprototype pour « %D » suit la définition d'un non prototype"
+
+#~ msgid "%Jprevious definition of '%D' was here"
+#~ msgstr "%Jdéfinition précédente de « %D » était ici"
+
+#~ msgid "%Jprevious implicit declaration of '%D' was here"
+#~ msgstr "%Jdéclaration précédente implicite de « %D » était ici"
+
+#~ msgid "%Jprevious declaration of '%D' was here"
+#~ msgstr "%Jdéclaration précédente de « %D » était ici"
+
+#~ msgid "%J'%D' redeclared as different kind of symbol"
+#~ msgstr "%J« %D » redéclaré comme une sorte différente de symbole"
+
+#~ msgid "%Jbuilt-in function '%D' declared as non-function"
+#~ msgstr "%Jfonction interne « %D » n'est pas déclarée 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 "%Jredéfinition de « %D »"
+
+#~ msgid "%Jredefinition of '%D'"
+#~ msgstr "%Jredéfinition de « %D »"
+
+#~ msgid "%Jstatic declaration of '%D' follows non-static declaration"
+#~ msgstr "%Jdéclaration statique de « %D » suit une déclaration non statique"
+
+#~ msgid "%Jnon-static declaration of '%D' follows static declaration"
+#~ msgstr "%Jdéclaration non statique de « %D » suite une déclaration statique"
+
+#~ msgid "%Jthread-local declaration of '%D' follows non-thread-local declaration"
+#~ msgstr "%Jdéclaration de thread local de « %D » suit une déclaration non thread-local"
+
+#~ msgid "%Jnon-thread-local declaration of '%D' follows thread-local declaration"
+#~ msgstr "%Jdéclaration non thread local de « %D » suit une déclaration de thread local"
+
+#~ msgid "%Jextern declaration of '%D' follows declaration with no linkage"
+#~ msgstr "%Jdéclaration externe de « %D » suit une déclaraion sans lien"
+
+#~ msgid "%Jdeclaration of '%D' with no linkage follows extern declaration"
+#~ msgstr "%Jdéclaration de « %D » sasn lien suivant une déclaration externe"
+
+#~ msgid "%Jredeclaration of '%D' with no linkage"
+#~ msgstr "%Jredéclaration de « %D » sans lien"
+
+#~ msgid "%Jredeclaration of '%D' with different visibility (old visibility preserved)"
+#~ msgstr "%Jredéclaration de « %D » avec une visibilité différente (visibilité précédente conservée)"
+
+#~ msgid "%Jinline declaration of '%D' follows declaration with attribute noinline"
+#~ msgstr "%Jdéclaration enligne de « %D » suit la déclaration avec un attribut non enligne"
+
+#~ msgid "%Jdeclaration of '%D' with attribute noinline follows inline declaration "
+#~ msgstr "%Jéclaration de « %D » avec un attribut non enligne suit une déclaration enligne"
+
+#~ msgid "%J'%D' declared inline after being called"
+#~ msgstr "%J« %D » déclaré enligne après avoir été appelé"
+
+#~ msgid "%J'%D' declared inline after its definition"
+#~ msgstr "%J« %D » déclaré enligne après sa définition"
+
+#~ msgid "%Jredefinition of parameter '%D'"
+#~ msgstr "%Jredéfinition du paramètre « %D »"
+
+#~ msgid "%Jvolatile declaration of '%D' follows non-volatile declaration"
+#~ msgstr "%Jdéclaration volatile de « %D » suit une déclaration non volatile"
+
+#~ msgid "%Jnon-volatile declaration of '%D' follows volatile declaration"
+#~ msgstr "%Jdéclaration non volatile de « %D » suit une déclaration volatile"
+
+#~ msgid "%Jconst declaration of '%D' follows non-const declaration"
+#~ msgstr "%Jdéclaration de constante de « %D » suit une déclaration de non constante"
+
+#~ msgid "%Jnon-const declaration of '%D' follows const declaration"
+#~ msgstr "%Jdéclaration de non constante de « %D » suit une déclaration de constante"
+
+#~ msgid "%Jredundant redeclaration of '%D'"
+#~ msgstr "%Jdéclaration redondante de « %D »"
+
+#~ msgid "%Jdeclaration of '%D' shadows a parameter"
+#~ msgstr "%Jdéclaration de « %D » masque un paramètre"
+
+#~ msgid "%Jdeclaration of '%D' shadows a global declaration"
+#~ msgstr "%Jdéclaration de « %D » masque une déclaration globale"
+
+#~ msgid "%Jdeclaration of '%D' shadows a previous local"
+#~ msgstr "%Jdéclaration de « %D » masque la déclaration d'un local précédent"
+
+#~ msgid "%Jshadowed declaration is here"
+#~ msgstr "%Jdéclaration est masquée ici"
+
+#~ msgid "nested extern declaration of `%s'"
+#~ msgstr "déclaration de « %s » externe imbriquée"
+
+#~ msgid "%Jprevious declaration of '%D'"
+#~ msgstr "%Jdéclaration précédente de « %D »"
+
+#~ msgid "implicit declaration of function `%s'"
+#~ msgstr "déclaration implicite de la fonction « %s »"
+
+#~ msgid "`%s' undeclared here (not in a function)"
+#~ msgstr "« %s » non déclaré ici (hors de toute fonction)"
+
+#~ msgid "`%s' undeclared (first use in this function)"
+#~ msgstr "« %s » non déclaré (première utilisation dans cette fonction)"
+
+#~ msgid "(Each undeclared identifier is reported only once"
+#~ msgstr "(Chaque identificateur non déclaré est rapporté une seule fois"
+
+#~ msgid "for each function it appears in.)"
+#~ msgstr "pour chaque fonction dans laquelle il apparaît.)"
+
+#~ msgid "label %s referenced outside of any function"
+#~ msgstr "étiquette %s référencée à l'extérieur de toute fonction"
+
+#~ msgid "duplicate label declaration `%s'"
+#~ msgstr "déclaration de l'étiquette « %s » en double"
+
+#~ msgid "%Jthis is a previous declaration"
+#~ msgstr "%Jest la déclaration précédente"
+
+#~ msgid "%Hduplicate label `%D'"
+#~ msgstr "%Hétiquette « %D » apparaît en double"
+
+#~ msgid "%J`%D' previously defined here"
+#~ msgstr "%J« %D » précédemment défini ici"
+
+#~ msgid "%J`%D' previously declared here"
+#~ msgstr "%J« %D » précédemment déclaré ici"
+
+#~ msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts"
+#~ msgstr "%HC traditionnel manque d'un espace nom séparé pour les étiquettes, identificateur « %D » est en conflit"
+
+#~ msgid "%H`%s' defined as wrong kind of tag"
+#~ msgstr "%H« %s » défini incorrectement comme une mauvais sorte d'étiquette"
+
+#~ msgid "unnamed struct/union that defines no instances"
+#~ msgstr "struct/union sans nom ne définissant aucune instance"
+
+#~ msgid "useless keyword or type name in empty declaration"
+#~ msgstr "mot clé ou nom de type inutile dans une déclaration vide"
+
+#~ msgid "two types specified in one empty declaration"
+#~ msgstr "deux types spécifiés dans une déclaration vide"
+
+#~ msgid "empty declaration"
+#~ msgstr "déclaration 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 déclarateurs de tableau de paramètres"
+
+#~ msgid "ISO C90 does not support `[*]' array declarators"
+#~ msgstr "ISO C90 ne supporte pas « [*] » dans les déclarateurs de tableau"
+
+#~ msgid "GCC does not yet properly implement `[*]' array declarators"
+#~ msgstr "GCC n'implémente pas encore correctement les déclarateurs de tableau « [*] »"
+
+#~ msgid "static or type qualifiers in abstract declarator"
+#~ msgstr "static ou qualificateurs de type dans un déclarateur 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 initialisée comme une variable"
+
+#~ msgid "parameter `%s' is initialized"
+#~ msgstr "le paramètre « %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 initialisée alors qu'elle est de type incomplet"
+
+#~ msgid "elements of array `%s' have incomplete type"
+#~ msgstr "les éléments du tableau « %s » ont des types incomplets"
+
+#~ msgid "%Jinline function '%D' given attribute noinline"
+#~ msgstr "%J fonction enligne « %D » a reçu l'attribut non enligne"
+
+#~ msgid "%Jinitializer fails to determine size of '%D'"
+#~ msgstr "%Jinitialisateur a échoué à déterminer 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 zéro ou négative"
+
+#~ 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 "%Jspécificateur asm ignoré pour la variable locale non statique « %D »"
+
+#~ msgid "ISO C forbids forward parameter declarations"
+#~ msgstr "ISO C interdit la déclaration anticipée de paramètres"
+
+#~ 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 entière"
+
+#~ msgid "negative width in bit-field `%s'"
+#~ msgstr "largeur négative 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 » excède 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 » apparaît 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 données ou plus dans la déclaration 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 déclaration de « %s », utilisation de « int » par défaut pour le type"
+
+#~ msgid "both long and short specified for `%s'"
+#~ msgstr "« long » et « short » spécifiés à la fois pour « %s »"
+
+#~ msgid "long or short specified with char for `%s'"
+#~ msgstr "« long » ou « short » spécifié avec « char » pour « %s »"
+
+#~ msgid "long or short specified with floating type for `%s'"
+#~ msgstr "« long » ou « short » spécifié 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 » apparaît en double"
+
+#~ msgid "duplicate `restrict'"
+#~ msgstr "« restrict » apparaît en double"
+
+#~ msgid "duplicate `volatile'"
+#~ msgstr "« volatile » apparaît en double"
+
+#~ msgid "multiple storage classes in declaration of `%s'"
+#~ msgstr "multiples classes de stockage dans la déclaration de « %s »"
+
+#~ msgid "function definition declared `auto'"
+#~ msgstr "définition de fonction déclaré « auto »"
+
+#~ msgid "function definition declared `register'"
+#~ msgstr "définition de fonction déclarée « register »"
+
+#~ msgid "function definition declared `typedef'"
+#~ msgstr "définition de fonction déclarée « typedef »"
+
+#~ msgid "function definition declared `__thread'"
+#~ msgstr "définition de fonction déclarée « __thread »"
+
+#~ msgid "storage class specified for structure field `%s'"
+#~ msgstr "classe de stockage spécifiée pour le champ de structure « %s »"
+
+#~ msgid "storage class specified for parameter `%s'"
+#~ msgstr "classe de stockage spécifiée pour le paramètre « %s »"
+
+#~ msgid "storage class specified for typename"
+#~ msgstr "classe de stockage spécifié pour un typename"
+
+#~ msgid "`%s' initialized and declared `extern'"
+#~ msgstr "« %s » initialisé et déclaré « 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 déclaration de l'étendue de fichier « %s » spécifie « auto »"
+
+#~ msgid "nested function `%s' declared `extern'"
+#~ msgstr "fonction imbriquée « %s » déclarée « extern »"
+
+#~ msgid "function-scope `%s' implicitly auto and declared `__thread'"
+#~ msgstr "« %s » dans le champ de la fonction est implicitement déclaré auto, et déclaré « __thread »"
+
+#~ msgid "static or type qualifiers in non-parameter array declarator"
+#~ msgstr "static ou qualificateurs de type dans un déclarateur de tableau n'étant pas un paramètre"
+
+#~ msgid "declaration of `%s' as array of voids"
+#~ msgstr "déclaration de « %s » comme un tableau de « void »"
+
+#~ msgid "declaration of `%s' as array of functions"
+#~ msgstr "déclaration 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 zéro « %s »"
+
+#~ msgid "size of array `%s' is negative"
+#~ msgstr "la taille du tableau « %s » est négative"
+
+#~ 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 évaluée"
+
+#~ 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 éléments du tableau sont de type incomplet"
+
+#~ msgid "`%s' declared as function returning a function"
+#~ msgstr "« %s » déclaré comme une fonction retournant une fonction"
+
+#~ msgid "`%s' declared as function returning an array"
+#~ msgstr "« %s » déclaré 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 ignorés pour le type à retourner par la fonction"
+
+#~ msgid "ISO C forbids qualified function types"
+#~ msgstr "ISO C interdit les types de fonction qualifiés"
+
+#~ msgid "invalid type modifier within pointer declarator"
+#~ msgstr "modificateur de type invalide dans la déclaration 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 » déclaré « void »"
+
+#~ msgid "attributes in parameter array declarator ignored"
+#~ msgstr "les attributs dans un déclarateur de tableau de paramètres sont ignorés"
+
+#~ msgid "invalid type modifier within array declarator"
+#~ msgstr "modificateur invalide de type à l'intérieur d'un déclarateur de tableau"
+
+#~ msgid "field `%s' declared as a function"
+#~ msgstr "champ « %s » déclaré 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 marquée « 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 précédemment déclarée « static » redéclarée « extern »"
+
+#~ msgid "%Jvariable '%D' declared `inline'"
+#~ msgstr "%Jvariable « %D » déclarée « 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 déclaration de fonction n'est pas un prototype valide"
+
+#~ msgid "parameter names (without types) in function declaration"
+#~ msgstr "noms de paramètres (sans type) dans la déclaration de fonction"
+
+#~ msgid "parameter `%s' has incomplete type"
+#~ msgstr "le paramètre « %s » a un type incomplet"
+
+#~ msgid "parameter has incomplete type"
+#~ msgstr "le paramètre a un type incomplet"
+
+#~ msgid "\"void\" as only parameter may not be qualified"
+#~ msgstr "\"void\" comme seul paramètre ne peut être qualifié"
+
+#~ msgid "\"void\" must be the only parameter"
+#~ msgstr "\"void\" doit être le seul paramètre"
+
+#~ msgid "%Jparameter \"%D\" has just a forward declaration"
+#~ msgstr "%Jparamètre « %D » n'a qu'une déclaration anticipée"
+
+#~ msgid "\"%s %s\" declared inside parameter list"
+#~ msgstr "\"%s %s\" déclarée à l'intérieur de la liste de paramètres"
+
+#~ msgid "anonymous %s declared inside parameter list"
+#~ msgstr "structure anonyme %s déclarée à l'intérieur de la liste des paramètres"
+
+#~ msgid "its scope is only this definition or declaration, which is probably not what you want"
+#~ msgstr "visible uniquement depuis cette définition ou déclaration, ce qui n'est probablement pas ce que vous désirez"
+
+#~ msgid "redefinition of `union %s'"
+#~ msgstr "redéfinition de « union %s »"
+
+#~ msgid "redefinition of `struct %s'"
+#~ msgstr "redéfinition de « struct %s »"
+
+#~ msgid "declaration does not declare anything"
+#~ msgstr "déclaration ne déclarant rien du tout"
+
+#~ msgid "%Jduplicate member '%D'"
+#~ msgstr "%Jmembre « %D » est double"
+
+#~ msgid "%s defined inside parms"
+#~ msgstr "%s défini à l'intérieur des paramètres"
+
+#~ 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 nommés"
+
+#~ msgid "members"
+#~ msgstr "membres"
+
+#~ msgid "nested redefinition of `%s'"
+#~ msgstr "redéfinition imbriquée 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 "redéclaration de « enum %s »"
+
+#~ msgid "enum defined inside parms"
+#~ msgstr "enum défini à l'intérieur des paramètres"
+
+#~ msgid "enumeration values exceed range of largest integer"
+#~ msgstr "valeurs d'énumération excède les bornes du plus grand entier"
+
+#~ msgid "enumerator value for `%s' not integer constant"
+#~ msgstr "valeur de l'énumérateur pour « %s » n'est pas une constante entière"
+
+#~ msgid "overflow in enumeration values"
+#~ msgstr "débordement dans les valeurs de l'énumération"
+
+#~ msgid "ISO C restricts enumerator values to range of `int'"
+#~ msgstr "ISO C restreint les valeurs de l'énumérateur 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 défaut"
+
+#~ msgid "%Jno previous prototype for '%D'"
+#~ msgstr "%Jaucun prototype précédent pour « %D »"
+
+#~ msgid "%J'%D' was used with no prototype before its definition"
+#~ msgstr "%J« %D » a été utilisé sans prototype avant sa définition"
+
+#~ msgid "%Jno previous declaration for '%D'"
+#~ msgstr "%Jaucune déclaration précédente pour « %D »"
+
+#~ msgid "%J`%D' was used with no declaration before its definition"
+#~ msgstr "%J« %D » a été utilisé sans déclaration avant sa définition"
+
+#~ 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 troisième 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 "%Jdéclaration de paramètre d'ancien style dans la définition prototypée de fonction"
+
+#~ msgid "%Jparameter name omitted"
+#~ msgstr "%Jnom de paramètre omis"
+
+#~ msgid "%Jparameter name missing from parameter list"
+#~ msgstr "%Jnom du paramètre manquant dans la liste des paramètres"
+
+#~ msgid "%J\"%D\" declared as a non-parameter"
+#~ msgstr "%J\"%D\" déclaré comme un non paramètre"
+
+#~ msgid "%Jmultiple parameters named \"%D\""
+#~ msgstr "%Jplusieurs paramètres nommés « %D »"
+
+#~ msgid "%Jparameter \"%D\" declared void"
+#~ msgstr "%Jparamètre \"%D\" déclaré «void »"
+
+#~ msgid "%Jtype of \"%D\" defaults to \"int\""
+#~ msgstr "%Jtype de « %D » est « int » par défaut"
+
+#~ msgid "%Jparameter \"%D\" has incomplete type"
+#~ msgstr "%Jparamètre \"%D\" a un type incomplet"
+
+#~ msgid "%Jdeclaration for parameter \"%D\" but no such parameter"
+#~ msgstr "%Jdéclaration du paramètre « %D » mais pas de tel paramètre"
+
+#~ msgid "number of arguments doesn't match prototype"
+#~ msgstr "le nombre d'arguments ne concorde pas avec celui du prototype"
+
+#~ msgid "%Hprototype declaration"
+#~ msgstr "%Hdéclaration 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 "déclaration initiale de la boucle « for » utilisée en dehors du mode C99"
+
+#~ msgid "'struct %s' declared in 'for' loop initial declaration"
+#~ msgstr "« struct %s » déclarée dans la déclaration initiale de la boucle « for »"
+
+#~ msgid "'union %s' declared in 'for' loop initial declaration"
+#~ msgstr "« union %s » déclarée dans la déclaration initiale de la boucle « for »"
+
+#~ msgid "'enum %s' declared in 'for' loop initial declaration"
+#~ msgstr "« enum %s » déclarée dans la déclaration initiale de la boucle « for »"
+
+#~ msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%Jdéclaration de « %D » (qui n'est pas une variable) dans la déclaration initiale de « for »"
+
+#~ msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%Jdéclaration de la variable statique « %D » dans la déclaration initiale de la boucle « for »"
+
+#~ msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%Jdéclaration de la variable externe « %D » dans la déclaration initiale « for »"
+
+#~ msgid "%Jredefinition of global '%D'"
+#~ msgstr "%Jredéfinition globale de « %D »"
+
+#~ msgid "%J'%D' previously defined here"
+#~ msgstr "%J« %D » précédemment défini ici"
+
+#~ msgid "format string has invalid operand number"
+#~ msgstr "la chaîne de format a un nombre invalide d'opérandes"
+
+#~ 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 chaîne de format n'est pas de type « string »"
+
+#~ msgid "unrecognized format specifier"
+#~ msgstr "spécificateur 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'opérandes"
+
+#~ msgid "format string arg follows the args to be formatted"
+#~ msgstr "l'argument de la chaîne de format suit les arguments devant être formatés"
+
+#~ 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 "précision"
+
+#~ msgid "precision in printf format"
+#~ msgstr "précision 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 "caractère de remplissage"
+
+#~ msgid "fill character in strfmon format"
+#~ msgstr "caractère 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 "précision de gauche"
+
+#~ msgid "left precision in strfmon format"
+#~ msgstr "précision de gauche dans le format de strfmon"
+
+#~ msgid "right precision"
+#~ msgstr "précision de droite"
+
+#~ msgid "right precision in strfmon format"
+#~ msgstr "précision 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'opérande du nombre"
+
+#~ msgid "%s does not support %%n$ operand number formats"
+#~ msgstr "%s ne permet pas le format d'opérande de nombre %%n$"
+
+#~ msgid "operand number out of range in format"
+#~ msgstr "opérande 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 chaîne littérale, le format n'est pas vérifé"
+
+#~ msgid "format not a string literal and no format arguments"
+#~ msgstr "le format n'est pas une chaîne littérale et pas d'argument de format"
+
+#~ msgid "format not a string literal, argument types not checked"
+#~ msgstr "le format n'est pas une chaîne littérale, le type des arguments n'est pas vérifié"
+
+#~ msgid "too many arguments for format"
+#~ msgstr "trop d'arguments pour le format"
+
+#~ msgid "unused arguments in $-style format"
+#~ msgstr "arguments inutilisés dans le format de style $"
+
+#~ msgid "zero-length %s format string"
+#~ msgstr "chaîne de format de longueur nulle %s"
+
+#~ msgid "format is a wide character string"
+#~ msgstr "le format est une chaîne large de caractères"
+
+#~ msgid "embedded `\\0' in format"
+#~ msgstr "« \\0 » inclu dans le format"
+
+#~ msgid "spurious trailing `%%' in format"
+#~ msgstr "des caractères « %% » douteux traînent dans le format"
+
+#~ msgid "repeated %s in format"
+#~ msgstr "%s répété dans le format"
+
+#~ msgid "missing fill character at end of strfmon format"
+#~ msgstr "caractère 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 zéro dans le format %s"
+
+#~ msgid "empty left precision in %s format"
+#~ msgstr "précision de gauche vide dans le format %s"
+
+#~ msgid "field precision"
+#~ msgstr "champ de précision"
+
+#~ msgid "empty precision in %s format"
+#~ msgstr "précision 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 caractère de conversion inconnu « %c » dans le format"
+
+#~ msgid "unknown conversion type character 0x%x in format"
+#~ msgstr "type de caractère 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'année avec certaines locales"
+
+#~ msgid "`%%%c' yields only last 2 digits of year"
+#~ msgstr "« %%%c » laisse seulement les 2 derniers chiffres de l'année"
+
+#~ 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 caractère « %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'opérandes spécifié avec des affectations suprimées"
+
+#~ msgid "operand number specified for format taking no argument"
+#~ msgstr "nombre d'opérandes spécifié 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 différent"
+
+#~ 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 formatés 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 répertoire « %s » est ignoré car présent deux fois\n"
+
+#~ msgid " as it is a non-system directory that duplicates a system directory\n"
+#~ msgstr " car il s'agit d'un répertoire non système dupliquant un répertoire système\n"
+
+#~ msgid "ignoring nonexistent directory \"%s\"\n"
+#~ msgstr "le répertoire « %s » est ignoré car inexistant\n"
+
+#~ msgid "#include \"...\" search starts here:\n"
+#~ msgstr "la recherche pour #include \"...\" débute ici :\n"
+
+#~ msgid "#include <...> search starts here:\n"
+#~ msgstr "la recherche pour #include <...> débute 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-têtes C du préprocesseur incorrectement imbriqués"
+
+#~ 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 décimale est « unsigned » seulement en C90 ISO"
+
+#~ msgid "this decimal constant would be unsigned in ISO C90"
+#~ msgstr "cette constante décimale serait « unsigned » en C90 ISO"
+
+#~ msgid "integer constant is too large for \"%s\" type"
+#~ msgstr "constante entière trop grande pour le type « %s »"
+
+#~ msgid "floating constant exceeds range of \"%s\""
+#~ msgstr "constante en nombre flottant excédant les limites de « %s »"
+
+#~ msgid "traditional C rejects string constant concatenation"
+#~ msgstr "le C traditionel rejette la concaténation de chaînes de constantes"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it is suppressed using -fno-inline"
+#~ msgstr "%Jfonction « %F » ne jamais être enlignée 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 enlignée 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 enlignée 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 enlignée 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 enlignée parce qu'ella possiblement sauvegardé des tailles en attente"
+
+#~ msgid "no class name specified with \"%s\""
+#~ msgstr "aucun nom de classe spécifié avec \"%s\""
+
+#~ msgid "assertion missing after \"%s\""
+#~ msgstr "assertion manquante après \"%s\""
+
+#~ msgid "macro name missing after \"%s\""
+#~ msgstr "nom de macro manquant après \"%s\""
+
+#~ msgid "missing path after \"%s\""
+#~ msgstr "cible manquante après \"%s\""
+
+#~ msgid "missing filename after \"%s\""
+#~ msgstr "nom de fichier manquant après \"%s\""
+
+#~ msgid "missing makefile target after \"%s\""
+#~ msgstr "cible manquante dans le makefile après \"%s\""
+
+#~ msgid "-I- specified twice"
+#~ msgstr "-I- spécifié deux fois"
+
+#~ msgid "switch \"%s\" is no longer supported"
+#~ msgstr "l'option « %s » n'est plus supportée"
+
+#~ 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 défaut)"
+
+#~ msgid "output filename specified twice"
+#~ msgstr "nom du fichier de sortie spécifié deux fois"
+
+#~ msgid "-Wformat-y2k ignored without -Wformat"
+#~ msgstr "-Wformat-y2k ignorée sans -Wformat"
+
+#~ msgid "-Wformat-extra-args ignored without -Wformat"
+#~ msgstr "-Wformat-extra-args ignorée sans -Wformat"
+
+#~ msgid "-Wformat-zero-length ignored without -Wformat"
+#~ msgstr "-Wformat-zero-length ignorée sans -Wformat"
+
+#~ msgid "-Wformat-nonliteral ignored without -Wformat"
+#~ msgstr "-Wformat-nonliteral ignorée sans -Wformat"
+
+#~ msgid "-Wformat-security ignored without -Wformat"
+#~ msgstr "-Wformat-security ignorée sans -Wformat"
+
+#~ msgid "-Wmissing-format-attribute ignored without -Wformat"
+#~ msgstr "-Wmissing-format-attribute ignorée 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 connaître l'usage"
+
+#~ msgid "YYDEBUG not defined"
+#~ msgstr "YYDEBUG n'est pas défini"
+
+#~ msgid "opening dependency file %s: %m"
+#~ msgstr "ouverture du fichier de dépendances %s: %m"
+
+#~ msgid "closing dependency file %s: %m"
+#~ msgstr "fermeture du fichier de dépendances %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 générer les dépendances, vous devez spécifier -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 répertoire 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 chaîne de constante"
+
+#~ msgid "ISO C forbids data definition with no type or storage class"
+#~ msgstr "ISO C interdit la définition de données sans type ni classe de stockage"
+
+#~ msgid "data definition has no type or storage class"
+#~ msgstr "la définition de données 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 composés"
+
+#~ msgid "ISO C forbids braced-groups within expressions"
+#~ msgstr "ISO C interdit les groupes d'accolades à l'intérieur 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 définitions de fonction de style ISO C"
+
+#~ msgid "old-style parameter declaration"
+#~ msgstr "déclaration de paramètre d'un style désuet"
+
+#~ msgid "`%s' is not at beginning of declaration"
+#~ msgstr "« %s » n'est pas au début de la déclaration"
+
+#~ 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 spécifier des sous-objets à initialiser"
+
+#~ msgid "obsolete use of designated initializer without `='"
+#~ msgstr "utilisation obsolète d'une initialisation désignée sans « = »"
+
+#~ msgid "obsolete use of designated initializer with `:'"
+#~ msgstr "utilisation obsolète d'une initialisation désignée avec « : »"
+
+#~ msgid "ISO C forbids specifying range of elements to initialize"
+#~ msgstr "ISO C interdit de spécifier les bornes des éléments à initaliser"
+
+#~ msgid "ISO C forbids nested functions"
+#~ msgstr "ISO C interdit les fonctions imbriquées"
+
+#~ msgid "ISO C forbids forward references to `enum' types"
+#~ msgstr "ISO C interdit les références anticipée 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 déclarations de membre sans aucun membre"
+
+#~ msgid "label at end of compound statement"
+#~ msgstr "étiquette à la fin d'une déclaration composée"
+
+#~ msgid "ISO C90 forbids mixed declarations and code"
+#~ msgstr "ISO C89 interdit les mélanges de déclarations et de code"
+
+#~ msgid "ISO C forbids label declarations"
+#~ msgstr "ISO C interdit la déclaration d'étiquette"
+
+#~ msgid "braced-group within expression allowed only inside a function"
+#~ msgstr "groupe entre accolades à l'intérieur d'expression permis seulement à l'intérieur 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 déclaration du if est vide"
+
+#~ msgid "break statement not within loop or switch"
+#~ msgstr "mot-clé « break » à l'extérieur de toute boucle ou « switch »"
+
+#~ msgid "continue statement not within a loop"
+#~ msgstr "mot-clé « continue » à l'extérieur 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 mémoire virtuelle est épuisée"
+
+#~ msgid "parse error"
+#~ msgstr "erreur d'analyse syntaxique"
+
+#~ msgid "parser stack overflow"
+#~ msgstr "débordement de la pile de l'analyseur syntaxique"
+
+#~ msgid "syntax error at '%s' token"
+#~ msgstr "erreur de syntaxe à l'élément lexical « %s »"
+
+#~ msgid "can't create precompiled header %s: %m"
+#~ msgstr "ne peut créer une en-tête précompilée %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'hôte « %.*s », mais utilisé sur l'hôte « %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 différents"
+
+#~ 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 différente"
+
+# 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 après « #pragma pack » - ignoré"
+
+#~ msgid "malformed '#pragma pack' - ignored"
+#~ msgstr "« #pragma pack » mal composée - ignoré"
+
+#~ msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+#~ msgstr "« #pragma pack(push[, id], <n>) » mal composée - ignoré"
+
+#~ msgid "malformed '#pragma pack(pop[, id])' - ignored"
+#~ msgstr "« #pragma pack(pop[, id]) » mal composée, 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 » après la première utilisation conduit à un comportement non spécifié"
+
+#~ msgid "malformed #pragma weak, ignored"
+#~ msgstr "#pragma weak mal composée, 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 composée, 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 déclaration"
+
+#~ msgid "malformed #pragma extern_prefix, ignored"
+#~ msgstr "#pragma extern_prefix mal composée, 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 "déclaration asm en conflit avec le changement de nom précédent"
+
+#~ 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 » précédents 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 exécuté"
+
+#~ 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 spécifiée"
+
+#~ msgid "invalid use of undefined type `%s %s'"
+#~ msgstr "utilisation invalide d'un type indéfini « %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 retournés d'une fonction ne sont pas compatibles en raison de « volatile »"
+
+#~ msgid "arithmetic on pointer to an incomplete type"
+#~ msgstr "arithmétique 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 "requête du membre « %s » dans quelque chose n'étant ni une structure ni une union"
+
+#~ msgid "dereferencing pointer to incomplete type"
+#~ msgstr "déréférencement d'un pointeur de type incomplet"
+
+#~ msgid "dereferencing `void *' pointer"
+#~ msgstr "déréférencement 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 référence 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 indicée n'est ni un tableau ni un pointeur"
+
+#~ msgid "local declaration of `%s' hides instance variable"
+#~ msgstr "la déclaration 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 appellée à 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 paramètre formel %d est incomplet"
+
+#~ msgid "%s as integer rather than floating due to prototype"
+#~ msgstr "%s est entier plutôt que flottant en raison du prototype"
+
+#~ msgid "%s as integer rather than complex due to prototype"
+#~ msgstr "%s est entier plutôt que complexe en raison du prototype"
+
+#~ msgid "%s as complex rather than floating due to prototype"
+#~ msgstr "%s est complexe plutôt que flottant en raison du prototype"
+
+#~ msgid "%s as floating rather than integer due to prototype"
+#~ msgstr "%s est flottant plutôt qu'entier en raison du prototype"
+
+#~ msgid "%s as complex rather than integer due to prototype"
+#~ msgstr "%s est complexe plutôt qu'entier en raison du prototype"
+
+#~ msgid "%s as floating rather than complex due to prototype"
+#~ msgstr "%s est flottant plutôt que complexe en raison du prototype"
+
+#~ msgid "%s as `float' rather than `double' due to prototype"
+#~ msgstr "%s est « float » plutôt qu'un « double » en raison du prototype"
+
+#~ msgid "%s with different width due to prototype"
+#~ msgstr "%s a une largeur différente 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 "parenthèses suggérées autour de + ou - à l'intérieur du décalage"
+
+#~ msgid "suggest parentheses around && within ||"
+#~ msgstr "parenthèses suggérées autour de && à l'intérieur de ||"
+
+#~ msgid "suggest parentheses around arithmetic in operand of |"
+#~ msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de |"
+
+#~ msgid "suggest parentheses around comparison in operand of |"
+#~ msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de |"
+
+#~ msgid "suggest parentheses around arithmetic in operand of ^"
+#~ msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de ^"
+
+#~ msgid "suggest parentheses around comparison in operand of ^"
+#~ msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de ^"
+
+#~ msgid "suggest parentheses around + or - in operand of &"
+#~ msgstr "parenthèses suggérées autour de + ou - dans l'opérande de &"
+
+#~ msgid "suggest parentheses around comparison in operand of &"
+#~ msgstr "parenthèses suggérées autour de la comparaison dans l'opérande 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 mathématique"
+
+#~ 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 complément 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 incrément"
+
+#~ msgid "wrong type argument to decrement"
+#~ msgstr "type d'argument erroné pour un décrément"
+
+#~ msgid "increment of pointer to unknown structure"
+#~ msgstr "incrément d'un pointeur vers une structure inconnue"
+
+#~ msgid "decrement of pointer to unknown structure"
+#~ msgstr "décrément 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 obsolète"
+
+#~ msgid "use of compound expressions as lvalues is deprecated"
+#~ msgstr "utilisation d'expressions composées comme lvalues est obsolète"
+
+#~ msgid "use of cast expressions as lvalues is deprecated"
+#~ msgstr "utilisation de transtypage d'expressions comme lvalues est obsolète"
+
+#~ 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 » utilisée dans une fonction imbriquée"
+
+#~ msgid "register variable `%s' used in nested function"
+#~ msgstr "variable de registre « %s » utilisée dans une fonction imbriquée"
+
+#~ 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 côté 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'opérande à gauche de la virgule n'a pas d'effet"
+
+#~ msgid "cast specifies array type"
+#~ msgstr "le transtypage spécifie un type de tableau"
+
+#~ msgid "cast specifies function type"
+#~ msgstr "le transtypage spécifie 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-même"
+
+#~ 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 différente"
+
+#~ 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 différente"
+
+# FIXME
+#~ msgid "type-punning to incomplete type might break strict-aliasing rules"
+#~ msgstr "type-punning vers un type incomplet peut briser les règles stricte d'aliases"
+
+# FIXME
+#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+#~ msgstr "déréférencement 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 paramètre par référence"
+
+#~ 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'aggrégats"
+
+#~ msgid "(near initialization for `%s')"
+#~ msgstr "(près de l'initialisation de « %s »)"
+
+#~ msgid "char-array initialized from wide string"
+#~ msgstr "tableau de caractères initialisé à l'aide d'une chaîne large de caractères"
+
+#~ msgid "int-array initialized from non-wide string"
+#~ msgstr "tableau d'entier initialisé à l'aide d'une chaîne non-large"
+
+#~ msgid "initializer-string for array of chars is too long"
+#~ msgstr "la chaîne d'initialisation est trop longue pour le tableau de caractères"
+
+#~ 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 élément de l'initialisation n'est pas une constante"
+
+#~ msgid "initialization"
+#~ msgstr "initialisation"
+
+#~ msgid "initializer element is not computable at load time"
+#~ msgstr "un élément 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 "éléments superflus dans l'initialisation de scalaire"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "l'initialisation des désignateurs ne doit pas être imbriquée"
+
+#~ 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 excédant les bornes lors de l'initialisation"
+
+#~ msgid "unknown field `%s' specified in initializer"
+#~ msgstr "champ inconnu « %s » spécifié 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 "éléments en excès dans l'initialisation de tableau de caractères"
+
+#~ msgid "excess elements in struct initializer"
+#~ msgstr "éléments en excès 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 "éléments en excès 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 "éléments en excès dans l'initialisation de tableau"
+
+#~ msgid "excess elements in vector initializer"
+#~ msgstr "éléments en excès dans l'initialisation du vecteur"
+
+#~ msgid "excess elements in scalar initializer"
+#~ msgstr "éléments en excès dans l'initialisation d'un scalaire"
+
+#~ msgid "asm template is not a string constant"
+#~ msgstr "le canevas asm n'est pas une chaîne 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 déclarée 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 zéro"
+
+#~ msgid "right shift count is negative"
+#~ msgstr "le compteur de décalage vers la droite est négatif"
+
+#~ msgid "right shift count >= width of type"
+#~ msgstr "compteur de décalage vers la droite >= à la largeur du type"
+
+#~ msgid "left shift count is negative"
+#~ msgstr "le compteur de décalage vers la gauche est négatif"
+
+#~ msgid "left shift count >= width of type"
+#~ msgstr "compteur de décalage vers la gauche >= à la largeur du type"
+
+#~ msgid "shift count is negative"
+#~ msgstr "le compteur de décalage est négatif"
+
+#~ msgid "shift count >= width of type"
+#~ msgstr "compteur de décalage >= à la largeur du type"
+
+#~ msgid "comparing floating point with == or != is unsafe"
+#~ msgstr "comparer des nombres flottants à l'aide de == ou != n'est pas sûr"
+
+#~ 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 ordonnées 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 ordonnée de pointeur avec le zéro entier"
+
+#~ msgid "unordered comparison on non-floating point argument"
+#~ msgstr "comparaison non ordonnée sur un argument n'étant pas en virgule flottante"
+
+#~ msgid "comparison between signed and unsigned"
+#~ msgstr "comparaison entre élément signé et élément non signé"
+
+#~ msgid "comparison of promoted ~unsigned with constant"
+#~ msgstr "comparaison entre élément promu ~unsigned et une constante"
+
+#~ msgid "comparison of promoted ~unsigned with unsigned"
+#~ msgstr "comparaison entre élément promu ~unsigned et un élément 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 » ignorée, déclaré avec l'attribut warn_unused_result"
+
+#~ msgid "ignoring return value of function declared with attribute warn_unused_result"
+#~ msgstr "valeur à retourner d'une fonction ignorée, déclaré avec l'attribut warn_unused_result"
+
+#~ msgid "function call has aggregate value"
+#~ msgstr "l'appel de fonction a une valeur d'aggrégat"
+
+#~ 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: Fréquence de blocs erronée %i %i"
+
+#~ msgid "verify_flow_info: Duplicate edge %i->%i"
+#~ msgstr "verify_flow_info: arrête dupliquée %i->%i"
+
+#~ msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+#~ msgstr "verify_flow_info: probabilité de l'arrête %i->%i %i erronée"
+
+#~ msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+#~ msgstr "verify_flow_info: Mauvais nombre d'arrête %i->%i %i"
+
+#~ msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+#~ msgstr "verify_flow_info: l'arrête succ du bloc de base %d est corrompue"
+
+#~ msgid "Wrong amount of branch edges after unconditional jump %i"
+#~ msgstr "Mauvais nombre d'arrêtes de branchement après le branchement inconditionnel %i"
+
+#~ msgid "basic block %d pred edge is corrupted"
+#~ msgstr "arrête pred du bloc de base %d corrompue"
+
+#~ msgid "basic block %i edge lists are corrupted"
+#~ msgstr "les listes d'arrêtes 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-tête de la boucle %d n'a pas exactement 2 entrées."
+
+#~ 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-tête 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'entête 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 défini comme faisant partie d'une zone irréductible"
+
+#~ msgid "Basic block %d should be marked irreducible."
+#~ msgstr "bloc de base %d devrait être marqué irréductible."
+
+#~ msgid "Basic block %d should not be marked irreducible."
+#~ msgstr "bloc de base %d ne devrait pas être marqué irréductible."
+
+#~ msgid "Edge from %d to %d should be marked irreducible."
+#~ msgstr "Bordures à partir de %d à %d devraient être marqués irréductibles."
+
+#~ msgid "Edge from %d to %d should not be marked irreducible."
+#~ msgstr "Bordures à partir de %d à %d ne devraient être marquées irréductibles."
+
+#~ msgid "end insn %d for block %d not found in the insn stream"
+#~ msgstr "fin insn %d du bloc %d n'a pas été repéré 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-tête insn %d du bloc %d n'a pas été repérée 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'arrêtes de branchement sortantes dans le bb %i"
+
+#~ msgid "Fallthru edge after unconditional jump %i"
+#~ msgstr "Arrête fallthru après le branchement inconditionnel %i"
+
+#~ msgid "Wrong amount of branch edges after conditional jump %i"
+#~ msgstr "Mauvais nombre d'arrêtes de branchement après le branchement conditionnel %i"
+
+#~ msgid "Call edges for non-call insn in bb %i"
+#~ msgstr "Arrêtes d'appel pour un insn n'étant pas d'appel dans le bb %i"
+
+#~ msgid "Abnormal edges for no purpose in bb %i"
+#~ msgstr "Arrête anormale sans but dans le bb %i"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is NULL"
+#~ msgstr "insn %d à l'intérieur 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'intérieur 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 contrôle de flot à l'intérieur d'un bloc de base"
+
+#~ msgid "missing barrier after block %i"
+#~ msgstr "barrière manquante après 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 erronée dans l'arrête fallthru"
+
+#~ msgid "basic blocks not laid down consecutively"
+#~ msgstr "les blocs de base ne se suivent pas consécutivement"
+
+#~ msgid "insn outside basic block"
+#~ msgstr "insn à l'extérieur de tout bloc de base"
+
+#~ msgid "return not followed by barrier"
+#~ msgstr "return n'est pas suivi d'une barrière"
+
+# FIXME
+# bb est une abréviation 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 chaîne 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 redéfinies 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é après avoir été référencé 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 après l'enlignage dans l'appellé"
+
+#~ msgid "--param inline-unit-growth limit reached"
+#~ msgstr "--param inline-unit-growth limite atteinte"
+
+#~ msgid "recursive inlining"
+#~ msgstr "enlignage récursif"
+
+#~ 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 trouvée(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 préfixe 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 trouvée dans l'objet %s"
+
+#~ msgid "fini function found in object %s"
+#~ msgstr "fonction fini() trouvée 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 mémoire le fichier « %s » avec nmap()"
+
+#~ msgid "not found\n"
+#~ msgstr "introuvable\n"
+
+#~ msgid "dynamic dependency %s not found"
+#~ msgstr "dépendance dynamique %s introuvable"
+
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr "le nombre magique du fichier « %s » est erroné"
+
+#~ msgid "dynamic dependencies.\n"
+#~ msgstr "dépendances 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 dépendance 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 "bibliothèque 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 requérant un nouvel espace),\n"
+#~ ";; %d succès.\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 requérant un nouvel espace),\n"
+#~ ";; %d succès.\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 utilisée là où une valeur à virgule flottante était attendue"
+
+#~ msgid "aggregate value used where a float was expected"
+#~ msgstr "valeur d'aggrégat utilisée 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 différentes"
+
+#~ msgid "aggregate value used where an integer was expected"
+#~ msgstr "valeur d'aggrégat utilisée là où un entier était attendu"
+
+#~ msgid "pointer value used where a complex was expected"
+#~ msgstr "valeur de pointeur utilisée là où un complexe était attendu"
+
+#~ msgid "aggregate value used where a complex was expected"
+#~ msgstr "valeur d'aggrégat utilisée 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 données 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'exécution"
+
+#~ msgid "checksum is %x instead of %x"
+#~ msgstr "somme de contrôle 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 séparée des compteurs %s pour la fonction %u"
+
+#~ msgid "`%s' has overflowed"
+#~ msgstr "« %s » a déborbé"
+
+#~ msgid "`%s' is corrupted"
+#~ msgstr "« %s » est corrompu"
+
+#~ msgid "file %s not found, execution counts assumed to be zero"
+#~ msgstr "fichier %s non repéré, compteur d'exécution assumé être à zéro"
+
+#~ msgid "no coverage for function '%s' found."
+#~ msgstr "pas de couverture repérée 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'exécution « %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 préprocesseur"
+
+#~ msgid "too many input files"
+#~ msgstr "trop de fichiers d'entrée"
+
+# FIXME: Initialisé, ou ensembles?
+#~ msgid ";; Processing block from %d to %d, %d sets.\n"
+#~ msgstr ";; traitement du bloc de %d à %d, %d initialisés.\n"
+
+#~ msgid "%s:%d: confused by earlier errors, bailing out\n"
+#~ msgstr "%s:%d: embrouillé par les erreurs précédentes, abandon\n"
+
+#~ msgid "compilation terminated.\n"
+#~ msgstr "compilation terminée.\n"
+
+# FIXME
+#~ msgid "Internal compiler error: Error reporting routines re-entered.\n"
+#~ msgstr "erreur interne au compilateur : routine de rapport d'erreur préemptée.\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 accéder à la partie réelle d'une valeur complexe dans un registre matériel"
+
+#~ msgid "can't access imaginary part of complex value in hard register"
+#~ msgstr "ne peut accéder à la partie imaginaire d'une valeur complexe dans un registre matériel"
+
+#~ msgid "Invalid rtl sharing found in the insn"
+#~ msgstr "partage rtl invalide repéré 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 désactivé, 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 supportées 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 paramètre précédent dépend de « %D »"
+
+#~ msgid "returned value in block_exit_expr"
+#~ msgstr "valeur retournée 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 négative insn"
+
+#~ msgid "could not split insn"
+#~ msgstr "n'a pu séparer insn"
+
+#~ msgid "invalid `asm': "
+#~ msgstr "« asm » invalide: "
+
+#~ msgid "nested assembly dialect alternatives"
+#~ msgstr "assemblage de dialectes alternatifs imbriqués"
+
+#~ msgid "unterminated assembly dialect alternative"
+#~ msgstr "assemblage de dialectes alternatifs non terminé"
+
+#~ msgid "operand number missing after %%-letter"
+#~ msgstr "numéro d'opérande manquant après %%-letter"
+
+#~ msgid "operand number out of range"
+#~ msgstr "nombre d'opérandes hors limite"
+
+#~ msgid "invalid %%-code"
+#~ msgstr "%%-code est invalide"
+
+#~ msgid "`%%l' operand isn't a label"
+#~ msgstr "opérande « %%l » n'est pas une étiquette"
+
+#~ msgid "floating constant misused"
+#~ msgstr "constante flottante mal utilisée"
+
+#~ msgid "invalid expression as operand"
+#~ msgstr "expression invalide comme opérande"
+
+#~ 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 "contrôle a atteint la fin non void de la fonction"
+
+#~ msgid "Attempt to delete prologue/epilogue insn:"
+#~ msgstr "Tentative pour détruire 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 "vérification 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 maltraitée par un «longjmp» ou un «vfork »"
+
+#~ msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "%Jargument « %D » pourrait être maltraitée par un «longjmp» ou un «vfork »"
+
+#~ msgid "function returns an aggregate"
+#~ msgstr "fonction retourne un aggrégat"
+
+#~ msgid "%Junused parameter '%D'"
+#~ msgstr "%Jparamètre « %D » inutilisé"
+
+#~ msgid "ambiguous abbreviation %s"
+#~ msgstr "abréviation %s est ambiguë"
+
+#~ msgid "incomplete `%s' option"
+#~ msgstr "option « %s » est incomplète"
+
+#~ 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 spécification à partir de %s\n"
+
+#~ msgid "specs %%include syntax malformed after %ld characters"
+#~ msgstr "syntaxe des specs %%include mal composée après %ld caractères"
+
+#~ msgid "could not find specs file %s\n"
+#~ msgstr "ne peut repérer le fichiers des specs %s\n"
+
+#~ msgid "specs %%rename syntax malformed after %ld characters"
+#~ msgstr "specs de la syntaxe %%rename mal composées après %ld caractères"
+
+#~ msgid "specs %s spec was not found to be renamed"
+#~ msgstr "specs de la spécification %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 spécification « %s » à un spécification « %s » déjà définie"
+
+#~ 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 %% après %ld caractères"
+
+#~ msgid "specs file malformed after %ld characters"
+#~ msgstr "fichier de specs mal composé après %ld caractères"
+
+#~ msgid "spec file has no spec for linking"
+#~ msgstr "fichier de specs n'a pas de spécification 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 mémoire\n"
+
+#~ msgid " --target-help Display target specific command line options\n"
+#~ msgstr " --target-help afficher les options spécifiques 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 chaînes 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 répertoires 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 bibliothèque 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'accès complet vers la bibliothèque <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'accès 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 répertoire 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 répertoires de\n"
+#~ " recherches des bibliothèques\n"
+
+#~ msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+#~ msgstr " -print-multi-os-directory afficher le chemin relatif du répertoire 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> séparées par des virgules à l'assembleur\n"
+
+#~ msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+#~ msgstr " -Wp,<options> passer les <options> séparées par des virgules au préprocesseur\n"
+
+#~ msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#~ msgstr " -Wl,<options> passer les <options> séparées 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 détruire les fichiers intermédiaires\n"
+
+#~ msgid " -pipe Use pipes rather than intermediate files\n"
+#~ msgstr " -pipe utiliser des pipes au lieu de fichiers intermédiares\n"
+
+#~ msgid " -time Time the execution of each subprocess\n"
+#~ msgstr " -time mesurer le temps d'exécution 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> Présumer que les fichiers sources respectent le <standard>\n"
+
+#~ msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+#~ msgstr " -B <répertoire> ajouter le <répertoire> aux chemins de recherche du compilateur\n"
+
+#~ msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+#~ msgstr " -b <machine> exécuter gcc pour la <machine> cible, si installé\n"
+
+#~ msgid " -V <version> Run gcc version number <version>, if installed\n"
+#~ msgstr " -V <version> exécuter le numéro de <version> de gcc, si installée\n"
+
+#~ msgid " -v Display the programs invoked by the compiler\n"
+#~ msgstr " -v afficher les programmes invoqués 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 exécutées\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> spécifier le langage des fichiers suivants d'entrée\n"
+#~ " Les langages permis sont: c c++ assembler none\n"
+#~ " « none » signifiant d'utiliser le comportement par défaut\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 débutant par -g, -f, -m, -O, -W, ou --param sont automatiquement\n"
+#~ " passés aux divers sous-processus invoqués 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 » requière un argument"
+
+#~ msgid "couldn't run `%s': %s"
+#~ msgstr "impossible d'exécuter « %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 apparaître au début 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é spécifié"
+
+#~ msgid "warning: -pipe ignored because -time specified"
+#~ msgstr "AVERTISSEMENT: -pipe ignoré parce que -time a été spécifié"
+
+#~ 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 » après le dernier fichier d'entrée n'a pas d'effet"
+
+#~ msgid "invalid specification! Bug in cc"
+#~ msgstr "spécification 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 obsolète de l'opérateur %%[ 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 "spécification de fonction inconnue « %s »:"
+
+#~ msgid "error in args to spec function `%s'"
+#~ msgstr "ERREUR d'arguments pour la spécification de fonction « %s »"
+
+#~ msgid "malformed spec function name"
+#~ msgstr "nom de spécification de fonction mal composé"
+
+#~ msgid "no arguments for spec function"
+#~ msgstr "aucun argument pour la spécification de fonction"
+
+#~ msgid "malformed spec function arguments"
+#~ msgstr "arguments de spécification de fonction mal composés"
+
+#~ msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
+#~ msgstr "échec de spécification: plus d'un argument à SYSROOT_SUFFIX_SPEC."
+
+#~ msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
+#~ msgstr "échec de spécification: plus d'un argument à SYSROOT_HEADERS_SUFFIX_SPEC."
+
+#~ msgid "unrecognized option `-%s'"
+#~ msgstr "option « -%s » non reconnue"
+
+#~ msgid "install: %s%s\n"
+#~ msgstr "installés: %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 "Modèle 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 exécutant le version %s de gcc\n"
+
+#~ msgid "no input files"
+#~ msgstr "pas de fichier à l'entrée"
+
+#~ msgid "%s: linker input file unused because linking not done"
+#~ msgstr "%s: fichier d'entrée 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 spécifier -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 système"
+
+#~ 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 mémoire\n"
+
+#~ msgid " -v, --version Print version number, then exit\n"
+#~ msgstr " -v, --version exécuter le numéro de <version> de gcc, si installée\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 probabilités 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 décompte de branchements pris\n"
+#~ " plutôt que les pourcentages\n"
+
+#~ msgid " -n, --no-output Do not create an output file\n"
+#~ msgstr " -n, --no-output ne créer 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 RÉP|FICHIERS rechercher les fichiers objets dans le RÉPertoire ou appellés FICHIERS\n"
+
+#~ msgid " -p, --preserve-paths Preserve all pathname components\n"
+#~ msgstr " -p, --preserve-paths préserver tous les composants des chemins d'accès\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 repérée\n"
+
+# I18N
+#~ msgid "\n"
+#~ msgstr "\n"
+
+#~ msgid "%s:creating `%s'\n"
+#~ msgstr "%s: création 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 », préfère « %.4s »\n"
+
+#~ msgid "%s:already seen blocks for `%s'\n"
+#~ msgstr "%s:blocs déjà 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 données\n"
+
+#~ msgid "%s:not a gcov data file\n"
+#~ msgstr "%s: n'est pas un fichier de données gcov\n"
+
+#~ msgid "%s:version `%.4s', prefer version `%.4s'\n"
+#~ msgstr "%s:version « %.4s », préfère 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: débordement\n"
+
+#~ msgid "%s:`%s' lacks entry and/or exit blocks\n"
+#~ msgstr "%s:« %s » manque de blocs d'entrée et/ou de sortie\n"
+
+#~ msgid "%s:`%s' has arcs to entry block\n"
+#~ msgstr "%s:« %s » possède des arcs vers un bloc d'entrée\n"
+
+#~ msgid "%s:`%s' has arcs from exit block\n"
+#~ msgstr "%s:« %s » possèdes 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 exécutées: %s de %d\n"
+
+#~ msgid "No executable lines"
+#~ msgstr "Auncue ligne exécutable"
+
+#~ msgid "Branches executed:%s of %d\n"
+#~ msgstr "Branchements exécutés: %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 exécutés: %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é exécuté\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é exécuté\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é exécuté\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 récent que le fichier graphe « %s »\n"
+
+#~ msgid "GCSE disabled"
+#~ msgstr "GCSE désactivé"
+
+#~ msgid "NULL pointer checks disabled"
+#~ msgstr "vérification des pointeurs NULS désactivée"
+
+#~ msgid "jump bypassing disabled"
+#~ msgstr "saut d'évitement désactivé"
+
+#~ 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 "Génération 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: paramètre 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 imbriquées ne peut pas être enligne"
+
+#~ msgid "function with label addresses used in initializers cannot inline"
+#~ msgstr "un fonction avec étiquette d'adresses utilisée 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 paramètre utilisée; ne peut pas être enligne"
+
+#~ msgid "inline functions not supported for this return value type"
+#~ msgstr "fonctions enligne ne peuvent pas être supportées pour ce type de valeur retournée"
+
+#~ msgid "function with varying-size return value cannot be inline"
+#~ msgstr "fonction avec une valeur retournée de taille variable ne peut pas être enligne"
+
+#~ msgid "function with varying-size parameter cannot be inline"
+#~ msgstr "fonction avec un paramètre de taille variable ne peut pas être enligne"
+
+#~ msgid "function with transparent unit parameter cannot be inline"
+#~ msgstr "fonction avec une unité transparente de paramètre 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 spécifiques à la cible ne peut pas être enligne"
+
+# FIXME: c'est de l'assembleur ?
+#~ msgid "%Hwill never be executed"
+#~ msgstr "%Hne sera jamais exécuté"
+
+#~ 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 négatif"
+
+#~ 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 obsolète, voir la documentation pour les détails"
+
+#~ 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 ssytème 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 sélection précédente"
+
+#~ 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 indépendantes du langage:\n"
+
+#~ msgid ""
+#~ "The %s front end recognizes the following options:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "L'interface %s reconnaît les options suivantes:\n"
+#~ "\n"
+
+#~ msgid "The --param option recognizes the following as parameters:\n"
+#~ msgstr "L'option --param reconnaît les paramètres suivant:\n"
+
+#~ msgid "invalid parameter `%s'"
+#~ msgstr "paramètre 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 excède 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'itérations 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'exécutions 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 <chaîne> ] [ nom-de-fichier ... ] »\n"
+
+#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+#~ msgstr "%s: usage « %s [ -VqfnkNlgC ] [ -B <répertoire> ] [ nom-de-fichier ... ] »\n"
+
+#~ msgid "%s: warning: no read access for file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: aucun accès en lecture du fichier « %s »\n"
+
+#~ msgid "%s: warning: no write access for file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: aucun accès en écriture du fichier « %s »\n"
+
+#~ msgid "%s: warning: no write access for dir containing `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: aucun accès en écriture du répertoire 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: déclaration de fonction « %s » prend différentes 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 reçu 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 détruire le fichier auxiliaire d'infos « %s »: %s\n"
+
+#~ msgid "%s: can't delete file `%s': %s\n"
+#~ msgstr "%s: ne peut détruire 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: définitions externes conflictuelles de « %s »\n"
+
+#~ msgid "%s: declarations of '%s' will not be converted\n"
+#~ msgstr "%s: déclarations 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 définition externe pour « %s »\n"
+
+#~ msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: pas de définition statique pour « %s » dans le fichier« %s »\n"
+
+#~ msgid "%s: multiple static defs of `%s' in file `%s'\n"
+#~ msgstr "%s: multiples définitions 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: déclaration de varargs de fonction non convertis\n"
+
+#~ msgid "%s: declaration of function `%s' not converted\n"
+#~ msgstr "%s: déclaration de la fonction « %s » non convertie\n"
+
+#~ msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: trop de paramètres de listes dans la déclaration de « %s »\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: warning: too few parameter lists in declaration of `%s'\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: AVERTISSEMENT: trop peu de paramètres de listes dans la déclaration 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: déclaration locale pour la fonction « %s » n'a pas été insérée\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 déclaration de « %s » dans l'appel macro\n"
+
+#~ msgid "%s: global declarations for file `%s' not inserted\n"
+#~ msgstr "%s: déclarations globale du fichier « %s » n'ont pas été insérées\n"
+
+#~ msgid "%s: definition of function `%s' not converted\n"
+#~ msgstr "%s: définition de la fonction « %s » n'a pas été convertie\n"
+
+#~ msgid "%s: %d: warning: definition of %s not converted\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: définition de %s n'a pas été convertie\n"
+
+#~ msgid "%s: found definition of `%s' at %s(%d)\n"
+#~ msgstr "%s: définition de « %s » trouvé à %s(%d)\n"
+
+#~ msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: « %s » exclu par le préprocesseur\n"
+
+#~ msgid "%s: function definition not converted\n"
+#~ msgstr "%s: définition 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'entrée « %s »: %s\n"
+
+#~ msgid "%s: can't create/open clean file `%s': %s\n"
+#~ msgstr "%s: ne peut créer/ouvrir un fichier propre « %s »: %s\n"
+
+#~ msgid "%s: warning: file `%s' already saved in `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: fichier « %s » est déjà 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 créer/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 repérer le répertoire de travail: %s\n"
+
+#~ msgid "%s: input file names must have .c suffixes: %s\n"
+#~ msgstr "%s: noms de fichiers d'entrée doivent avoir le suffixe .c: %s\n"
+
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "N'a pas repéré une coloration.\n"
+
+#~ msgid "output constraint %d must specify a single register"
+#~ msgstr "Contrainte de sortie %d doit spécifier un simple registre"
+
+#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+#~ msgstr "contrainte de sortie %d ne doit pas être spécifié avec « %s » clobber"
+
+#~ msgid "output regs must be grouped at top of stack"
+#~ msgstr "registres de sortie doivent être regroupés au haut de la pile"
+
+#~ msgid "implicitly popped regs must be grouped at top of stack"
+#~ msgstr "les registres implicitement dépilés doivent être groupés au haut de la pile"
+
+#~ msgid "output operand %d must use `&' constraint"
+#~ msgstr "opérande 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 définition 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 chaîne vide (%u)"
+
+#~ msgid "validate_value_data: Loop in regno chain (%u)"
+#~ msgstr "validate_value_data: boucle dans la chaîne 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 chaîne (%s %u %i)"
+
+#~ msgid "cannot reload integer constant operand in `asm'"
+#~ msgstr "ne peut recharger l'opérande de constante entière 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 générer des recharges pour:"
+
+#~ msgid "inconsistent operand constraints in an `asm'"
+#~ msgstr "contrainte d'opérande inconsistente en « asm »"
+
+#~ msgid "frame size too large for reliable stack checking"
+#~ msgstr "taille de trame trop grande pour une vérification fiable de la pile"
+
+#~ msgid "try reducing the number of local variables"
+#~ msgstr "essayer de réduire le nombre de variables locales"
+
+#~ msgid "can't find a register in class `%s' while reloading `asm'"
+#~ msgstr "ne peut repérer 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 déversement dans la classe « %s »"
+
+#~ msgid "this is the insn:"
+#~ msgstr "ceci est le insn:"
+
+#~ msgid "`asm' operand requires impossible reload"
+#~ msgstr "opérande « asm » requiert une recharge impossible"
+
+#~ msgid "could not find a spill register"
+#~ msgstr "ne peut repérer un registre de déversement"
+
+#~ msgid "`asm' operand constraint incompatible with operand size"
+#~ msgstr "contrainte de l'opérande « asm » incompatible avec la taille de l'opérande"
+
+#~ msgid "VOIDmode on an output"
+#~ msgstr "mode VOID sur une sortie"
+
+#~ msgid "output operand is constant in `asm'"
+#~ msgstr "opérande 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 "vérification RTL: accès 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 "vérification 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 "vérification 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 "vérification 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 "vérification 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 "vérification RTL: accès 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 "vérification 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 manière invalide dans un contour de liaison"
+
+#~ msgid "%Jlabel '%D' used before containing binding contour"
+#~ msgstr "%Jétiquette « %D » utilisé avant de contenir le contour de liaison"
+
+#~ msgid "output operand constraint lacks `='"
+#~ msgstr "contrainte de sortie de l'opérande manque « = »"
+
+#~ msgid "output constraint `%c' for operand %d is not at the beginning"
+#~ msgstr "contrainte de sortie « %c » pour l'opérande %d n'est pas au début"
+
+#~ msgid "operand constraint contains incorrectly positioned '+' or '='"
+#~ msgstr "contrainte de l'opérande contient « + » ou « - » incorrectement positionné"
+
+#~ msgid "`%%' constraint used with last operand"
+#~ msgstr "contrainte « %% » utilisée avec la dernière opérande"
+
+#~ msgid "matching constraint not valid in output operand"
+#~ msgstr "contrainte concordante n'est pas valide dans une opérande 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'entrée de l'opérande contient « %c »"
+
+#~ msgid "matching constraint references invalid operand number"
+#~ msgstr "nombre d'opérandes invalides pour références 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 opérandes 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 "opérande 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é mémoire sans lvalue dans l'opérande asm %d est obsolète"
+
+#~ msgid "asm clobber conflict with output operand"
+#~ msgstr "asm clobber est en conflit sans opérande de sortie"
+
+#~ msgid "asm clobber conflict with input operand"
+#~ msgstr "asm globber est en conflit avec l'opérande d'entrée"
+
+#~ 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'opérande pour « asm » diffèrent en nombre d'alternatives"
+
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr "nom d'opérande asm « %s » apparaît en double"
+
+#~ msgid "missing close brace for named operand"
+#~ msgstr "accolade de fermeture manquante pour l'opérandé nommée"
+
+#~ msgid "undefined named operand '%s'"
+#~ msgstr "opérande nommée « %s » indéfinie"
+
+#~ msgid "%Hstatement with no effect"
+#~ msgstr "%Hdéclaration sasn effet"
+
+#~ msgid "%Hvalue computed is not used"
+#~ msgstr "%Hvaleur calculée n'est pas utilisée"
+
+#~ msgid "%Junused variable '%D'"
+#~ msgstr "%Jvariable « %D » inutilisée"
+
+#~ msgid "%Hunreachable code at beginning of %s"
+#~ msgstr "%Hcode inatteignable au début de %s"
+
+#~ msgid "enumeration value `%s' not handled in switch"
+#~ msgstr "valeur d'énumération « %s » n'est pas traitée dans le switch"
+
+#~ msgid "case value `%ld' not in enumerated type"
+#~ msgstr "valeur du case « %ld » n'est pas dans le type énuméré"
+
+#~ msgid "case value `%ld' not in enumerated type `%s'"
+#~ msgstr "valeur du case « %ld » n'est pas dans le type énuméré « %s »"
+
+#~ msgid "switch missing default case"
+#~ msgstr "switch n'a pas de case par défaut"
+
+#~ msgid "type size can't be explicitly evaluated"
+#~ msgstr "taille du type ne peut être explicitement évaluée"
+
+#~ msgid "variable-size type declared outside of any function"
+#~ msgstr "type de taille variable déclaré à l'extérieur 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 nécessaire 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 frontières"
+
+#~ 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 nécessaire 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 nécessaire"
+
+#~ 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'exécution (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'exécution"
+
+# 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é défini"
+
+#~ msgid "%J'%F' declared `static' but never defined"
+#~ msgstr "%J« %F » déclaré « static » mais n'a jamais été définie"
+
+#~ msgid "%J'%D' defined but not used"
+#~ msgstr "%J« %F » défini mais n'a pas été utilisé"
+
+#~ msgid "`%s' is deprecated (declared at %s:%d)"
+#~ msgstr "« %s » est obsolète (déclaré à %s:%d)"
+
+#~ msgid "`%s' is deprecated"
+#~ msgstr "« %s » est obsolète"
+
+#~ msgid "type is deprecated (declared at %s:%d)"
+#~ msgstr "type est obsolète (déclaré à %s:%d)"
+
+#~ msgid "type is deprecated"
+#~ msgstr "type est obsolète"
+
+#~ 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 prévu pour être exécuté deux fois"
+
+#~ msgid ""
+#~ "\n"
+#~ "Target specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Options spécifiques à 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 spécifiques à la cible qui ne sont pas documentés aussi.\n"
+
+#~ msgid " They exist, but they are not documented.\n"
+#~ msgstr " Ils existent, mais ils ne sont pas documentés.\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 passées: "
+
+#~ msgid "options enabled: "
+#~ msgstr "options autorisées: "
+
+#~ 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 différentes de -fpic"
+
+#~ msgid "created and used with different settings of -fpie"
+#~ msgstr "créé et utilisé avec des configurations différentes de -fpie"
+
+#~ msgid "created and used with differing settings of `-m%s'"
+#~ msgstr "créé et utilisé avec des configurations différentes de « -m%s »"
+
+#~ msgid "out of memory"
+#~ msgstr "mémoire épuisée"
+
+#~ msgid "instruction scheduling not supported on this target machine"
+#~ msgstr "instruction d'ordonnancement n'est pas supportée sur cette machine cible"
+
+#~ msgid "this target machine does not have delayed branches"
+#~ msgstr "cette machine cible n'a pas de branchments avec délais"
+
+#~ 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 "système 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 désactivé; 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 » ignorée 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 imbriquée"
+
+#~ 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 retournée par « %D » est %u octets"
+
+#~ msgid "%Jsize of return value of '%D' is larger than %wd bytes"
+#~ msgstr "%Jtaille de la valeur retournée par « %D » supérieure à %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 chaîne de bits"
+
+#~ msgid "tree check: expected %s, have %s in %s, at %s:%d"
+#~ msgstr "vérification 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 "vérification 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 "vérification de l'arbre: accès 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 "vérification de l'arbre: opérande accédé %d de %s avec %d opérandes 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 spécifié 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 données de « %D » n'est pas applicable pour un registre"
+
+#~ msgid "%Jregister specified for '%D' isn't suitable for data type"
+#~ msgstr "%Jregistre spécifié pour « %D » n'est applicable à un type de données"
+
+#~ 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 "%Jrequête 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 compliquée"
+
+#~ 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 "%Jdéclaration faible de « %D » qui doit être précédée d'une définition"
+
+#~ msgid "%Jweak declaration of '%D' after first use results in unspecified behavior"
+#~ msgstr "%Jdéclaration faible de « %D » après une première utilisation des résultats d'un comportement non spécifié"
+
+#~ msgid "%Jweak declaration of '%D' must be public"
+#~ msgstr "%Jdéclaration faible de « %D » doit être publique"
+
+#~ msgid "%Jweak declaration of '%D' not supported"
+#~ msgstr "%Jdéclaration faible de « %D » n'est pas supportée"
+
+#~ msgid "only weak aliases are supported in this configuration"
+#~ msgstr "seulement les alias faibles sont supportés dans cette configuration"
+
+#~ msgid "alias definitions not supported in this configuration; ignored"
+#~ msgstr "définitions d'alias ne sont pas supportés 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]: élément %lu hors limite dans %s, à %s:%d"
+
+#~ msgid "underflowed virtual array %s in %s, at %s:%d"
+#~ msgstr "sous débordement 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 "désolé, 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 à considérer pour remplir une slot délai"
+
+#~ msgid "The maximum number of instructions to consider to find accurate live register information"
+#~ msgstr "Le nombre maximum d'instructions à considérer pour repérer un registre d'information actif et précis"
+
+#~ msgid "The maximum length of scheduling's pending operations list"
+#~ msgstr "La longueur maximale de la liste des opération en attente d'ordonnancement"
+
+#~ msgid "The size of function body to be considered large"
+#~ msgstr "La taille du corps de la fonction est considéré 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 tolérée en raison de l'enlignage (en pourcent)"
+
+#~ msgid "The maximum amount of memory to be allocated by GCSE"
+#~ msgstr "La taille maximale de mémoire à ê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'exécution de GCSE"
+
+#~ msgid "The maximum number of instructions to consider to unroll in a loop"
+#~ msgstr "Le nombre maximum d'instructions à considérer à 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 à considérer à 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 réduite"
+
+#~ msgid "The maximum number of peelings of a single loop"
+#~ msgstr "Le nombre maxium de passes de réduction d'une boucle simple"
+
+#~ msgid "The maximum number of insns of a completely peeled loop"
+#~ msgstr "Le nombre maximum d'insns d'une boucle complètement réduite"
+
+#~ msgid "The maximum number of peelings of a single loop that is peeled completely"
+#~ msgstr "Le nombre maximum de réductions d'une boucle simple qui a été complètement réduite"
+
+#~ msgid "The maximum number of insns of a peeled loop that rolls only once"
+#~ msgstr "Le nombre maximum d'insns d'une boucle réduite 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 "Sélectionner la fraction du décompte maximal de répétition du bloc de base dans le programme selon le bloc de bsae donné doit être considéré 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 "Sélectionner la fraction de la fréquence maximale d'exécutions du bloc de base dans la fonction selon le bloc de bsae donné doit être considéré 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, pondéré par la fréquence d'exécutions, 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, pondéré par la fréquence d'exécutions, 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 renversée si la probabilité inverse des meilleures bordures est inférieure à 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 anticipée si la probabilité des meilleures bordures est inférieure à 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 anticipée si la probabilité des meilleures bordures est inférieure à 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 à considérer pour les sauts croisés"
+
+#~ msgid "The maximum length of path considered in cse"
+#~ msgstr "La longueur maximale des chemins considérés dans cse"
+
+#~ msgid "The maximum memory locations recorded by cselib"
+#~ msgstr "Le nombre maximum de localisations mémoire enregistrées 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 antérieurement 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 après « #pragma unused », ignoré"
+
+#~ msgid "missing ')' after '#pragma unused', ignoring"
+#~ msgstr "« ( » manquante après « #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 protégées n'est pas supportée 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 » erronée pour l'option -mtrap-precision"
+
+#~ msgid "bad value `%s' for -mfp-rounding-mode switch"
+#~ msgstr "valeur « %s » erronée pour l'option -mfp-rounding-mode"
+
+#~ msgid "bad value `%s' for -mfp-trap-mode switch"
+#~ msgstr "valeur « %s » erronée pour l'option -mfp-trap-mode"
+
+#~ msgid "bad value `%s' for -mtls-size switch"
+#~ msgstr "valeur « %s » erronée pour l'option -mtls-size"
+
+#~ msgid "bad value `%s' for -mcpu switch"
+#~ msgstr "valeur « %s » erronée 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 "complétion 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 » erronée 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 matériel"
+
+#~ msgid "Do not use hardware fp"
+#~ msgstr "Ne pas utiliser l'unité FP matérielle"
+
+#~ 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 présumer la présence de GAS"
+
+#~ msgid "Assume GAS"
+#~ msgstr "Présumer la présence de GAS"
+
+#~ msgid "Request IEEE-conformant math library routines (OSF/1)"
+#~ msgstr "Requête des routine de la bibliothèque mathématique 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 entières complexes en mémoire 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 vidéo ISA"
+
+#~ msgid "Emit code for the fp move and sqrt ISA extension"
+#~ msgstr "Produire du code pour les déplacements 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 données"
+
+#~ msgid "Emit 32-bit relocations to the small data areas"
+#~ msgstr "Produire du code de 32 bits pour le relocalisation des petites zones de données"
+
+#~ 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 "Contrôler le mode d'arondissement FP généré"
+
+#~ msgid "Control the IEEE trap mode"
+#~ msgstr "Contrôler le mode trappe IEEE"
+
+#~ msgid "Control the precision given to fp exceptions"
+#~ msgstr "Contrôler la précision donnée des exceptions FP"
+
+#~ msgid "Specify bit size of immediate TLS offsets"
+#~ msgstr "Spécifier la taille de bit des décalages immédiats TLS"
+
+#~ msgid "bad value (%s) for -mcpu switch"
+#~ msgstr "valeur (%s) erronée pour l'option -mcpu"
+
+#~ msgid "argument of `%s' attribute is not a string constant"
+#~ msgstr "argument de l'attribut « %s » n'est pas une chaîne 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 "opérande invalide pour le code %%R"
+
+#~ msgid "invalid operand to %%H/%%L code"
+#~ msgstr "opérande invalide pour le code %%H/%%L"
+
+#~ msgid "invalid operand to %%U code"
+#~ msgstr "opérande invalide pour le code %%U"
+
+#~ msgid "invalid operand to %%V code"
+#~ msgstr "opérande invalide pour le code %%V"
+
+#~ msgid "invalid operand output code"
+#~ msgstr "opérande 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) erronée 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-réseautage"
+
+#~ 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 arrière 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-réseautage des appelés 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-réseautage des appelants si seulement significatif lors de la compilation pour le Thumb"
+
+#~ msgid "interworking forces APCS-32 to be used"
+#~ msgstr "l'inter-réseautage 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 réentrant 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 sensée"
+
+#~ 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 supportée 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 réelle de la pile de paramètres"
+
+#~ msgid "selector must be an immediate"
+#~ msgstr "sélecteur doit être un immédiat"
+
+#~ msgid "mask must be an immediate"
+#~ msgstr "masque doit être un immédiat"
+
+#~ 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 codées en mode THUMB"
+
+#~ msgid "%Jinitialized variable '%D' is marked dllimport"
+#~ msgstr "%Jvariable initialisé « %D » est marquée dllimport"
+
+#~ msgid "%Jstatic variable '%D' is marked dllimport"
+#~ msgstr "%Jvariable statique « %D » est marquée dllimport"
+
+#~ msgid "Generate APCS conformant stack frames"
+#~ msgstr "Générer 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 "Générer du code PIC ré-entrant"
+
+#~ msgid "The MMU will trap on unaligned accesses"
+#~ msgstr "Le MMU va intercepter les accès mal alignés"
+
+#~ msgid "Use library calls to perform FP operations"
+#~ msgstr "Utiliser les appels de bibliothèque pour exécuter les opérations FP"
+
+#~ msgid "Use hardware floating point instructions"
+#~ msgstr "Utiliser les instructions matérielles en virgule flottante"
+
+#~ msgid "Assume target CPU is configured as big endian"
+#~ msgstr "Présumer que le processeur cible est un système à octets de poids fort"
+
+#~ msgid "Assume target CPU is configured as little endian"
+#~ msgstr "Présumer que le processeur cible est un système à octets de poids faible"
+
+#~ msgid "Assume big endian bytes, little endian words"
+#~ msgstr "Présumer un système à 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 "Générer un appel pour stopper si une fonction sans retour retourne un résultat"
+
+#~ msgid "Do not move instructions into a function's prologue"
+#~ msgstr "Ne pas déplacer 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 "Générer l'appel insn comme un appel indirect, si nécessaire"
+
+#~ 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: générer (non feuilles) trames de pile même si non nécessaire"
+
+#~ msgid "Thumb: Generate (leaf) stack frames even if not needed"
+#~ msgstr "Thumb : Générer (feuilles) trames de pile même si non nécessaire"
+
+#~ msgid "Thumb: Assume non-static functions may be called from ARM code"
+#~ msgstr "Thumb : Présumer que les fonctions non statiques peuvent être appelées du code ARM"
+
+#~ msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+#~ msgstr "Thumb : Présumer 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: insérer 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 "Spécifier le nom du processeur cible"
+
+#~ msgid "Specify the name of the target architecture"
+#~ msgstr "Spécifier le nom de l'architecture cible"
+
+#~ msgid "Specify the version of the floating point emulator"
+#~ msgstr "Spécifier la version de l'émulateur en virgule flottante"
+
+#~ msgid "Specify the minimum bit alignment of structures"
+#~ msgstr "Spécifier le minimum de bits pour l'alignement de structures"
+
+#~ msgid "Specify the register to be used for PIC addressing"
+#~ msgstr "Spécifier 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 erronée, pas (reg+disp):"
+
+#~ msgid "internal compiler error. Bad address:"
+#~ msgstr "erreur internal du compilateur. Adresse erronée:"
+
+#~ 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 déplacement inconnu:"
+
+#~ msgid "bad shift insn:"
+#~ msgstr "décalage insn erroné:"
+
+#~ msgid "internal compiler error. Incorrect shift:"
+#~ msgstr "erreur internal du compilateur. Décalage incorrect:"
+
+#~ msgid "only initialized variables can be placed into program memory area"
+#~ msgstr "seules les variables initialisées peuvent être placées dans la zone mémoire du programme"
+
+#~ msgid "only uninitialized variables can be placed in the .noinit section"
+#~ msgstr "seuls les variables non initialisées peuvent être placées 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 "Présumer que les int sont des entiers de 8 bits"
+
+#~ msgid "Change the stack pointer without disabling interrupts"
+#~ msgstr "Changer le pointeur de pile sans désactiver 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 générer les sauts de table insns"
+
+#~ msgid "Use rjmp/rcall (limited range) on >8K devices"
+#~ msgstr "Utiliser rjpm/rcall (étendue limitée) sur des périphériques >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 "Spécifier l'adresse initiale de la pile"
+
+#~ msgid "Specify the MCU name"
+#~ msgstr "Spécifier le nom du MCU"
+
+#~ msgid "trampolines not supported"
+#~ msgstr "trampolines ne sont pas supportées"
+
+#~ msgid "missing '(' after '#pragma %s' - ignored"
+#~ msgstr "«(» manquante après «#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: opérande erronée pour un case"
+
+#~ msgid "c4x_print_operand_address: Bad post_modify"
+#~ msgstr "c4x_print_operand_address: post-modification erronée"
+
+#~ msgid "c4x_print_operand_address: Bad pre_modify"
+#~ msgstr "c4x_print_operand_address: pré-modification erronée"
+
+#~ msgid "c4x_print_operand_address: Bad operand case"
+#~ msgstr "c4x_print_operand_address: opérande erronée pour un case"
+
+#~ msgid "c4x_rptb_insert: Cannot find start label"
+#~ msgstr "c4x_rptb_insert: ne peut repérer l'étiquette de départ"
+
+#~ msgid "mode not QImode"
+#~ msgstr "mode n'est pas QImode"
+
+#~ msgid "invalid indirect memory address"
+#~ msgstr "adresse mémoire d'indirection invalide"
+
+#~ msgid "invalid indirect (S) memory address"
+#~ msgstr "adresse mémoire (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: opérande 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 décalage 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 supérieur de bloc de répétition déplacée\n"
+
+#~ msgid "Small memory model"
+#~ msgstr "Modèle de mémoire petite"
+
+#~ msgid "Big memory model"
+#~ msgstr "Modèle de mémoire 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 précis 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 "Générer du code pour processeur C30"
+
+#~ msgid "Generate code for C31 CPU"
+#~ msgstr "Générer du code pour processeur C31"
+
+#~ msgid "Generate code for C32 CPU"
+#~ msgstr "Générer du code pour processeur C32"
+
+#~ msgid "Generate code for C33 CPU"
+#~ msgstr "Générer du code pour processeur C33"
+
+#~ msgid "Generate code for C40 CPU"
+#~ msgstr "Générer du code pour processeur C40"
+
+#~ msgid "Generate code for C44 CPU"
+#~ msgstr "Générer 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 modèle de mémoire restreinte"
+
+#~ msgid "Don't save DP across ISR in small memory model"
+#~ msgstr "Ne pas sauvegarder DP à travers ISR dans le modèle de mémoire 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 développement"
+
+#~ msgid "Disable new features under development"
+#~ msgstr "Désactiver les nouvelles options en développement"
+
+#~ msgid "Use the BK register as a general purpose register"
+#~ msgstr "Utiliser le registre BK comme registre général 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 "Désactiver l'utilisation d'instruction DB"
+
+#~ msgid "Enable debugging"
+#~ msgstr "Permettre la mise au point"
+
+#~ msgid "Disable debugging"
+#~ msgstr "Désactiver la mise au point"
+
+#~ msgid "Force constants into registers to improve hoisting"
+#~ msgstr "Forcer les constantes dans les registres pour améliorer la montée"
+
+#~ 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 génération RTL pour produire des opérandes insn 3 valides"
+
+#~ msgid "Allow RTL generation to emit invalid 3 operand insns"
+#~ msgstr "Autoriser la génération RTL pour produire des opérandes insn 3 invalides"
+
+#~ msgid "Allow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Autoriser un compteur non signé d'itérations pour RPTB/DB"
+
+#~ msgid "Disallow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Interdire un compteur non signé d'itération pour RPTB/DB"
+
+#~ msgid "Preserve all 40 bits of FP reg across call"
+#~ msgstr "Préserver tous les 40 bits du registre FP à travers les appels"
+
+#~ msgid "Only preserve 32 bits of FP reg across call"
+#~ msgstr "Préserver seulement 32 bits du registre FP à travers les appels"
+
+#~ msgid "Enable parallel instructions"
+#~ msgstr "Autoriser les instructions parallèles"
+
+#~ msgid "Disable parallel instructions"
+#~ msgstr "Interdire les instructions parallèles"
+
+#~ 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 "Présumer que les pointeurs peuvent être aliasés"
+
+#~ msgid "Assume that pointers not aliased"
+#~ msgstr "Présumer que les pointeurs ne peuvent pas être aliasés"
+
+#~ msgid "Specify maximum number of iterations for RPTS"
+#~ msgstr "Spécifier le nombre maximum d'itérations pour RPTS"
+
+#~ msgid "Select CPU to generate code for"
+#~ msgstr "Sélectionner le processeur pour lequel le code doit être généré"
+
+#~ 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 délai non utilisée dans l'épilogue"
+
+#~ msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+#~ msgstr "type de fonction inattendue ajustement de la pile nécessaire pour « __builtin_eh_return »"
+
+#~ msgid "invalid operand for 'b' modifier"
+#~ msgstr "opérande invalide pour le modificateur « b »"
+
+#~ msgid "invalid operand for 'v' modifier"
+#~ msgstr "opérande invalide pour le modificateur « v »"
+
+#~ msgid "invalid operand for 'P' modifier"
+#~ msgstr "opérande invalide pour le modificateur « P »"
+
+#~ msgid "invalid operand for 'p' modifier"
+#~ msgstr "opérande invalide pour le modificateur « p »"
+
+#~ msgid "invalid operand for 'z' modifier"
+#~ msgstr "opérande invalide pour le modificateur « z »"
+
+#~ msgid "invalid operand for 'H' modifier"
+#~ msgstr "opérande invalide pour le modificateur « H »"
+
+#~ msgid "bad register"
+#~ msgstr "registre erroné"
+
+#~ msgid "invalid operand for 'e' modifier"
+#~ msgstr "opérande invalide pour le modificateur « e »"
+
+#~ msgid "invalid operand for 'm' modifier"
+#~ msgstr "opérande invalide pour le modificateur « m »"
+
+#~ msgid "invalid operand for 'A' modifier"
+#~ msgstr "opérande invalide pour le modificateur « A »"
+
+#~ msgid "invalid operand for 'D' modifier"
+#~ msgstr "opérande invalide pour le modificateur « D »"
+
+#~ msgid "invalid operand for 'T' modifier"
+#~ msgstr "opérande invalide pour le modificateur « T »"
+
+#~ msgid "invalid operand modifier letter"
+#~ msgstr "opérande invalide pour le modificateur de lettre"
+
+#~ msgid "internal error: bad register: %d"
+#~ msgstr "erreur interne: registre erroné: %d"
+
+#~ msgid "unexpected multiplicative operand"
+#~ msgstr "opérande multiplicative inattendue"
+
+#~ msgid "unexpected operand"
+#~ msgstr "opérande 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 opérandes erronées"
+
+#~ msgid "unrecognized supposed constant"
+#~ msgstr "supposée constante non reconnue"
+
+#~ msgid "unrecognized supposed constant in cris_global_pic_symbol"
+#~ msgstr "supposée 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 "spécification de version CRIS inconnue dans -march= ou -mcpu= : %s"
+
+#~ msgid "unknown CRIS cpu version specification in -mtune= : %s"
+#~ msgstr "spécification de version CRIS inconnue dans -mtune= : %s"
+
+#~ msgid "-fPIC and -fpic are not supported in this configuration"
+#~ msgstr "-fPIC et -fpic ne sont pas supportées par cette configuration"
+
+#~ msgid "that particular -g option is invalid with -maout and -melinux"
+#~ msgstr "l'option particulière -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 "génération d'une opérande 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 système elinux"
+
+#~ msgid "For elinux, request a specified stack-size for this program"
+#~ msgstr "Pour elinux, faire la requête pour un taille de pile spécifique 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 données dynamiques"
+
+#~ msgid "Do not tune code and read-only data alignment"
+#~ msgstr "Ne pas ajuster l'alignement du code et des sections de données statiques"
+
+#~ msgid "Align code and data to 32 bits"
+#~ msgstr "Aligner le code et les données sur 32 bits"
+
+#~ msgid "Don't align items in code or data"
+#~ msgstr "Ne pas aligner les items dans le code ou les données"
+
+#~ msgid "Do not emit function prologue or epilogue"
+#~ msgstr "Ne pas générer 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 "Générer le code pour la version de processeur ou de circuit spécifiée"
+
+#~ msgid "Tune alignment for the specified chip or CPU version"
+#~ msgstr "Ajuster l'alignement pour la version de processeur ou de circuit spécifiée"
+
+#~ msgid "Warn when a stackframe is larger than the specified size"
+#~ msgstr "Avertir lorsqu'une trame de pile est plus grande que la taille spécifiée"
+
+#~ 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 références GOTPLT"
+
+#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+#~ msgstr "modes_tieable_p erronée 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 parallèles si possible"
+
+#~ msgid "Do not make adjacent short instructions parallel"
+#~ msgstr "Ne pas rendre adjacentes les instructions short en instructions parallèles"
+
+#~ msgid "Link programs/data to be in external memory by default"
+#~ msgstr "Faire l'édition de lien des programmes/données comme étant externe à la mémoire par défaut"
+
+#~ msgid "Link programs/data to be in onchip memory by default"
+#~ msgstr "Faire l'édition de lien des programmes/données comme étant interne dans la circuiterie de la mémoire par défaut"
+
+#~ msgid "Change the branch costs within the compiler"
+#~ msgstr "Changer les coûts de branchement à l'intérieur du compilateur"
+
+#~ msgid "Change the threshold for conversion to conditional execution"
+#~ msgstr "Changer le seuil pour la conversion en une exécution 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 "décalage 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 "opérateur de décalage 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 paramètres par les registres (par défaut)"
+
+#~ msgid "Don't pass parameters in registers"
+#~ msgstr "Ne pas passer les paramètres par les registres"
+
+#~ msgid "Generate code for near calls"
+#~ msgstr "Générer du code pour les appels proches"
+
+#~ msgid "Don't generate code for near calls"
+#~ msgstr "Ne pas générer du code pour les appels proches"
+
+#~ msgid "Generate code for near jumps"
+#~ msgstr "Générer du code pour les sauts proches"
+
+#~ msgid "Don't generate code for near jumps"
+#~ msgstr "Ne pas générer du code pour les sauts proches"
+
+#~ msgid "Generate code for a bit-manipulation unit"
+#~ msgstr "Générer du code pour une unité de manipulation de bits"
+
+#~ msgid "Don't generate code for a bit-manipulation unit"
+#~ msgstr "Ne pas générer du code pour une unité de manipulation de bits"
+
+#~ msgid "Generate code for memory map1"
+#~ msgstr "Générer du code pour la mémoire map1"
+
+#~ msgid "Generate code for memory map2"
+#~ msgstr "Générer du code pour la mémoire map2"
+
+#~ msgid "Generate code for memory map3"
+#~ msgstr "Générer du code pour la mémoire map3"
+
+#~ msgid "Generate code for memory map4"
+#~ msgstr "Générer du code pour la mémoire map4"
+
+#~ msgid "Ouput extra code for initialized data"
+#~ msgstr "Produire du code additionnel pour les données initialisées"
+
+#~ 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 supplémentaires 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 "Spécifier un nom alternatif pour la section texte"
+
+#~ msgid "Specify alternate name for data section"
+#~ msgstr "Spécifier un nom alternatif pour la section données"
+
+#~ msgid "Specify alternate name for bss section"
+#~ msgstr "Spécifier un nom alternatif pour la section bss"
+
+#~ msgid "Specify alternate name for constant section"
+#~ msgstr "Spécifier un nom alternatif pour la section des constantes"
+
+#~ msgid "Specify alternate name for dsp16xx chip"
+#~ msgstr "Spécifier 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 implantées"
+
+#~ msgid "fr30_print_operand_address: unhandled address"
+#~ msgstr "fr30_print_operand_address: adresse non traitée"
+
+#~ 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: opérande 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 "Présumer 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 "opérande output_move_single erronée"
+
+#~ msgid "Bad output_move_double operand"
+#~ msgstr "opérande output_move_double erronée"
+
+#~ msgid "Bad output_condmove_single operand"
+#~ msgstr "opérande output_condmove_single erronée"
+
+#~ 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 "numéro 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 média ne sont pas disponibles à mois que -mmedia soit utilisé"
+
+#~ msgid "this media function is only available on the fr500"
+#~ msgstr "cette fonction média est seulement disponible sur le fr500"
+
+#~ msgid "this media function is only available on the fr400"
+#~ msgstr "cette fonction média 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 "Générer du code H8S"
+
+#~ msgid "Do not generate H8S code"
+#~ msgstr "Ne pas générer du code H8S"
+
+#~ msgid "Generate H8S/2600 code"
+#~ msgstr "Générer du code H8S/S2600"
+
+#~ msgid "Do not generate H8S/2600 code"
+#~ msgstr "Ne pas générer 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 "Considérer l'accès mémoire lent pour la taille d'octets"
+
+#~ msgid "Enable linker relaxing"
+#~ msgstr "Activer la rélâche par l'éditeur de liens"
+
+#~ msgid "Generate H8/300H code"
+#~ msgstr "Générer du code H8/300H"
+
+#~ msgid "Enable the normal mode"
+#~ msgstr "Activer le mode normal"
+
+#~ msgid "Do not generate H8/300H code"
+#~ msgstr "Ne pas générer du code H8/300H"
+
+#~ msgid "Use H8/300 alignment rules"
+#~ msgstr "Utiliser les règles 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 réel 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 "Générer des instructions « char »"
+
+#~ msgid "Do not generate char instructions"
+#~ msgstr "Ne pas générer 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 erronée (%s) pour l'opton -mcmodel="
+
+#~ msgid "bad value (%s) for -masm= switch"
+#~ msgstr "valeur erronée (%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 sélectionné ne supporte pas le jeu d'instructions x86-64"
+
+#~ msgid "bad value (%s) for -march= switch"
+#~ msgstr "valeur erronée (%s) pour l'option -march="
+
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "valeur erronée (%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 obsolète, 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 obsolète, utiliser -falign-loops"
+
+#~ msgid "-malign-functions is obsolete, use -falign-functions"
+#~ msgstr "-malign-functions est obsolète, 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 erronée (%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 désactivé, arithmétique 387 est utilisé"
+
+#~ msgid "387 instruction set disabled, using SSE arithmetics"
+#~ msgstr "jeu d'instructions 387 désactivé, arithmétique SSE est utilisé"
+
+#~ msgid "bad value (%s) for -mfpmath= switch"
+#~ msgstr "valeur erronée (%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 entière"
+
+#~ 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 opérande"
+
+#~ 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'opérande non supportée pour un registre étendu"
+
+#~ msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+#~ msgstr "l'opérande n'est ni une constante ni du code de condition, code d'opérande invalide « c »"
+
+#~ msgid "invalid operand code `%c'"
+#~ msgstr "opérande invalide pour « %c »"
+
+#~ msgid "invalid constraints for operand"
+#~ msgstr "contrainte invalide pour l'opérande"
+
+#~ msgid "unknown insn mode"
+#~ msgstr "mode insn inconnu"
+
+#~ msgid "selector must be an integer constant in the range 0..%i"
+#~ msgstr "le sélecteur doit être une constante entière entre les bornes 0..%i"
+
+#~ msgid "shift must be an immediate"
+#~ msgstr "décalage doit être un immédiat"
+
+#~ msgid "`%s' incompatible attribute ignored"
+#~ msgstr "attribut « %s » incompatible ignoré"
+
+#~ msgid "%Jfunction `%D' definition is marked dllimport."
+#~ msgstr "%Jdéfinition de la fonction « %D » est marquée dllimport"
+
+#~ msgid "%Jvariable `%D' definition is marked dllimport."
+#~ msgstr "%Jdéfinition de la variable « %D » est marquée dllimport"
+
+#~ msgid "%Jexternal linkage required for symbol '%D' because of '%s' attribute."
+#~ msgstr "%Jédition 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 définie après un déclaration antérieure en tant que dllimport: attribut ignoré"
+
+#~ msgid "%Jinline function '%D' is declared as dllimport: attribute ignored."
+#~ msgstr "%Jfonction enligne « %D » est déclarée en tant que dllimport: attribut ignoré."
+
+#~ msgid "%Jdefinition of static data member '%D' of dllimport'd class."
+#~ msgstr "%Jdéfinition d'un membre statique de données « %D » de la classe dllimport"
+
+#~ msgid "%Jinconsistent dll linkage for '%D', dllexport assumed."
+#~ msgstr "%Jédition de lien dll inconsistent pour « %D »: dllexport assumé."
+
+#~ msgid "`%s' declared as both exported to and imported from a DLL"
+#~ msgstr "« %s » déclaré à la fois comme exporté et importé d'une DLL"
+
+#~ msgid "%Jfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
+#~ msgstr "%Jéchec dans la redéclation de « %D »: symbol dllimporté manque de liens externes."
+
+#~ msgid "%J'%D' defined locally after being referenced with dllimport linkage"
+#~ msgstr "%J« %D » défini localement après avoir été référencé avec lien dllimport."
+
+#~ msgid "%J'%D' redeclared without dllimport attribute after being referenced with dllimport linkage"
+#~ msgstr "%J« %D » redéclaré sans attribut dllimport après avoir été référencé 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 "Créer une application de type GUI"
+
+#~ msgid "Don't set Windows defines"
+#~ msgstr "Ne pas initialiser les définitions Windows"
+
+#~ msgid "Set Windows defines"
+#~ msgstr "Initialiser les définitions Windows"
+
+#~ msgid "Create console application"
+#~ msgstr "Créer une application de type console"
+
+#~ msgid "Generate code for a DLL"
+#~ msgstr "Générer 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 spécifique à Mingw"
+
+#~ msgid "-f%s ignored for target (all code is position independent)"
+#~ msgstr "-f%s ignoré pour la cible (tout le code set indépendant de la position)"
+
+#~ msgid "-mbnu210 is ignored (option is obsolete)"
+#~ msgstr "-mbnu210 est ignoré (option obsolète)"
+
+#~ 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 frontières de mots doubles"
+
+#~ msgid "Align doubles on word boundary"
+#~ msgstr "Aligner les doubles sur des frontières de mots"
+
+#~ msgid "Uninitialized locals in .bss"
+#~ msgstr "Var. locales non initialisées dans .bss"
+
+#~ msgid "Uninitialized locals in .data"
+#~ msgstr "Var. locales non initialisées dans .data"
+
+#~ msgid "Use IEEE math for fp comparisons"
+#~ msgstr "Utiliser les mathématiques IEEE pour les comparaisons FP"
+
+#~ msgid "Do not use IEEE math for fp comparisons"
+#~ msgstr "Ne pas utiliser les mathématiques 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 générer sin, cos, sqrt pour le FPU"
+
+#~ msgid "Generate sin, cos, sqrt for FPU"
+#~ msgstr "Générer 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 opérations sur les chaînes"
+
+#~ msgid "Do not align destination of the string operations"
+#~ msgstr "Ne pas aligner la destination des opérations sur les chaînes"
+
+#~ msgid "Inline all known string operations"
+#~ msgstr "Permettre l'enlignage dans toutes les opérations portant sur les chaînes"
+
+#~ msgid "Do not inline all known string operations"
+#~ msgstr "Ne pas permettre l'enlignage dans toutes les opérations portant sur les chaînes"
+
+#~ 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 génération 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 génération 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 génération 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 génération 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 génération 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 génération 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 "Générer du code 64 bits pour x86-64"
+
+#~ msgid "Generate 32bit i386 code"
+#~ msgstr "Générer 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 défaut 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 référence directe envers %gs lors de l'accès des données tls"
+
+#~ msgid "Do not use direct references against %gs when accessing tls data"
+#~ msgstr "Ne pas utiliser la référence directe envers %gs lors de l'accès des données 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 "Générer les mathématiques en virgule flottante avec le jeu d'instructions données"
+
+#~ msgid "Generate code for given CPU"
+#~ msgstr "Générer le code pour le processeur donné"
+
+#~ msgid "Number of registers used to pass integer arguments"
+#~ msgstr "Nombre de registres utilisés pour passer les arguments entiers"
+
+#~ msgid "Loop code aligned to this power of 2"
+#~ msgstr "Codes de boucles alignés selon une puissance de 2"
+
+#~ msgid "Jump targets are aligned to this power of 2"
+#~ msgstr "Sauts de cibles alignés selon une puissance de 2"
+
+#~ msgid "Function starts are aligned to this power of 2"
+#~ msgstr "Débuts des fonction alignés selon une puissance de 2"
+
+#~ msgid "Attempt to keep stack aligned to this power of 2"
+#~ msgstr "Tentative de conservation de la pile alignée selon une puissance de 2"
+
+#~ msgid "Branches are this expensive (1-5, arbitrary units)"
+#~ msgstr "Branchements coûteux à ce point (1-4, unités arbitraires)"
+
+#~ msgid "Use given x86-64 code model"
+#~ msgstr "Utiliser le modèle 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 "Générer la sortie ELF"
+
+#~ msgid "environment variable DJGPP not defined"
+#~ msgstr "variable d'environment DJGPP non définie"
+
+#~ 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 "Générer du code qui utilise le FPU"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Ne pas générer du code qui utilise le FPU"
+
+#~ msgid "sorry, not implemented: #pragma align NAME=SIZE"
+#~ msgstr "désolé, 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 "désolé, pas implanté: #pragma noalign NOM"
+
+#~ msgid "conflicting architectures defined - using C series"
+#~ msgstr "architectures conflictuelles définies - utilise les séries C"
+
+#~ msgid "conflicting architectures defined - using K series"
+#~ msgstr "architectures conflictuelles définies - utilise les séries 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 supportée"
+
+#~ msgid "Generate SA code"
+#~ msgstr "Générer du code SA"
+
+#~ msgid "Generate SB code"
+#~ msgstr "Générer du code SB"
+
+#~ msgid "Generate KA code"
+#~ msgstr "Générer du code KA"
+
+#~ msgid "Generate KB code"
+#~ msgstr "Générer du code KB"
+
+#~ msgid "Generate JA code"
+#~ msgstr "Générer du code JA"
+
+#~ msgid "Generate JD code"
+#~ msgstr "Générer du code JD"
+
+#~ msgid "Generate JF code"
+#~ msgstr "Générer du code JF"
+
+#~ msgid "generate RP code"
+#~ msgstr "Générer du code RP"
+
+#~ msgid "Generate MC code"
+#~ msgstr "Générer du code MC"
+
+#~ msgid "Generate CA code"
+#~ msgstr "Générer du code CA"
+
+#~ msgid "Generate CF code"
+#~ msgstr "Générer 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 entrées alternatives pour les fonctions de feuilles"
+
+#~ msgid "Do not use alternate leaf function entries"
+#~ msgstr "Ne pas utiliser les entrées 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 frontières de 8 octets"
+
+#~ msgid "Do not align code to 8 byte boundary"
+#~ msgstr "Ne pas aligner le code sur des frontières 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 accès non alignés"
+
+#~ msgid "Permit unaligned accesses"
+#~ msgstr "Permettre les accès non alignés"
+
+#~ 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 relâche par l'éditeur de liens"
+
+#~ msgid "Do not enable linker relaxation"
+#~ msgstr "Ne pas autoriser la relâche 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 données ne peut pas être spécifié 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 déclaration précédente"
+
+#~ msgid "%Jaddress area attribute cannot be specified for functions"
+#~ msgstr "%Jl'attribut de la zone d'adresse ne peut pas être spécifié 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 débit"
+
+#~ msgid "cannot optimize integer division for both latency and throughput"
+#~ msgstr "ne peut optimiser la division entière à la fois pour la latence et le débit"
+
+#~ msgid "cannot optimize square root for both latency and throughput"
+#~ msgstr "ne peut optimiser la racine carrée à la fois pour la latence et le débit"
+
+#~ msgid "not yet implemented: latency-optimized inline square root"
+#~ msgstr "pas encore implanté: racine carrée enligne optimisée pour la latence"
+
+#~ msgid "bad value (%s) for -mtls-size= switch"
+#~ msgstr "valeur erronée (%s) pour l'option -mtls-size"
+
+#~ msgid "bad value (%s) for -tune= switch"
+#~ msgstr "valeur erronée (%s) pour l'option -tune="
+
+#~ msgid "Generate big endian code"
+#~ msgstr "Générer du code de système à octets de poids fort"
+
+#~ msgid "Generate little endian code"
+#~ msgstr "Générer du code de système à octets de poids faible"
+
+#~ msgid "Generate code for GNU as"
+#~ msgstr "Générer du code pour GNU tel que"
+
+#~ msgid "Generate code for Intel as"
+#~ msgstr "Générer du code pour Intel tel que"
+
+#~ msgid "Generate code for GNU ld"
+#~ msgstr "Générer du code pour GNU ld"
+
+#~ msgid "Generate code for Intel ld"
+#~ msgstr "Générer du code pour Intel ld"
+
+#~ msgid "Generate code without GP reg"
+#~ msgstr "Générer du code sans registre GP"
+
+#~ msgid "Emit stop bits before and after volatile extended asms"
+#~ msgstr "Produire de stop bits avant et après les asms étendus"
+
+#~ msgid "Don't emit stop bits before and after volatile extended asms"
+#~ msgstr "Ne pas produire de stop bits avant et après 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 "Générer du code auto-relocalisable"
+
+#~ msgid "Generate inline floating point division, optimize for latency"
+#~ msgstr "Générer la division enligne en point flottant, optimiser pour la latence"
+
+#~ msgid "Generate inline floating point division, optimize for throughput"
+#~ msgstr "Générer la division en point flottant enligne, optimiser pour le débit"
+
+#~ msgid "Generate inline integer division, optimize for latency"
+#~ msgstr "Générer la division entière enligne, optimiser pour la latence"
+
+#~ msgid "Generate inline integer division, optimize for throughput"
+#~ msgstr "Générer la divisions entière enligne, optimiser pour le débit"
+
+#~ msgid "Generate inline square root, optimize for latency"
+#~ msgstr "Générer la racine carrée enligne, optimiser pour la latence"
+
+#~ msgid "Generate inline square root, optimize for throughput"
+#~ msgstr "Générer la racine carrée enligne, optimiser pour le débit"
+
+#~ 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 antérieure de stop bits pour un meilleur ordonnancement"
+
+#~ msgid "Disable earlier placing stop bits"
+#~ msgstr "Interdire l'installation antérieure de bits d'arrêt"
+
+#~ msgid "Specify range of registers to make fixed"
+#~ msgstr "spécifier l'étendue des registres pour la rendre fixe"
+
+#~ msgid "bad operand"
+#~ msgstr "opérande erronée"
+
+#~ msgid "bad value (%s) for -mcpu= switch"
+#~ msgstr "valeur erronée (%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 zéro."
+
+#~ 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 "opérande %%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 défaut 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 itialisées dans le ROM (a besoin de -membedded-data)"
+
+#~ msgid "Don't put uninitialized constants in ROM"
+#~ msgstr "Ne pas placer les constantes non itialisées dans le ROM (a besoin de -membedded-data)"
+
+#~ msgid "Specify CPU for scheduling purposes"
+#~ msgstr "Spécifier le processeur pour les besoins de l'ordonnancement"
+
+#~ msgid "Specify CPU for code generation purposes"
+#~ msgstr "Spécifier le processeur pour les besoins de la génération de code"
+
+#~ msgid "bad value (%s) for -mmodel switch"
+#~ msgstr "valeur erronée (%s) pour l'option -mmodel"
+
+#~ msgid "bad value (%s) for -msdata switch"
+#~ msgstr "valeur erronée (%s) pour l'option -msdata"
+
+#~ msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
+#~ msgstr "valeur erronée (%s) pour l'option -flush-trap=n (0=<n<=15)"
+
+#~ msgid "invalid operand to %%s code"
+#~ msgstr "opérande invalide pour le code %%s"
+
+#~ msgid "invalid operand to %%p code"
+#~ msgstr "opérande invalide pour le code %%p"
+
+#~ msgid "bad insn for 'A'"
+#~ msgstr "insn erroné pour « A »"
+
+#~ msgid "invalid operand to %%T/%%B code"
+#~ msgstr "opérande invalide pour le code %%T/%%B"
+
+#~ msgid "invalid operand to %%N code"
+#~ msgstr "opérande invalide pour le code %%N"
+
+#~ msgid "pre-increment address is not a register"
+#~ msgstr "pré-incrément d'adresse n'est pas un registre"
+
+#~ msgid "pre-decrement address is not a register"
+#~ msgstr "pré-décrément d'adresse n'est pas un registre"
+
+#~ msgid "post-increment address is not a register"
+#~ msgstr "post-incrément d'adresse n'est pas un registre"
+
+#~ msgid "bad address"
+#~ msgstr "adresse erronée"
+
+#~ 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 frontières de 32 octets"
+
+#~ msgid "Only issue one instruction per cycle"
+#~ msgstr "Émettre seulement une instruction par cycle"
+
+#~ msgid "Prefer branches over conditional execution"
+#~ msgstr "Privilégier les branchements au lieu d'une exécution 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 données: 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 "Spécifier la fonction de vidange de la cache"
+
+#~ msgid "Don't call any cache flush trap"
+#~ msgstr "Ne pas faire d'appel de fonction de déroutement de vidange de la cache"
+
+#~ msgid "Specify cache flush trap number"
+#~ msgstr "Spécifier la fonction de déroutement 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 déjà utilisé"
+
+#~ msgid "move insn not handled"
+#~ msgstr "déplacement insn non traité"
+
+#~ msgid "invalid register in the move instruction"
+#~ msgstr "registre invalide dans l'instruction de déplacement"
+
+#~ msgid "invalid operand in the instruction"
+#~ msgstr "opérande 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'opérande 1 doit être un registre matériel"
+
+#~ 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 utilisés dans le même 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 décrementation incrémentation permise"
+
+#~ msgid "Auto pre/post decrement increment not allowed"
+#~ msgstr "Auto pré/post décrementation incrémentation 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 "Spécifier 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= spécifié 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 spécifier à 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 "Générer le code pour un 68020"
+
+#~ msgid "Generate code for a 68000"
+#~ msgstr "Générer 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 "Considérer le type « int » comme ayant une largeur de 16 bits"
+
+#~ msgid "Consider type `int' to be 32 bits wide"
+#~ msgstr "Considérer le type « int » comme ayant une largeur de 32 bits"
+
+#~ msgid "Generate code with library calls for floating point"
+#~ msgstr "Générer du code avec les appels de bibliothèques pour la virgule flottante"
+
+#~ msgid "Generate code for a 68040, without any new instructions"
+#~ msgstr "Générer du code pour un 68040 sans les nouvelles instructions"
+
+#~ msgid "Generate code for a 68060, without any new instructions"
+#~ msgstr "Générer du code pour un 68060 sans les nouvelles instructions"
+
+#~ msgid "Generate code for a 68030"
+#~ msgstr "Générer du code pour un 68030"
+
+#~ msgid "Generate code for a 68040"
+#~ msgstr "Générer du code pour un 68040"
+
+#~ msgid "Generate code for a 68060"
+#~ msgstr "Générer du code pour un 68060"
+
+#~ msgid "Generate code for a 520X"
+#~ msgstr "Générer du code pour un 520X"
+
+#~ msgid "Generate code for a 5206e"
+#~ msgstr "Générer du code pour un 5206e"
+
+#~ msgid "Generate code for a 528x"
+#~ msgstr "Générer du code pour un 528x"
+
+#~ msgid "Generate code for a 5307"
+#~ msgstr "Générer du code pour un 5307"
+
+#~ msgid "Generate code for a 5407"
+#~ msgstr "Générer du code pour un 5407"
+
+#~ msgid "Generate code for a 68851"
+#~ msgstr "Générer le code pour un 68851"
+
+#~ msgid "Do no generate code for a 68851"
+#~ msgstr "Ne pas générer de code pour un 68851"
+
+#~ msgid "Generate code for a 68302"
+#~ msgstr "Générer du code pour un 68302"
+
+#~ msgid "Generate code for a 68332"
+#~ msgstr "Générer du code pour un 68332"
+
+#~ msgid "Generate code for a cpu32"
+#~ msgstr "Générer du code pour un cpu32"
+
+#~ msgid "Align variables on a 32-bit boundary"
+#~ msgstr "Aligner les variables sur des frontières de 32 bits"
+
+#~ msgid "Align variables on a 16-bit boundary"
+#~ msgstr "Aligner les variables sur des frontières de 16 bits"
+
+#~ msgid "Enable separate data segment"
+#~ msgstr "Autoriser des segments de données séparés"
+
+#~ msgid "Disable separate data segment"
+#~ msgstr "Désactiver les segments séparés de données"
+
+#~ msgid "Enable ID based shared library"
+#~ msgstr "Autoriser les identificateurs de librairies partagées de base"
+
+#~ msgid "Disable ID based shared library"
+#~ msgstr "Interdire les identificateurs de librairies partagées de base"
+
+#~ msgid "Generate pc-relative code"
+#~ msgstr "Générer du code relatif au compteur de programme (PC)"
+
+#~ msgid "Do not use unaligned memory references"
+#~ msgstr "Ne pas utiliser des références mémoire non alignées"
+
+#~ msgid "Use unaligned memory references"
+#~ msgstr "Utiliser des références mémoire non alignées"
+
+#~ msgid "Use different calling convention using 'rtd'"
+#~ msgstr "Utiliser une convention différente 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 immédiats dans les opérations sur les bits"
+
+#~ msgid "Always treat bit-field as int-sized"
+#~ msgstr "Toujours traiter les champs de bits comme si la taille entière"
+
+#~ msgid "Force functions to be aligned to a 4 byte boundary"
+#~ msgstr "Forcer les fonctions à être alignés sur des frontières de 4 octets"
+
+#~ msgid "Force functions to be aligned to a 2 byte boundary"
+#~ msgstr "Forcer les fonctions à être alignés sur des frontières de 2 octets"
+
+#~ msgid "Emit call graph information"
+#~ msgstr "Produire les informations du graphe d'appel"
+
+#~ msgid "Prefer word accesses over byte accesses"
+#~ msgstr "Préférer l'accès à des mots plutôt qu'un accès à des octets"
+
+#~ msgid "Generate code for the M*Core M340"
+#~ msgstr "Générer du code pour M*Core M340"
+
+#~ msgid "Maximum amount for a single stack increment operation"
+#~ msgstr "Montant maximal pour une opération d'incrémentation simple de la pile"
+
+#~ msgid "bad test"
+#~ msgstr "test erroné"
+
+#~ msgid "bad value (%s) for -mabi= switch"
+#~ msgstr "valeur erronée (%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 spécifie un processeur MIPS%d"
+
+#~ msgid "-march=%s is not compatible with the selected ABI"
+#~ msgstr "-march=%s n'est pas compatible avec l'ABI sélectionné"
+
+#~ 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 supportée: %s"
+
+#~ msgid "-g is only supported using GNU as,"
+#~ msgstr "L'option -g est seulement supportée lorsque GNU est utilisé tel,"
+
+#~ msgid "-g is only supported using GNU as with -mabi=32,"
+#~ msgstr "L'option -g est seulement supportée lorsque GNU est utilisé avec -mabi=32,"
+
+#~ msgid "-g option disabled"
+#~ msgstr "option -g désactivée"
+
+#~ msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+#~ msgstr "activer la génération d'instructions identiques à des branchements mais non supportés par l'architecture"
+
+#~ msgid "-G is incompatible with PIC code which is the default"
+#~ msgstr "-G est incompatible avec le code PIC par défaut"
+
+#~ 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, opérande 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) erronée 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 déplacements de blocs"
+
+#~ msgid "Optimize block moves"
+#~ msgstr "Optimiser les déplacements 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é matérielle 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 généraux de 64 bits"
+
+#~ msgid "Use 32-bit general registers"
+#~ msgstr "Utiliser les registres généraux 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 enchâssé"
+
+#~ msgid "Don't use embedded PIC"
+#~ msgstr "Ne pas utiliser le code PIC enchâssé"
+
+#~ msgid "Use big-endian byte order"
+#~ msgstr "Utiliser l'ordre des octets pour système à octets de poids fort"
+
+#~ msgid "Use little-endian byte order"
+#~ msgstr "Utiliser l'ordre des octets pour système à 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 générer des instructions fusionnés de multiplication/addition"
+
+#~ msgid "Generate fused multiply/add instructions"
+#~ msgstr "Générer des instructions fusionnés de multiplication/addition"
+
+#~ msgid "Work around early 4300 hardware bug"
+#~ msgstr "Contourner le bug matériel des premiers 4300"
+
+#~ msgid "Don't work around early 4300 hardware bug"
+#~ msgstr "Ne pas contourner le bug matériel des premiers 4300"
+
+#~ msgid "Work around errata for early SB-1 revision 2 cores"
+#~ msgstr "Contourner l'erreur pour la révision 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 révision 2 du noyau des versions initiales SB-1"
+
+#~ msgid "Trap on integer divide by zero"
+#~ msgstr "Intercepter les divisions par zéros sur des entiers"
+
+#~ msgid "Don't trap on integer divide by zero"
+#~ msgstr "Ne pas intercepter les divisions par zéros sur des entiers"
+
+#~ msgid "Use Branch Likely instructions, overriding default for arch"
+#~ msgstr "Utiliser des instructions se comportant comme des branchements, écrasant le défaut 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 défaut de l'architecture"
+
+#~ msgid "Use NewABI-style %reloc() assembly operators"
+#~ msgstr "Utiliser NewABI-style %reloc() les opérateurs d'assemblage"
+
+#~ msgid "Use assembler macros instead of relocation operators"
+#~ msgstr "Utiliser les macros assembleurs au lieu des opérateurs de relocalisation"
+
+#~ msgid "Generate mips16 code"
+#~ msgstr "Générer du code mips16"
+
+#~ msgid "Generate normal-mode code"
+#~ msgstr "Générer 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 "Spécifier une ABI"
+
+#~ msgid "Specify a Standard MIPS ISA"
+#~ msgstr "Spécifier 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 inséré 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 erronée 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 décoder cette opérande"
+
+#~ 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 décalé"
+
+#~ msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+#~ msgstr "MMIX interne: tentative de produire incorrectement une condition renversée:"
+
+#~ 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 départ du programme fixée"
+
+#~ msgid "Set start-address of data"
+#~ msgstr "Adresse de départ des données fixée"
+
+#~ msgid "For intrinsics library: pass all parameters in registers"
+#~ msgstr "Pour les bibliothèques intrinsèques : passer tous les paramètres par registre"
+
+#~ msgid "Use register stack for parameters and return value"
+#~ msgstr "Utiliser le registre de la pile pour les paramètres et la valeur retournée"
+
+#~ msgid "Use call-clobbered registers for parameters and return value"
+#~ msgstr "utiliser les registres d'appels maltraités pour les paramètres et les valeurs retournées"
+
+#~ 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 mémoire avec zéro extension, pas celles avec signe d'extension"
+
+#~ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+#~ msgstr "générer des résultats de division avec reste ayant le même 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 départ par défaut 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 mnémoniques P pour les branchements statiquement prévus à être pris"
+
+#~ msgid "Don't use P-mnemonics for branches"
+#~ msgstr "Ne pas utiliser les mnémoniques 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 "Générer un point de sortie simple pour chaque fonction"
+
+#~ msgid "Do not generate a single exit point for each function"
+#~ msgstr "Ne pas générer 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 relâche de l'éditeur de liens"
+
+#~ msgid "Work around hardware multiply bug"
+#~ msgstr "Contourner le bug matériel de la multiplication"
+
+#~ msgid "Do not work around hardware multiply bug"
+#~ msgstr "Ne pas contourner le bug matériel de la multiplication"
+
+#~ msgid "Don't use hardware fp"
+#~ msgstr "Ne pas utiliser le FP matériel"
+
+#~ 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 zéro. 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 "Générer du code pour la partie haute de la mémoire"
+
+#~ msgid "Generate code for low memory"
+#~ msgstr "Générer du code pour la partie basse de la mémoire"
+
+#~ 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 génération de code PIC n'est pas supportée dans le modèle portable d'exécution\n"
+
+#~ msgid "PIC code generation is not compatible with fast indirect calls\n"
+#~ msgstr "La génération 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 supportée lorsque GAS est utilisé sur ce processeur,"
+
+#~ msgid "Generate cpp defines for server IO"
+#~ msgstr "Générer les defines pour les IO d'un serveur"
+
+#~ msgid "Generate cpp defines for workstation IO"
+#~ msgstr "Générer les defines pour les IO d'une station de travail"
+
+#~ msgid "Generate PA1.1 code"
+#~ msgstr "Générer du code PA1.1"
+
+#~ msgid "Generate PA1.0 code"
+#~ msgstr "Générer du code PA1.0"
+
+#~ msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+#~ msgstr "Générer du code PA2.0 (nécessite binutils 2.10 ou supérieur)"
+
+#~ msgid "Disable FP regs"
+#~ msgstr "Désactiver les registres FP"
+
+#~ msgid "Do not disable FP regs"
+#~ msgstr "Ne pas désactiver les registres FP"
+
+#~ msgid "Disable space regs"
+#~ msgstr "Désactiver l'espace registre"
+
+#~ msgid "Do not disable space regs"
+#~ msgstr "Ne pas désactiver l'espace registre"
+
+#~ msgid "Put jumps in call delay slots"
+#~ msgstr "Mettre des sauts dant les fentes de délais"
+
+#~ msgid "Do not put jumps in call delay slots"
+#~ msgstr "Ne pas mettre des sauts dant les fentes de délais"
+
+#~ msgid "Disable indexed addressing"
+#~ msgstr "désactiver l'adressage indexé"
+
+#~ msgid "Do not disable indexed addressing"
+#~ msgstr "Ne pas désactiver 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 "Générer des instructions multiples pour chargement/stockage"
+
+#~ msgid "Do not emit long load/store sequences"
+#~ msgstr "Ne pas générer 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 générer de directives rapides indirects"
+
+#~ msgid "Generate code for huge switch statements"
+#~ msgstr "Générer du code pour les grandes déclarations de branchements"
+
+#~ msgid "Do not generate code for huge switch statements"
+#~ msgstr "Ne pas générer du code pour les grandes déclarations de branchement"
+
+#~ msgid "Always generate long calls"
+#~ msgstr "Générer toujours des appels longs"
+
+#~ msgid "Generate long calls only when needed"
+#~ msgstr "Générer des appels longs lorsque nécessaire"
+
+#~ 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 "Spécifier l'architecture pour la génération de code. Les valeurs sont 1.0, 1.1 et 2.0. 2.0 requiert gas snapshot 19990413 ou plus récent."
+
+#~ 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 matériel pour virgule flottante"
+
+#~ msgid "Return floating point results in ac0"
+#~ msgstr "Le résultat retourné en virgule flottante se retrouve dans AC0."
+
+#~ msgid "Return floating point results in memory"
+#~ msgstr "Le résultat retourné en virgule flottante se retrouve en mémoire."
+
+#~ msgid "Generate code for an 11/40"
+#~ msgstr "Générer du code pour un 11/40"
+
+#~ msgid "Generate code for an 11/45"
+#~ msgstr "Générer du code pour un 11/45"
+
+#~ msgid "Generate code for an 11/10"
+#~ msgstr "Générer 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 séparé"
+
+#~ msgid "Target does not have split I&D"
+#~ msgstr "Cible n'a pas un I&D séparé"
+
+#~ 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'exécuter « %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 défaire la map pch_address_space: %m\n"
+
+#~ msgid "ignoring malformed #pragma longcall"
+#~ msgstr "#pragma longcall mal composé"
+
+#~ msgid "missing open paren"
+#~ msgstr "parenthèse ouvrante manquante"
+
+#~ msgid "missing number"
+#~ msgstr "nombre manquant"
+
+#~ msgid "missing close paren"
+#~ msgstr "parenthèse 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 système à octets de poids faible"
+
+#~ msgid "-mstring is not supported on little endian systems"
+#~ msgstr "-mstring n'est pas supporté sur des système à 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 spécifiée: « %s »"
+
+#~ msgid "not configured for ABI: '%s'"
+#~ msgstr "pas configuré pour ABI: « %s »"
+
+#~ msgid "unknown ABI specified: '%s'"
+#~ msgstr "ABI spécifié inconnu: « %s »"
+
+#~ msgid "unknown -malign-XXXXX option specified: '%s'"
+#~ msgstr "option -malign-XXXXX inconnue spécifiée: « %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 désactivées, 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 désactivées, utiliser -maltivec pour les autoriser"
+
+#~ msgid "argument 1 must be a 5-bit signed literal"
+#~ msgstr "argument 1 doit être un litéral signé de 5 bits"
+
+#~ msgid "argument 2 must be a 5-bit unsigned literal"
+#~ msgstr "argument 2 doit être un litéral 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 litéral non signé de 4 bits"
+
+#~ msgid "argument to `%s' must be a 2-bit unsigned literal"
+#~ msgstr "argument de « %s » doit être un litéral non signé de 2 bits"
+
+#~ msgid "argument to dss must be a 2-bit unsigned literal"
+#~ msgstr "argument de dss doit être un litéral 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 compilée"
+
+#~ 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 mémoire"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Na pas toujours passer des arguments en virgule flottante en mémoire"
+
+#~ msgid "Support message passing with the Parallel Environment"
+#~ msgstr "Supporter le passage de messages dans un environnement parallèle"
+
+#~ 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 sélectionnée"
+
+#~ 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 "Générer du code adapté pour les exécutables (PAS les librairies partagées)"
+
+#~ 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é général du PowerPC"
+
+#~ msgid "Do not use PowerPC General Purpose group optional instructions"
+#~ msgstr "Ne pas utiliser le groupe d'instructions optionnelles d'usage général 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 mnémoniques pour l'architecture du PowerPC"
+
+#~ msgid "Use old mnemonics for PowerPC architecture"
+#~ msgstr "Utiliser les anciennes mnémoniques pour l'architecture du PowerPC"
+
+#~ msgid "Put everything in the regular TOC"
+#~ msgstr "Place tout dans le TOC régulier"
+
+#~ 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+décalages dans le TOC"
+
+#~ msgid "Do not place symbol+offset constants in TOC"
+#~ msgstr "Ne pas placer les constantes symboles+décalages dans le TOC"
+
+#~ msgid "Place variable addresses in the regular TOC"
+#~ msgstr "Placer les adresses variables dans un TOC régulier"
+
+#~ msgid "Generate load/store multiple instructions"
+#~ msgstr "Générer les instructions multiples de chargement/stockage"
+
+#~ msgid "Do not generate load/store multiple instructions"
+#~ msgstr "Ne pas générer les instructions multiples de chargement/stockage"
+
+#~ msgid "Generate string instructions for block moves"
+#~ msgstr "Générer les instructions chaînes pour les déplacements de blocs"
+
+#~ msgid "Do not generate string instructions for block moves"
+#~ msgstr "Ne pas générer les instructions chaînes pour les déplacements de blocs"
+
+#~ msgid "Generate load/store with update instructions"
+#~ msgstr "Générer les instructions de mise à jour de chargement/stockage"
+
+#~ msgid "Do not generate load/store with update instructions"
+#~ msgstr "Ne pas générer les instructions de mise à jour de chargement/stockage"
+
+#~ msgid "Do not generate fused multiply/add instructions"
+#~ msgstr "Ne pas générer des instructions fusionnés de multiplication/addition"
+
+#~ msgid "Do not schedule the start and end of the procedure"
+#~ msgstr "Ne pas ordonnancer le début et la fin de la procédure"
+
+#~ msgid "Return all structures in memory (AIX default)"
+#~ msgstr "Retourner toutes les structures en mémoire (par défaut sur AIX)"
+
+#~ msgid "Return small structures in registers (SVR4 default)"
+#~ msgstr "Retourner les petites structures par les registres (par défaut sur SVR4)"
+
+#~ msgid "Generate single field mfcr instruction"
+#~ msgstr "Générer des instructions à champ simple mfcr"
+
+#~ msgid "Do not generate single field mfcr instruction"
+#~ msgstr "Ne pas générer 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 "Sélectionner « full », « part » ou « none »"
+
+#~ msgid "Specify ABI to use"
+#~ msgstr "Spécifier l'ABI à utiliser"
+
+#~ msgid "Specify size of long double (64 or 128 bits)"
+#~ msgstr "Spécifier la taille des long double (64 ou 128 bits)"
+
+#~ msgid "Specify yes/no if isel instructions should be generated"
+#~ msgstr "Spécifier yes (pour oui)/ no (pour non) si les instruction isel doivent être générés"
+
+#~ msgid "Specify yes/no if SPE SIMD instructions should be generated"
+#~ msgstr "Spécifier yes (pour oui) /no (pour non) si les instructions SPE SIMD doivent être générées"
+
+#~ msgid "Specify yes/no if using floating point in the GPRs"
+#~ msgstr "Spécifier yes (pour oui) /no (pour non) si les nombres en virgule flottante sont utilisés dans le GPR"
+
+#~ msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+#~ msgstr "Spécifier yes (pour oui)/ no (pour non) si les instruction VRSAVE doivent être générés 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 "Déterminer laquelle des dépendances entre les insns qui sont considérées coûteuses"
+
+#~ msgid "Specify which post scheduling nop insertion scheme to apply"
+#~ msgstr "Spécifier lequel schème de post ordonnancement d'insertion de NOP doit être appliqué"
+
+#~ msgid "Specify alignment of structure fields default/natural"
+#~ msgstr "Spécifier l'alignement des champs de structure par défaut/naturel"
+
+#~ msgid "Specify scheduling priority for dispatch slot restricted insns"
+#~ msgstr "Spécifier la priorité d'ordonnancement pour la répartition de fentes insns restreintes"
+
+#~ msgid "RETURN_ADDRESS_OFFSET not supported"
+#~ msgstr "RETURN_ADDRESS_OFFSET n'est pas supporté"
+
+#~ msgid "Select ABI calling convention"
+#~ msgstr "Sélectionner la convention d'appel ABI"
+
+#~ msgid "Select method for sdata handling"
+#~ msgstr "Sélectionner la méthode 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 présumer que les accès non alignées sont traités par le système"
+
+#~ msgid "Assume that unaligned accesses are handled by the system"
+#~ msgstr "Présumer que les accès non alignées sont traités par le système"
+
+#~ msgid "Produce code relocatable at runtime"
+#~ msgstr "Produire du code relocalisable au moment de l'exécution"
+
+#~ msgid "Don't produce code relocatable at runtime"
+#~ msgstr "Ne pas produire du code relocalisable au moment de l'exécution"
+
+#~ msgid "Produce little endian code"
+#~ msgstr "Produire du code pour système à octets de poids faible (little endian)"
+
+#~ msgid "Produce big endian code"
+#~ msgstr "Produire du code pour système à 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 frontières 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-tête des fanions ELF"
+
+#~ msgid "Use the WindISS simulator"
+#~ msgstr "Utiliser le simulateur WindISS"
+
+#~ msgid "Generate 64-bit code"
+#~ msgstr "Générer du code 64 bits"
+
+#~ msgid "Generate 32-bit code"
+#~ msgstr "Générer du code 32 bits"
+
+#~ msgid "bad value for -mcall-%s"
+#~ msgstr "valeur erronée pour -mcall-%s"
+
+#~ msgid "bad value for -msdata=%s"
+#~ msgstr "valeur erronée 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 système à 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 opérande (1)"
+
+#~ msgid "invalid UNSPEC as operand (2)"
+#~ msgstr "UNSPEC invalide comme opérande (2)"
+
+#~ msgid "UNKNOWN in s390_output_symbolic_const !?"
+#~ msgstr "INCONNU dans s390_output_symbolic_const !?"
+
+#~ msgid "Cannot decompose address."
+#~ msgstr "Ne pas décomposer 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 excède la limite de l'architecture"
+
+#~ msgid "Set backchain"
+#~ msgstr "Fixer la chaîne arrière"
+
+#~ msgid "Don't set backchain (faster, but debug harder"
+#~ msgstr "Ne pas fixer la chaîne arrière (plus rapide mais plus difficle à mettre au point)"
+
+#~ msgid "Use bras for executable < 64k"
+#~ msgstr "Utiliser « bras » pour les exécutables < 64k"
+
+#~ msgid "Don't use bras"
+#~ msgstr "Ne pas utiliser bras"
+
+#~ msgid "Additional debug prints"
+#~ msgstr "Imprimer des informations additionnelles en mode débug"
+
+#~ msgid "Don't print additional debug prints"
+#~ msgstr "Ne pas imprimer des informations additionnelles en mode débug"
+
+#~ 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 fusionnés de multiplication/addition"
+
+#~ msgid "enable fused multiply/add instructions"
+#~ msgstr "autoriser les instructions fusionnés 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 chaîne"
+
+#~ msgid "`%s' attribute argument not an integer constant"
+#~ msgstr "l'attribut « %s » de l'argument n'est pas une contante entière"
+
+#~ 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 systèmes de 32 bits"
+
+#~ msgid "invalid %%Y operand"
+#~ msgstr "opérande %%Y invalide"
+
+#~ msgid "invalid %%A operand"
+#~ msgstr "opérande %%A invalide"
+
+#~ msgid "invalid %%B operand"
+#~ msgstr "Opérande %%B invalide"
+
+#~ msgid "invalid %%c operand"
+#~ msgstr "opérande %%c invalide"
+
+#~ msgid "invalid %%C operand"
+#~ msgstr "opérande %%C invalide"
+
+#~ msgid "invalid %%d operand"
+#~ msgstr "opérande %%d invalide"
+
+#~ msgid "invalid %%D operand"
+#~ msgstr "opérande %%D invalide"
+
+#~ msgid "invalid %%f operand"
+#~ msgstr "opérande %%f invalide"
+
+#~ msgid "invalid %%s operand"
+#~ msgstr "opérande %%s invalide"
+
+#~ msgid "long long constant not a valid immediate operand"
+#~ msgstr "constante long long n'est pas une opérande immédiate valide"
+
+#~ msgid "floating point constant not a valid immediate operand"
+#~ msgstr "constante en virgule flottante n'est pas une opérande immédiate valide"
+
+#~ msgid "Use 128 bit long doubles"
+#~ msgstr "Utiliser des longs doubles de 128 bits"
+
+#~ msgid "Generate code for big endian"
+#~ msgstr "Générer du code pour un système à octets de poids fort"
+
+#~ msgid "Generate code for little endian"
+#~ msgstr "Générer du code pour un système à octets de poids faible"
+
+#~ msgid "Use little-endian byte order for data"
+#~ msgstr "Utiliser l'ordre des octets de poids faible pour les données"
+
+#~ msgid "Assume possible double misalignment"
+#~ msgstr "Présumer un possible mauvais alignement des doubles"
+
+#~ msgid "Assume all doubles are aligned"
+#~ msgstr "Présumer que tous les doubles sont alignés"
+
+#~ 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 modèle de fenêtre de registre plat"
+
+#~ msgid "Do not use flat register window model"
+#~ msgstr "Ne pas utiliser le modèle de fenêtre de registre plat"
+
+#~ msgid "Use ABI reserved registers"
+#~ msgstr "Utiliser les registres réservés ABI"
+
+#~ msgid "Do not use ABI reserved registers"
+#~ msgstr "Ne pas utiliser les registres réservés ABI"
+
+#~ msgid "Use hardware quad fp instructions"
+#~ msgstr "Utiliser les instructions matérielles quad FP"
+
+#~ msgid "Do not use hardware quad fp instructions"
+#~ msgstr "Ne pas utiliser les instructions matérielles 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 modèle donné de code pour le SPARC"
+
+#~ msgid "Constant halfword load operand out of range."
+#~ msgstr "chargement de l'opérande de la constante demi-mot est hors limite"
+
+#~ msgid "Constant arithmetic operand out of range."
+#~ msgstr "opérande arithmétique de la constante est hors limite"
+
+#~ msgid "Local variable memory requirements exceed capacity."
+#~ msgstr "La mémoire requise pour les variables locales excède 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 "opérande « B » n'est pas une constante"
+
+#~ msgid "`B' operand has multiple bits set"
+#~ msgstr "l'opérande « B » a de multiples jeux de bits"
+
+#~ msgid "`o' operand is not constant"
+#~ msgstr "opérande « 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 "déclaration de switch de taille %lu entrée est trop grande"
+
+#~ msgid "#pragma GHS endXXXX found without previous startXXX"
+#~ msgstr "#pragma GHS endXXXX repéré sans être précédé de startXXX"
+
+#~ msgid "#pragma GHS endXXX does not match previous startXXX"
+#~ msgstr "#pragma GHS endXXX ne concorde pas avec le précédent 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 composée #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 numérique"
+
+#~ 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 reçu 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 donnéées ne peut être spécifié pour des variables locales"
+
+#~ msgid "%Jdata area of '%D' conflicts with previous declaration"
+#~ msgstr "%Jzone de données de « %D » entre en conflit avec un déclaration précédente"
+
+#~ msgid "bogus JR construction: %d\n"
+#~ msgstr "construction JR boggé: %d\n"
+
+#~ msgid "bad amount of stack space removal: %d"
+#~ msgstr "taille erronée pour l'enlèvement d'espace de la pile: %d"
+
+#~ msgid "bogus JARL construction: %d\n"
+#~ msgstr "construction JARL boggée: %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 boggée: %d\n"
+
+#~ msgid "Too much stack space to prepare: %d"
+#~ msgstr "Trop d'espace pour l'empilage pour la préparation: %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 entrées 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 données éligibles pour la zone TDA"
+
+#~ msgid "Set the max size of data eligible for the SDA area"
+#~ msgstr "Initialiser la taille maximale des données éligibles pour la zone SDA"
+
+#~ msgid "Set the max size of data eligible for the ZDA area"
+#~ msgstr "Initialiser la taille maximale des données éligibles pour la zone ZDA"
+
+#~ msgid "boolean registers required for the floating-point option"
+#~ msgstr "registres booléens 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 "décalage d'adresse n'est pas une constante"
+
+#~ msgid "only uninitialized variables can be placed in a .bss section"
+#~ msgstr "seules les variables non initialisées peuvent être placées 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 fusionnés FP de multiplication/addition et de multiplication/soustraction"
+
+#~ msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+#~ msgstr "Permettre les instructions fusionnés FP de multiplication/addition et de multiplication/soustraction"
+
+#~ msgid "Intersperse literal pools with code in the text section"
+#~ msgstr "Entrecouper les lots de litéraux avec le code dans la section texte"
+
+#~ msgid "Put literal pools in a separate literal section"
+#~ msgstr "Placer les lots de litéraux dans des sections séparées de litéraux"
+
+#~ msgid "Automatically align branch targets to reduce branch penalties"
+#~ msgstr "Aligner automatiquement les branchements cibles pour réduire les pénalités de branchement"
+
+#~ msgid "Do not automatically align branch targets"
+#~ msgstr "Ne pas aligner automatiquement les branchements cibles pour réduire les pénalités 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 <près 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 "opérande vers ?: a différents types"
+
+#~ msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+#~ msgstr "non concordance de type énuméré dans l'expression conditionnelle: « %T » vs « %T »"
+
+#~ msgid "enumeral and non-enumeral type in conditional expression"
+#~ msgstr "type énuméré et non énuméré dans l'expression conditionnelle"
+
+#~ msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+#~ msgstr "pas « %D(int) » déclaré pour le postfixe « %s », essaie avec l'oprateur préfixe à la place"
+
+#~ msgid "using synthesized `%#D' for copy assignment"
+#~ msgstr "utilisation du synthétisé « %#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 protégé"
+
+#~ msgid "`%+#D' is inaccessible"
+#~ msgstr "« %+#D » et inaccessible"
+
+#~ msgid "within this context"
+#~ msgstr "à l'intérieur 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 défaut pour le paramètre %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 repérer 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 "requête du membre « %D » dans « %E », lequel n'est pas de type aggrégat « %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 séquence 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 ambiguës même à 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 référence à 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 référence 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 dérivé « %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 "spécifications d'accès conflictuelles pour la méthode « %D », ignoré"
+
+#~ msgid "conflicting access specifications for field `%s', ignored"
+#~ msgstr "spécifications d'accès 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 méthode locale « %#D » a le même nom"
+
+#~ msgid " because of local member `%#D' with same name"
+#~ msgstr " parce que le membre local « %#D » a le même 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 défaut 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 privés"
+
+#~ msgid "`%#T' only defines a private destructor and has no friends"
+#~ msgstr "« %#T » définit seulement les constructeurs privés et n'a pas d'amis"
+
+#~ msgid "`%#T' only defines private constructors and has no friends"
+#~ msgstr "« %#T » définit seulement les constructeurs privés 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 données 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 protégé « %#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 entière"
+
+#~ msgid "bit-field `%D' width not an integer constant"
+#~ msgstr "largeur du champ de bits « %D » n'est pas une constante entière"
+
+#~ msgid "negative width in bit-field `%D'"
+#~ msgstr "largeur négative du champ de bits « %D »"
+
+#~ msgid "zero width for bit-field `%D'"
+#~ msgstr "largeur zéro pour le champ de bits « %D »"
+
+#~ msgid "width of `%D' exceeds its type"
+#~ msgstr "largeur de « %D » excède 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 opérateur 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 » initialisés"
+
+#~ 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 référencé « %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 méthode"
+
+#~ msgid "non-static reference `%#D' in class without a constructor"
+#~ msgstr "référence 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 même nom qu'une classe"
+
+#~ msgid "`%#T' has pointer data members"
+#~ msgstr "« %#T » a un pointeur vers un membre de données"
+
+#~ 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 "décalage 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 considérée pratiquement vide dans une version future de GCC"
+
+#~ msgid "initializer specified for non-virtual method `%D'"
+#~ msgstr "initialisation spécifiée pour une méthode non virtuelle « %D »"
+
+#~ msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+#~ msgstr "décalage 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 assignée à « %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 décalage 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 décalage 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 différente 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 dérivés de la classe vide « %T » peut être modifiée dans une version future de GCC"
+
+#~ msgid "redefinition of `%#T'"
+#~ msgstr "redéfinition 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 complétion du struct, mais a été stoppé en raison d'erreurs précédentes d'analyses syntaxiques"
+
+#~ msgid "language string `\"%s\"' not recognized"
+#~ msgstr "chaîne du langage « \"%s\" » n'est pas reconnue"
+
+#~ msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+#~ msgstr "ne peut résoudre 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 surchargée « %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 "opération invalide sur un type non instancié"
+
+#~ msgid "declaration of `%#D'"
+#~ msgstr "déclaration 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é-référence 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 » demandée"
+
+#~ 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 résoudre l'adresse la fonction surchargée"
+
+#~ msgid "%s is a reference, not call, to function `%E'"
+#~ msgstr "%s est un référence, 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 défaut 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 » utilisée mais non définie"
+
+#~ msgid "label `%D' defined but not used"
+#~ msgstr "étiquette « %D » définie mais non utilisée"
+
+#~ msgid "previous declaration of `%D'"
+#~ msgstr "déclaration précédente de « %D »"
+
+#~ msgid "%Jfunction '%D' redeclared as inline"
+#~ msgstr "%Jfonction « %D » redéclarée comme étant enligne"
+
+#~ msgid "%Jprevious declaration of '%D' with attribute noinline"
+#~ msgstr "%Jdéclaration précédente de « %D » avec l'attribut non enligne"
+
+#~ msgid "%Jfunction '%D' redeclared with attribute noinline"
+#~ msgstr "%Jfonction « %D » redéclarée avec l'attribut non enligne"
+
+#~ msgid "%Jprevious declaration of '%D' was inline"
+#~ msgstr "%Jdéclaration précédente 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 bibliothèque redéclarée comme n'étant pas une fonction « %#D »"
+
+#~ msgid "conflicts with built-in declaration `%#D'"
+#~ msgstr "conflits avec la déclaration interne de « %#D »"
+
+#~ msgid "new declaration `%#D'"
+#~ msgstr "nouvelle déclaration de « %#D »"
+
+#~ msgid "ambiguates built-in declaration `%#D'"
+#~ msgstr "ambiguités de la déclaration interne de « %#D »"
+
+#~ msgid "`%#D' redeclared as different kind of symbol"
+#~ msgstr "« %#D » redéclaré comme une sorte différente de symbole"
+
+#~ msgid "previous declaration of `%#D'"
+#~ msgstr "déclaration précédente de « %#D »"
+
+#~ msgid "declaration of template `%#D'"
+#~ msgstr "déclaration du canevas « %#D »"
+
+#~ msgid "conflicts with previous declaration `%#D'"
+#~ msgstr "conflits avec la déclaration précédente de « %#D »"
+
+#~ msgid "ambiguates old declaration `%#D'"
+#~ msgstr "ambiguités d'une vieille déclaration de « %#D »"
+
+#~ msgid "declaration of C function `%#D' conflicts with"
+#~ msgstr "déclaration de la fonction C « %#D » en conflit avec"
+
+#~ msgid "previous declaration `%#D' here"
+#~ msgstr "déclaration précédente de « %#D » ici"
+
+#~ msgid "conflicting declaration '%#D'"
+#~ msgstr "déclaration conflictuelle « %#D »"
+
+#~ msgid "'%D' has a previous declaration as `%#D'"
+#~ msgstr "« %D » a une déclaration précédente tel que « %#D »"
+
+#~ msgid "`%#D' previously defined here"
+#~ msgstr "« %#D » précédemment défini ici"
+
+#~ msgid "`%#D' previously declared here"
+#~ msgstr "« %#D » précédemment déclaré ici"
+
+#~ msgid "prototype for `%#D'"
+#~ msgstr "prototype de « %#D »"
+
+#~ msgid "%Jfollows non-prototype definition here"
+#~ msgstr "%Jsuit la définition d'un non prototype ici"
+
+#~ msgid "previous declaration of `%#D' with %L linkage"
+#~ msgstr "déclaration précédente de « %#D » avec le lien %L"
+
+#~ msgid "conflicts with new declaration with %L linkage"
+#~ msgstr "conflits avec la nouvelle déclaration avec le lien %L"
+
+#~ msgid "default argument given for parameter %d of `%#D'"
+#~ msgstr "argument par défaut donné pour le paramètre %d de « %#D »"
+
+#~ msgid "after previous specification in `%#D'"
+#~ msgstr "après la déclaration précédente dans « %#D »"
+
+#~ msgid "`%#D' was used before it was declared inline"
+#~ msgstr "« %#D » a été utilisé avant qu'il ne soit déclaré enligne"
+
+#~ msgid "%Jprevious non-inline declaration here"
+#~ msgstr "%Jdéclaration précédente non enligne ici"
+
+#~ msgid "redundant redeclaration of `%D' in same scope"
+#~ msgstr "déclaration redondante de « %D » dans la même étendue"
+
+#~ msgid "declaration of `%F' throws different exceptions"
+#~ msgstr "déclaration de « %F » amène différentes exceptions"
+
+#~ msgid "than previous declaration `%F'"
+#~ msgstr "qu'une précédente déclaratio « %F »"
+
+#~ msgid "explicit specialization of %D after first use"
+#~ msgstr "spécialisation explicite de %D après la première 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 déclaration précédente ici"
+
+#~ msgid "implicit declaration of function `%#D'"
+#~ msgstr "déclaration implicite de la fonction « %#D »"
+
+#~ msgid "label `%s' referenced outside of any function"
+#~ msgstr "étiquette « %s » référencée à l'extérieur 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 croisée 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 nommée wchar_t"
+
+#~ msgid "duplicate label `%D'"
+#~ msgstr "étiquette « %D » apparaît en double"
+
+#~ msgid "`%D' used without template parameters"
+#~ msgstr "« %D » utilisé sans canevas de paramétres"
+
+#~ 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 aggrégat anonyme"
+
+#~ msgid "member %#D' with destructor not allowed in anonymous aggregate"
+#~ msgstr "membre « %#D » avec destructeur n'est pas permis dans un aggrégat anonyme"
+
+#~ msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+#~ msgstr "membre « %#D » avec opérateur d'affectation par copie n'est pas permis dans un aggrégat anonyme"
+
+#~ msgid "redeclaration of C++ built-in type `%T'"
+#~ msgstr "redéclaration du type interne C++ « %T »"
+
+#~ msgid "multiple types in one declaration"
+#~ msgstr "types multiples dans une déclaration"
+
+#~ msgid "missing type-name in typedef-declaration"
+#~ msgstr "nom de type manquant dans la déclaration 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 spécifier pour les fonctions"
+
+#~ msgid "`%D' can only be specified inside a class"
+#~ msgstr "« %D » peut seulement être spécifié à l'intérieur d'une classe"
+
+#~ msgid "`%D' can only be specified for constructors"
+#~ msgstr "« %D » ne peut seulement être spécifié pour les constructeurs"
+
+#~ msgid "`%D' can only be specified for objects and functions"
+#~ msgstr "« %D » ne peut seulement être spécifié 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 initialisée comme une variable"
+
+#~ msgid "declaration of `%#D' has `extern' and is initialized"
+#~ msgstr "déclaration 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 défini 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 "déclaraion de « %#D » en dehors de la classe n'est pas une définition"
+
+#~ msgid "variable `%#D' has initializer but incomplete type"
+#~ msgstr "la variable « %#D » est initialisée, mais a un type incomplet"
+
+#~ msgid "elements of array `%#D' have incomplete type"
+#~ msgstr "éléments du tableau « %#D » ont un type incomplet"
+
+#~ msgid "aggregate `%#D' has incomplete type and cannot be defined"
+#~ msgstr "aggrégat « %#D » a un type incomplet et ne peut être défini"
+
+#~ msgid "`%D' declared as reference but not initialized"
+#~ msgstr "« %D » déclaré comme référence 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 référence « %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 déterminer 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 zéro"
+
+#~ 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 "désolé: sémantique de fonction enligne de données statiques « %#D » est erronée (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 initialisée"
+
+#~ 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 désigner les initialiseurs"
+
+#~ msgid "`%T' has no non-static data member named `%D'"
+#~ msgstr "« %T » n'a pas de membre de données 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 désigné 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 initialisées de membres"
+
+#~ msgid "structure `%D' with uninitialized reference members"
+#~ msgstr "structure « %D » avec références non initialisées de membres"
+
+#~ msgid "assignment (not initialization) in declaration"
+#~ msgstr "affectation (non pas l'initialisation) dans la déclaration"
+
+#~ 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 déclaration précédente 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 "paramètre d'interception invalide"
+
+#~ msgid "destructor for alien class `%T' cannot be a member"
+#~ msgstr "destructeur pour la classe étrangère « %T » ne peut être un membre"
+
+#~ msgid "constructor for alien class `%T' cannot be a member"
+#~ msgstr "constructeur pour la classe étrangère « %T » ne peut être un membre"
+
+#~ msgid "`%D' declared as a `virtual' %s"
+#~ msgstr "« %D» déclaré comme « virtual » %s"
+
+#~ msgid "`%D' declared as an `inline' %s"
+#~ msgstr "« %D» déclaré comme « inline » %s"
+
+#~ msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+#~ msgstr "spécificateurs de fonction « const» et «volatile» invalide pour « %D » dans la déclaration %s"
+
+#~ msgid "`%D' declared as a friend"
+#~ msgstr "« %D » déclaré comme un ami"
+
+#~ msgid "`%D' declared with an exception specification"
+#~ msgstr "« %D » déclaré avec une exception de spécification"
+
+#~ msgid "cannot declare `::main' to be a template"
+#~ msgstr "ne peut déclarer « ::main » comme étant un canevas"
+
+#~ msgid "cannot declare `::main' to be inline"
+#~ msgstr "ne peut déclarer «::main» à être enligne"
+
+#~ msgid "cannot declare `::main' to be static"
+#~ msgstr "ne peut déclarer « ::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 réfère 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 méthode"
+
+#~ msgid "defining explicit specialization `%D' in friend declaration"
+#~ msgstr "définition explicite de spécialisation « %D » dans lka déclaration ami"
+
+#~ msgid "invalid use of template-id `%D' in declaration of primary template"
+#~ msgstr "utilisation invalide du template-id « %D » dans la déclaration du canevas primaire"
+
+#~ msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "arguments par défaut ne sont pas permis dans la déclaration amie de la spécialisation du canevas « %D »"
+
+#~ msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "« inline» n'estpas permis dans la déclaration amie de la spécialisation du canevas « %D »"
+
+#~ msgid "definition of implicitly-declared `%D'"
+#~ msgstr "définition implicitement déclarée « %D »"
+
+#~ msgid "no `%#D' member function declared in class `%T'"
+#~ msgstr "pas de fonction membre « %#D » déclarée 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 données 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 négative"
+
+#~ msgid "size of array is negative"
+#~ msgstr "taille du tableau est négative"
+
+#~ msgid "ISO C++ forbids zero-size array `%D'"
+#~ msgstr "ISO C++ interdit les tableaux de taille zéro « %D »"
+
+#~ msgid "ISO C++ forbids zero-size array"
+#~ msgstr "ISO C++ interdit les tableaux de taille zéro"
+
+#~ 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 "débordement dans les dimensions du tableau"
+
+#~ msgid "declaration of `%D' as %s"
+#~ msgstr "déclaration de « %D » comme « %s »"
+
+#~ msgid "creating %s"
+#~ msgstr "création de %s"
+
+#~ msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+#~ msgstr "déclaration de « %D » comme tableau multidimensionel doit avoir des bornes pour chaque dimension excepté pour la première"
+
+#~ 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 première"
+
+#~ msgid "return type specification for constructor invalid"
+#~ msgstr "spécification de type retourné pour un constructeur est invalide"
+
+#~ msgid "return type specification for destructor invalid"
+#~ msgstr "spécification de type retourné pour un destructeur est invalide"
+
+#~ msgid "operator `%T' declared to return `%T'"
+#~ msgstr "opérateur « %T » déclaré comme retournant « %T »"
+
+#~ msgid "return type specified for `operator %T'"
+#~ msgstr "type spécifié retourné pour l'opérateur « %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 réservé « %D »"
+
+#~ msgid "type `%T' is not derived from type `%T'"
+#~ msgstr "type « %T » n'est pas dérivé du type « %T »"
+
+#~ msgid "`%T' specified as declarator-id"
+#~ msgstr "« %T » spécifié 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 déclarateur"
+
+#~ msgid "declaration of `%D' as non-function"
+#~ msgstr "déclaration 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 déclarations « %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 déclaration 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 spécifiés ensembles pour « %s »"
+
+#~ msgid "signed and unsigned given together for `%s'"
+#~ msgstr "signed et unsigned donnés ensembles pour « %s »"
+
+#~ msgid "qualifiers are not allowed on declaration of `operator %T'"
+#~ msgstr "qualificateurs ne sont pas permis dans la déclaration de « operator %T »"
+
+#~ msgid "member `%D' cannot be declared both virtual and static"
+#~ msgstr "membre « %D » ne peut être déclaré virtuel et statique"
+
+#~ msgid "`%T::%D' is not a valid declarator"
+#~ msgstr "« %T::%D » n'est pas un déclarateur valide"
+
+#~ msgid "storage class specifiers invalid in parameter declarations"
+#~ msgstr "spécificateurs de classe de stockage invalides dans la déclaration des paramètres"
+
+#~ msgid "typedef declaration invalid in parameter declaration"
+#~ msgstr "déclaration typedef invalide dans le paramètre de la déclaration"
+
+#~ msgid "virtual outside class declaration"
+#~ msgstr "virtuel en dehors de la déclaration de classe"
+
+#~ msgid "storage class specified for %s `%s'"
+#~ msgstr "classe de stockage spécifiée pour %s « %s »"
+
+#~ msgid "top-level declaration of `%s' specifies `auto'"
+#~ msgstr "la déclaration hors de toute fonction de « %s » a spécifié « auto »"
+
+#~ msgid "storage class specifiers invalid in friend function declarations"
+#~ msgstr "spécificateurs de classe de stockage invalide dans les déclarations 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 déclarés 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 retournée d'un spécificateur 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 "déclaration amie n'est pas dans la définition de classe"
+
+#~ msgid "can't define friend function `%s' in a local class definition"
+#~ msgstr "ne peut définir une fonction amie « %s » dans une définition locale de classe"
+
+#~ msgid "destructors may not have parameters"
+#~ msgstr "destructeurs ne peuvent pas avoir de paramètre"
+
+#~ msgid "cannot declare reference to `%#T'"
+#~ msgstr "ne peut déclarer une référence vers « %#T »"
+
+#~ msgid "cannot declare pointer to `%#T'"
+#~ msgstr "ne peut déclarer un pointeur vers « %#T »"
+
+#~ msgid "cannot declare pointer to `%#T' member"
+#~ msgstr "ne peut déclarer un pointeur vers le membre « %#T »"
+
+#~ msgid "extra qualification `%T::' on member `%s' ignored"
+#~ msgstr "qualification additionnelle « %T:: » sur le membre « %s » est ignorée"
+
+#~ msgid "cannot declare member function `%T::%s' within `%T'"
+#~ msgstr "ne peut déclarer la fonction membre « %T::%s » à l'intérieur de « %T »"
+
+#~ msgid "cannot declare member `%T::%s' within `%T'"
+#~ msgstr "ne peut déclarer le membre « %T::%s » à l'intérieur de « %T »"
+
+#~ msgid "data member may not have variably modified type `%T'"
+#~ msgstr "membre de données peut ne pas avoir de type « %T » modifié de manière variable"
+
+#~ msgid "parameter may not have variably modified type `%T'"
+#~ msgstr "paramètre peut ne pas avoir de type « %T » modifié de manière variable"
+
+#~ msgid "only declarations of constructors can be `explicit'"
+#~ msgstr "seuls les déclarations de constructeurs peuvent être « explicit »"
+
+#~ msgid "non-member `%s' cannot be declared `mutable'"
+#~ msgstr "le non membre « %s » ne peut être déclaré « mutable »"
+
+#~ msgid "non-object member `%s' cannot be declared `mutable'"
+#~ msgstr "un membre non objet « %s » ne peut être déclaré « mutable »"
+
+#~ msgid "function `%s' cannot be declared `mutable'"
+#~ msgstr "fonction « %s » ne peut être déclarée « mutable »"
+
+#~ msgid "static `%s' cannot be declared `mutable'"
+#~ msgstr "static « %s » ne peut être déclaré « mutable »"
+
+#~ msgid "const `%s' cannot be declared `mutable'"
+#~ msgstr "const « %s » ne peut être déclaré « mutable »"
+
+#~ msgid "template-id `%D' used as a declarator"
+#~ msgstr "identificateur de canevas « %D » utilisé comme déclarateur"
+
+#~ msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ interdit le type imbriqué « %D » avec le même 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 spécificateur 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 spécifiés pour la déclaration d'une classe amie"
+
+#~ msgid "`inline' specified for friend class declaration"
+#~ msgstr "« inline » spécifié pour la déclaration d'une classe amie"
+
+#~ msgid "template parameters cannot be friends"
+#~ msgstr "paramètres du canevas ne peuvent pas être amis"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+#~ msgstr "déclaration ami requiert une clé de classe, i.e. « friend class %T::%D »"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend %#T'"
+#~ msgstr "déclaration 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 portée 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 "déclaration abstrait « %T » utilisé dans la déclaration"
+
+#~ msgid "unnamed variable or field declared void"
+#~ msgstr "variable non nommée ou champ déclaré void"
+
+#~ msgid "variable or field declared void"
+#~ msgstr "variable ou champ déclaré void"
+
+#~ msgid "cannot use `::' in parameter declaration"
+#~ msgstr "ne peut utiliser «::» dans le paramètre d'un déclaration"
+
+#~ msgid "invalid use of `::'"
+#~ msgstr "utilisation invalide de « :: »"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "fonction « %D » ne peut être déclarée amie"
+
+#~ msgid "can't make `%D' into a method -- not in a class"
+#~ msgstr "ne peut rendre « %D » dans la méthode -- n'est pas dans la classe"
+
+#~ msgid "function `%D' declared virtual inside a union"
+#~ msgstr "fonction « %D » déclaré comme virtuelle à l'intérieur d'un agrégat"
+
+#~ msgid "`%D' cannot be declared virtual, since it is always static"
+#~ msgstr "« %D » ne peut être déclaré 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 déclaré 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 » déclarée en dehors de la portée globale"
+
+#~ msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+#~ msgstr "classe de stockage « inline» invalide pour une fonction « %s » déclarée en dehors de la portée 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 déclarer la fonction membre « %D » comme ayant un lien statique"
+
+#~ msgid "cannot declare static function inside another function"
+#~ msgstr "ne peut déclarer une fonction statique à l'intérieur 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 définition (contrairement à la déclaration) de données de membres statiques"
+
+#~ msgid "static member `%D' declared `register'"
+#~ msgstr "mambre statique « %D» déclaré «register »"
+
+#~ msgid "cannot explicitly declare member `%#D' to have extern linkage"
+#~ msgstr "ne peut explicitement déclarer le membre « %#D » comme ayant une liaison externe"
+
+#~ msgid "default argument for `%#D' has type `%T'"
+#~ msgstr "argument par défaut pour « %#D » à un type « %T »"
+
+#~ msgid "default argument for parameter of type `%T' has type `%T'"
+#~ msgstr "argument par défaut pour le paramètre de type « %T » a le type « %T »"
+
+#~ msgid "default argument `%E' uses local variable `%D'"
+#~ msgstr "argument par défaut « %E » utiliser une variable locale « %D »"
+
+#~ msgid "invalid string constant `%E'"
+#~ msgstr "constante chaîne invalide « %E »"
+
+#~ msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+#~ msgstr "constante entière invalide dans la liste de paramètre, avez-vous oublier de donner un nom de paramètre?"
+
+#~ msgid "parameter `%D' invalidly declared method type"
+#~ msgstr "paramètre « %D » incorrectement validé comme type de méthode"
+
+#~ msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+#~ msgstr "paramètre « %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 énuméré"
+
+#~ 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'opérateur de conversion"
+
+#~ msgid "ISO C++ prohibits overloading operator ?:"
+#~ msgstr "ISO C++ interdit la surcharge de l'opérateur ?:"
+
+#~ 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 zéro 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 "préfixe « %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 » défini 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 défaut"
+
+#~ msgid "using typedef-name `%D' after `%s'"
+#~ msgstr "utilisation d'un nom de typedef « %D » après « %s »"
+
+#~ msgid "using template type parameter `%T' after `%s'"
+#~ msgstr "utilisation de type de canevas de paramètre « %T » après « %s »"
+
+#~ msgid "`%T' referred to as `%s'"
+#~ msgstr "« %TD » référé comme « %s »"
+
+#~ msgid "`%T' referred to as enum"
+#~ msgstr "« %T » référé 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 déclaration précédente"
+
+#~ msgid "derived union `%T' invalid"
+#~ msgstr "union dérivée « %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 récursif « %T » non défini"
+
+#~ 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 "définition multiple de « %#T »"
+
+#~ msgid "%Jprevious definition here"
+#~ msgstr "%Jdéfinition précédente ici"
+
+#~ msgid "no integral type can represent all of the enumerator values for `%T'"
+#~ msgstr "aucun type entier peut représenter toutes les valeurs de l'énumérateur pour « %T »"
+
+#~ msgid "enumerator value for `%D' not integer constant"
+#~ msgstr "valeur de l'énumérateur pour « %D » n'est pas une constante entière"
+
+#~ msgid "overflow in enumeration values at `%D'"
+#~ msgstr "débordement dans les valeurs de l'énumération à « %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 déclaré avant sa définition"
+
+#~ msgid "`operator=' should return a reference to `*this'"
+#~ msgstr "« operator= » devrait retourner une référence à «*ceci »"
+
+#~ msgid "parameter `%D' declared void"
+#~ msgstr "paramètre « %D » déclaré «void »"
+
+#~ msgid "invalid member function declaration"
+#~ msgstr "déclaration de membre de fonction invalide"
+
+#~ msgid "`%D' is already defined in class `%T'"
+#~ msgstr "« %D » est déjà défini dans la classe « %T »"
+
+#~ msgid "static member function `%#D' declared with type qualifiers"
+#~ msgstr "membre de fonction statique « %#D » déclaré avec des qualificateurs de tyep"
+
+#~ msgid "duplicate type qualifiers in %s declaration"
+#~ msgstr "qualificateurs de types dupliqués dans déclaration %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 détruire une fonction. Seuls les pointeurs-d'objets sont des arguments valable pour destruction"
+
+#~ msgid "deleting `%T' is undefined"
+#~ msgstr "destruction de « %T » est indéfinie"
+
+#~ msgid "invalid declaration of member template `%#D' in local class"
+#~ msgstr "déclaration 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 déclaration d'un canevas de « %#D »"
+
+#~ msgid "template declaration of `%#D'"
+#~ msgstr "déclaration du canevas de « %#D »"
+
+#~ msgid "Java method '%D' has non-Java return type `%T'"
+#~ msgstr "méthode Java « %D » a un type non Java retourné « %T »"
+
+#~ msgid "Java method '%D' has non-Java parameter type `%T'"
+#~ msgstr "méthode Java « %D » a un paramètre 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 données 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 déjà défini 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 "spécificateurs « asm » ne sont pas permis pour des données de membres non statiques"
+
+#~ msgid "cannot declare `%D' to be a bit-field type"
+#~ msgstr "ne peut déclarer « %D » comme étant un type de champ de bits"
+
+#~ msgid "cannot declare bit-field `%D' with function type"
+#~ msgstr "ne peut déclarer un champ de bits « %D » avec un type de fonction"
+
+#~ msgid "`%D' is already defined in the class %T"
+#~ msgstr "« %D » est déjà défini 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 spécifiée pour une fonction « %D » n'étant pas membre"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "initialisation invalide pour la méthode virtuelle « %D »"
+
+#~ msgid "anonymous struct not inside named type"
+#~ msgstr "struct anonyme n'est pas l'intérieur du type nommé"
+
+#~ msgid "namespace-scope anonymous aggregates must be static"
+#~ msgstr "aggrégats anonymes de champs d'espace nom doit être statique"
+
+#~ msgid "anonymous union with no members"
+#~ msgstr "aggrégat 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 paramètre"
+
+#~ 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 paramètre"
+
+#~ msgid "inline function `%D' used but never defined"
+#~ msgstr "fonction enligne « %D » utilisé mais n'a jamais été défini"
+
+#~ msgid "default argument missing for parameter %P of `%+#D'"
+#~ msgstr "argument par défaut manquant pour le paramètre %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 » undéfini"
+
+#~ msgid "type `%T' is not derived from `java::lang::Throwable'"
+#~ msgstr "type « %T» n'est pas dérivé de «java::lang::Throwable »"
+
+#~ msgid "mixing C++ and Java catches in a single translation unit"
+#~ msgstr "mélange 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 projetée"
+
+#~ 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 interceptée"
+
+#~ msgid " by earlier handler for `%T'"
+#~ msgstr " par un handler antérieur 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 déjà un ami de la classe « %T »"
+
+#~ msgid "invalid type `%T' declared `friend'"
+#~ msgstr "type invalide « %T» déclaré «friend »"
+
+#~ msgid "partial specialization `%T' declared `friend'"
+#~ msgstr "spécialisation partielle « %T» déclarée «friend »"
+
+#~ msgid "class `%T' is implicitly friends with itself"
+#~ msgstr "classe « %T » est implicitement ami avec elle-même"
+
+#~ msgid "typename type `%#T' declared `friend'"
+#~ msgstr "type typename « %#T» déclaré «friend »"
+
+#~ msgid "template parameter type `%T' declared `friend'"
+#~ msgstr "type paramètre du canevas « %T» déclaré «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 déjà un ami de « %T »"
+
+#~ msgid "`%T' is already a friend of `%T'"
+#~ msgstr "« %T » est déjà un ami de « %T »"
+
+#~ msgid "member `%D' declared as friend before type `%T' defined"
+#~ msgstr "membre « %D » déclaré comme ami avant la définition du type « %T »"
+
+#~ msgid "friend declaration `%#D' declares a non-template function"
+#~ msgstr "déclaration amie « %#D » déclare 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 sûr que le canevas de la fonction a déjà été déclaré et ajouter <> après le nom de la fonction ici) -Wno-non-template-friend désactive le présent 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 défaut de « %#D », lequel a un type référencé"
+
+#~ msgid "uninitialized reference member `%D'"
+#~ msgstr "référence 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é après"
+
+#~ msgid "base `%T' will be initialized after"
+#~ msgstr "base « %T » sera initialisé après"
+
+#~ 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 données pour « %D »"
+
+#~ msgid "multiple initializations given for base `%T'"
+#~ msgstr "multiples initialisations données 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 données; il peut seulement être initialisée lors de sa définition"
+
+#~ msgid "`%#D' is not a non-static data member of `%T'"
+#~ msgstr "« %#D » n'est pas un membre statique de données 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 héritages"
+
+#~ 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 aggrégat"
+
+#~ msgid "`%T' fails to be an aggregate typedef"
+#~ msgstr "« %T » a échoué à être un typedef d'aggrégat"
+
+#~ msgid "type `%T' is of non-aggregate type"
+#~ msgstr "type « %T » est un type qui n'est pas d'aggrégat"
+
+#~ 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 données « %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 zéro ne réserve pas d'espace"
+
+#~ msgid "new cannot be applied to a reference type"
+#~ msgstr "new ne peut être appliqué à un type référencé"
+
+#~ 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 indéfini"
+
+#~ msgid "can't find class$"
+#~ msgstr "ne peut repérer class$"
+
+#~ msgid "invalid type `void' for new"
+#~ msgstr "type « void » invalide pour new"
+
+#~ msgid "uninitialized const in `new' of `%#T'"
+#~ msgstr "constante non initialisée dans « new» pour « %#T »"
+
+#~ msgid "call to Java constructor with `%s' undefined"
+#~ msgstr "appel au constructeur Java avec « %s » indéfini"
+
+#~ msgid "request for member `%D' is ambiguous"
+#~ msgstr "la requête 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 prématurée 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 "problème possible détecté dans l'invocation de l'opérateur delete:"
+
+#~ msgid "neither the destructor nor the class-specific "
+#~ msgstr "ni le destructeur ni la classe spécifique"
+
+#~ msgid "operator delete will be called, even if they are "
+#~ msgstr "l'opérateur de destruction sera appellé, même s'ils sont "
+
+#~ msgid "declared when the class is defined."
+#~ msgstr "déclarés lorsque la classe est définie."
+
+#~ 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 apparaît après 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 défini"
+
+#~ msgid "`%D' was not declared in this scope"
+#~ msgstr "« %D » n'a pas été déclaré dans cet horizon"
+
+#~ msgid "`%D' undeclared (first use this function)"
+#~ msgstr "« %D » non déclaré (première utilisation dans cette fonction)"
+
+#~ msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+#~ msgstr "(Chaque identificateur non déclaré est rapporté seulement une seule fois pour la fonction dans laquelle il apparaît.)"
+
+#~ 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 dépend d'un paramètre du canevas, aussi une déclaration 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 déclaré est obsolète)"
+
+#~ 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 "opérande du milieu « ?: » omise, l'opérande ne peut être mutilée"
+
+#~ 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» générique a échoué pour la méthode « %#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'opérateur d'affectation par défaut"
+
+#~ msgid "non-static reference member `%#D', can't use default assignment operator"
+#~ msgstr "référence non statique du membre « %#D », ne peut utiliser l'opérateur d'affectation par défaut"
+
+#~ msgid "`%#D' used prior to declaration"
+#~ msgstr "« %#D » utilisé précédemment avant sa déclaration"
+
+#~ msgid "redeclaration of `wchar_t' as `%T'"
+#~ msgstr "redéclaration de « wchar_t» comme « %T »"
+
+#~ msgid "invalid redeclaration of `%D'"
+#~ msgstr "redéclaration 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 déclaration externe précédente de « %D »"
+
+#~ msgid "previous external decl of `%#D'"
+#~ msgstr "déclaration externe précédente de « %#D »"
+
+#~ msgid "`%D' was previously implicitly declared to return `int'"
+#~ msgstr "« %D » a été précédemment implicitement déclaré comme retournant un entier"
+
+#~ msgid "extern declaration of `%#D' doesn't match"
+#~ msgstr "déclaration externe de « %#D » ne concorde pas"
+
+#~ msgid "global declaration `%#D'"
+#~ msgstr "déclaration globale « %#D »"
+
+#~ msgid "declaration of '%#D' shadows a parameter"
+#~ msgstr "déclaration de « %#D » masque un paramètre"
+
+#~ msgid "declaration of '%D' shadows a member of 'this'"
+#~ msgstr "déclaration de « %D » masque un membre de « this »"
+
+#~ msgid "declaration of '%D' shadows a previous local"
+#~ msgstr "déclaration de « %D » masque la déclaration d'un local précédent"
+
+#~ msgid "declaration of '%D' shadows a global declaration"
+#~ msgstr "déclaration de « %D » masque une déclaration 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 règles standards ISO"
+
+#~ msgid " matches this `%D' under old rules"
+#~ msgstr " concorde avec « %D » selon les vieilles règles"
+
+#~ 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 obsolète à « %D » parce qu'il a un destructeur"
+
+#~ msgid " using obsolete binding at `%D'"
+#~ msgstr " utilisation de liaison obsolète à « %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 déclaration précédente « %#D »"
+
+#~ msgid "previous non-function declaration `%#D'"
+#~ msgstr "déclaration précédente d'un non fonction « %#D »"
+
+#~ msgid "conflicts with function declaration `%#D'"
+#~ msgstr "conflits avec la déclaration de fonction de « %#D »"
+
+#~ msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+#~ msgstr "l'utilisation d'une déclaration ne peut spécifier 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 déclaration"
+
+#~ msgid "`%T' is not a namespace"
+#~ msgstr "« %T » n'est pas un espace de noms"
+
+#~ msgid "`%D' not declared"
+#~ msgstr "« %D » n'est pas déclaré"
+
+#~ msgid "`%D' is already declared in this scope"
+#~ msgstr "« %D » est déjà déclaré dans cette portée"
+
+#~ msgid "using declaration `%D' introduced ambiguous type `%T'"
+#~ msgstr "l'utlisation de la déclaration « %D » introduit un type ambigu « %T »"
+
+#~ msgid "`%#D' redeclared as %C"
+#~ msgstr "« %#D » rédéclaré comme %C"
+
+#~ msgid "`%D' has the same name as the class in which it is declared"
+#~ msgstr "« %D » a le même nom que la classe dans laquelle il est déclaré"
+
+#~ msgid "using-declaration for non-member at class scope"
+#~ msgstr "l'utilisation de déclaration pour un non membre au niveau de la portée de la classe"
+
+#~ msgid "using-declaration cannot name destructor"
+#~ msgstr "utilisation de déclaration ne peut nommer le destructeur"
+
+#~ msgid "declaration of `%D' not in a namespace surrounding `%D'"
+#~ msgstr "déclaration 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é déclaré à l'intérieur 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 déclaré"
+
+#~ 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 déclaré comme « %#D » ici"
+
+#~ msgid " also declared as `%#D' here"
+#~ msgstr " aussi déclaré comme « %#D » ici"
+
+#~ msgid "`%D' denotes an ambiguous type"
+#~ msgstr "« %D » dénote 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 déclaré 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é déclaré"
+
+#~ msgid "`::%D' has not been declared"
+#~ msgstr "« ::%D » n'a pas été déclaré"
+
+#~ msgid "`%D' has not been declared"
+#~ msgstr "« %D » n'a pas été déclaré"
+
+#~ 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 définis 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 apparaître 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'intérieur des expressions"
+
+#~ msgid "statement-expressions are allowed only inside functions"
+#~ msgstr "expression de déclaration sont permises seulement à l'intérieur 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 apparaître dans ce contexte"
+
+#~ msgid "typedef-name `%D' used as destructor declarator"
+#~ msgstr "nom du typdef « %D » utilisé comme déclarateur de destructeur"
+
+#~ msgid "ISO C++ forbids compound-literals"
+#~ msgstr "ISO C++ interdit les chaînes composées"
+
+#~ msgid "array bound forbidden after parenthesized type-id"
+#~ msgstr "les limites du tableau interdisent ce qui suit après le type-id mis entre parenthèses"
+
+#~ msgid "try removing the parentheses around the type-id"
+#~ msgstr "essayer d'enlever les parenthèses autour du type-id"
+
+#~ msgid "expression in new-declarator must have integral or enumeration type"
+#~ msgstr "expression dans le nouveau déclarateur doit être un type entier ou d'énumération"
+
+#~ 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'intérieur de la déclaration du SWITCH"
+
+#~ msgid "ISO C++ forbids computed gotos"
+#~ msgstr "ISO C++ interdit les gotos calculés"
+
+#~ msgid "extra `;'"
+#~ msgstr "« ; » superflu"
+
+#~ msgid "mixing declarations and function-definitions is forbidden"
+#~ msgstr "mélange de déclarations et de définitions de fonction est interdit"
+
+#~ msgid "duplicate `friend'"
+#~ msgstr "« friend » apparaît en double"
+
+#~ msgid "class definition may not be declared a friend"
+#~ msgstr "définition de classe ne peut pas être déclaré 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 début d'une liste d'un canevas d'arguments"
+
+#~ msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'"
+#~ msgstr "« <: » est une épellation alternative pour « [ ». Insérer 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 honorés seulement lors de la définitions de type"
+
+#~ msgid "a template-id may not appear in a using-declaration"
+#~ msgstr "un id de canevas ne peut pas apparaître dans l'utilisation de la déclaration"
+
+#~ msgid "an asm-specification is not allowed on a function-definition"
+#~ msgstr "une spécification asm n'est pas permise dans la définition de fonction"
+
+#~ msgid "attributes are not allowed on a function-definition"
+#~ msgstr "attributs ne sont pas permis dans la définition de fonction"
+
+#~ msgid "attributes after parenthesized initializer ignored"
+#~ msgstr "attributs après l'initialisateur mis entre parenthèses sont ignorés"
+
+#~ msgid "file ends in default argument"
+#~ msgstr "fin de fichier dans l'argument par défaut"
+
+#~ msgid "deprecated use of default argument for parameter of non-function"
+#~ msgstr "utilisation de l'argument par défaut pour un paramètre d'une non fonction"
+
+#~ msgid "default arguments are only permitted for function parameters"
+#~ msgstr "arguments par défaut sont permis seulement pour les paramètres de fonction"
+
+#~ msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+#~ msgstr "déclaration de « %D » dans « %D » lequel n'entoure pas « %D »"
+
+#~ msgid "extra qualification ignored"
+#~ msgstr "qualification superflue ignorée"
+
+#~ msgid "an explicit specialization must be preceded by 'template <>'"
+#~ msgstr "spécialisation explicite doit être précédé 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 déclaration d'un ami"
+
+#~ msgid "friend declaration does not name a class or function"
+#~ msgstr "déclaration amie ne nomme pas une classe ou une fonction"
+
+#~ msgid "pure-specifier on function-definition"
+#~ msgstr "spécificateur pur lors de la définition 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 "référence à « %D » est ambiguë"
+
+#~ msgid "too few template-parameter-lists"
+#~ msgstr "trop peu de canevas de listes de paramètres"
+
+#~ msgid "too many template-parameter-lists"
+#~ msgstr "trop de canevas de listes de paramètres"
+
+#~ msgid "invalid function declaration"
+#~ msgstr "déclaration de fonction invalide"
+
+#~ msgid "named return values are no longer supported"
+#~ msgstr "valeurs nommées à retourner ne sont plus supportées"
+
+#~ msgid "`>>' should be `> >' within a nested template argument list"
+#~ msgstr "« >> » devrait être « > > » à l'intérieur 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 » utilisée dans la dénomination de « %#T »"
+
+#~ msgid "%D redeclared with different access"
+#~ msgstr "« %#D » redéclaré avec un accès différent"
+
+#~ msgid "`template' (as a disambiguator) is only allowed within templates"
+#~ msgstr "« template » (afin de rendre moins ambiguë) est seulement permis à l'intérieur des canevas"
+
+#~ msgid "data member `%D' cannot be a member template"
+#~ msgstr "membre de données « %D » ne peut être membre du canevas"
+
+#~ msgid "invalid member template declaration `%D'"
+#~ msgstr "déclaration de membre de canevas invalide « %D »"
+
+#~ msgid "explicit specialization in non-namespace scope `%D'"
+#~ msgstr "spécialisation explicite dans la portée 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 spécialisées"
+
+#~ msgid "specializing `%#T' in different namespace"
+#~ msgstr "spécialisation de « %#T » dans différents espaces de noms"
+
+#~ msgid " from definition of `%#D'"
+#~ msgstr " à partir de la définition de « %#D »"
+
+#~ msgid "specialization of `%T' after instantiation"
+#~ msgstr "spécialisation de « %T » après instanciation"
+
+#~ msgid "specialization `%T' after instantiation `%T'"
+#~ msgstr "spécialisation de « %T » après instanciation « %T »"
+
+#~ msgid "explicit specialization of non-template `%T'"
+#~ msgstr "spécialisation explicite du non canevas « %T »"
+
+#~ msgid "specialization of %D after instantiation"
+#~ msgstr "spécialisation de %D après 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 déclaration de canevas"
+
+#~ msgid "ambiguous template specialization `%D' for `%+D'"
+#~ msgstr "spécialisation de canevas amibiguë « %D » pour « %+D »"
+
+#~ msgid "template-id `%D' in declaration of primary template"
+#~ msgstr "template-id « %D » dans la déclaration de canevas primaire"
+
+#~ msgid "template parameter list used in explicit instantiation"
+#~ msgstr "canevas de liste de paramètres utilisé dans une instanciation explicite"
+
+#~ msgid "definition provided for explicit instantiation"
+#~ msgstr "définition fournie pour une instanciation explicite"
+
+#~ msgid "too many template parameter lists in declaration of `%D'"
+#~ msgstr "trop de canevass de listes de paramètres dans la déclaration de « %D »"
+
+#~ msgid "too few template parameter lists in declaration of `%D'"
+#~ msgstr "trop peu de canevass de listes de paramètres dans la déclaration de « %D »"
+
+#~ msgid "explicit specialization not preceded by `template <>'"
+#~ msgstr "spécialisation explicite n'est pas précédée de « template <> »"
+
+#~ msgid "partial specialization `%D' of function template"
+#~ msgstr "spécialisation partielle « %D » du canevas de fonction"
+
+#~ msgid "default argument specified in explicit specialization"
+#~ msgstr "argument par défaut spécifié dans la spécialisation explicite"
+
+#~ msgid "template specialization with C linkage"
+#~ msgstr "spécialisation de canevas avec édition de liens C"
+
+#~ msgid "specialization of implicitly-declared special member function"
+#~ msgstr "spécialisation d'un membre spécial d'nue fonction déclaré implicitement"
+
+#~ msgid "no member function `%D' declared in `%T'"
+#~ msgstr "pas de membre de fonction « %D » déclaré dans « %T »"
+
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "trop de canevass de listes de paramètres dans la déclaration de « %T »"
+
+#~ msgid " shadows template parm `%#D'"
+#~ msgstr " masque le paramètre du canevas « %#D »"
+
+#~ msgid "template parameters not used in partial specialization:"
+#~ msgstr "paramètres du canevas ne sont pas utilisés dans la spécialisation partielle:"
+
+#~ msgid " `%D'"
+#~ msgstr " « %D »"
+
+#~ msgid "partial specialization `%T' does not specialize any template arguments"
+#~ msgstr "spécialisation partielle « %T » ne spécialise pas aucun canevas d'arguments"
+
+#~ msgid "template argument `%E' involves template parameter(s)"
+#~ msgstr "canevas d'argument « %E » implique des paramètres du canevas"
+
+#~ msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+#~ msgstr "type « %T » du canevas d'argument « %E » dépend des paramètres du canevas"
+
+#~ msgid "no default argument for `%D'"
+#~ msgstr "pas d'argument par défaut 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 » déclaré en tant que membre du canevas"
+
+#~ msgid "`%D' does not declare a template type"
+#~ msgstr "« %D » ne déclare pas un type de canevas"
+
+#~ msgid "template definition of non-template `%#D'"
+#~ msgstr "définition 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 paramètres pour « %#D », obtenu %d"
+
+#~ msgid "got %d template parameters for `%#D'"
+#~ msgstr "a obtenu %d paramètres de canevas pour « %#D »"
+
+#~ msgid "got %d template parameters for `%#T'"
+#~ msgstr "a obtenu %d paramètres 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 "déclaration précédente de « %D »"
+
+#~ msgid "used %d template parameter%s instead of %d"
+#~ msgstr "utilisé %d canevass paramètre%s au lieu de %d"
+
+#~ msgid "template parameter `%#D'"
+#~ msgstr "canevas de paramètre « %#D »"
+
+#~ msgid "redeclared here as `%#D'"
+#~ msgstr "redéclaré ici comme « %#D »"
+
+#~ msgid "redefinition of default argument for `%#D'"
+#~ msgstr "redéfinition de l'argument par défaut pour « %#D »"
+
+#~ msgid "%J original definition appeared here"
+#~ msgstr "%J définition originale apparaît 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 doît ê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 "chaîne %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 paramètre de canevas"
+
+#~ msgid "invalid use of '%D' as a non-type template-argument"
+#~ msgstr "utilisation invalide de « %D » pour un non type de paramètre de canevas"
+
+#~ msgid "invalid use of '%E' as a non-type template-argument"
+#~ msgstr "utilisation invalide de « %E » pour un non type de paramètre de canevas"
+
+#~ msgid "to refer to a type member of a template parameter, use `typename %E'"
+#~ msgstr "pour référencer un type de membre de canevas de paramètres, 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 paramètres 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 déclaration 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 excède 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 "paramètre invalide pour le type « %T »"
+
+#~ msgid "in declaration `%D'"
+#~ msgstr "dans la déclaration de « %D »"
+
+#~ msgid "creating pointer to member function of non-class type `%T'"
+#~ msgstr "création d'un pointeur vers le membre d'une fonction d'un type non classe « %T »"
+
+#~ msgid "creating array with size zero"
+#~ msgstr "création d'un tableau de taille zéro"
+
+#~ msgid "creating array with size zero (`%E')"
+#~ msgstr "création d'un tableau de taille zéro (« %E »)"
+
+#~ msgid "forming reference to void"
+#~ msgstr "formation d'une référence en void"
+
+#~ msgid "forming %s to reference type `%T'"
+#~ msgstr "formant %s pour référencer le type « %T »"
+
+#~ msgid "creating pointer to member of non-class type `%T'"
+#~ msgstr "création d'un pointeur vers le membre d'un type non classe « %T »"
+
+#~ msgid "creating pointer to member reference type `%T'"
+#~ msgstr "création d'un pointeur vers le membre de référence du type « %T »"
+
+#~ msgid "creating array of `%T'"
+#~ msgstr "création du tableau « %T »"
+
+#~ msgid "creating array of `%T', which is an abstract class type"
+#~ msgstr "création 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 dépendant « %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 désiré"
+
+#~ 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 manière variable"
+
+#~ msgid "integral expression `%E' is not constant"
+#~ msgstr "expression intégrale « %E » n'est pas une constante"
+
+#~ msgid " trying to instantiate `%D'"
+#~ msgstr " tentative d'instanciation « %D »"
+
+#~ msgid "incomplete type unification"
+#~ msgstr "type d'unification incomplète"
+
+#~ 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 » repéré"
+
+#~ 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 définition 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 définition 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 "dépôt mystérieux d'informations dans %s"
+
+#~ msgid "can't create repository information file `%s'"
+#~ msgstr "ne peut créer le fichier « %s » pour dépôt 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 créer 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 réussir"
+
+#~ 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 retournés conflictuels spécifiés pour « %#D »"
+
+#~ msgid "looser throw specifier for `%#F'"
+#~ msgstr "a placé un spécificateur pour « %#F »"
+
+#~ msgid " overriding `%#F'"
+#~ msgstr " écrasant « %#F »"
+
+#~ msgid "`%#D' cannot be declared"
+#~ msgstr "« %#D » ne peut être déclaré"
+
+#~ msgid " since `%#D' declared in base class"
+#~ msgstr " alors que « %#D » est déclaré 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'opérande asm « %E » ne peut être déterminé"
+
+#~ 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 référence à « %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 paramètres 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 défaut pour un canevas de paramètres de canevas"
+
+#~ msgid "invalid use of `%D' as a default value for a template template-parameter"
+#~ msgstr "utilisation invalide de « %D » comme valeur par défaut pour un canevas de paramètres de canevas"
+
+#~ msgid "invalid default argument for a template template parameter"
+#~ msgstr "utilisation invalide d'argumenet pour un canevas de paramètres de canevas"
+
+#~ msgid "definition of `%#T' inside template parameter list"
+#~ msgstr "définition de « %#T » à l'intérieur d'un canevas de liste de paramètres"
+
+#~ msgid "invalid definition of qualified type `%T'"
+#~ msgstr "définition invalide d'un type qualifié « %T »"
+
+#~ msgid "previous definition of `%#T'"
+#~ msgstr "définition précédente de « %#T »"
+
+#~ msgid "invalid base-class specification"
+#~ msgstr "spécification 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 "déclarateurs multiples dans la déclaration de canevas"
+
+#~ msgid "incomplete type `%T' used in nested name specifier"
+#~ msgstr "type « %T » incomplet utilisé dans un spécificateur 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 "paramètre « %D » du canevas du type « %T » ne sont pas permises dans une expression intégrale de constante parce qu'elle n'est pas intégral ou un type énumération"
+
+#~ msgid "`%D' cannot appear in a constant-expression"
+#~ msgstr "« %D » ne peut apparaître 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 "requête du membre « %D » est ambiquë dans de mutliples héritage de treillis"
+
+#~ msgid "use of %s from containing function"
+#~ msgstr "utilisation de %s d'un fonction contenante"
+
+#~ msgid " `%#D' declared here"
+#~ msgstr " « %#D » déclaré 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 définitions de classes Java"
+
+#~ msgid "`%s' attribute can only be applied to class definitions"
+#~ msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes"
+
+#~ msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+#~ msgstr "« %s » est obsolète; vtables g++ sont maintenant COM-compatibles par défaut"
+
+#~ msgid "requested init_priority is not an integer constant"
+#~ msgstr "init_priority demandé n'est pas une constante entière"
+
+#~ msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+#~ msgstr "peut seulement utiliser l'attribut « %s » sur la portée de fichier de définitions 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 réservé 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 "vérification 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 obsolète de la chaîne de constante vers « %T »"
+
+#~ msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+#~ msgstr "requête 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 données non statique « %E »"
+
+#~ msgid "invalid access to non-static data member `%D' of NULL object"
+#~ msgstr "accès invalide à un membre de données 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 détruit est « %T », mais le destructeur réfère à « %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 déclaré « 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'intérieur 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 "paramètre %P de « %D » a un type incomplet « %T »"
+
+#~ msgid "parameter %P has incomplete type `%T'"
+#~ msgstr "paramètre %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 surchargée"
+
+#~ msgid "division by zero in `%E / 0'"
+#~ msgstr "division par zéro dans « %E / 0 »"
+
+#~ msgid "division by zero in `%E / 0.'"
+#~ msgstr "division par zéro dans « %E / 0. »"
+
+#~ msgid "division by zero in `%E %% 0'"
+#~ msgstr "division par zéro dans « %E %% 0 »"
+
+#~ msgid "division by zero in `%E %% 0.'"
+#~ msgstr "division par zéro dans « %E %% 0. »"
+
+#~ msgid "%s rotate count is negative"
+#~ msgstr "compteur de rotation %s est négatif"
+
+#~ 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 entières signée et non signée"
+
+#~ msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+#~ msgstr "opérandes invalides pour les types « %T » et « %T » en binaire « %O »"
+
+#~ msgid "NULL used in arithmetic"
+#~ msgstr "NULL utilisé en arithmétique"
+
+#~ 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 méthode 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 arithmétique"
+
+#~ 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 "parenthèses autour de « %E » ne peuvent être utilisées 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 référencé utilisé comme membre gauche"
+
+#~ msgid "invalid use of `--' on bool variable `%D'"
+#~ msgstr "utilisation invalide de «--» sur une variable booléenne « %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 parenthèses 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 déclarer un pointeur vers le membre de référence « %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 déclaré «register »"
+
+#~ msgid "%s expression list treated as compound expression"
+#~ msgstr "%s liste d'expressions traitée comme une expression composée"
+
+#~ 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 » génère une perte de précision"
+
+#~ 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 référence, ni un type pointeur-vers-données-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 référence à 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 référencé 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 négative « %E » pour %s %P de « %D »"
+
+#~ msgid "%s of negative value `%E' to `%T'"
+#~ msgstr "%s de valeur négative « %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 référence vers le temporaire"
+
+#~ msgid "reference to non-lvalue returned"
+#~ msgstr "une référence vers quelque chose n'étant pas un membre gauche a été retourné"
+
+#~ msgid "reference to local variable `%D' returned"
+#~ msgstr "référence vers une variable locale « %D » retourné"
+
+#~ msgid "address of local variable `%D' returned"
+#~ msgstr "adresse d'une variable locale « %D » retournée"
+
+#~ 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 "déclaration à retourner sans valeur dans une fonction retournant « %T »"
+
+#~ msgid "return-statement with a value, in function returning 'void'"
+#~ msgstr "déclaration é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 déclaré «throw() » (ou -fcheck-new est utilisée)"
+
+#~ 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 déclarer la variable « %D » comme étant de type « %T »"
+
+#~ msgid "cannot declare parameter `%D' to be of type `%T'"
+#~ msgstr "ne peut déclarer la paramètre « %D » comme étant de type « %T »"
+
+#~ msgid "cannot declare field `%D' to be of type `%T'"
+#~ msgstr "ne peut déclarer 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 déclaré 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 paramètres"
+
+#~ msgid "initializer for scalar variable requires one element"
+#~ msgstr "l'initialisation de variable scalaire requiert un élément"
+
+#~ 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 » ignorés"
+
+#~ 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 "aggrégat a un initialiseur partiellement entouré d'accolades"
+
+#~ msgid "non-trivial labeled initializers"
+#~ msgstr "initialiseur étiqueté de manière non trivial"
+
+#~ msgid "non-empty initializer for array of empty elements"
+#~ msgstr "initialiseurs non vides pour un tableau d'éléments 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 initialisée"
+
+#~ msgid "member `%D' is uninitialized reference"
+#~ msgstr "membre « %D » est une référence non initialisée"
+
+#~ 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'aggrégat n'a été initialisé"
+
+#~ msgid "union `%T' with no named members cannot be initialized"
+#~ msgstr "aggrégat « %T » sans mambre nommé ne peut être initialisé"
+
+#~ msgid "excess elements in aggregate initializer"
+#~ msgstr "éléments en excès dans l'initialiseur d'aggrégat"
+
+#~ msgid "circular pointer delegation detected"
+#~ msgstr "délégation de pointeur circulaire détecté"
+
+#~ msgid "base operand of `->' has non-pointer type `%T'"
+#~ msgstr "l'opérande de base de «->» a un type non pointeur « %T »"
+
+#~ msgid "result of `operator->()' yields non-pointer result"
+#~ msgstr "résultat de « operator->() » laisse comme résultat un non pointeur"
+
+#~ msgid "base operand of `->' is not a pointer"
+#~ msgstr "l'opérande 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'aggrégat « %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 obsolète, SVP voir la documentation pour les détails"
+
+#~ 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 affectée ne peut s'insérer 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 tête 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"
+#~ " déclaration ASSIGN pourrait échouer"
+
+#~ msgid "In statement function"
+#~ msgstr "Dans la déclaration 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 opérateurs arithmétiques dans la rangée à %0 et %1 -- utiliser des parenthèses"
+
+#~ msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+#~ msgstr "L'opérateur à %0 a une précédence plus basse que celui à %1 -- utiliser des parenthèses"
+
+#~ 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 opérandes LOGICAL à %1 et %2"
+
+#~ msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+#~ msgstr "Opérande non supportée pour ** à %1 -- conversion à INTEGER par défaut"
+
+#~ msgid "overflowed output arg list for `%s'"
+#~ msgstr "débordement 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'entrée; pas d'accord pour écrire dans les fichiers de sortie"
+
+#~ msgid "Implicit declaration of `%A' at %0"
+#~ msgstr "déclaration implicite de « %A » à %0"
+
+#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+#~ msgstr "séquence d'échappement non conforme au standard ISO C «\\%A» à %0"
+
+#~ msgid "Unknown escape sequence `\\%A' at %0"
+#~ msgstr "séquence d'échappement inconnue «\\%A» à %0"
+
+#~ msgid "Unterminated escape sequence `\\' at %0"
+#~ msgstr "séquence d'échappement non terminée «\\» at %0"
+
+#~ msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+#~ msgstr "séquence d'échappement inconnue «\\» suivi par le code de caractères 0x%A at %0"
+
+#~ msgid "\\x used at %0 with no following hex digits"
+#~ msgstr "\\x utilisé à %0 sans être suivi des chiffres hexdécimaux"
+
+#~ msgid "Hex escape at %0 out of range"
+#~ msgstr "échappement hexadécimal à %0 hors limite"
+
+#~ msgid "Escape sequence at %0 out of range for character"
+#~ msgstr "séquence d'échappement à %0 hors limite pour le type caractère"
+
+#~ msgid "hex escape out of range"
+#~ msgstr "échappement hexadécimal hors limite"
+
+#~ msgid "non-ANSI-standard escape sequence, `\\%c'"
+#~ msgstr "séquence d'échappement n'est pas ANSI standard: «\\%c'"
+
+#~ msgid "non-ISO escape sequence `\\%c'"
+#~ msgstr "séquence d'échappement non ISO «\\%c'"
+
+#~ msgid "unknown escape sequence `\\%c'"
+#~ msgstr "séquence d'échappement inconnue: «\\%c'"
+
+#~ msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+#~ msgstr "séquence d'échappement inconnue: «\\» suivi par le code de caractères 0x%x"
+
+#~ msgid "badly formed directive -- no closing quote"
+#~ msgstr "directive mal composée -- 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 erronée -- manque un apostrophe ou un guillemet de fermeture"
+
+#~ msgid "invalid #ident"
+#~ msgstr "#ident invalide"
+
+#~ msgid "undefined or invalid # directive"
+#~ msgstr "directive # non définie ou invalide"
+
+#~ msgid "invalid #line"
+#~ msgstr "#ligne invalide"
+
+#~ msgid "use `#line ...' instead of `# ...' in first line"
+#~ msgstr "utiliser « #ligne ... » au lieu de « # ... » dans la première ligne"
+
+#~ msgid "invalid #-line"
+#~ msgstr "#-line invalide"
+
+#~ msgid "Null character at %0 -- line ignored"
+#~ msgstr "caractère null à %0 -- ligne ignorée"
+
+#~ msgid "INCLUDE at %0 not the only statement on the source line"
+#~ msgstr "INCLUDE à %0 n'est pas la seule déclaration sur la ligne source"
+
+#~ msgid "ASSIGNed FORMAT specifier is too small"
+#~ msgstr "spécificateur dans ASSIGN FORMAT est trop petit"
+
+#~ msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+#~ msgstr "SÉLECTION du CASE sur un type CHARACTER (à %0) n'est pas supporté -- désolé"
+
+#~ msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+#~ msgstr "SELECT (à %0) possède des cases doubles -- vérifier le débordement 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 données sur l'hôte a un alignement des octets différent (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 désactivé, utiliser le fanion normal de mise au point"
+
+#~ msgid "Missing first operand for binary operator at %0"
+#~ msgstr "première opérande manquante pour l'opérateur biunaire à %0"
+
+#~ msgid "Zero-length character constant at %0"
+#~ msgstr "constante caractère de longueur zéro à %0"
+
+#~ msgid "Invalid token at %0 in expression or subexpression at %1"
+#~ msgstr "élément 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 "Opérande manquante pour l'opérateur %1 à la fin de l'expresssion à %0"
+
+#~ msgid "Label %A already defined at %1 when redefined at %0"
+#~ msgstr "Étiquette %A déjà définie à %1 et redéfinie à %0"
+
+#~ msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+#~ msgstr "Caractère non reconnue à %0 [info -f g77 M LEX]"
+
+#~ msgid "Label definition %A at %0 on empty statement (as of %1)"
+#~ msgstr "Définition d'étiquette %A à %0 dans une déclaration vide (comme %1)"
+
+#~ msgid "Invalid first character at %0 [info -f g77 M LEX]"
+#~ msgstr "Premier caractère 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 "Caractère non-numérique à %0 dans le champ d'étiquette [info -f g77 M LEX]"
+
+#~ msgid "Label number at %0 not in range 1-99999"
+#~ msgstr "Numéro 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 délimiteurs de commentaire valides"
+
+#~ msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+#~ msgstr "Indicateur de continuation à %0 doit apparaître 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 caractère à %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 spécifiée %A a plus de caractères que ceux présents dans %1"
+
+#~ msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+#~ msgstr "Paranethèse fermante amnquante à %0 nécessaire pour pairer la parenthèse 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 "Période à %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 période 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 réelle à %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 réeal à %0"
+
+#~ msgid "Expected binary operator between expressions at %0 and at %1"
+#~ msgstr "Opérateur binaire attendu entre les expressions à %0 et à %1"
+
+#~ msgid "Semicolon at %0 is an invalid token"
+#~ msgstr "Point-virgule (« ; ») en %0 est un élément lexical invalide"
+
+#~ msgid "Extraneous comma in FORMAT statement at %0"
+#~ msgstr "Virgule superflue dans la déclaration de FORMAT à %0"
+
+#~ msgid "Missing comma in FORMAT statement at %0"
+#~ msgstr "Virgule manquante dans la déclaration de FORMAT à %0"
+
+#~ msgid "Spurious sign in FORMAT statement at %0"
+#~ msgstr "faux signe dans la déclaration de FORMAT à %0"
+
+#~ msgid "Spurious number in FORMAT statement at %0"
+#~ msgstr "faux nombre dans la déclaration de FORMAT à %0"
+
+#~ msgid "Spurious text trailing number in FORMAT statement at %0"
+#~ msgstr "faux texte terminant le nombre dans la déclaration de FORMAT à %0"
+
+#~ msgid "Unrecognized FORMAT specifier at %0"
+#~ msgstr "spécificateur de FORMAT non reconnu à %0"
+
+#~ msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+#~ msgstr "Parenthèse(s) fermante(s) manquante(s) dans la déclaration de FORMAT à %0"
+
+#~ msgid "Missing number following period in FORMAT statement at %0"
+#~ msgstr "Nombre manquant suivant la période dans la déclaration de FORMAT à %0"
+
+#~ msgid "Missing number following `E' in FORMAT statement at %0"
+#~ msgstr "Nombre manquant suivant « E » dans la déclaration de FORMAT à %0"
+
+#~ msgid "Spurious trailing comma preceding terminator at %0"
+#~ msgstr "fausse virgule qui traîne dans la précédente terminaison à %0"
+
+#~ msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+#~ msgstr "À %0, spécifier l'OPÉRATEUR au lieu de l'AFFECTATION pour le déclaration d'INTERFACE ne spécifiant pas d'opérateur d'affectation (=)"
+
+#~ msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+#~ msgstr "À %0, spécifier une AFFECTATION au lieu d'un OPÉRATEUR dans la déclaration d'INTERFACE spécifiant un opérateur d'affectation (=)"
+
+#~ msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+#~ msgstr "Ne peut spécifier 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 référence à l'étiquette à %1 est inconsistente avec sa définition à %0"
+
+#~ msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+#~ msgstr "La référence à l'étiquette à %1 est inconsistente avec sa précédente référence à %0"
+
+#~ msgid "DO-statement reference to label at %1 follows its definition at %0"
+#~ msgstr "Déclaration DO utilisant une référence à l'étiquette à %1 suis sa définition à %0"
+
+#~ msgid "Reference to label at %1 is outside block containing definition at %0"
+#~ msgstr "Référence à l'étiquette à %1 est en dehors du bloc contenant la définition à %0"
+
+#~ msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+#~ msgstr "Déclaration DO utilisant des références à l'étiquette à %0 et %2 séparés par un bloc non complet débutant à %1"
+
+#~ msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+#~ msgstr "Déclaration DO utilisant une référence à l'étiquette à %0 et la définition d'étiquette à %2 séparés par un bloc non complet débutant à %1"
+
+#~ msgid "Label definition at %0 invalid on this kind of statement"
+#~ msgstr "définition d'étiquette à %0 invalide pour ce genre de déclaration"
+
+#~ msgid "Statement at %0 invalid in this context"
+#~ msgstr "déclaration à %0 invalide dans ce contexte"
+
+#~ msgid "Statement at %0 invalid in context established by statement at %1"
+#~ msgstr "déclaration à %0 invalide dans le contexte établi par la déclaration à %1"
+
+#~ msgid "Statement at %0 must specify construct name specified at %1"
+#~ msgstr "Déclaration à %0 doit spécifier un nom de construit spécifié à %1"
+
+#~ msgid "Construct name at %0 superfluous, no construct name specified at %1"
+#~ msgstr "Nom de construit à %0 superflue, aucun nom de construit spécifié à %1"
+
+#~ msgid "Construct name at %0 not the same as construct name at %1"
+#~ msgstr "Nom de construit à %0 n'est pas le même 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 "Définition d'étiquette manquante à %0 pour le construit DO spécifiant l'étiquette à %1"
+
+#~ msgid "Statement at %0 follows ELSE block for IF construct at %1"
+#~ msgstr "Déclaration à %0 suivant un bloc ELSE pour le construit IF à %1"
+
+#~ msgid "No label definition for FORMAT statement at %0"
+#~ msgstr "pas de définition d'étiquette pour la déclaration de FORMAT à %0"
+
+#~ msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+#~ msgstr "Seconde occurente de ELSE WHERE à %0 à l'intérieur du WHERE à %1"
+
+#~ msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+#~ msgstr "déclaration END à %0 manquante mot clé « %A » requis pour une procédure 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 "déclaration de MODULE PROCEDURE à %0 non permise parce que l'INTERFACE à %1 ne spécifie pas de nom générique, d'opérateur ou d'affectation"
+
+#~ msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+#~ msgstr "nom du BLOCK DATA à %0 superflue, aucun nom spécifié à %1"
+
+#~ msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+#~ msgstr "nom de programme à %0 superflue, aucune déclaration PROGRAM spécifié à %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 même 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 même 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 débutant à %0"
+
+#~ msgid "Undefined label, first referenced at %0"
+#~ msgstr "Étiquette non définie, première référence à %0"
+
+#~ msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+#~ msgstr "déclaration SAVE ou attribut à %1 ne peut être spécifiée en même temps avec la déclaration SAVE ou l'attribut à %0"
+
+#~ msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+#~ msgstr "déclaration PUBLIC ou PRIVATE à %1 ne peut être spécifié en même temps avec la déclaration PUBLIC ou PRIVATE à %0"
+
+#~ msgid "RETURN statement at %0 invalid within a main program unit"
+#~ msgstr "déclaration RETURN à %0 invalide à l'intérieur de l'unité du programme principal"
+
+#~ msgid "Alternate return specifier at %0 invalid within a main program unit"
+#~ msgstr "spécificateur alternatif de retour à %0 invalide à l'intérieur de l'unité du programme principal"
+
+#~ msgid "Alternate return specifier at %0 invalid within a function"
+#~ msgstr "spécificateur alternatif de retour à %0 invalide à l'intérieur 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 "spécificateur d'accès ou déclaration PRIVATE à %0 invalide pour une définition de type dérivé à l'intérieur d'autre chose que la portion de spécification d'un module"
+
+#~ msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+#~ msgstr "Spécificateur d'accès à %0 doit suivre immédaitement la déclaration de type dérivé à %1 sans intervention de déclarations"
+
+#~ msgid "No components specified as of %0 for derived-type definition beginning at %1"
+#~ msgstr "Aucun composant spécifié tel que %0 pour une définition de type dérivé débutant à %1"
+
+#~ msgid "No components specified as of %0 for structure definition beginning at %1"
+#~ msgstr "Aucun composant spécifié tel que %0 pour la définition de structure débutant à %1"
+
+#~ msgid "Missing structure name for outer structure definition at %0"
+#~ msgstr "Nom de structure manquant pour la définition 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 définition externe de structure -- les spécifier dans une déclaration subséquente de déclaration 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 définition de strcutreu à %0 à l'intérieur de la définition de structure à %1"
+
+#~ msgid "No components specified as of %0 for map beginning at %1"
+#~ msgstr "Aucun composant spécifié tel que %0 pour la map débutant à %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 spécifié tel que %0 pour l'union débutant à %1 -- au moins deux sont requises"
+
+#~ msgid "Missing %A specifier in statement at %0"
+#~ msgstr "spécificateur %A manquant dans la déclaration à %0"
+
+#~ msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+#~ msgstr "Items dans la liste E/S débutant à %0 invalide pour un liste nommé d'E/S dirigées"
+
+#~ msgid "Conflicting I/O control specifications at %0 and %1"
+#~ msgstr "spécifications conflictuelles de contrôle d'E/S à %0 et %1"
+
+#~ msgid "No UNIT= specifier in I/O control list at %0"
+#~ msgstr "aucun spécificateur UNIT=1 dans la liste de contrôle d'E/S à %0"
+
+#~ msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+#~ msgstr "spécification à %0 requiert la spécification ADVANCE=« NO » dans la même liste de contrôel d'E/S"
+
+#~ msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+#~ msgstr "spécification à %0 requiert la spécification explicite FMT= dans la même liste de contrôel d'E/S"
+
+#~ msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+#~ msgstr "Seconde occurence du CASE DEFAULT à %0 à l'intéreur 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 "Désaccord du paramètre du Type et/ou type de sorte entre la valeur du CASE ou la valeur à l'intérieur 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 "spécification d'étendue à %0 invalide pour la déclaration du CASE à l'intérieur de la déclaration du type logique du SELECT CASE"
+
+#~ msgid "Fortran 90 feature at %0 unsupported"
+#~ msgstr "option FORTRAN 90 à %0 non supportée"
+
+#~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+#~ msgstr "déclaration invalide ou référence au symboe « %A » à %0 [initialement vu à %1]"
+
+#~ msgid "Null element at %0 for array reference at %1"
+#~ msgstr "élément nul à %0 pour la référence au tableau à %1"
+
+#~ msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+#~ msgstr "Trop peu d'éléments (%A manquant) tel que %0 pour la référence au tableau à %1"
+
+#~ msgid "Too many elements as of %0 for array reference at %1"
+#~ msgstr "Trop peu d'éléments tel que %0 pour la référence au tableau à %1"
+
+#~ msgid "Missing colon as of %0 in substring reference for %1"
+#~ msgstr "«:» manquant dans %0 dans la sous-chaîne de référence pour %1"
+
+#~ msgid "Invalid use at %0 of substring operator on %1"
+#~ msgstr "utilisation invalide à %0 de l'opérateur de sous-chaîne sur %1"
+
+#~ msgid "Substring begin/end point at %0 out of defined range"
+#~ msgstr "point begin/end de la sous-chaîne à %0 en dehors de la plage définie"
+
+#~ msgid "Array element value at %0 out of defined range"
+#~ msgstr "Valeur de l'élément du tableau à %0 en dehors de la plage définie"
+
+#~ msgid "Expression at %0 has incorrect data type or rank for its context"
+#~ msgstr "expression à %0 a un type de données ou un rang incorrect pour son contexte"
+
+#~ msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+#~ msgstr "division par 0 (zéro) à %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 (zéro) à %0"
+
+#~ msgid "%A end value plus step count known to overflow at %0"
+#~ msgstr "valeur finale %A plus la valeur du pas connus pour déborder à %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 départ, fin et du pas %A connu pour résulter dans un comportement dépendant de l'implantation en raison d'un débordement dans les calculs intermédiaires à %0"
+
+#~ msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+#~ msgstr "valeur de départ, fin et du pas %A connus pour ne faire aucune itération à %0"
+
+#~ msgid "Type disagreement between expressions at %0 and %1"
+#~ msgstr "désaccord de type entre les expressions à %0 et %1"
+
+#~ msgid "No specification for implied-DO iterator `%A' at %0"
+#~ msgstr "aucune spécification pour l'itération DO-implicite « %A » à %0"
+
+#~ msgid "Gratuitous parentheses surround implied-DO construct at %0"
+#~ msgstr "parenthèses gratuites entourant le construit DO implicite à %0"
+
+#~ msgid "Zero-size specification invalid at %0"
+#~ msgstr "spécification de taille zéro invalide à %0"
+
+#~ msgid "Zero-size array at %0"
+#~ msgstr "tableau de taille zéro à %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 spécifié à %0"
+
+#~ msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+#~ msgstr "machine cible ne supporte pas DOUBLE COMPLEX spécifié à %0"
+
+#~ msgid "Attempt to raise constant zero to a power at %0"
+#~ msgstr "Tentative d'augmentation d'une constante de valeur zéro à la puissance %0"
+
+#~ msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+#~ msgstr "référence à un intrinsèque générique « %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'intrinsèque « %A » à %0 [info -f g77 M CMPAMBIG]"
+
+#~ msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+#~ msgstr "intrinsèque « %A » référencé %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 "Même 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 "déclaration de type explicite pour l'intrinsèque « %A » en désaccord 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 déclaration de la référence de fonction à %1"
+
+#~ msgid "Null argument at %0 for procedure invocation at %1"
+#~ msgstr "arguement nul à %0 pour l'invocation de la procédure à %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 (débutant avec l'argument factice « %B ») tel que %0 pour la déclaration de la référence 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 déclaration de la référence 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 déclaration de référence de fonction à %0"
+
+#~ msgid "Unsupported FORMAT specifier at %0"
+#~ msgstr "spécificateur de FORMAT non supporté à %0"
+
+#~ msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+#~ msgstr "expression variable dans le spécificateur de FORMAT à %0 -- non supportée"
+
+#~ msgid "Unsupported VXT statement at %0"
+#~ msgstr "déclaration VXT non supporté à %0"
+
+#~ msgid "Attempt to specify second initial value for `%A' at %0"
+#~ msgstr "Tentative de spécifier 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 débutant à %0"
+
+#~ msgid "Array or substring specification for `%A' out of range in statement at %0"
+#~ msgstr "Tableau ou sous-chaîne de spécification pour « %A » hors limite dans la déclaration à %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 déclaration à %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 (zéro) pour la variable itérative « %A » dans la déclaration à %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 (zéro) pour la variable itérative « %A » dans la déclaration à %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 déclaration implicite de la boucle DO à %0"
+
+#~ msgid "Attempt to specify second initial value for element of `%A' at %0"
+#~ msgstr "Tentative de spécifier une seconde valeur initiale pour l'élément « %A » à %0"
+
+#~ msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+#~ msgstr "Tentative de définit 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 insérer « %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 "Désaccord des conditions requises par EQUIVALENCE pour l'emplacement de « %A » aux deux décalages d'octets %C et %D à partir de %B"
+
+#~ msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+#~ msgstr "spécification de tableau ou de sous-chaîne pour « %A » est hors limite dans la déclaration EQUIVALENCE"
+
+#~ msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+#~ msgstr "Sous-chaîne de non caractères « %A » dans la déclaration EQUIVALENCE"
+
+#~ msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+#~ msgstr "référence de tableau vers une variable scalaire « %A » dans une déclaraion EQUIVALENCE"
+
+#~ msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+#~ msgstr "souscript de tableau #%B hors limite pour la déclaration 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 départ via EQUIVALENCE de « %A »"
+
+#~ msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "Trop peu d'élémens dans la référence au tableau « %A » dans la déclaration d'EQUIVALENCE"
+
+#~ msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "Trop d'élémens dans la référence au tableau « %A » dans la déclaration d'EQUIVALENCE"
+
+#~ msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+#~ msgstr "Mélange de type caractère et de non caractère via le COMMON/EQUIVALENCE -- par exemple « %A » et « %B »"
+
+#~ msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+#~ msgstr "valeur retournée « %A » pour FUNCTION à %0 n'est pas référencé 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 "intrinsèque « %A » est passé comme argument actuel à %0 mais non pas explicitment déclaré INTRINSIC"
+
+#~ msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+#~ msgstr "procédure externe « %A » est pass comme argument actuel à %0 mais non pas déclaré explicitement déclaré EXTERNAL"
+
+#~ msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+#~ msgstr "caractère « %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 "caractère « %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 "caractère « %A » n'est pas suivi par un caractère en minuscule dans le nom de symbole à %0"
+
+#~ msgid "Initial character `%A' is lower-case in symbol name at %0"
+#~ msgstr "caractère 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 adéquatement supporté par la bibliothèque d'exécution pour les fichiers source avec une casse préservée"
+
+#~ 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 "Déclaration à %0 invalide dans le bloc de donnée de l'unité programme à %1"
+
+#~ msgid "Truncating characters on right side of character constant at %0"
+#~ msgstr "troncation de caractères du côté droit de la constante caractères à %0"
+
+#~ msgid "Truncating characters on right side of hollerith constant at %0"
+#~ msgstr "troncation de caractères du côté droit de la constante Hollerith à %0"
+
+#~ msgid "Truncating non-zero data on left side of numeric constant at %0"
+#~ msgstr "troncation de données non à zéro du côté gauche de la constante numérique à %0"
+
+#~ msgid "Truncating non-zero data on left side of typeless constant at %0"
+#~ msgstr "troncation de données non à zéro du côté 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 première colonne de continuation à %0"
+
+#~ msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "nom global « %A » défini à %0 est déjà défini à %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 différent à %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 définition à %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 "déclaration de fonction « %A » définie à %0 n'est pas utilisée"
+
+#~ msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+#~ msgstr "Intrinsèque « %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 exécuter l'opération"
+
+#~ 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 données"
+
+#~ 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 "méthode de signature erronée"
+
+#~ 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é repéré dans la classe"
+
+#~ msgid "%Jabstract method in non-abstract class"
+#~ msgstr "%Jméthode abstraite dans une classe non abstraite"
+
+#~ msgid "%Jnon-static method '%D' overrides static method"
+#~ msgstr "%Jméthode non statique « %D » écrase la méthode statique"
+
+#~ msgid "%J'%D' used prior to declaration"
+#~ msgstr "%J« %D » utilisé précédemment avant sa déclaration"
+
+#~ msgid "declaration of `%s' shadows a parameter"
+#~ msgstr "la déclaration de « %s » masque un paramètre"
+
+#~ msgid "declaration of `%s' shadows a symbol from the parameter list"
+#~ msgstr "la déclaration de « %s » masque un symbole de la liste des paramètres"
+
+#~ msgid "%Jlabel '%D' used but not defined"
+#~ msgstr "%Jétiquette « %D » utilisée mais non définie"
+
+#~ msgid "%Jlabel '%D' defined but not used"
+#~ msgstr "%Jétiquette « %D » définie mais non utilisée"
+
+#~ 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 paramètres d'informations de mise au point"
+
+#~ msgid "%Jbad PC range for debug info for local '%D'"
+#~ msgstr "%Jplage PC erroné pour les infos de débug pour la var. locale « %D »"
+
+#~ msgid "stack underflow - dup* operation"
+#~ msgstr "sous débordement de la pile - opération dup*"
+
+#~ msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+#~ msgstr "référence « %s » est ambigue: apparaît 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 implantée"
+
+#~ msgid "method '%s' not found in class"
+#~ msgstr "méthode « %s » n'a pas été repéré dans la classe"
+
+#~ msgid "failed to find class '%s'"
+#~ msgstr "échec de repérage de la classe « %s »"
+
+#~ msgid "class '%s' has no method named '%s' matching signature '%s'"
+#~ msgstr "classe « %s » n'a pas de méthode nommée « %s » concordant avec la signature « %s »"
+
+#~ msgid "invokestatic on non static method"
+#~ msgstr "invocation statique sur un méthode non statique"
+
+#~ msgid "invokestatic on abstract method"
+#~ msgstr "invocation statique sur un méthode abstraite"
+
+#~ msgid "invoke[non-static] on static method"
+#~ msgstr "invocation non statique sur un méthode 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 numéro 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 méthode."
+
+#~ msgid "unrecogized wide sub-instruction"
+#~ msgstr "sous-instruction très 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 récent que son fichier de classe concordant. Fichier source « %s » utilisé à la place."
+
+#~ msgid "bad string constant"
+#~ msgstr "constante chaîne erronée"
+
+#~ msgid "bad value constant type %d, index %d"
+#~ msgstr "valeur %d de type de constante erronée, 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 repérer 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'entrée #%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 méthodes"
+
+#~ 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é repéré dans « %s » n'avait pas l'attribut spécial de longueur zéro «gnu.gcj.gcj-compiled». Cela généralement signifie que le chemin d'accès aux classes est incorrectement initialisé. Utiliser «info gcj \"Input Options\" » pour accéder aux informations décrivant comment initialiser le chemin d'accès 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é spécifié à l'entrée"
+
+#~ msgid "can't close input file %s: %m"
+#~ msgstr "ne peut fermer le fichier d'entrée %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 créer le répertoire %s: %m"
+
+#~ msgid "can't create %s: %m"
+#~ msgstr "ne peut créer %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 repéré « %s »"
+
+#~ msgid "can't specify `-D' without `--main'\n"
+#~ msgstr "ne peut spécifier «-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 déjà compilés ignorés avec -C"
+
+#~ msgid "cannot specify both -C and -o"
+#~ msgstr "ne peut spécéfier à la fois -C et -o"
+
+#~ msgid "cannot create temporary file"
+#~ msgstr "ne peut créer 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 spécifier 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 dépendance avec l'entrée à partir de stdin"
+
+#~ msgid "couldn't determine target name for dependency tracking"
+#~ msgstr "ne peut déterminer le nom de la cible pour le tracking de dépendance"
+
+#~ 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 système. Si vous n'essayez pas\n"
+#~ "d'utiliser un encodage particulier pour votre fichier d'entrée, 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 "Déclaration 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 "Déclaration invalide"
+
+#~ msgid "']' expected"
+#~ msgstr "«]» attendu"
+
+#~ msgid "Unbalanced ']'"
+#~ msgstr "«]» non pairé"
+
+#~ msgid "Invalid method declaration, method name required"
+#~ msgstr "Déclaration de méthode invalide, nom de méthode requis"
+
+#~ msgid "Identifier expected"
+#~ msgstr "Identificateur attendu"
+
+#~ msgid "Invalid method declaration, return type required"
+#~ msgstr "Déclaration de méthode invalide, type retourné requis"
+
+#~ msgid "')' expected"
+#~ msgstr "«)» attendu"
+
+#~ msgid "Missing formal parameter term"
+#~ msgstr "Paramètre 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 "Déclaration 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 contrôle invalide"
+
+#~ msgid "Invalid update expression"
+#~ msgstr "Expression de mise à jour invalide"
+
+#~ msgid "Invalid init statement"
+#~ msgstr "Déclaration 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 référence invalide"
+
+#~ msgid "Constructor invocation must be first thing in a constructor"
+#~ msgstr "L'invaocation d'un constructeur doit être la première 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 composée dans CLASSPATH: %s"
+
+#~ msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+#~ msgstr "ne peut repérer le package par défaut « %s ». Vérifier la variable d'environnement CLASSPATH et l'accès 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 "opérator %s non enregistré"
+
+#~ msgid "junk at end of signature string"
+#~ msgstr "rebut à la fin de la chaîne 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 vérification"
+
+#~ msgid "verification error at PC=%d"
+#~ msgstr "erreur de vérification 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 allouée de manière 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 » indéfini, SVP importer <objc/objc.h>"
+
+#~ msgid "protocol `%s' has circular dependency"
+#~ msgstr "le protocole « %s » a une dépendance circulaire"
+
+#~ msgid "cannot find protocol declaration for `%s'"
+#~ msgstr "ne peut repérer la déclaration de protocole pour « %s »"
+
+#~ msgid "cannot find interface declaration for `%s'"
+#~ msgstr "ne peut repérer la déclaration d'interface pour « %s »"
+
+#~ msgid "interface `%s' does not have valid constant string layout"
+#~ msgstr "interface « %s » n'a pas une organisation valide de chaînes de constantes"
+
+#~ msgid "cannot find reference tag for class `%s'"
+#~ msgstr "ne peut repérer la référence pour l'étiquette de classe %s."
+
+#~ msgid "creating selector for non existant method %s"
+#~ msgstr "création du sélection pour une méthode 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 "déclarations Objective-C peut seulement apparaître dans l'étendue globale"
+
+#~ msgid "cannot find class `%s'"
+#~ msgstr "ne peut repérer la classe « %s »"
+
+#~ msgid "class `%s' already exists"
+#~ msgstr "classe « %s » existe déjà"
+
+#~ msgid "`%s' redeclared as different kind of symbol"
+#~ msgstr "« %s » redéclaré comme une autre sorte de symbole"
+
+#~ msgid "cannot find interface declaration for `%s', superclass of `%s'"
+#~ msgstr "ne peut repérer une déclaration d'interface pour « %s », super classe de « %s »"
+
+#~ msgid "circular inheritance in interface declaration for `%s'"
+#~ msgstr "héritage circulaire dans la déclaration 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 "paramètre « @catch » n'est pas connu comme un type de classe Objective-C"
+
+#~ msgid "Exception already handled by preceding `@catch(id)'"
+#~ msgstr "Exception est déjà traité par le précédent « @catch(id) »"
+
+#~ msgid "Exception of type `%s *' already handled by `@catch (%s *)'"
+#~ msgstr "exception du type « %s * » est déjà traitée 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 "spécification 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 paramètre à une méthode\n"
+
+#~ msgid "multiple %s named `%c%s' found"
+#~ msgstr "multiples %s nommés « %c%s » repérés"
+
+#~ msgid "no super class declared in @interface for `%s'"
+#~ msgstr "pas de super classe déclarée 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 répondre à « %c%s »"
+
+#~ msgid "`%c%s' not implemented by protocol(s)"
+#~ msgstr "« %c%s » n'est pas implantée dans le protocole"
+
+#~ msgid "(Messages without a matching method signature"
+#~ msgstr "(Messages sans une méthode 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 "sélecteur « %s » non déclaré"
+
+#~ msgid "instance variable `%s' accessed in class method"
+#~ msgstr "instance « %s » de la variable accédé par la méthode de classe"
+
+#~ msgid "duplicate declaration of method `%c%s'"
+#~ msgstr "duplication de déclaration de la méthode « %c%s »"
+
+#~ msgid "duplicate interface declaration for category `%s(%s)'"
+#~ msgstr "duplication de déclaration d'interface pour la catégorie « %s(%s) »"
+
+#~ msgid "illegal reference type specified for instance variable `%s'"
+#~ msgstr "type deréférence spécifié illégal 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'aggrégat illégal « %s » spécifié pour l'instance de la variable « %s »"
+
+#~ msgid "type `%s' has a user-defined constructor"
+#~ msgstr "type « %s » a un constructeur défini par l'usager"
+
+#~ msgid "type `%s' has a user-defined destructor"
+#~ msgstr "type « %s » a un destructeur défini par l'usager"
+
+#~ msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
+#~ msgstr "constructeurs et destructeurs C++ ne seront pas invoqués pour les champs en Objective-C"
+
+#~ msgid "instance variable `%s' is declared private"
+#~ msgstr "instance de la variable « %s » est déclaré privée"
+
+#~ msgid "instance variable `%s' is %s; this will be a hard error in the future"
+#~ msgstr "instance de la variable « %s » est %s; cela déclenchera une erreur dure dans le futur"
+
+#~ msgid "instance variable `%s' is declared %s"
+#~ msgstr "instance de la variable « %s » est déclaré %s"
+
+#~ msgid "static access to object of type `id'"
+#~ msgstr "accès statique à un objket de type « id »"
+
+#~ msgid "incomplete implementation of class `%s'"
+#~ msgstr "implantation incomplète de la classe « %s »"
+
+#~ msgid "incomplete implementation of category `%s'"
+#~ msgstr "implantation incomplète de la catégorie « %s »"
+
+#~ msgid "method definition for `%c%s' not found"
+#~ msgstr "définition de la méthode pour « %c%s » n'a pas été repérée"
+
+#~ msgid "%s `%s' does not fully implement the `%s' protocol"
+#~ msgstr "%s « %s » n'implante pas complètement 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 "déclaration précédente de « %s »"
+
+#~ msgid "duplicate interface declaration for class `%s'"
+#~ msgstr "double déclaration d'interface pour la classe « %s »"
+
+#~ msgid "duplicate declaration for protocol `%s'"
+#~ msgstr "double déclaration 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 déclarée dans l'interface pour « %s »"
+
+#~ msgid "[super ...] must appear in a method context"
+#~ msgstr "[super ...] doit apparaître dans une méthode du contexte"
+
+#~ msgid "`@end' must appear in an implementation context"
+#~ msgstr "«@end» doit appraître dans un contaxte d'implantation"
+
+#~ msgid "method definition not in class context"
+#~ msgstr "méthode de définition n'est pas dans un contexte de classe"
+
+#~ msgid "Display this information"
+#~ msgstr "afficher l'aide-mémoire"
+
+#~ msgid "--param <param>=<value>\tSet paramter <param> to value. See below for a complete list of parameters"
+#~ msgstr "--param <paramètre>=<valeur>\tinitialiser le <paramètre> avec la valeur. Voir ci-bas pour la liste complète des paramètres"
+
+#~ msgid "-A<question>=<answer>\tAssert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
+#~ msgstr "-A<question>=<réponse>\tassocier la <réponse> à la <question>. Placer « - » devant la <question> désactive la <réponse> à 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>]\tdéfinir le <macro> avec la <valeur>. Si seul le <macro> est fourni, <valeur> vaut 1 par défaut"
+
+#~ msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
+#~ msgstr ""
+#~ " -G <nombre> placer les données globales et statiques plus\n"
+#~ " petites que <nombre> d'octets dans une section\n"
+#~ " spéciale (sur certaines cibles)"
+
+#~ msgid "Print the name of header files as they are used"
+#~ msgstr "Afficher les noms des en-têtes de fichiers tel qu'ils sont utilisés"
+
+#~ msgid "-I <dir>\tAdd <dir> to the end of the main include path. -I- gives more include path control; see info documentation"
+#~ msgstr "-I <rép>\tajouter <rép> à la fin du chemin principal d'inclusion. -I- donne plus de contrôle sur le chemin d'inclusion; voir la documentation info"
+
+#~ msgid "Generate make dependencies"
+#~ msgstr "Générer les dépendances pour make"
+
+#~ msgid "Generate make dependencies and compile"
+#~ msgstr "Générer les dépendances pour make et compiler"
+
+#~ msgid "-MF <file>\tWrite dependency output to the given file"
+#~ msgstr "-MF <fichier>\técrire les dépendances en sortie dans le fichier fourni"
+
+#~ msgid "Treat missing header files as generated files"
+#~ msgstr "Traiter les en-têtes manquantes de fichiers comme des fichiers générés"
+
+#~ msgid "Like -M but ignore system header files"
+#~ msgstr "Identique à -M mais ignore les en-têtes de fichiers système"
+
+#~ msgid "Like -MD but ignore system header files"
+#~ msgstr "Identique à -MD mais ignore les en-têtes de fichiers système"
+
+#~ msgid "Generate phony targets for all headers"
+#~ msgstr "Générer les cibles bidons pour toutes les en-têtes"
+
+#~ 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 plutôt que la vitesse"
+
+#~ msgid "Do not generate #line directives"
+#~ msgstr "Ne pas générer de directives #ligne"
+
+#~ msgid "-U<macro>\tUndefine <macro>"
+#~ msgstr "-U<macro>\tabandonner la définition <macro>"
+
+#~ msgid "This switch is deprecated; use -Wextra instead"
+#~ msgstr "Cette option est obsolète; utiliser -Wextra à la place"
+
+#~ msgid "Warn about returning structures, unions or arrays"
+#~ msgstr "Avertir à propos de structures retournés, 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 imbriqués 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 privés"
+
+#~ msgid "Warn when a declaration is found after a statement"
+#~ msgstr "Avertir lorsqu'une déclaration est spécifiée après une déclaration"
+
+#~ msgid "Warn about deprecated compiler features"
+#~ msgstr "Avertir à propose de la dépréciation des options du compilateur"
+
+#~ msgid "Warn about uses of __attribute__((deprecated)) declarations"
+#~ msgstr "Avertir à propos de l'utilisation des déclarations « __attribute__ ((deprecated)) »"
+
+#~ msgid "Warn when an optimization pass is disabled"
+#~ msgstr "Avertir lorsque la passe d'optimisation est désactivée"
+
+#~ msgid "Warn about compile-time integer division by zero"
+#~ msgstr "Avertir au sujet de la division entière par zéro au moment de la compilation"
+
+#~ msgid "Warn about violations of Effective C++ style rules"
+#~ msgstr "Avertir à propos des violations des règles de style de Effective C++"
+
+#~ msgid "Warn about stray tokens after #elif and #endif"
+#~ msgstr "Avertir à propos des jetons perdus après #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 déclaration de fonctions implicites"
+
+#~ msgid "Print extra (possibly unwanted) warnings"
+#~ msgstr "Afficher des avertissements superflus (possiblement non désirés)"
+
+#~ 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 chaînes 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 chaînes"
+
+#~ msgid "Warn about format strings that are not literals"
+#~ msgstr "Avertir à propos des chaînes de format qui n'ont pas de litérals"
+
+#~ msgid "Warn about possible security problems with format functions"
+#~ msgstr "Avertir à propos des problèmes possibles de sécurité 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'année"
+
+#~ msgid "Warn about implicit function declarations"
+#~ msgstr "Avertir à propos des déclarations de fonctions implicites"
+
+#~ msgid "Warn when a declaration does not specify a type"
+#~ msgstr "Avertir lorsqu'une déclaration ne spécifie pas le type"
+
+#~ msgid "Deprecated. This switch has no effect."
+#~ msgstr "Obsolète. Cette option n'a aucun effet."
+
+#~ msgid "Warn about variables which are initialized to themselves."
+#~ msgstr "Avertir au sujet des variables qui sont initialisés par elles-même"
+
+#~ 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 repérés mais non utilisés"
+
+#~ 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 déclarations 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 déclaration précédente"
+
+#~ 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 chaînes de multi-caractères"
+
+#~ msgid "Warn about \"extern\" declarations not at file scope"
+#~ msgstr "Avertir à propos des déclarations \"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 déclarés à l'intérieur 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 paramètre de style ancien de définition 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 paquetés 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 parenthèses"
+
+#~ 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'arithmétique portant sur un pointeur de fonction"
+
+#~ msgid "Warn if inherited methods are unimplemented"
+#~ msgstr "Avertir si les méthodes héritées ne sont pas implantées"
+
+#~ msgid "Warn about multiple declarations of the same object"
+#~ msgstr "Avertir à propos des déclarations multiples portant sur le même objet"
+
+#~ msgid "Warn when the compiler reorders code"
+#~ msgstr "Avertir lorsque le compilateur réordonne 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 défaut est \"int\" (C) ou à propos d'un type inconsisten à retourner (C++)"
+
+#~ msgid "Warn if a selector has multiple methods"
+#~ msgstr "Avertir si le sélecteur a de multiples méthodes"
+
+#~ msgid "Warn about possible violations of sequence point rules"
+#~ msgstr "Avertir à propos des violations possibles des règles de séquence 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 signés ou non signés"
+
+#~ 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 règles strictes d'alias"
+
+#~ msgid "Warn about unprototyped function declarations"
+#~ msgstr "Avertir à propos des déclarations de fonctions sans prototype"
+
+#~ msgid "Warn about enumerated switches, with no default, missing a case"
+#~ msgstr "Avertir à propos d'un switch énuméré, sans défaut ou un case est manquant"
+
+#~ msgid "Warn about enumerated switches missing a \"default:\" statement"
+#~ msgstr "Avertir à propos d'un switch énuméré n'ayant pas de déclaration \"default:\""
+
+#~ msgid "Warn about all enumerated switches missing a specific case"
+#~ msgstr "Avertir à propos de tous les switch énumérés où un case spécific manque"
+
+#~ msgid "Warn when synthesis behavior differs from Cfront"
+#~ msgstr "Avertir lorsque le comportement de synthère diffère de Cfront"
+
+#~ msgid "Do not suppress warnings from system headers"
+#~ msgstr "Ne pas supprimer les avertissements pour les en-têtes système"
+
+#~ 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 rencontrés 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 indéfini est utilisé dans un directive #if"
+
+#~ msgid "Warn about uninitialized automatic variables"
+#~ msgstr "Avertir à propos des variables automatiques non initialisées"
+
+#~ 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 exécuté"
+
+#~ msgid "Enable all -Wunused- warnings"
+#~ msgstr "Autoriser tous les -Wunused- warnings"
+
+#~ msgid "Warn when a function is unused"
+#~ msgstr "Avertir lorsqu'une fonction est inutilisée"
+
+#~ msgid "Warn when a label is unused"
+#~ msgstr "Avertir lorsqu'une étiquette est inutilisée"
+
+#~ msgid "Warn about macros defined in the main file that are not used"
+#~ msgstr "Avertir à propos de macros définis dans le fichier principal qui ne sont pas utilisés"
+
+#~ msgid "Warn when a function parameter is unused"
+#~ msgstr "Avertir lorsqu'un paramètre de fonction est inutilisé"
+
+#~ msgid "Warn when an expression value is unused"
+#~ msgstr "Avertir lorsque la valeur d'une expression n'est pas utilisée"
+
+#~ msgid "Warn when a variable is unused"
+#~ msgstr "Avertir lorsque 'une variable est inutilisée"
+
+#~ msgid "Give strings the type \"array of char\""
+#~ msgstr "Fournir des chaînes 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 déclaration 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 spécifiques 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 sémantique du contrôle d'accès à un membre de classe"
+
+#~ msgid "Align the start of functions"
+#~ msgstr "Aligner le début 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 début 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 "Spécifier 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 "Présumer 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 "Reconnaître le mot clé « asm »"
+
+#~ msgid "Generate unwind tables that are exact at each instruction boundary"
+#~ msgstr "Générer des tables étendues qui soient exactes pour chaque borne d'instruction"
+
+#~ msgid "Generate code to check bounds before indexing arrays"
+#~ msgstr "Générer du code pour vérifier 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 probabilités 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 après le thread prologue / epilogue"
+
+#~ msgid "Recognize built-in functions"
+#~ msgstr "Reconnaître 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 préservé à 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 "Vérifier la valeur retournée de new"
+
+#~ msgid "Do not put uninitialized globals in the common section"
+#~ msgstr "Ne pas placer de globaux non initialisés dans la section commune"
+
+#~ msgid "Allow the arguments of the '?' operator to have different types"
+#~ msgstr "Permettre les arguments de l'opérateur « ? » d'avoir différents types"
+
+#~ msgid "Reduce the size of object files"
+#~ msgstr "Réduire la taille des fichiers objets"
+
+#~ msgid "Make string literals \"const char[]\" not \"char[]\""
+#~ msgstr "Rendre les chaînes 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 chaînes 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 "Exécuter des optimisations de sauts croisés"
+
+#~ msgid "When running CSE, follow jumps to their targets"
+#~ msgstr "Lorsque CSE s'exécute, suivre les sauts vers leurs cibles"
+
+#~ msgid "When running CSE, follow conditional jumps"
+#~ msgstr "Lorsque CSE s'exécute, suivre les sauts considitionnels vers leurs cibles"
+
+#~ msgid "Place data items into their own section"
+#~ msgstr "placer les items des données dans leur propre section"
+
+#~ msgid "Inline member functions by default"
+#~ msgstr "Rendre enligne un membre de fonction par défaut"
+
+#~ msgid "Defer popping functions args from stack until later"
+#~ msgstr "Déférer le dépilage des arguments de fonction de la pile plus tard"
+
+#~ msgid "Attempt to fill delay slots of branch instructions"
+#~ msgstr "Tented de remplir de délais les fentes des instructions de branchement"
+
+#~ msgid "Delete useless null pointer checks"
+#~ msgstr "Détruire les vérifications 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 début d'un diagnostique lorsque les lignes doivent s'enrouler"
+
+#~ msgid "Permit '$' as an identifier character"
+#~ msgstr "Autoriser '$' comme identificateur de caractère"
+
+#~ 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 numéros d'instructions et de notes de lignes dans les vidanges de mises au point"
+
+#~ msgid "Perform DWARF2 duplicate elimination"
+#~ msgstr "Exécuter une élimination DAWRF2 des doublons"
+
+#~ msgid "Perform unused type elimination in debug info"
+#~ msgstr "Effectuer l'élimination des types non utilisés dans l'information de mise au point"
+
+#~ msgid "Generate code to check exception specifications"
+#~ msgstr "Générer le code pour vérifier les exceptions de spécifications"
+
+#~ 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 chaînes et les constantes de caractères en jeu de caractères <jeucar>"
+
+#~ msgid "Perform a number of minor, expensive optimizations"
+#~ msgstr "Effectuer un nombre mineur d'optimisations coûteuses"
+
+#~ msgid "Assume no NaNs or infinities are generated"
+#~ msgstr "Assumer qu'aucun NaNs ou infinités ne soit généré"
+
+#~ 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 mémoire dans les registres avant de les utiliser"
+
+#~ msgid "Copy memory operands into registers before use"
+#~ msgstr "Copier les opérandes mémoire dans les registres avant de les utiliser"
+
+#~ msgid "Do not assume that standard C libraries and \"main\" exist"
+#~ msgstr "Ne pas assumer que les bibliothèques 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 "Exécuter l'élimination de sous-expression commune globale"
+
+#~ msgid "Perform redundant load after store elimination in global common subexpression elimination"
+#~ msgstr "Exécuter un stockage redondant après l'élimination de sous-expression commune globale"
+
+#~ msgid "Perform enhanced load motion during global common subexpression elimination"
+#~ msgstr "Exécuter un chargement amélioré lors de l'élimination de sous-expression commune globale"
+
+#~ msgid "Perform store motion after global common subexpression elimination"
+#~ msgstr "Exécuter un stockage après l'élimination de sous-expression commune globale"
+
+#~ msgid "Recognize GNU-defined keywords"
+#~ msgstr "Reconnaître les mots clés définis GNU"
+
+#~ msgid "Generate code for GNU runtime environment"
+#~ msgstr "Générer du code pour l'environnement GNU d'exécution"
+
+#~ msgid "Enable guessing of branch probabilities"
+#~ msgstr "Autoriser l'estimation des probabilités de branchement"
+
+#~ msgid "Assume normal C execution environment"
+#~ msgstr "Présumer que l'environnement d'exécution 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 "Exécuter la conversion des sauts conditionels à des équivalents sans branchements"
+
+#~ msgid "Perform conversion of conditional jumps to conditional execution"
+#~ msgstr "Exécuter la conversion des sauts conditionnels à une exécution conditionnel"
+
+#~ msgid "Export functions even if they can be inlined"
+#~ msgstr "Exporter les fonctions même 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 générer 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 "Intégrer les fonctions simples à l'intérieur 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> spécifier le jeu de caractères par défaut pour les fichiers source"
+
+#~ msgid "Instrument function entry and exit with profiling calls"
+#~ msgstr "Traiter les entrées et les sorties des fonctions avec appels de profilage"
+
+#~ msgid "Generate code for functions even if they are fully inlined"
+#~ msgstr "Générer le code pour les fonctions même si elles sont complètement enligne"
+
+#~ msgid "Emit static const variables even if they are not used"
+#~ msgstr "Produire des variables constantes statiques même si elles ne sont pas utilisées"
+
+#~ msgid "Give external symbols a leading underscore"
+#~ msgstr "Afficher les symboles externes préfixés d'un caractère de soulignement"
+
+#~ msgid "Perform loop optimizations"
+#~ msgstr "Exécuter l'optimisation des boucles"
+
+#~ msgid "Set errno after built-in math functions"
+#~ msgstr "Initialiser errno après les fonctions internes mathématiques"
+
+#~ msgid "Report on permanent memory allocation"
+#~ msgstr "Rapporter l'allocation de mémoire 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 unités 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 caractères 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 "Générer le code pour l'environnement d'exécution 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 "Exécuter la boucle par désenroulement de toutes les boucles"
+
+#~ msgid "Perform loop unrolling when iteration count is known"
+#~ msgstr "Exécuter un dé-roulement des boucles lorsque le compteur d'itération est connu"
+
+#~ msgid "When possible do not generate stack frames"
+#~ msgstr "Lorsque c'est possible ne pas générer des trames de pile"
+
+#~ msgid "Recognize C++ kewords like \"compl\" and \"xor\""
+#~ msgstr "Reconnaître les mots clés C++ comme \"compl\" et \"xor\""
+
+#~ msgid "Do the full register move optimization pass"
+#~ msgstr "Effectuer la passe d'optimisation complète des déplacements par les registres"
+
+#~ msgid "Optimize sibling and tail recursive calls"
+#~ msgstr "Optimiser sur mesure les appels enfants et récursif"
+
+#~ 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 aggrégats en mémoire, pas dans les registres"
+
+#~ msgid "Perform loop peeling"
+#~ msgstr "Exécuter des réductions de boucles"
+
+#~ msgid "Enable machine specific peephole optimizations"
+#~ msgstr "Autoriser les optimisations des trous spécifiques à une machine"
+
+#~ msgid "Enable an RTL peephole pass before sched2"
+#~ msgstr "Autoriser l'exécution de la passe RTL avant sched2"
+
+#~ msgid "Downgrade conformance errors to warnings"
+#~ msgstr "Dégrader les erreurs de conformité en des avertissements"
+
+#~ msgid "Generate position-independent code if possible"
+#~ msgstr "Générer du code indépendant de la position si possible"
+
+#~ msgid "Generate position-independent code for executables if possible"
+#~ msgstr "Générer du code indépendant de la position pour les exécutables si possible"
+
+#~ msgid "Generate prefetch instructions, if available, for arrays in loops"
+#~ msgstr "Générer des instructions prérecherchées, si disponible, pour les tableaux dans les boucles"
+
+#~ msgid "Treat the input file as already preprocessed"
+#~ msgstr "Traiter le fichier d'entrée comme ayant déjà é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 "Insérer 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 génération 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 "Insérer le code pour profile les expressions de valeurs"
+
+#~ msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
+#~ msgstr "-frandom-seed=<chaîne>\tfaire une compilation reproduisible en utilisant <chaîne>"
+
+#~ msgid "Strength reduce all loop general induction variables"
+#~ msgstr "Renforcer la réduction de toutes les boucles par induction des variables"
+
+#~ msgid "Return small aggregates in registers"
+#~ msgstr "Retourner les petits aggrégats dans les registres"
+
+#~ msgid "Enables a register move optimization"
+#~ msgstr "Autoriser l'optimisation des déplacements par registre"
+
+#~ msgid "Perform a register renaming optimization pass"
+#~ msgstr "Effectuer une changement de nom de registres après une passe d'optimisation"
+
+#~ msgid "Reorder basic blocks to improve code placement"
+#~ msgstr "Ré-ordonner les blocs de base pour améliorer l'emplacement de code"
+
+#~ msgid "Reorder functions to improve code placement"
+#~ msgstr "Ré-ordonner les fonctions pour améliorer 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 interchangés lors de l'éexécution"
+
+#~ 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 après les optimisations de boucle"
+
+#~ msgid "Run the loop optimizer twice"
+#~ msgstr "Exécuter 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 défaut"
+
+#~ msgid "Generate run time type descriptor information"
+#~ msgstr "Générer l'information pour un type de descripteur lors de l'exécution"
+
+#~ 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 spéculatif de non chargements"
+
+#~ msgid "Allow speculative motion of some loads"
+#~ msgstr "Autoriser le mouvement spéculatif de quelques chargements"
+
+#~ msgid "Allow speculative motion of more loads"
+#~ msgstr "Autoriser le mouvement spéculatif de plusieurs chargements"
+
+#~ msgid "Allow premature scheduling of queued insns"
+#~ msgstr "Autoriser l'ordonnancement prématuré de queues insns"
+
+#~ msgid "Set dependence distance checking in premature scheduling of queued insns"
+#~ msgstr "Fixer la distance de vérification de dépendance dans l'ordonnancement prématuré 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 vérification de dépendance 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 prématurément ordonnancés"
+
+#~ msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
+#~ msgstr "-fsched-verbose=<numéro>\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 "Réordonnancer les instructions avant l'allocation de registres"
+
+#~ msgid "Reschedule instructions after register allocation"
+#~ msgstr "Réordonnancer les instructions après l'allocation de registres"
+
+#~ msgid "Mark data as shared rather than private"
+#~ msgstr "Marquer les données comme partagées au lieu de privées"
+
+#~ msgid "Use the same size for double as for float"
+#~ msgstr "Utiliser la même 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'énumération"
+
+#~ 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 "Désactiver 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 » signés par défaut"
+
+#~ msgid "Convert floating point constants to single precision constants"
+#~ msgstr "Convertir les constantes en virgules flottantes en constantes de simple précision"
+
+#~ msgid "Insert stack checking code into the program"
+#~ msgstr "Insérer du code de vérificaion 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 déroutement 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 déroutement si la pile va au delà du symbole <nom>"
+
+#~ msgid "Display statistics accumulated during compilation"
+#~ msgstr "Afficher les statistiques accumulés durant la compilation"
+
+#~ msgid "Perform strength reduction optimizations"
+#~ msgstr "Exécuter un réduction en force des optimisations"
+
+#~ msgid "Assume strict aliasing rules apply"
+#~ msgstr "Présumer que des règles stricts d'alias s'appliquent"
+
+#~ msgid "Check for syntax errors, then stop"
+#~ msgstr "Vérifier 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>\tspécifier la profondeur maximale d'instanciation de canevas"
+
+#~ msgid "Create data files needed by \"gcov\""
+#~ msgstr "Créer les fichiers de données nécessaires à \"gcov\""
+
+#~ msgid "Perform jump threading optimizations"
+#~ msgstr "Exécuter 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 modèle de génération de code par défaut de thread local"
+
+#~ msgid "Perform superblock formation via tail duplication"
+#~ msgstr "Exécuter la formation du super bloc via la duplication de la queue"
+
+#~ msgid "Assume floating-point operations can trap"
+#~ msgstr "On assume que les opérations en virgule flottante peuvent être attrappées"
+
+#~ msgid "Trap for signed overflow in addition, subtraction and multiplication"
+#~ msgstr "Attrapper les débordements de signe dans l'addition, la soustraction et la multiplication"
+
+#~ msgid "Compile whole compilation unit at a time"
+#~ msgstr "Compiler complètement à la fois une unité de compilation"
+
+#~ msgid "Allow math optimizations that may violate IEEE or ISO standards"
+#~ msgstr "Permettre les optimisations mathématiques 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 signés par défaut"
+
+#~ msgid "Perform loop unswitching"
+#~ msgstr "Exécuter des boucles sans branchement"
+
+#~ msgid "Just generate unwind tables for exception handling"
+#~ msgstr "Générer 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 utilisées"
+
+#~ 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 séparer 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 chaînes et les constantes larges de caractères en jeux de caractères <cset>"
+
+#~ msgid "Generate a #line directive pointing at the current working directory"
+#~ msgstr "Générer une directive #ligne pointant sur le répertoire courant de travail"
+
+#~ msgid "Assume signed arithmetic overflow wraps around"
+#~ msgstr "Assumer un débordement arithmétique signé enroulé"
+
+#~ msgid "Store strings in writable data section"
+#~ msgstr "Stocker les chaînes dans les sections d'écriture des données"
+
+#~ msgid "Emit cross referencing information"
+#~ msgstr "Produire l'information des références croisées"
+
+#~ msgid "Put zero initialized data in the bss section"
+#~ msgstr "Placer des données initialisées de zéros dans la section bss"
+
+#~ msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
+#~ msgstr "Générer un recherche molle de class (via objc_getClass()) pour l'utilisation en mode Zero-Link"
+
+#~ msgid "Generate debug information in default format"
+#~ msgstr "Générer les informations de mise au point dans le format par défaut"
+
+#~ msgid "Generate debug information in COFF format"
+#~ msgstr "Générer les informations de mise au point dans le format COFF"
+
+#~ msgid "Generate debug information in DWARF v2 format"
+#~ msgstr "Générer les informations de mise au point dans le format DWARF v2"
+
+#~ msgid "Dump declarations to a .decl file"
+#~ msgstr "Vidanger les déclarations dans un fichier .decl"
+
+#~ msgid "Generate debug information in default extended format"
+#~ msgstr "Générer les informations de mise au point dans le format étendu par défaut"
+
+#~ msgid "Generate debug information in STABS format"
+#~ msgstr "Générer les informations de mise au point dans le format STABS"
+
+#~ msgid "Generate debug information in extended STABS format"
+#~ msgstr "Générer les informations de mise au point dans le format étendu STABS"
+
+#~ msgid "Generate debug information in VMS format"
+#~ msgstr "Générer les informations de mise au point dans le format VMS"
+
+#~ msgid "Generate debug information in XCOFF format"
+#~ msgstr "Générer les information de mise au point dans le format XCOFF"
+
+#~ msgid "Generate debug information in extended XCOFF format"
+#~ msgstr "Générer 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 <répertoire>\tajouter <répertoire> à la fin du chemin système d'inclusion"
+
+#~ msgid "-imacros <file>\tAccept definition of macros in <file>"
+#~ msgstr "-imacros <fichier>\taccepter la définition 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>\tsélectionner le <chemin> comme préfixer aux deux prochaines options"
+
+#~ msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
+#~ msgstr "-isysroot <répertoire>\tsélectionner le <répertoire> comme répertoire racine du système"
+
+#~ msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
+#~ msgstr "-isystem <répertoire>\tajouter le <répertoire> au début du chemin d'inclusion principal"
+
+#~ msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
+#~ msgstr "-iwithprefix <répertoire>\tajouter le <répertoire> à la fin du chemin d'inclusion principal"
+
+#~ msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
+#~ msgstr "-iwithprefixbefore <répertoire>\tajouter le <répertoire> à 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 répertoires standard système d'inclusion (ceux spécifiés avec -isystem seront encore utilisés)"
+
+#~ msgid "Do not search standard system include directories for C++"
+#~ msgstr "Ne pas rechercher les répertoires standard système 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 nécessaires 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 "Générer les en-têtes C pour les options spécifiques à la plate-forme"
+
+#~ msgid "Do not display functions compiled or elapsed time"
+#~ msgstr "Ne pas afficher les fonctions compilées 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 "Obsolète à 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 "Obsolète à la faveur de l'option -std=gnu99"
+
+#~ msgid "Deprecated in favor of -std=c89"
+#~ msgstr "Obsolète à 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 prédéfinir les macros spécifiques au système 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 supportée 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 spécifié - 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 utilisés ensembles"
+
+#~ msgid "-msoft-float and -mhard_float may not be used together"
+#~ msgstr "-msoft-float et -mhard_float ne peuvent être utilisées ensembles"
+
+#~ msgid "-mbig-endian and -mlittle-endian may not be used together"
+#~ msgstr "-mbig-endian et -mlittle-endian ne peuvent être utilisés ensemble"
+
+#~ msgid "the m210 does not have little endian support"
+#~ msgstr "Le m210 ne supporte pas le code pour système à 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 spécifiés ensembles"
+
+#~ msgid " conflicting code gen style switches are used"
+#~ msgstr " code de génération de style de switches utilisées 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'entrée est faite à partir de l'entrée 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 arithmétique d'un pointeur vers un membre"
+
+#~ msgid "declaration of \"%s\" shadows a parameter"
+#~ msgstr "la déclaration de « %s » masque un paramètre"
+
+#~ 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'énumérateur « %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 même non de la classe de fermeture"
+
+#~ msgid "field `%D' declared static in union"
+#~ msgstr "champ « %D » déclaré statique dans l'union"
+
+#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ interdit les données de membres statiques « %D » avec le même 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'aggrégation 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'opérateur « delete » spécifique à la classe ne sera appellé, même s'ils sont déclarés lorsque la classe est définie"
+
+#~ msgid "Warn if deprecated class, method, or field is used"
+#~ msgstr "Avertir si une classe, une méthode ou un champ obsolète est utilisé"
+
+#~ msgid "Warn if deprecated empty statements are found"
+#~ msgstr "Avertir si des déclarations vides obsolètes sont trouvées"
+
+#~ msgid "Enable warnings about inter-procedural problems"
+#~ msgstr "Autoriser les avertissements à propos des problèmes inter-procédural"
+
+#~ msgid "Warn if .class files are out of date"
+#~ msgstr "Avertir si des fichier .class sont périmées"
+
+#~ msgid "Warn if modifiers are specified when not necessary"
+#~ msgstr "Avertir si des modificateurs sont spécifiés sans que cela ne soit nécessaires"
+
+#~ msgid "Warn about constructs with surprising meanings"
+#~ msgstr "Avertir à propos des construits ayant des sens surprenants"
+
+#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead"
+#~ msgstr "--CLASSPATH\tobsolète; 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 nommés dans une déclaration SAVE"
+
+#~ msgid "Backslashes in character and hollerith constants are special (not C-style)"
+#~ msgstr "Barres obliques inverses dans les constantes de caractères ou d'hollerith ne sont pas particulières (pas de style C)"
+
+#~ msgid "Delete libU77 intrinsics with bad interfaces"
+#~ msgstr "Détruire les intrinsèques libU77 ayant des interfaces erronées"
+
+#~ msgid "Disable libU77 intrinsics with bad interfaces"
+#~ msgstr "Désactiver les intrinsèques libU77 ayant des interfaces erronées"
+
+#~ msgid "Enable libU77 intrinsics with bad interfaces"
+#~ msgstr "Autoriser les intrinsèques libU77 ayant des interfaces erronées"
+
+#~ msgid "Hide libU77 intrinsics with bad interfaces"
+#~ msgstr "Cacher les intrinsèques libU77 ayant des interfaces erronées"
+
+#~ msgid "--bootclasspath=<path>\tReplace system path"
+#~ msgstr "--bootclasspath=<chemin>\tremplacer le <chemin> système"
+
+#~ msgid "Program written in strict mixed-case"
+#~ msgstr "Programme écrit dans une stricte casse mélangée"
+
+#~ 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 "Préserver la casse utilisée 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 spéciales de mise au point pour COMMON et EQUIVALENCE (désactivé)"
+
+#~ 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'arithmétique COMPLEXE pour éviter les bugs"
+
+#~ msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
+#~ msgstr "--encoding=<encodage>\tchoisir l'encodade d'entrée (par défaut provient de la locale)"
+
+#~ msgid "f2c-compatible code can be generated"
+#~ msgstr "code f2c compatible peut être généré"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Détruire les supports f2c intrinsèques non Fortran 77"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Désactiver les supports f2c intrinsèques non Fortran 77"
+
+#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Autoriser les supports f2c intrinsèques non Fortran 77"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Cacher les supports f2c intrinsèques non Fortran 77"
+
+#~ msgid "Unsupported; generate libf2c-calling code"
+#~ msgstr "Non supporté; générer 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 "Détruire les supports F90 intrinsèques non Fortran 77"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Désactiver les supports F90 intrinsèques non Fortran 77"
+
+#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Autoriser les supports F90 intrinsèques non Fortran 77"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Cacher les supports F90 intrinsèques 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 génération de code des tableaux"
+
+#~ msgid "Always check for non gcj generated classes archives"
+#~ msgstr "Toujours vérifier dans les archives de classes non générées gcj"
+
+#~ msgid "Generate code to check subscript and substring bounds"
+#~ msgstr "Générer du code pour vérifier les bornes des souscripts et des sous-chaînes"
+
+#~ 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 problèmes entre procédures"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+#~ msgstr "Détruire les supports g77 intrinsèques non Fortran 77"
+
+#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Désactiver les supports g77 intrinsèques non Fortran 77"
+
+#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Autoriser les supports F90 intrinsèques non Fortran 77"
+
+#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Cacher les supports g77 intrinsèques non Fortran 77"
+
+#~ msgid "Use offset tables for virtual method calls"
+#~ msgstr "Utiliser des tables de décalage pour les appels de méthodes virtuelles"
+
+#~ msgid "Initialize local vars and arrays to zero"
+#~ msgstr "Initialiser les vars locales et les tableaux à zéro"
+
+#~ msgid "Intrinsics letters in arbitrary cases"
+#~ msgstr "Lettres d'instrinsèques en casse arbitraire"
+
+#~ msgid "Intrinsics spelled as e.g. SqRt"
+#~ msgstr "Intrinsèques épellées tel que SqRt"
+
+#~ msgid "Intrinsics in lowercase"
+#~ msgstr "Intrinsèques en minuscules"
+
+#~ msgid "Intrinsics in uppercase"
+#~ msgstr "Intrinsèques en majuscules"
+
+#~ msgid "Assume native functions are implemented using JNI"
+#~ msgstr "Présumer que les fonctions natives sont implantées et qu'elles utilisent JNI"
+
+#~ msgid "Language keyword letters in arbitrary cases"
+#~ msgstr "Lettres des mots clés du langage dans des casses arbitraires"
+
+#~ msgid "Language keywords spelled as e.g. IOStat"
+#~ msgstr "Mots clés du langage épellés tel que IOStat"
+
+#~ msgid "Language keywords in lowercase"
+#~ msgstr "Mots clés du langage en minuscules"
+
+#~ msgid "Language keywords in uppercase"
+#~ msgstr "Mots clés du langage en majuscules"
+
+#~ msgid "Delete MIL-STD 1753 intrinsics"
+#~ msgstr "Détruire les intrinsèques MIL-STD 1753"
+
+#~ msgid "Disable MIL-STD 1753 intrinsics"
+#~ msgstr "Désactiver les intrinsèques MIL-STD 1753"
+
+#~ msgid "Enable MIL-STD 1753 intrinsics"
+#~ msgstr "Autoriser intrinsèques MIL-STD 1753"
+
+#~ msgid "Hide MIL-STD 1753 intrinsics"
+#~ msgstr "Cacher les intrinsèques MIL-STD 1753"
+
+#~ msgid "Take at least one trip through each iterative DO loop"
+#~ msgstr "Exécuter une dernière fois la visite à traves chaque boucle itérative 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 (très peu pour l'instant) des extensions Fortran"
+
+#~ msgid "Allow appending a second underscore to externals"
+#~ msgstr "Permettre l'ajout d'un second caractère de soulignement aux externes"
+
+#~ msgid "Do not print names of program units as they are compiled"
+#~ msgstr "Afficher les noms des unités de programme tels que compilées"
+
+#~ msgid "Internally convert most source to lowercase"
+#~ msgstr "Convertir de manière interne la majorité des sources en majuscules"
+
+#~ msgid "Internally preserve source case"
+#~ msgstr "Préserver à 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 vérificaitions des affectations dans le stockage des tableaux d'objets"
+
+#~ msgid "Symbol names spelled in mixed case"
+#~ msgstr "Noms des symboles épellés dans des casses mélangées"
+
+#~ 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 préfixes des bases des constantes non décimales 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 passés comme arguments"
+
+#~ msgid "Allow ordinary copying of ASSIGN'ed vars"
+#~ msgstr "Permettre le copie ordinaire des variable affectées"
+
+#~ msgid "Dummy array dimensioned to (1) is assumed-size"
+#~ msgstr "Tableau factice dont la taille des dimensions (1) est assumée"
+
+#~ msgid "Trailing comma in procedure call denotes null argument"
+#~ msgstr "Virgule de fin dans l'appel de la procédure dénote 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 caractères de soulignement aux externes"
+
+#~ msgid "Delete libU77 intrinsics"
+#~ msgstr "Détruire les intrinsèques libU77"
+
+#~ msgid "Disable libU77 intrinsics"
+#~ msgstr "Désactiver les intrinsèques libU77"
+
+#~ msgid "Enable libU77 intrinsics"
+#~ msgstr "Autoriser les intrinsèques libU77"
+
+#~ msgid "Hide libU77 intrinsics"
+#~ msgstr "Cacher les intrinsèques libU77"
+
+#~ msgid "Print g77-specific version information and run internal tests"
+#~ msgstr "Afficher les informations de version spécifiques du compilateur g77, exécuter 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 "Détruire les supports VXT Fortran intrinsèques non Fortran-77"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Désactiver les supports VXT Fortran intrinsèques non Fortran-77"
+
+#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Désactiver les supports VXT Fortran intrinsèques non Fortran-77"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Cacher les supports VXT Fortran des intrinsèques non Fortran-77"
+
+#~ msgid "Print internal debugging-related information"
+#~ msgstr "Afficher les informations internes reliées à 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 zéros"
+
+#~ msgid "-gnat<options>\tSpecify options to GNAT"
+#~ msgstr "-gnat<options>\tSpécifier les options pour GNAT"
+
+#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+#~ msgstr "la concaténation de chaînes de litéraux avec « __FUNCTION__ » est obsolète"
+
+#~ msgid "ISO C++ forbids range expressions in switch statements"
+#~ msgstr "ISO C++ interdit les intervalles dans les déclarations 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 déclaration de « %s » masque %s"
+
+#~ msgid "`struct %s' incomplete in scope ending here"
+#~ msgstr "« struct %s » incomplète dans le champ terminant ici"
+
+#~ msgid "`union %s' incomplete in scope ending here"
+#~ msgstr "« union %s » incomplète dans le champ terminant ici"
+
+#~ msgid "`enum %s' incomplete in scope ending here"
+#~ msgstr "« enum %s » incomplète dans le champ terminant ici"
+
+#~ msgid "label `%s' defined but not used"
+#~ msgstr "étiquette « %s » définie mais pas utilisée"
+
+#~ msgid "shadowing library function `%s'"
+#~ msgstr "masquage de la fonction « %s » de la bibliothèque"
+
+#~ msgid "library function `%s' declared as non-function"
+#~ msgstr "fonction « %s » de la bibliothèque déclarée comme n'étant pas une fonction"
+
+#~ msgid "conflicting types for `%s'"
+#~ msgstr "types conflictuels pour « %s »"
+
+#~ msgid "redeclaration of `%s'"
+#~ msgstr "redéclaration de « %s »"
+
+#~ msgid "prototype for `%s' follows"
+#~ msgstr "le prototype de « %s » suit"
+
+#~ msgid "non-prototype definition here"
+#~ msgstr "définition 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 déclaration précédente"
+
+#~ msgid "redundant redeclaration of `%s' in same scope"
+#~ msgstr "redéclaration redondante de « %s » dans le même champ"
+
+#~ msgid "a parameter"
+#~ msgstr "un paramètre"
+
+#~ msgid "a previous local"
+#~ msgstr "une locale précédente"
+
+#~ msgid "a global declaration"
+#~ msgstr "une déclaration globale"
+
+#~ msgid "`%s' used prior to declaration"
+#~ msgstr "« %s » utilisé avant sa déclaration"
+
+#~ msgid "`%s' was declared implicitly `extern' and later `static'"
+#~ msgstr "« %s » a été déclaré implicitement « extern » et plus loin « static »"
+
+#~ msgid "previous external decl of `%s'"
+#~ msgstr "déclaration externe précédente de « %s »"
+
+#~ msgid "type mismatch with previous implicit declaration"
+#~ msgstr "non concordance de type avec la déclaration implicite précédente"
+
+#~ msgid "`%s' was previously implicitly declared to return `int'"
+#~ msgstr "« %s » a été précédemment déclaré implicitement comme retournant un « int »"
+
+#~ msgid "`%s' was declared `extern' and later `static'"
+#~ msgstr "« %s » a été déclaré « 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é précédemment déclarée à l'intérieur d'un bloc"
+
+#~ msgid "declaration of `%s' has `extern' and is initialized"
+#~ msgstr "« %s » initialisé et déclaré « extern »"
+
+#~ msgid "initializer fails to determine size of `%s'"
+#~ msgstr "l'initialisation n'a pas pu déterminer 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 paramètre « %s » masque un typedef"
+
+#~ msgid "parameter `%s' points to incomplete type"
+#~ msgstr "le paramètre « %s » pointe vers un type incomplet"
+
+#~ msgid "parameter points to incomplete type"
+#~ msgstr "le paramètre pointe vers un type incomplet"
+
+#~ msgid "`void' in parameter list must be the entire list"
+#~ msgstr "si « void » est dans une liste de paramètres, toute la liste doit l'être"
+
+#~ msgid "`union %s' declared inside parameter list"
+#~ msgstr "« union %s » déclarée à l'intérieur de la liste de paramètres"
+
+#~ msgid "`enum %s' declared inside parameter list"
+#~ msgstr "« enum %s » déclarée à l'intérieur de la liste de paramètres"
+
+#~ msgid "anonymous union declared inside parameter list"
+#~ msgstr "union anonyme déclarée à l'intérieur de la liste des paramètres"
+
+#~ msgid "anonymous enum declared inside parameter list"
+#~ msgstr "énumération anonyme déclarée à l'intérieur de la liste des paramètres"
+
+#~ 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 » apparaît en double"
+
+#~ msgid "parm types given both in parmlist and separately"
+#~ msgstr "types des paramètres à la fois donnés dans la liste et séparément"
+
+#~ msgid "parameter `%s' declared void"
+#~ msgstr "paramètre « %s » déclaré « void »"
+
+#~ msgid "universal-character-name '\\u%04x' not valid in identifier"
+#~ msgstr "nom-de-caractère-universel « \\U%04x » invalide dans l'identificcateur"
+
+#~ msgid "ignoring invalid multibyte character"
+#~ msgstr "caractère 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 définition de macros dans le <fichier>\n"
+#~ " -iprefix <chemin> Spécifier le <chemin> comme un préfixe aux prochaines deux options\n"
+#~ " -iwithprefix <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion système\n"
+#~ " -iwithprefixbefore <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion principal\n"
+#~ " -isystem <rép> Ajouter le <rép>ertoire au début du chemin d'inclusion système\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 <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion système\n"
+#~ " -I <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion principal\n"
+#~ " -I- Raffiner le contrôle du chemin d'inclusion; consulter la doc\n"
+#~ " -nostdinc Ne pas rechercher dans les répertoires d'inclusion système\n"
+#~ " (les rép spécifiés avec -isystem seront encore utilisés)\n"
+#~ " -nostdinc++ Ne pas rechercher dans les répertoires d'inclusion système 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> Spécifier 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 rencontrés\n"
+#~ " -W[no-]comment{s} Avertir [ou non] si un commentaire débute à l'intérieur \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 fonctionnalités absentes\n"
+#~ " en C traditionnel\n"
+#~ " -W[no-]undef Avertir [ou non] à propos des macros utilisées dans des\n"
+#~ " #if sans être définies\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-têtes système\n"
+#~ " -W[no-]all Générer [ou non] la plupart des avertissements du\n"
+#~ " préprocesseur\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 Générer les dépendances pour make\n"
+#~ " -MM Comme -M, en ignorant les fichiers d'en-têtes système\n"
+#~ " -MD Générer les dépendances pour make et compiler\n"
+#~ " -MMD Comme -MD, en ignorant les fichiers d'en-têtes système\n"
+#~ " -MF <fichier> Écrire les dépendances dans le <fichier>\n"
+#~ " -MG Traiter les en-têtes manquants comme des fichiers générés\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 Générer des cibles factices pour tous les en-têtes\n"
+#~ " -MQ <target> Ajouter une cible protégée pour MAKE\n"
+#~ " -MT <target> Ajouter une cible non protégée\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> Définir une <macro> avec la chaîne « 1 » pour valeur\n"
+#~ " -D<macro>=<valeur> Définir une <macro> de <valeur>\n"
+#~ " -A<question>=(<réponse>) Créer une assertion <question>=<réponse>\n"
+#~ " -A-<question>=(<réponse>) Dissocier la <réponse> à la <question>\n"
+#~ " -U<macro> Oublier la définition de la <macro> \n"
+#~ " -v Afficher le numéro 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-tête tel qu'utilisés\n"
+#~ " -C Ne pas mettre de côté les commantaires\n"
+#~ " -dM Afficher la liste des définitions de macro actives à la fin\n"
+#~ " -dD Préserver les définitions de macros dans la sortie\n"
+#~ " -dN Comme -dD, mais seuls les noms sont préservés\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 Considérer [ou non] que le fichier d'entrée est \n"
+#~ " déjà pré-traité\n"
+#~ " -ftabstop=<nombre> Largeur des tabulations pour indiquer la colonne\n"
+#~ " -P Ne pas générer 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-mémoire\n"
+
+# FIXME
+#~ msgid "ISO C forbids the address of a cast expression"
+#~ msgstr "ISO C interdit l'adresse d'une expression transtypée"
+
+#~ 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 artihmétique compliquée"
+
+# FIXME
+#~ msgid "aggregate initializer is not constant"
+#~ msgstr "l'initialisation d'aggrégat n'est pas une constante"
+
+# FIXME
+#~ msgid "aggregate initializer uses complicated arithmetic"
+#~ msgstr "l'initialisation d'un aggrégat utilise une arithmétique compliquée"
+
+# FIXME
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "le décalage 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 passée partiellement dans la pile et le registre"
+
+# I18N
+#~ msgid "open %s"
+#~ msgstr "open %s"
+
+#~ msgid "incompatibilities between object file & expected values"
+#~ msgstr "incompatibilités 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, décalage = 0x%.8lx, sorte = %s\n"
+
+# FIXME
+#~ msgid "string section missing"
+#~ msgstr "chaîne de section manquante"
+
+#~ msgid "section pointer missing"
+#~ msgstr "pointeur de section manquant"
+
+#~ msgid "no symbol table found"
+#~ msgstr "aucune table des symboles trouvée"
+
+#~ msgid ""
+#~ "\n"
+#~ "Updating header and load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Mise à jour des en-têtes 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 région"
+
+#~ msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+#~ msgstr "fonction %s, région %d, décalage = %ld (0x%.8lx)\n"
+
+#~ msgid "bad magic number"
+#~ msgstr "nombre magique erroné"
+
+#~ msgid "bad header version"
+#~ msgstr "version d'en-tête erronée"
+
+# FIXME: ou version d'en-tête brut erronée
+#~ msgid "bad raw header version"
+#~ msgstr "version brute d'en-tête erronée"
+
+# FIXME: ou tampon d'en-tête brut trop petit
+#~ msgid "raw header buffer too small"
+#~ msgstr "tampon brut d'en-tête trop petit"
+
+#~ msgid "old raw header file"
+#~ msgstr "ancien fichier d'en-tête 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 "caractère « \\%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 répertoire"
+
+#~ msgid "directory name missing after %s"
+#~ msgstr "nom de répertoire manquant après %s"
+
+#~ msgid "file name missing after %s"
+#~ msgstr "nom de fichier manquant après %s"
+
+#~ msgid "path name missing after %s"
+#~ msgstr "nom de chemin manquant après %s"
+
+#~ msgid "unknown string token %s\n"
+#~ msgstr "élément lexical %s inconnu\n"
+
+#~ msgid "non-hex digit '%c' in universal-character-name"
+#~ msgstr "chiffre « %c » non hexadécimal dans le nom-de-caractère-universel"
+
+#~ msgid "universal-character-name on EBCDIC target"
+#~ msgstr "nom-de-caractère-universel pour une cible EBCDIC"
+
+#~ msgid "universal-character-name out of range"
+#~ msgstr "nom-de-caractère-universel est hors limite"
+
+#~ msgid "escape sequence out of range for its type"
+#~ msgstr "séquence d'échappement hors limite pour son type"
+
+#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+#~ msgstr "#import est obsolète, enveloppez le avec #ifndef dans le fichier d'en-tête"
+
+# FIXME
+#~ msgid "#pragma once is obsolete"
+#~ msgstr "utiliser #pragma once est obsolète"
+
+#~ msgid "((anonymous))"
+#~ msgstr "((anonyme))"
+
+#~ msgid "%s: warnings being treated as errors\n"
+#~ msgstr "%s : les avertissements sont traités 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 nécessaire.\n"
+#~ "Consultez %s pour plus de détail.\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 débogage DWARF1 est obsolète"
+
+#~ msgid "can't get current directory"
+#~ msgstr "ne peut repérer le répertoire courant"
+
+# FRONT
+#~ msgid "unsupported wide integer operation"
+#~ msgstr "opération sur de large entier non supportée"
+
+#~ 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 données %s.\n"
+
+#~ msgid "Assuming that all execution counts are zero.\n"
+#~ msgstr "Suppose que tous les compteurs d'exécution sont à zéro.\n"
+
+#~ msgid "No executable code associated with file %s.\n"
+#~ msgstr "Aucun code exécutable 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 entrées 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 numéro %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: numéro 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 "Création de %s.\n"
+
+#~ msgid "invalid string `%s' in define_cpu_unit"
+#~ msgstr "chaîne invalide « %s » dans define_cpu_unit"
+
+#~ msgid "invalid string `%s' in define_bypass"
+#~ msgstr "chaîne invalide « %s » dans define_bypass"
+
+#~ msgid "invalid first string `%s' in exclusion_set"
+#~ msgstr "première chaîne invalide « %s » dans exclusion_set"
+
+#~ msgid "invalid second string `%s' in exclusion_set"
+#~ msgstr "seconde chaîne invalide « %s » dans exclusion_set"
+
+#~ msgid "invalid second string `%s' in presence_set"
+#~ msgstr "seconde chaîne 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 réservation « %s »"
+
+#~ msgid "unit `%s' in exclusion is not declared"
+#~ msgstr "unité « %s » dans l'exclusion n'est pas déclaré"
+
+#~ msgid "unit `%s' excludes itself"
+#~ msgstr "unité « %s » s'exclue elle-même"
+
+#~ msgid "repeated declaration of automaton `%s'"
+#~ msgstr "déclaration répété de l'automate « %s »"
+
+#~ msgid "`%s' is already used as insn reservation name"
+#~ msgstr "« %s » est déjà utilisé dans le nom de réservation insn"
+
+#~ msgid "automaton `%s' is not declared"
+#~ msgstr "automate « %s » n'est pas déclaré"
+
+#~ msgid "`%s' is declared as cpu unit"
+#~ msgstr "« %s » déclaré comme unité cpu"
+
+#~ msgid "`%s' is declared as cpu reservation"
+#~ msgstr "« %s » est déclaré comme réservation cpu"
+
+#~ msgid "repeated declaration of unit `%s'"
+#~ msgstr "déclaration répété d'unité « %s »"
+
+#~ msgid "repeated declaration of reservation `%s'"
+#~ msgstr "déclaration répété de réservation « %s »"
+
+#~ msgid "there is no insn reservation `%s'"
+#~ msgstr "il n'y a pas de réservation insn « %s »"
+
+#~ msgid "the same bypass `%s - %s' is already defined"
+#~ msgstr "le même bypass « %s - %s » est déjà défini"
+
+#~ msgid "bypass `%s - %s' is already defined"
+#~ msgstr "bypass « %s - %s » est déjà défini"
+
+#~ msgid "undeclared unit or reservation `%s'"
+#~ msgstr "unité ou réservation « %s » non déclaré"
+
+#~ msgid "unit `%s' is not used"
+#~ msgstr "unité « %s » n'est utilisé"
+
+#~ msgid "reservation `%s' is not used"
+#~ msgstr "réservation « %s » n'est utilisé"
+
+#~ msgid "cycle in definition of reservation `%s'"
+#~ msgstr "cycle de définition de réservation « %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 "Générer des infos de mise au point de format STABS"
+
+#~ msgid "Generate extended STABS format debug info"
+#~ msgstr "Générer des infos de mise au point de format STABS étendu"
+
+#~ msgid "Generate DWARF-1 format debug info"
+#~ msgstr "Générer les informations de mise au point du format DWARF-1"
+
+#~ msgid "Generate extended DWARF-1 format debug info"
+#~ msgstr "Générer les extensions des informations de mise au point du format DWARF-1"
+
+#~ msgid "Generate DWARF-2 debug info"
+#~ msgstr "Générer les informations de mise au point DWARF-2"
+
+#~ msgid "Generate XCOFF format debug info"
+#~ msgstr "Générer les informations de mise au point du format XCOFF"
+
+#~ msgid "Generate extended XCOFF format debug info"
+#~ msgstr "Générer les extensions de mise au point du format XCOFF"
+
+#~ msgid "Generate COFF format debug info"
+#~ msgstr "Générer les informations de mise au point du format COFF"
+
+#~ msgid "Generate VMS format debug info"
+#~ msgstr "Générer des infos de mise au point de format VMS"
+
+#~ msgid "Consider all mem refs through pointers as volatile"
+#~ msgstr "Considérer toutes les référence en mémoire comme faite par des pointeurs volatiles"
+
+#~ msgid "Consider all mem refs to global data to be volatile"
+#~ msgstr "Considérer toutes les références mémoire à des données globales comme volatiles"
+
+#~ msgid "Consider all mem refs to static data to be volatile"
+#~ msgstr "Considérer toutes les références mémoire à des données 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 "Déterminer le standard du langage"
+
+#~ msgid "Make bit-fields by unsigned by default"
+#~ msgstr "Rendre les champs de bits non signés par défaut"
+
+#~ msgid "Allow different types as args of ? operator"
+#~ msgstr "Permettre des types différents pour les arguments de l'opérateur ?"
+
+#~ msgid "Allow the use of $ inside identifiers"
+#~ msgstr "Permettre l'utilisation de $ à l'intérieur d'identificateurs"
+
+#~ msgid "Use the smallest fitting integer to hold enums"
+#~ msgstr "Utiliser le plus petit entier pour contenir l'énumération (enums)"
+
+#~ msgid "Warn if nested comments are detected"
+#~ msgstr "Avertir si des commentaires imbriqués sont détectés"
+
+#~ 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 chaînes de format qui ne sont pas des chaînes"
+
+#~ 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 rencontrés"
+
+#~ msgid "Mark strings as 'const char *'"
+#~ msgstr "Marque les chaînes 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 utilisés\n"
+
+#~ msgid " -p Enable function profiling\n"
+#~ msgstr " -p autoriser le profilage des fonctions\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Language specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Options spécifiques 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 spécifiques %s qui ne sont pas documentés 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 supportée"
+
+#~ 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 » ignorée en raison de la spécification 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 séclectionné)"
+
+#~ 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 répété avant l'exécution 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 après plusieurs inline récursifs"
+
+#~ 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 initialisées peuvent être placées dans la zone mémoire 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 "Générer le code pour un Sun FPA"
+
+#~ msgid "Do not generate code for a Sun FPA"
+#~ msgstr "Ne pas générer le code pour un Sun FPA"
+
+#~ msgid "Generate code for a Sun Sky board"
+#~ msgstr "Générer 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 "Générer 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'opérande «%%d» n'est pas un registre"
+
+#~ msgid "operand is r0"
+#~ msgstr "opérande est R0"
+
+#~ msgid "operand is const_double"
+#~ msgstr "opérande 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 erronée (%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'intérieur 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 zéro"
+
+#~ msgid "Trap on integer divide overflow"
+#~ msgstr "Intercepter les débordements lors de divisions avec des entiers"
+
+#~ msgid "Don't trap on integer divide overflow"
+#~ msgstr "Ne pas intercepter les débordement lors de divisions avec des entiers"
+
+#~ msgid "Use mips16 entry/exit psuedo ops"
+#~ msgstr "Utiliser les pseudo-op mips16 d'entrée/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 spécifiés: « %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 booléens Xtensa"
+
+#~ msgid "Do not use the Xtensa boolean register option"
+#~ msgstr "Ne pas utiliser l'option des registres booléens Xtensa"
+
+#~ msgid "Use the Xtensa floating-point unit"
+#~ msgstr "Utiliser l'unité matérielle pour virgule flottante Xtensa"
+
+#~ msgid "Do not use the Xtensa floating-point unit"
+#~ msgstr "Ne pas utiliser l'unité matérielle pour virgule flottante Xtensa"
+
+#~ msgid "Serialize volatile memory references with MEMW instructions"
+#~ msgstr "Sérialiser les références à la mémoire volatile avec des instructions MEMW"
+
+#~ msgid "Do not serialize volatile memory references with MEMW instructions"
+#~ msgstr "Ne pas sérialiser les références à la mémoire 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 portée d'appel de la méthode n'est pas de type aggrégat « %T »"
+
+#~ msgid "destructors take no parameters"
+#~ msgstr "destructeurs ne prend aucun paramètre"
+
+#~ 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 opérateur"
+
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s pour l'opérateur «%T [%T]»"
+
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s pour l'opérateur «%T %s [%T]»"
+
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s pour l'opérateur «%s [%T]»"
+
+#~ msgid "`%D' must be declared before use"
+#~ msgstr "« %D » doit être déclaré avant son usage"
+
+#~ msgid " initializing argument %P of `%D' from result of `%D'"
+#~ msgstr " initialisation de l'argument %P de « %D » à partir du résultat « %D »"
+
+#~ msgid " initializing temporary from result of `%D'"
+#~ msgstr " initialisation temporaire à partir du résultat « %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 décalage"
+
+#~ msgid "lookup of `%D' finds `%#D'"
+#~ msgstr "recherche de « %D » a repéré « %#D »"
+
+#~ msgid " instead of `%D' from dependent base class"
+#~ msgstr " au lieu de « %D » à partir d'un classe de base dépendante"
+
+#~ 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 portée de « %#T » (« %#D ») ne concorde pas avec la recherche dans la portée courante (« %#D »)"
+
+#~ msgid "invalid declarator"
+#~ msgstr "déclarateur invalide"
+
+#~ msgid "`%T' is implicitly a typename"
+#~ msgstr "« %T » est implicitement un typename"
+
+#~ msgid "parameter `%D' invalidly declared offset type"
+#~ msgstr "paramètre « %D » incorrectement validé comme type de décalage"
+
+#~ msgid "`%s %T' declares a new type at namespace scope"
+#~ msgstr "« %s %T » déclare 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 dépendantes ne sont pas visibles à la recherche de nom non qualifié - pour référer à type par héritage, 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 après la déclaration %#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 » défini 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 données membres invalide"
+
+#~ msgid "(use `=' to initialize static data members)"
+#~ msgstr "(utiliser «=» pour initialiser les données 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 déclaration ne peut spécifier 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 "déclaration amie précédente 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 méthode «%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 référencé 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 composée"
+
+#~ msgid "cannot declare references to references"
+#~ msgstr "ne peut décalrer des références vers des références"
+
+#~ msgid "cannot declare pointers to references"
+#~ msgstr "ne peut déclarer des pointeurs vers des références"
+
+#~ msgid "type name expected before `&'"
+#~ msgstr "nom de type attendu avant «&»"
+
+#~ msgid "semicolon missing after %s declaration"
+#~ msgstr "«;» manquant après la déclaration de %s"
+
+#~ msgid "semicolon missing after declaration of `%T'"
+#~ msgstr "«;» manquant après la déclaration « %T »"
+
+#~ msgid "`::%D' undeclared (first use here)"
+#~ msgstr "«::%D» non déclaré (première utilisation ici)"
+
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "canevas de paramètre en valeur réelle lors de la compilation croisée"
+
+#~ msgid "use of linkage spec `%D' is different from previous spec `%D'"
+#~ msgstr "utilisation de spéc de liaisons « %D » est différente de la spec précédente « %D »"
+
+#~ msgid "no base or member initializers given following ':'"
+#~ msgstr "pas d'initialiseur de base ou membre donné après «:»"
+
+#~ 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 "définition de la classe « %T » dans la condition"
+
+#~ msgid "definition of enum `%T' in condition"
+#~ msgstr "définition de l'aggrégat « %T » dans la condition"
+
+#~ msgid "definition of array `%#D' in condition"
+#~ msgstr "définition 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 "spécificateur du type sigof"
+
+#~ msgid "`sigof' applied to non-aggregate expression"
+#~ msgstr "« sigof » appliqué à une expression de non aggrégats"
+
+#~ msgid "`sigof' applied to non-aggregate type"
+#~ msgstr "« sigof » appliqué à un type non aggrégat"
+
+#~ msgid "storage class specifier `%s' not allowed after struct or class"
+#~ msgstr "spécificateur de classe de stockages « %s » n'est pas permis après struct ou class"
+
+#~ msgid "type specifier `%s' not allowed after struct or class"
+#~ msgstr "spécificateur de type « %s » n'est pas permis après struct ou class"
+
+#~ msgid "type qualifier `%s' not allowed after struct or class"
+#~ msgstr "qualificateur de type « %s » n'est pas permis après struct ou class"
+
+#~ msgid "no body nor ';' separates two class, struct or union declarations"
+#~ msgstr "pas de corps ni de «;» séparant les deux déclarations de classes, struct ou union"
+
+#~ msgid "no bases given following `:'"
+#~ msgstr "pas de base donnée après «:»"
+
+#~ msgid "multiple access specifiers"
+#~ msgstr "spécificateurs d'accès multiples"
+
+#~ msgid "multiple `virtual' specifiers"
+#~ msgstr "spécificateurs « 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 parenthèses 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 déclaration d'étiquette"
+
+#~ msgid "label must be followed by statement"
+#~ msgstr "l'étiquette doit être suivie d'une déclaration"
+
+#~ 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 déclarations composées à l'intérieur des initialisations"
+
+#~ msgid "possibly missing ')'"
+#~ msgstr "«)» possiblement manquante"
+
+#~ msgid "type specifier omitted for parameter"
+#~ msgstr "spécificateur de type omis pour le paramètre"
+
+#~ 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 "spécificateur de type omis pour le paramètre « %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 référence vers un classe)"
+
+#~ msgid " overriding `%#D' (must use pointer or reference)"
+#~ msgstr " écrasant « %#D » (doit utiliser un pointeur ou un référence)"
+
+#~ msgid "return identifier `%D' already in place"
+#~ msgstr "identificateur retourné « %D » est déjà en place"
+
+#~ msgid "can't redefine default return value for constructors"
+#~ msgstr "ne peut redéfinir la valeur retournée par défaut pour les constructeurs"
+
+#~ msgid "calling type `%T' like a method"
+#~ msgstr "appel du type « %T » comme une méthode"
+
+#~ msgid "destructor specifier `%T::~%T()' must have matching names"
+#~ msgstr "spécificateur 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 stratégie interne de dénomination 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'intérieur d'une définition"
+
+#~ msgid "parse error in method specification"
+#~ msgstr "erreur d'analyse syntaxique dans la spécification 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 "dépendance circulaire dans les arguments par défaut de « %#D »"
+
+#~ msgid "invalid type `%T' for default argument to `%T'"
+#~ msgstr "type invalide « %T » pour l'argument par défaut « %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'élément 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 "spécificateur du destructeur «%T::~%T» doit des noms concordants"
+
+#~ msgid "parameter type of called function is incomplete"
+#~ msgstr "type de paramètre de la fonction appelée 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 "déclaration d'un retour sans valeur, dans la fonction déclarée avec un type retourné non void"
+
+#~ msgid "return-statement with a value, in function declared with a void return type"
+#~ msgstr "déclaration d'un retour sans valeur, dans la fonction déclarée avec un type retourné void"
+
+#~ msgid "comma expression used to initialize return value"
+#~ msgstr "expression virgule utilsée pour initialiser la valeur de retour"
+
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ISO C++ interdit les expressions d'initialiseur d'aggrégat 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 définition de types à l'intérieur 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 "Reconnaître and/bitand/bitor/compl/not/or/xor"
+
+#~ msgid "Warn about inconsistent return types"
+#~ msgstr "Avertir à propos des types retournés inconsistants"
+
+#~ msgid "Warn when a function is declared extern, then inline"
+#~ msgstr "Avertir lorsqu'un fonction est déclarée extern, puis inline"
+
+#~ msgid "directory name must immediately follow -I"
+#~ msgstr "nom du répertoire doit suivre immédiatement -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 "Désactiver l'ajout de caractères de soulignement aux externes"
+
+#~ msgid "Fortran-specific form of -fbounds-check"
+#~ msgstr "Forme spécifique Fortran de -fbounds-check"
+
+#~ msgid "Add a directory for INCLUDE searching"
+#~ msgstr "Ajouter un répertoire 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 "Vérification automatique désactivée 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 méthode principale devrait être utilisée"
+
+#~ msgid "Add directory to class path"
+#~ msgstr "Ajouter un répertoire au chemin des classes"
+
+#~ msgid "Directory where class files should be written"
+#~ msgstr "Répertoire 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 déclarations pour la méthode « %s »"
+
+#~ msgid "cannot find class (factory) method"
+#~ msgstr "ne peut repérer de méthode de classe (manufacturé)"
+
+#~ msgid "return type for `%s' defaults to id"
+#~ msgstr "type retourné pour « %s » par défaut est id"
+
+#~ msgid "return type defaults to id"
+#~ msgstr "type retourné par défaut est id"
+
+#~ msgid "cannot find method"
+#~ msgstr "ne peut repérer la méthode"
+
+#~ msgid "duplicate definition of class method `%s'"
+#~ msgstr "duplication de définition de la méthode de la classe « %s »"
+
+#~ msgid "duplicate definition of instance method `%s'"
+#~ msgstr "duplication de définition de la méthode d'instanciation « %s »"
+
+#~ msgid "duplicate declaration of instance method `%s'"
+#~ msgstr "duplication de déclaration de la méthode d'instanciation « %s »"
+
+#~ msgid "potential selector conflict for method `%s'"
+#~ msgstr "conflit potentiel sur le sélecteur pour la méthode « %s »"
+
+#~ msgid "Specify the name of the class for constant strings"
+#~ msgstr "Spécifier le nom de la classe pour les constantes chaînes"
+
+#~ msgid "compilation of header file requested"
+#~ msgstr "fichier d'en-tête requis pour la compilation"
+
+#~ msgid "choose either big or little endian, not both"
+#~ msgstr "choisir un système à 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 numérique sans chiffre"
+
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "constante numérique contient des chiffres en dehors la base numérique"
+
+#~ 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 excède les limites de « double »"
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "deux « u » en suffixe sur une constante entière"
+
+#~ 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 entière"
+
+#~ 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 entière"
+
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "suffixe invalide pour une constante entière"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "constante entière trop grande pour la configuration du compilateur - tronqué à %d bits"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "largeur de la constante entière change avec -traditional"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "largeur de la constante entière peut changer sur d'autres système avec -traditional"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "constante entière 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 décimale est tellement grande qu'elle est non signée"
+
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "constante complexe entière est trop grande pour le type 'complex int'"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "constante entière est plus grande que la valeur maximale pour ce type"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "espace blanc manquant après le nombre '%.*s'"
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "spécificateur de classe de stockage dans le déclarateur 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 entières"
+
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "constante entière contient des chiffres en dehors la base numérique"
+
+#~ msgid "integer constant out of range"
+#~ msgstr "constante entière est hors gamme"
+
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "constantes de chaîne ne sont pas valides dasn un #if"
+
+#~ msgid "missing binary operator"
+#~ msgstr "opérateur binaire manquant"
+
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "modification de l'ordonnancement de recherche du répertoire système « %s »"
+
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr " comme c'est le même qu'un répertoire non système « %s »"
+
+#~ msgid "I/O error on output"
+#~ msgstr "Erreur E/S sur la sortie"
+
+#~ msgid "argument missing after %s"
+#~ msgstr "argument manquant après %s"
+
+#~ msgid "number missing after %s"
+#~ msgstr "nombre manquant après %s"
+
+#~ msgid "target missing after %s"
+#~ msgstr "cible manquante après %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++ Présumer que les sources sont en C++\n"
+#~ " -lang-objc Présumer que les sources sont en ObjectiveC\n"
+#~ " -lang-objc++ Présumer que les sources sont en ObjectiveC++\n"
+#~ " -lang-asm Présumer que les sources sont en assembleur\n"
+
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "début possible d'une chaîne de mot non terminée"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "chaîne de mots multi-lignes sont obsolètes"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "directives ne peuvent être utilisées à l'intérieur 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 numéro 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 exécutées dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% de branchements %d exécutés 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 exécutés 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 "débordement de virgule flottante"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "débordement de troncation d'un entier"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "débordement 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 débordement de bornes"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: perte totale de précision"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: perte partielle de précision"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - opération produite"
+
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "Prétendre que l'hôte 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é désactivé: %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 caractères invalide dans le #if"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "chaînes entre quillemets ne sont pas allouées dans les expression #if"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "constante de caractères en octal ne peut être insérée 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 récursion de #include trop profonde"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "usage: %s [options] entrée 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 après l'option -i"
+
+#~ msgid "filename missing after -o option"
+#~ msgstr "nom de fichier manquant après l'option -o"
+
+#~ msgid "target missing after %s option"
+#~ msgstr "cible manquante après l'option %s"
+
+#~ msgid "filename missing after %s option"
+#~ msgstr "nom de fichier manquant après l'option %s"
+
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "nom de macro manquant après 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 répertoire manquant après l'option -I"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "« /* » à l'intérieur 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 spécial invalide"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include espère « 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 paramètre débute avec un chiffre dans #define"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "liste de paramètres incorrectement ponctués dans #define"
+
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "liste de paramètres non terminée dans #define"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" redéfini"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "# opérator 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 "indéfinition « defined »"
+
+#~ msgid "undefining `%s'"
+#~ msgstr "indéfinition « %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'intérieur d'un conditionel"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s n'est pas à l'intérieur d'un conditionel"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else ou #elif après #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else n'est pas à l'intérieur d'un conditionel"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "#endif non pairé"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "chaîne non terminée ou constante caractère"
+
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "argument donnée à 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 rencontrées.\n"
+#~ "Consulter %s pour les instructions."
+
+#~ msgid "optimization turned on"
+#~ msgstr "optimisation activée"
+
+#~ msgid "optimization turned off"
+#~ msgstr "optimisation désactivée"
+
+#~ 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 "Générer le code en assumant que le bit DW est initialisé"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Générer le code en assumant que le bit DW n'est pas initialisé"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Générer le code en utilisant des écritures par octets"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Ne pas générer des écritures par octets"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Utiliser le modèle de petite mémoire"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Utiliser le modèle normal de mémoire"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Utiliser le modèle de grande mémoire"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "Générer le code 29050"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "Générer 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 vérification de la pile"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Ne pas produire le code de vérification de la pile"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Contourner le bug matériel de stockage"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Ne pas contourner le bug matériel 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 "Générer le code pour le C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Générer le code pour le C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Générer le code pour le c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Générer le code pour le c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Générer le code pour le c3"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Générer le code pour le c34"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Utiliser la séquence 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, dépend de la table de symboles"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Utiliser la cache de données pour les réf. mémoire volatiles (par défaut)"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "Ne pas utiliser la cache de données pour les réf. mémoire volatiles"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "Éviter la cache de données pour les réf. mémoire 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 hôte"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Générer 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 légende"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "Générer les informations externes de légende"
+
+#~ 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 système 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 précédées d'un caractère de soulignement "
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Aligner sur >frontières 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 ignorée."
+
+#~ 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 "Générer des données pour systèmes à octets de poids faible"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Générer des données pour systèmes à 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 "Désactiver la passe de réorganisation"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s ignoré (tout le code est indépendant de la position)"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "-ffunction-sections désactivé 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 zéros"
+
+#~ msgid "no viable candidates"
+#~ msgstr "pas de candidats viables"
+
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr "« %D » a déjà été déclaré dans « %T »"
+
+#~ msgid "`%D' as declarator"
+#~ msgstr "« %D » comme déclarateur"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "ne peut déclarer %s comme références"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "type invalide: « void & »"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "déclaration typedef inclut un initialiseur"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version n'est plus supportée"
+
+#~ 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 déclaré"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "initialisations multiples données pour le membre « %D »"
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " sera ré-ordonné pour concorder avec l'ordre d'héritage"
+
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "nom d'implantation réservé « %D » est utilisé"
+
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "instanciation explicite de « %#D » après"
+
+#~ msgid "explicit specialization here"
+#~ msgstr "spécialisation explicite ici"
+
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "instanciation explicite de « %#T » après"
+
+#~ msgid "base initializer for `%T'"
+#~ msgstr "initialiseur de base « %T »"
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " sera ré-ordonné pour précéder les initialisations de membre"
+
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "qualificateurs « %V » ignorés 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 "requête du membre «%T::%D» dans l'expression du type non aggrégat « %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 méthode « %D »"
+
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "fontion « %D » déclarée surchargée, mais aucune définition n'apparaît pour la résoudre?!?"
+
+#~ 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 indéfini « %#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 surchargée sans information contextuelle de type"
+
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "fonction surchargée sans information contextuelle de type"
+
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "information contextuelle insuffisante pour déterminer le type"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe dérivée « %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 présence d'un constructeur"
+
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "en raison d'un accès 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 mémoire virtuelle est épuisée"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Ne peut spécifier la dimension du tableau dans la déclaration"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "erreur interne - utilisation d'un type non défini"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "pas de nom de classe spécifier 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-réseautage 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 supportée: 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 "déclaration 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 » précédemment défini ici"
+
+#~ msgid "`%s' previously declared here"
+#~ msgstr "« %s » précédemment déclaré ici"
+
+#~ msgid "increment"
+#~ msgstr "incrément"
+
+#~ msgid "decrement"
+#~ msgstr "décrément"
+
+#~ msgid "Usage: %s [switches] input output\n"
+#~ msgstr "Usage: %s [options] entrée 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 trouvée"
+
+#~ msgid "profiling does not support code models other than medlow"
+#~ msgstr "profilage ne supporte pas le code pour les modèles autre que medlow"
+
+#~ msgid "%s and profiling conflict: disabling %s"
+#~ msgstr "%s avec des conflit de profilage: désactivation 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 alloués de manière 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'intérieur de la fonction)"
+
+#~ msgid "possible range failure (not inside function)"
+#~ msgstr "échec possible de l'étendue (pas à l'intérique 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 "côté droit de l'affectation est un mode"
+
+#~ msgid "bad string length in %s"
+#~ msgstr "chaîne de longueur erronée 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 référable"
+
+#~ msgid "%s not allowed outside a PROC"
+#~ msgstr "%s n'est pas permis en dehors d'une procédure"
+
+#~ msgid "%s action in PROC with no declared RESULTS"
+#~ msgstr "action %s dans la procédure sans RÉSULTATS déclarés"
+
+#~ msgid "RETURN not allowed outside PROC"
+#~ msgstr "RETURN n'est pas permis en dehors d'une procédure"
+
+#~ msgid "RETURN with a value, in PROC returning void"
+#~ msgstr "RETURN avec valeur dans une procédure retournant void"
+
+#~ msgid "RETURN with no value and no RESULT action in procedure"
+#~ msgstr "RETURN sans valeur et sans RÉSULTAT d'action dans la procédure"
+
+#~ msgid "no label named `%s'"
+#~ msgstr "pas d'étiquette nommée « %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'intérieur de la déclaration du CASE"
+
+#~ msgid "multiple default labels found in a CASE statement"
+#~ msgstr "étiquettes multiples de défaut dans la déclaration d'un «case»"
+
+#~ msgid "this is the first ELSE label"
+#~ msgstr "ceci est la première étiquette ELSE"
+
+#~ msgid "label found outside of CASE statement"
+#~ msgstr "étiquette trouvée en dehors de la déclaration du CASE"
+
+#~ msgid "duplicate CASE value"
+#~ msgstr "valeur de CASE double"
+
+#~ msgid "this is the first entry for that value"
+#~ msgstr "c'est la première entrée 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'intérieur de la portée 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'intérieur de la déclaration du CASE"
+
+#~ msgid "lower bound of range must be a discrete literal expression"
+#~ msgstr "borne inférieure de l'étendue doit être une expression litérale discrète"
+
+#~ msgid "upper bound of range must be a discrete literal expression"
+#~ msgstr "borne supérieure de l'étendue doit être une expression litérale discrète"
+
+#~ 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 sélecteurs 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 "sélecteur du CASE avec un étendue variable"
+
+#~ msgid "too many cases to do CASE completeness testing"
+#~ msgstr "trop de cas pour la complétion 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'opérateur 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 ÉVÉNEMENT "
+
+#~ 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 propriété sans valeur"
+
+#~ msgid "lefthand side of assignment is not a location"
+#~ msgstr "côté gauche de l'affectation n'est pas un localisation"
+
+#~ msgid "bitstring slice"
+#~ msgstr "tranche d'une chaîne de bits"
+
+#~ msgid "LENGTH on left-hand-side is non-portable"
+#~ msgstr "LONGUEUR sur le côté 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 créer une identité de localisation avec une non localisation"
+
+#~ msgid "cannot convert to a boolean mode"
+#~ msgstr "ne peut convertir en un mode booléen"
+
+#~ msgid "cannot convert to a char mode"
+#~ msgstr "ne peut convertir en mode caractère"
+
+#~ msgid "powerset tuple element out of range"
+#~ msgstr "élément 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 sélectionné"
+
+#~ msgid "mixture of labelled and unlabelled tuple elements"
+#~ msgstr "mélange de tuple d'éléments étiquettés et non étiquettés"
+
+#~ msgid "probably not a structure tuple"
+#~ msgstr "probablement pas une structure de tuple"
+
+#~ msgid "excess initializer for field `%s'"
+#~ msgstr "débordement de l'initialiseur pour le champ « %s »"
+
+#~ msgid "excess unnamed initializers"
+#~ msgstr "débordement d'initialiseurs sans nom"
+
+#~ msgid "non-constant start index for tuple"
+#~ msgstr "index de départ 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 "élément 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 "élément de tuple de tableau manquant %s"
+
+#~ msgid "missing array tuple elements %s : %s"
+#~ msgstr "éléments 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 chaîne"
+
+#~ 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 déclaré en lecture seulement"
+
+#~ msgid "declaration of readonly variable without initialization"
+#~ msgstr "déclaration 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 "PROCÉDURES RÉCURSIVES"
+
+#~ 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 spécifiés pour une liste de déclarations 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 inférieure de l'étiquette du CASE n'est pas une expression d'une constante discrète"
+
+#~ msgid "case label upper limit is not a discrete constant expression"
+#~ msgstr "limite supérieure de l'étiquette du CASE n'est pas une expression d'une constante discrète"
+
+#~ msgid "case label must be a discrete constant expression"
+#~ msgstr "l'étiquette du CASE doit être une expression de constante discrète"
+
+#~ msgid "variant label declared here..."
+#~ msgstr "étiquette variante déclarée 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 autorisée pour « %s »"
+
+#~ msgid "duplicate definition `%s'"
+#~ msgstr "double définition de « %s »"
+
+#~ msgid "previous definition of `%s'"
+#~ msgstr "définition précédente 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'énumérateur pour « %s » est plus petit que 0"
+
+#~ msgid "enumerators `%s' and `%s' have equal values"
+#~ msgstr "énumérateurs « %s » et « %s » ont les mêmes valeurs"
+
+#~ msgid "undefined value in SET mode is obsolete and deprecated"
+#~ msgstr "valeur non définie dans le mode SET est obsolète"
+
+#~ msgid "BASE variable never declared"
+#~ msgstr "variable de BASE jamais déclarée"
+
+#~ 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 spécifié 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 "sélecteur du CASE n'est pas une expression discrète"
+
+#~ msgid "The number of CASE selectors does not match the number of CASE label lists"
+#~ msgstr "Le nombre de sélecteurs 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 déréférencer, n'est pas un pointeur"
+
+#~ msgid "missing '.' operator or undefined mode name `%s'"
+#~ msgstr "opérateur «.» manquant ou nom de mode « %s » indéfini"
+
+#~ msgid "you have forgotten the '.' operator which must"
+#~ msgstr "vous avez oublié l'opérateur «.» lequel doit être"
+
+#~ msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
+#~ msgstr " précède une référence sur champ STRUCT ou « %s » est un mode indéfini"
+
+#~ msgid "invalid type argument of `->'"
+#~ msgstr "type d'argument invalide de «->»"
+
+#~ msgid "operand of '.' is not a STRUCT"
+#~ msgstr "l'opérande de '.« n»est 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 réel"
+
+#~ 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 "paramètre 1 doit pouvoir être référencé"
+
+#~ msgid "parameter 2 must be a positive integer"
+#~ msgstr "paramètre 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 référencé"
+
+#~ 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 référence à 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 chaîne, un tampon, un mode d'événement, 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 chaîne, un tableau, un mode ou un entier"
+
+#~ msgid "LOWER argument must be string, array, mode or integer"
+#~ msgstr "argument du BAS doit être une chaîne, 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 "paramètre NUMÉRIQUE est en dessous de l'étendue de son mode"
+
+#~ msgid "NUM's parameter is above its mode range"
+#~ msgstr "paramètre NUMÉRIQUE 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 PRÉCÉDENT d'un ensemble énuméré"
+
+#~ msgid "SUCC or PRED must not be done on a PTR"
+#~ msgstr "SUIVANT ou PRÉCÉDENT ne peuvent être pris sur un PTR"
+
+#~ msgid "SUCC or PRED for a reference type is not standard"
+#~ msgstr "SUIVANT ou PRÉCÉDENT pour un type référencé n'est pas standard"
+
+#~ msgid "SUCC or PRED argument must be a discrete mode"
+#~ msgstr "SUIVANT ou PRÉCÉDENT 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 déjà à sa %s valeur"
+
+#~ msgid "size applied to a function mode"
+#~ msgstr "taille appliquée 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 paramètre %d doit être une localisation"
+
+#~ msgid "%s parameter %d is READ-only"
+#~ msgstr "%s paramètre %d est en mode LECTURE seulement"
+
+#~ msgid "LOC actual parameter %d is a non-referable location"
+#~ msgstr "LOCALISATION du paramètre actuel %d est dans une localisation non référençable"
+
+#~ msgid "mode mismatch in parameter %d"
+#~ msgstr "non concordance du mode dans le paramètre %d"
+
+#~ msgid "too many arguments to procedure `%s'"
+#~ msgstr "trop d'arguments pour la procédure « %s »"
+
+#~ msgid "too many arguments to procedure"
+#~ msgstr "trop d'arguments pour la procédure"
+
+#~ msgid "too few arguments to procedure `%s'"
+#~ msgstr "pas assez d'argument pour la procédure « %s »"
+
+#~ msgid "too few arguments to procedure"
+#~ msgstr "trop peu d'arguments pour la procédure"
+
+#~ 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 - opérateur manquant virgule ou «(»?"
+
+#~ msgid "unimplemented built-in function `%s'"
+#~ msgstr "fonction interne non implantée « %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 chaîne d'index"
+
+#~ msgid "only one expression allowed in string index"
+#~ msgstr "seul un expression est permise dans une chaîne d'index"
+
+#~ msgid "invalid: primval ( untyped_exprlist )"
+#~ msgstr "invalide: primval ( untyped_exprlist )"
+
+#~ msgid "operand is variable-size bitstring/power-set"
+#~ msgstr "opérande 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 traitée dans build_compare_set_expr"
+
+#~ msgid "incompatible modes in concat expression"
+#~ msgstr "modes incompatibles dans l'expression de concaténation"
+
+#~ msgid "invalid operation on array of chars"
+#~ msgstr "opération invalide pour des tableaux de caractères"
+
+#~ msgid "comparison of variant structures is unsafe"
+#~ msgstr "comparaison de structures variantes n'est pas sûre"
+
+#~ msgid "compare with variant records"
+#~ msgstr "comparaison avec des enregistrements vairants"
+
+#~ msgid "incompatible operands to %s"
+#~ msgstr "type d'opérandes incompatibles pour %s"
+
+#~ msgid "relational operator not allowed for this mode"
+#~ msgstr "opérateur relationnel n'est pas permis pour ce mode"
+
+#~ msgid "cannot use %s operator on PROC mode variable"
+#~ msgstr "ne peut utiliser l'opérateur %s pour une variable en mode PROCÉDURE"
+
+#~ msgid "invalid left operand of %s"
+#~ msgstr "opérande de gauche invalide pour %s"
+
+#~ msgid "invalid right operand of %s"
+#~ msgstr "opérande de droite invalide pour %s"
+
+#~ msgid "repetition expression must be constant"
+#~ msgstr "répétitions d'expressions doit être une constante"
+
+#~ msgid "left argument to MOD/REM operator must be integral"
+#~ msgstr "argument de gauche de l'opérateur MOD/REM doit être entier"
+
+#~ msgid "right argument to MOD/REM operator must be integral"
+#~ msgstr "argument de droite de l'opérateur MOD/REM doit être entier"
+
+#~ msgid "right operand of IN is not a powerset"
+#~ msgstr "l'opérande de droite de IN n'est pas un POWERSET"
+
+#~ msgid "left operand of IN incompatible with right operand"
+#~ msgstr "opérande de gauche de IN incompatible avec l'opérande de droite"
+
+#~ msgid "-> operator not allow in constant expression"
+#~ msgstr "opérateur -> 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 "paramètre 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 répétition n'est pas une constante entière"
+
+#~ msgid "repetition count < 0"
+#~ msgstr "compteur de répétition > que 0"
+
+#~ msgid "repetition value not constant"
+#~ msgstr "valeur de répétition n'est pas une constante"
+
+#~ msgid "bitstring repetition of non-constant boolean"
+#~ msgstr "répétition de chaîne de bits d'un booléen non constant"
+
+#~ msgid "string repetition operand is non-constant bitstring"
+#~ msgstr "opérande de répétition de chaînes n'est pas une contante de chaîne de bits"
+
+#~ msgid "non-char, non-bit string repetition"
+#~ msgstr "répétition de chaîne n'est pas de caractères ni de bits"
+
+#~ msgid "right operand of %s is not array of boolean"
+#~ msgstr "opérande de droite de %s n'est pas un tableau de booléens"
+
+#~ msgid "%s operator applied to boolean variable"
+#~ msgstr "opérateur %s appliqué à une variable booléenne"
+
+#~ msgid "non-boolean mode in conditional expression"
+#~ msgstr "mode non booléen 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 décoder 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 décoder ce mode"
+
+#~ msgid "FORBID is not yet implemented"
+#~ msgstr "FORBID n'est pas encore implantée"
+
+#~ msgid "function \"really_grant_this\" called for `%s'"
+#~ msgstr "fonction «really_grant_this» appelée 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 chaîne vide"
+
+#~ msgid "argument 2 to ASSOCIATE must be a string"
+#~ msgstr "argument 2 de ASSOCIATE doit être une chaîne"
+
+#~ msgid "argument 3 to ASSOCIATE must be a string"
+#~ msgstr "argument 3 de ASSOCIATE doit être une chaîne"
+
+#~ 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 chaîne vide"
+
+#~ msgid "argument 2 to MODIFY must be a string"
+#~ msgstr "argument 2 de MODIFY doit être une chaîne"
+
+#~ msgid "argument 3 to MODIFY must be a string"
+#~ msgstr "argument 3 de MODIFY doit être une chaîne"
+
+#~ 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 "paramètre 2 doit être une localisation"
+
+#~ msgid "incompatible modes in parameter 2"
+#~ msgstr "modes incompatible dans le paramètre 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 référencé"
+
+#~ 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 chaîne"
+
+#~ msgid "type of argument %d invalid for conversion code at offset %d"
+#~ msgstr "type d'argument %d invalide pour la conversion du code au décalage %d"
+
+#~ msgid "unmatched open paren"
+#~ msgstr "parenthèse ouverte non pairée"
+
+#~ msgid "bad format specification character (offset %d)"
+#~ msgstr "caractère de format de spécification erroné (décalage %d)"
+
+#~ msgid "repetition factor overflow (offset %d)"
+#~ msgstr "débordement du facteur de répétition (décalage %d)"
+
+#~ msgid "duplicate qualifier (offset %d)"
+#~ msgstr "duplication du qualificateur (décalage %d)"
+
+#~ msgid "clause width overflow (offset %d)"
+#~ msgstr "débordement de la largeur de la clause (décalage %d)"
+
+#~ msgid "no fraction (offset %d)"
+#~ msgstr "pas de fraction (décalage %d)"
+
+#~ msgid "no fraction width (offset %d)"
+#~ msgstr "pas de largeur de fraction (décalage %d)"
+
+#~ msgid "fraction width overflow (offset %d)"
+#~ msgstr "débordement de largeur de fraction (décalage %d)"
+
+#~ msgid "no exponent (offset %d)"
+#~ msgstr "pas d'exposant (décalage %d)"
+
+#~ msgid "no exponent width (offset %d)"
+#~ msgstr "pas de largeur d'exposant (décalage %d)"
+
+#~ msgid "exponent width overflow (offset %d)"
+#~ msgstr "débordement de largeur d'exposant (décalage %d)"
+
+#~ msgid "internal error in check_format_string"
+#~ msgstr "erreur interne dans check_format_string"
+
+#~ msgid "no padding character (offset %d)"
+#~ msgstr "pas de caractère de remplissage (décalage %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 chaîne de caractères"
+
+#~ 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 chaîne de caractères"
+
+#~ msgid "non-constant expression"
+#~ msgstr "expression n'est pas une constante"
+
+#~ msgid "ignoring case upon input and"
+#~ msgstr "ignorer la casse durant l'entrée et"
+
+#~ msgid "making special words uppercase wouldn't work"
+#~ msgstr "rendre les mots spéciaux en majuscule ne fonctionnerait pas"
+
+#~ msgid "making special words uppercase and"
+#~ msgstr "rendant les mots spéciaux en majuscule et"
+
+#~ msgid " ignoring case upon input wouldn't work"
+#~ msgstr " ignorer la casse durant ne fonctionnerait pas"
+
+#~ msgid "invalid C'xx' "
+#~ msgstr "C«xx» invalide"
+
+#~ msgid "malformed exponent part of floating-point literal"
+#~ msgstr "partie de l'exposant mal composée du litéral en virgule flottante"
+
+#~ msgid "real number exceeds range of REAL"
+#~ msgstr "nombre réel excède 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 "séquence de contrôle non terminée"
+
+#~ msgid "invalid integer literal in control sequence"
+#~ msgstr "chaîne d'entiers invalide dans la séquence de contrôle"
+
+#~ msgid "control sequence overflow"
+#~ msgstr "débordement de la chaîne de contrôle"
+
+#~ msgid "invalid base in read control sequence"
+#~ msgstr "base invalide dans la séquence de contrôle de lecture"
+
+#~ msgid "unterminated string literal"
+#~ msgstr "chaîne litérale non terminée"
+
+#~ msgid "invalid number format `%s'"
+#~ msgstr "format de numéro « %s » invalide"
+
+#~ msgid "integer literal too big"
+#~ msgstr "litéral d'entier trop grand"
+
+#~ msgid "can't find %s"
+#~ msgstr "ne peut repérer %s"
+
+#~ msgid "USE_SEIZE_FILE directive must be followed by string"
+#~ msgstr "directive USE_SEIZE_FILE doit être suivie d'une chaîne"
+
+#~ 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 "caractère «%c» invalide dans le nom"
+
+#~ msgid "`%s' not integer constant synonym "
+#~ msgstr "« %s » n'est pas un synonyme de constante entière"
+
+#~ 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 modèle 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'énumération pour BOOLÉENS"
+
+#~ msgid "location enumeration for bit-packed arrays"
+#~ msgstr "localisation d'énumération tableaux de bits paquetés"
+
+#~ 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 "début de l'expression doit avoir un mode discret"
+
+#~ msgid "DO FOR start expression is a numbered SET"
+#~ msgstr "expression de départ de DO FOR est un SET énuméré"
+
+#~ msgid "TO expression is a numbered SET"
+#~ msgstr "expression TO est un SET énuméré"
+
+#~ 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 "début 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 "début de l'expression et l'expression BY doivent être compatibles"
+
+#~ msgid "loop identifier undeclared"
+#~ msgstr "identificateur de boucle non déclaré"
+
+#~ msgid "loop variable incompatible with start expression"
+#~ msgstr "variable de boucle incompatible avec le début de l'expression"
+
+#~ msgid "body of DO FOR will never execute"
+#~ msgstr "corps de DO FOR ne sera jamais exécuté"
+
+#~ msgid "BY expression is negative or zero"
+#~ msgstr "expression BY est négative ou zéro"
+
+#~ msgid "can't iterate through array of BOOL"
+#~ msgstr "ne peut faire d'itération à travers le tableau de BOOLÉENS"
+
+#~ msgid "Can't iterate through array of BOOL"
+#~ msgstr "ne peut faire d'itération à travers le tableau de BOOLÉENS"
+
+#~ msgid "there was no start label to match the end label '%s'"
+#~ msgstr "il n'y a pas d'étiquette de départ concordant avec l'étiquette de fin « %s »"
+
+#~ msgid "start label '%s' does not match end label '%s'"
+#~ msgstr "étiquette de départ « %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 procédure"
+
+#~ 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 chaîne est attendu ici"
+
+#~ msgid "`%s' undeclared"
+#~ msgstr "« %s » non déclaré"
+
+#~ msgid "action not allowed in SPEC MODULE"
+#~ msgstr "action n,est pas permise dans le MODULE SPEC"
+
+#~ msgid "missing defining occurrence"
+#~ msgstr "définition d'occurence manquante"
+
+#~ msgid "bad defining occurrence following ','"
+#~ msgstr "définition d'occurence erronée 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 déclaration d'identité de localisation"
+
+#~ msgid "'=' used where ':=' is required"
+#~ msgstr "«=» utilisé où «:=» est requis"
+
+#~ msgid "loc-identity declaration without initialization"
+#~ msgstr "déclaration de loc n'a pas d'initialisation"
+
+#~ msgid "bad syntax following FORBID"
+#~ msgstr "syntaxe erronée 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 spécifique sans LOCALISATION dans l'attribut résultant"
+
+#~ msgid "DYNAMIC specific without LOC in result attribute"
+#~ msgstr "DYNAMIC spécifique sans LOCALISATION dans l'attribut résultant"
+
+#~ msgid "exception names must be unique"
+#~ msgstr "noms d'exceptions doivent être uniques"
+
+#~ msgid "must specify a PROCESS name"
+#~ msgstr "doit spécifier 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 déclaration de la définition"
+
+#~ msgid "case range list"
+#~ msgstr "liste d'étendue du CASE"
+
+#~ msgid "misplaced colon in case label"
+#~ msgstr "«:» mal placés dans l'étiquette du CASE"
+
+#~ msgid "unrecognized case label list after ','"
+#~ msgstr "étiquette non reconnue du CASE après «,»"
+
+#~ msgid "readonly location modified by 'asm'"
+#~ msgstr "localisation en lecture seulement modifiée par «asm»"
+
+#~ msgid "expected 'TO' in step enumeration"
+#~ msgstr "attendait «TO» dans l'énumération du PAS"
+
+#~ msgid "expected 'IN' in FOR control here"
+#~ msgstr "attendait «IN» dans le contrôle du FOR ici"
+
+#~ msgid "missing DELAY CASE alternative"
+#~ msgstr "alternative de délais du CASE manquante"
+
+#~ msgid "non-referable location in DO WITH"
+#~ msgstr "localisation non référençable dans le DO WITH"
+
+#~ msgid "WITH element must be of STRUCT mode"
+#~ msgstr "élément WITH doit être de mode STRUCT"
+
+#~ msgid "missing ')' in signal/buffer receive alternative"
+#~ msgstr "«)» manquant dans la réception alternative de signal/tampon"
+
+#~ msgid "misplaced 'IN' in signal/buffer receive alternative"
+#~ msgstr "«IN» mal placé dans la réception 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 "parenthèse manquante dans l'appel de procédure"
+
+#~ 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 "définition 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 erronée 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'intérieur des parenthèses"
+
+#~ msgid "mode-less tuple not allowed inside parentheses"
+#~ msgstr "tuple sans modèle n'est pas permis à l'intérieur des parenthèses"
+
+#~ msgid "mixed numbered and unnumbered set elements is not standard"
+#~ msgstr "éléments de l'ensemble numérotés et non numérotés mélangés n'est pas standard"
+
+#~ msgid "SET mode must define at least one named value"
+#~ msgstr "mode SET doit définir au moins une valeur nommée"
+
+#~ 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é après «,»"
+
+#~ 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 "chaîne variante de bits n'est pas implantée"
+
+#~ 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'ÉVÉVEMENTS 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 dépend de ..."
+
+#~ msgid "cycle: `%s' depends on ..."
+#~ msgstr "cycle: « %s » dépend 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 "chaîne d'INIT trop grande pour ce mode"
+
+#~ msgid "mode with non-value property in signal definition"
+#~ msgstr "mode sans propriété de non valeur dans la définition de signal"
+
+#~ msgid "RETURNS spec with invalid mode"
+#~ msgstr "spécification de RETOUR avec un mode invalide"
+
+#~ msgid "operand to REF is not a mode"
+#~ msgstr "l'opérande 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 élément du tampon ne doit pas avoir une propriété de non valeur"
+
+#~ msgid "recordmode must not have the non-value property"
+#~ msgstr "mode d'enregistrement ne doit pas avoir une propriété 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 déclaré au niveau module"
+
+#~ msgid "process name %s never declared"
+#~ msgstr "nom de processus %s n'a jamais été déclaré"
+
+#~ msgid "you may only START a process, not a proc"
+#~ msgstr "vous pouvez seulement LANCER un processus, pas une procédure"
+
+#~ 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 "paramètre 2 de GEN_INST doit être un mode entier"
+
+#~ msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression"
+#~ msgstr "paramètre 1 de GEN_INST doit être une PROCESSUS ou une expression entière"
+
+#~ msgid "%s is not a declared process"
+#~ msgstr "%s n'est pas processus déclaré"
+
+#~ 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/ÉVÉNEMENT"
+
+#~ 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 défaut n'a été définie."
+
+#~ msgid " PRIORITY defaulted to 0"
+#~ msgstr " PRIORITÉ par défaut 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 spécifiée"
+
+#~ 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 RÉCEPTION 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 données"
+
+#~ msgid "SIGNAL `%s' requires data fields"
+#~ msgstr "SIGNAL « %s » requiert des champs de données"
+
+#~ msgid "too few data fields provided for `%s'"
+#~ msgstr "trop peu de champs de données fournies pour « %s »"
+
+#~ msgid "too many data fields provided for `%s'"
+#~ msgstr "trop de champs de données fournis pour « %s »"
+
+#~ msgid "BUFFER in RECEIVE CASE alternative follows"
+#~ msgstr "TAMPON du CASE de RÉCEPTION 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 RÉCEPTION alternative doit être une localisation "
+
+#~ msgid "buffer receive alternative requires only 1 defining occurrence"
+#~ msgstr "tampon de réception alternatif requiert une seule définition d'occurence"
+
+#~ msgid "incompatible modes in receive buffer alternative"
+#~ msgstr "modes incompatibles dans le tampon alternatif de réception"
+
+#~ msgid "defining occurrence in receive buffer alternative must be a location"
+#~ msgstr "définition d'occurence dans un tampon de réception alternatif doit être une localisation"
+
+#~ msgid "buffer receive alternative without `IN location'"
+#~ msgstr "tampon de réception alternative sans «IN location»"
+
+#~ msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location"
+#~ msgstr "alternative de RÉCEPTION DE CASE doit spécifier un nom de SIGNAL ou la localisation d'un TAMPON"
+
+#~ msgid "RECEIVE CASE without alternatives"
+#~ msgstr "RÉCEPTION DE CASE sans alternative"
+
+#~ msgid "CONTINUE requires an event location"
+#~ msgstr "CONTINUE requiert une localisation d'événement"
+
+#~ msgid "PRIORITY must be of integer type"
+#~ msgstr "PRIORITÉ doit avoir un type entier"
+
+#~ msgid "delay alternative must be an EVENT location"
+#~ msgstr "délai alternatif doit avoir une localisation d'ÉVÉNEMENT"
+
+#~ msgid "DELAY CASE without alternatives"
+#~ msgstr "DÉLAI du CASE sans alternative"
+
+#~ msgid "DELAY action requires an event location"
+#~ msgstr "DÉLAI d'action requiert une localisation d'événement"
+
+#~ msgid "PRIORITY in DELAY action must be of integer type"
+#~ msgstr "PRIORITÉ dans le DÉLAI d'action doit avoir un type entier"
+
+#~ msgid "DELAY action without priority."
+#~ msgstr "DÉLAI d'action sans priorité"
+
+#~ msgid "send buffer action requires a BUFFER location"
+#~ msgstr "le tampon d'expédition 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 ÉVÉNEMENT/TAMPON"
+
+#~ msgid "non-constant max queue size for EVENT/BUFFER mode"
+#~ msgstr "taille maximale de queue n'est pas une constante pour un mode ÉVÉNEMENT/TAMPON"
+
+#~ msgid "max queue_size for EVENT/BUFFER is not positive"
+#~ msgstr "taille maximale de queue pour un ÉVÉNEMENT/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 durée de la primitive doit être un mode de DURÉE"
+
+#~ msgid "string length > UPPER (UINT)"
+#~ msgstr "longueur de la chaîne > 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 chaîne d'index est une mode (au lieu d'une valeur)"
+
+#~ msgid "index is not an integer expression"
+#~ msgstr "index n'est pas une expression entière"
+
+#~ 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 découpage n'est ni référençable ni une constante"
+
+#~ msgid "bit array slice with non-constant length"
+#~ msgstr "découpage de tableau de bits avec une longueur non constante"
+
+#~ msgid "bitstring slice with non-constant length"
+#~ msgstr "découpage de chaîne de bits avec une longueur non constante"
+
+#~ msgid "slice operation on non-array, non-bitstring value not supported"
+#~ msgstr "opération de découpage sur un non tableau ou sur une valeur non chaîne de bits n'est pas supportée"
+
+#~ msgid "can only take slice of array or string"
+#~ msgstr "peut seulement faire le découpage d'un tableau ou d'une chaîne"
+
+#~ 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 chaîne 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 "DÉBORDEMENT dans la conversion d'expression"
+
+#~ msgid "overflow (not inside function)"
+#~ msgstr "débordement (pas à l'intérieur de la fonction)"
+
+#~ msgid "possible overflow (not inside function)"
+#~ msgstr "débordement possible (pas à l'intérieur de la fonction)"
+
+#~ msgid "expression will always cause OVERFLOW"
+#~ msgstr "expression causera toujours un DÉBORDEMENT"
+
+#~ 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 différentes"
+
+#~ 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 chaînes inégales"
+
+#~ 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 négatif"
+
+#~ 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 négative de chaîne"
+
+#~ msgid "range's lower bound and parent mode don't match"
+#~ msgstr "borne inférieure de l'étendue et le mode parent ne concordent pas"
+
+#~ msgid "range's upper bound and parent mode don't match"
+#~ msgstr "borne supérieure 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 supérieure de l'étendue < mode de la borne inférieure"
+
+#~ msgid "range's high bound > mode's high bound"
+#~ msgstr "borne supérieure de l'étendue > mode de la borne supérieure"
+
+#~ msgid "range mode high bound < range mode low bound"
+#~ msgstr "borne supérieure de l'étendue < mode de l'étendue la borne inférieure"
+
+#~ msgid "range's low bound < mode's low bound"
+#~ msgstr "borne inférieure de l'étendue < mode de la borne inférieure"
+
+#~ msgid "range's low bound > mode's high bound"
+#~ msgstr "borne inférieure de l'étendue > mode de la borne supérieure"
+
+#~ msgid "stepsize in STEP must be an integer constant"
+#~ msgstr "taille du PAS doit être une contante entière"
+
+#~ 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'éléments du tableau"
+
+#~ msgid "starting word in POS must be an integer constant"
+#~ msgstr "début du mot dans la POSITION doit être une constante entière"
+
+#~ msgid "starting word in POS must be >= 0"
+#~ msgstr "début du mot dans la POSITION doit être >= 0"
+
+#~ msgid "starting word in POS within STEP must be 0"
+#~ msgstr "début du mot dans la POSITION à l'intérieur du PAS doit être 0"
+
+#~ msgid "starting bit in POS must be an integer constant"
+#~ msgstr "bit de départ dans la POSITION doit être une constante entière"
+
+#~ msgid "starting bit in POS within STEP must be 0"
+#~ msgstr "bit de départ dans la POSITION à l'intérieur du PAS doit être 0"
+
+#~ msgid "starting bit in POS must be >= 0"
+#~ msgstr "bit de départ dans la POSITION doit être >= 0"
+
+#~ msgid "starting bit in POS must be < the width of a word"
+#~ msgstr "bit de départ 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 entière"
+
+#~ msgid "end bit in POS must be >= the start bit"
+#~ msgstr "bit final dans la POSITION doit être >= bit de départ"
+
+#~ 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 spécifié de positionnement à l'intérieur du pas doit être naturelle à la longueur des types des éléments 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 spécifiée 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é disposés 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 paramétrisées ne sont pas implantées"
+
+#~ msgid "invalid parameterized type"
+#~ msgstr "type paramétrisé 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 côté «const» appliqué à une référence"
+
+#~ msgid "discarding `volatile' applied to a reference"
+#~ msgstr "mis de côté «volatile» appliqué à une référence"
+
+#~ msgid "parser lost in parsing declaration of `%D'"
+#~ msgstr "analyseur syntaxique perdu dans l'analyse de la déclaration de «%D»"
+
+#~ msgid "methods cannot be converted to function pointers"
+#~ msgstr "méthode ne peuvent être converties en des pointeurs de fonction"
+
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr "requête ambigue pour la méthode 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 "référence 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 références croisées « %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 "Définition superflue d'étiquette %A à %0 -- peut-être que la définition précédente d'étiquette %B à %1 aurait besoin d'une déclaration CONTINUE?"
+
+#~ msgid "Extra label definition %A at %0 following label definition %B at %1"
+#~ msgstr "Définition superflue d'étiquette %A à %0 après la définition 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 première 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 négatif à %0 trop grand"
+
+#~ msgid "Integer at %0 too large (%2 has precedence over %1)"
+#~ msgstr "Entier à %0 trop grand (%2 a précédence sur %1)"
+
+#~ msgid "Period at %0 not followed by valid keyword forming a valid binary operator; `.%A.' is not a valid binary operator"
+#~ msgstr "Période à %0 n'est pas suivie d'un mot clé valide formant un opérateut binaire valide; «.%A,» n'est pas un opérateur binaire valide"
+
+#~ msgid "`.%A.' at %0 not a binary operator"
+#~ msgstr "«.%A.» n'est pas un opérateur 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 chaîne 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 chaîne 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 hexadécimal invalide trouvé dans la chaîne de chiffres à %0"
+
+#~ msgid "Invalid hexadecimal constant at %0"
+#~ msgstr "constante hexadécimale invalide %0"
+
+#~ msgid "Invalid octal digit(s) found in string of digits at %0"
+#~ msgstr "Chiffre octal invalide trouvé dans la chaîne de chiffres à %0"
+
+#~ msgid "Invalid radix specifier `%A' at %0 for typeless constant at %1"
+#~ msgstr "Spécificateur 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 réelle ou entière -- 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 réelle ou entière"
+
+#~ 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 "opérateur de concaténation à %0 doit opérer sur deux sous-expressions de type caractère, mais aucune des sous-expressions à %1 ou %2 n'est de type caractère"
+
+#~ msgid "Invalid operands at %1 and %2 for concatenation operator at %0"
+#~ msgstr "Opérandes invalides à %1 et %2 pour l'opérateur de concaténation à %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 "Opérateur de concaténation à %0 doit opérer sur deux sous-expressions de type caractère, mais la sous-expression à %1 n'est pas de type caractère"
+
+#~ msgid "Invalid operand at %1 for concatenation operator at %0"
+#~ msgstr "Opérande invalide à %1 pour l'opérateur de concaténation à %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 "Opérateur de concaténation à %0 doit opérer sur deux sous-expressions scalaires (non pas de tableau), deux invocations de fonctions retournant des caractères 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 "Opérande invalide (est %A) à %1 pour l'opérateur de concaténation à %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 "Opérateur arithmétique à %0 doit opérer sur deux sous-expressions de type artihmétique, mais aucune des sous-expressions à %1 ou %2 n'est pas de type arithmétique"
+
+#~ msgid "Invalid operands at %1 and %2 for arithmetic operator at %0"
+#~ msgstr "Opérande invalide à %1 et %2 pour l'opérateur arithmétique à %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 "Opérateur arithmétique à %0 doit opérer sur deux sous-expressions de type artihmétique, mais la sous-expression à %1 n'est pas de type arithmétique"
+
+#~ msgid "Invalid operand at %1 for arithmetic operator at %0"
+#~ msgstr "Opérande invalide à %1 pour l'opérateur arithmétique à %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 "Opérateur arithmétique à %0 doit opérer sur deux sous-expressions scalaires (pas de tableau), l'invocation des deux fonctions retournant un scalaire arithmétique 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 "Opérande invalide (est %A) à %1 pour l'opérateur arithmétique à %0"
+
+#~ msgid "Character constant at %0 has no closing quote at %1 [info -f g77 M LEX]"
+#~ msgstr "Constante caractère à %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 caractères non terminée à %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 caractère 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 "Déclaration 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 "Déclaration de nom non reconnue à %0 et forme invalide pour l'affectation ou la définition de déclaration de fonction à %1"
+
+#~ msgid "Invalid statement at %0"
+#~ msgstr "Déclaration invalide à %0"
+
+#~ msgid "Invalid form for %A statement at %0"
+#~ msgstr "Forme invalide pour la déclaration %A à %0"
+
+#~ msgid "Invalid %A statement at %0"
+#~ msgstr "Déclaration %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 déclaration à %0 -- encapsuler la constante entre parenthèses (par exemple, changer BACKSPACE 2HAB en BACKSPACE (2HAB) )"
+
+#~ msgid "Invalid I specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur I invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid B specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur B invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid O specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur O invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid Z specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur Z invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid F specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur F invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid E specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur E invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid EN specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur EN invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid G specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur G invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid L specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur L invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid A specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur A invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid D specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur D invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid Q specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur Q invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid $ specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur $ invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid P specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur P invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid T specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur T invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid TL specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur TL invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid TR specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur TR invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid X specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur X invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid S specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur S invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid SP specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur SP invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid SS specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur SS invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid BN specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur BN invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid BZ specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur BZ invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Invalid : specifier in FORMAT statement at %0"
+#~ msgstr "Invalide: spécificateur de déclaration de FORMAT à %0"
+
+#~ msgid "Invalid H specifier in FORMAT statement at %0"
+#~ msgstr "spécificateur H invalide dans la déclaration de FORMAT à %0"
+
+#~ msgid "Nonletter in defined operator at %0"
+#~ msgstr "ne contient pas une non lettre dans l'opérateur défini à %0"
+
+#~ msgid "Invalid type-declaration attribute at %0"
+#~ msgstr "type d'attribut de déclaration invalide à %0"
+
+#~ msgid "Unrecognized value for character constant at %0 -- expecting %A"
+#~ msgstr "valeur non reconnue pour la constante caractère à %0 -- %A attendu"
+
+#~ msgid "Unrecognized value for character constant at %0"
+#~ msgstr "valeur non reconnnue pour la constante caractère à %0"
+
+#~ msgid "Range specification at %0 invalid -- at least one expression must be specified, or use CASE DEFAULT"
+#~ msgstr "spécification d'étendue à %0 invalide -- au moins une expression doit être spécifié ou utiliser CASE DEFAULT"
+
+#~ msgid "Range specification at %0 invalid"
+#~ msgstr "spécification 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 -- déjà explicitement établie ou utilisé pour initialiser un type implicite pour un nom quelconque ou un ordre arrière 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 "définition d'étiquette %A (à %0) invalide -- doit être en colonnes 1-5"
+
+#~ msgid "Invalid label definition %A (at %0)"
+#~ msgstr "définition 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'exécution à %0 dans la déclaration de FORMAT qui ne suit pas la première déclaration exécutable dans l'unité programme -- déplacer la déclaration"
+
+#~ msgid "FORMAT at %0 with run-time expression must follow first executable statement"
+#~ msgstr "FORMAT à %0 dans l'expression lors de l'exécution doit suivre la première déclaration exécutable"
+
+#~ 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 "opérateur booléen/logique à %0 doit opérer 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 "opérandes invalides à %1 et %2 pour l'opérateur booléen à %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 "opérateur booléen/logique à %0 doit opérer 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 "opérande invalide à %1 pour l'opérateur booléen à %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 "opérateur booléen/logique à %0 doit opérer 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 "opérande invalide (est %A) à %1 pour l'opérateur booléen à %0"
+
+#~ msgid ".NOT. operator at %0 must operate on subexpression of logical type, but the subexpression at %1 is not of logical type"
+#~ msgstr "opérateur .NOT. à %0 doit opérer 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 "opérande invalide à %1 pour l'opérateur .NOT. à %0"
+
+#~ msgid ".NOT. operator at %0 must operate on scalar subexpressions -- but the subexpression at %1 is %A"
+#~ msgstr "opérateur .NOT. à %0 doit opérer 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 "opérande invalide (est %A) à %1 pour l'opérateur .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 "opérateur d'égalité à %0 doit opérer sur deux sous-expressions de type artihmétique ou caractère mais aucune des sous-expressions à %1 ou %2 n'est de type arithmétique ou caractère"
+
+#~ msgid "Invalid operands at %1 and %2 for equality operator at %0"
+#~ msgstr "opérandes invalides à %1 et %2 pour l'opérateur 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 "opérateur d'égalité à %0 doit opérer sur deux sous-expressions de type artihmétique ou caractère mais la sous-expression à %1 n'est pas de type arithmétique ou caractère"
+
+#~ msgid "Invalid operand at %1 for equality operator at %0"
+#~ msgstr "opérande invalide à %1 pour l'opérateur 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 "opérateur d'égalité à %0 doit opérer sur deux sous-expressions de type scalaire (non pas de tableau), deux invocations de fonction retournant un type arithmétique ou scalaires caractère 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 "opérande invalide (est %A) à %1 pour l'opérateur 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 "opérateur relationnal à %0 doit opérer sur deux sous-expressions de type entier, réel ou caractère, mais aucune des sous-expression à %1 ou %2 n'est de type entier, réel ou caractère"
+
+#~ msgid "Invalid operands at %1 and %2 for relational operator at %0"
+#~ msgstr "opérandes invalides à %1 et %2 pour l'opérateur 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 "opérateur relationnal à %0 doit opérer sur deux sous-expressions de type entier, réel ou caractère, mais la sous-expression à %1 n'est pas de type entier, réel ou caractère"
+
+#~ msgid "Invalid operand at %1 for relational operator at %0"
+#~ msgstr "opérande invalide à %1 pour l'opérateur 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 "opérateur relationnal à %0 doit opérer sur deux sous-expressions de type scalaire (non pas de tableau), deux invocations de fonction retournant un type entier, réel ou caractère 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 "opérande invalide (est %A) à %1 pour l'opérateur relationnel à %0"
+
+#~ msgid "Reference to intrinsic `%A' at %0 invalid -- one or more arguments have incorrect type"
+#~ msgstr "référence à l'intrinsèque «%A» à %0 invalide -- un ou plusieurs d'arguments ont un type incorrect"
+
+#~ msgid "Invalid reference to intrinsic `%A' at %0"
+#~ msgstr "référence invalide vers l'intrinsèque «%A» à %0"
+
+#~ msgid "Too few arguments passed to intrinsic `%A' at %0"
+#~ msgstr "trop peu d'arguments passés à l'intrinsèque «%A» à %0"
+
+#~ msgid "Too few arguments for intrinsic `%A' at %0"
+#~ msgstr "trop peu d'arguments passés à l'intrinsèque «%A» à %0"
+
+#~ msgid "Too many arguments passed to intrinsic `%A' at %0"
+#~ msgstr "trop d'arguments passés à l'intrinsèque «%A» à %0"
+
+#~ msgid "Too many arguments for intrinsic `%A' at %0"
+#~ msgstr "trop d'arguments passés à l'intrinsèque «%A» à %0"
+
+#~ msgid "Reference to disabled intrinsic `%A' at %0"
+#~ msgstr "référence à l'intrinsèque désactivé «%A» à %0"
+
+#~ msgid "Disabled intrinsic `%A' at %0"
+#~ msgstr "Désactiver les intrinsèques «%A» à %0"
+
+#~ msgid "Reference to intrinsic subroutine `%A' as if it were a function at %0"
+#~ msgstr "référence à la sous-routine intrinsèque «%A» comme s'il est une fonction à %0"
+
+#~ msgid "Function reference to intrinsic subroutine `%A' at %0"
+#~ msgstr "référence de fonction à la sous-routine intrinsèque «%A» à %0"
+
+#~ msgid "Reference to intrinsic function `%A' as if it were a subroutine at %0"
+#~ msgstr "référence à une fonction intrinsèque «%A» comme s'il est une sous-routine à %0"
+
+#~ msgid "Subroutine reference to intrinsic function `%A' at %0"
+#~ msgstr "référence 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 "référence à un intrinsèque non implanté «%A» à %0 -- utiliser EXTERNAL pour référence la procédure ayant ce nom et écrite par l'usager"
+
+#~ msgid "Unimplemented intrinsic `%A' at %0"
+#~ msgstr "intrinsèque «%A» non implanté à %0"
+
+#~ msgid "Reference to unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
+#~ msgstr "référence à un intrinsèque non implanté «%A» à (EXTERNAL assumé)"
+
+#~ msgid "Unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
+#~ msgstr "intrinsèque non implantée «%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'itération de la boucle DO à %1"
+
+#~ msgid "Modification of DO-loop iterator `%A' at %0"
+#~ msgstr "Modification de l'itération 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'itération implicite de la boucle DO à %1"
+
+#~ msgid "Array has too many dimensions, as of dimension specifier at %0"
+#~ msgstr "Tableau à trop de dimensions comme spécificateur 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 contrôle 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 supportés"
+
+#~ msgid "Unsupported OPEN control item at %0"
+#~ msgstr "item de contrôle 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 contrôle INQUIRE non supporté à %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE= et WRITE= ne sont pas supportés"
+
+#~ msgid "Unsupported INQUIRE control item at %0"
+#~ msgstr "item de contrôle 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 contrôle READ non supporté à %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS= et SIZE= ne sont pas supportés"
+
+#~ msgid "Unsupported READ control item at %0"
+#~ msgstr "item de contrôle READ non supporté à %0"
+
+#~ msgid "Unsupported WRITE control item at %0 -- ADVANCE= and EOR= are not supported"
+#~ msgstr "item de contrôle WRITE non supporté à %0 -- ADVANCE= et EOR= ne sont pas supportés"
+
+#~ msgid "Unsupported WRITE control item at %0"
+#~ msgstr "item de contrôle 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 -- considérer 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'entrée à %0 de la fonction est en conflit avec le type de point d'entrée précédent de la fonction -- doit être de longueur indentique ou zéro pour un type caractère"
+
+#~ 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'entrée précédent 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 déjà initialisé à %1 -- une seule unité de programme peut spécifier 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 déjà 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 -- considérer réordonner 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 -- considérer réordonner 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 définitions consistantes ou réordonner les unités 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 à prévoir"
+
+#~ 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('chaÎne') 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 précision non supporté -- tratement de la constante à %0 en double précision"
+
+#~ msgid "Quadruple-precision floating-point unsupported"
+#~ msgstr "virgule flottante en quadruple précision 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 aggrégat (unit %B) «%A» à %0 couramment lente et prenant beaucoup de mémoire durant la compilation g77 -- à être amélioré 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 systèmes"
+
+#~ msgid "<stdin>"
+#~ msgstr "<stdin>"
+
+#~ msgid "hard register `%s' listed as input operand to `asm'"
+#~ msgstr "registre matériel `%s' est listé comme une opérande d'entrée à `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 portée 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 spécification de membre pour `%#T'"
+
+#~ msgid "non-`union' tag used in declaring `%#T'"
+#~ msgstr "étiquette non-`union' utilisé dans la déclaration de `%#T'"
+
+#~ msgid "invalid use of %D"
+#~ msgstr "utilisation invalide de %D"
+
+#~ msgid "return value from function receives multiple initializations"
+#~ msgstr "valeur retournée de la fonction reçoit de multiples initialisations"
+
+#~ msgid "Can't use '$' as a separator for inner classes"
+#~ msgstr "Ne peut utiliser '$' comme séparateur pour des classes internes"
+
+#~ msgid "-mlong32 and -mlong64 can not both be specified"
+#~ msgstr "-mlong32 et -mlong64 ne peuvent être spécifiés 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 entrée"
+
+#~ msgid "universal-character-name used for '%c'"
+#~ msgstr "nom-de-caractère-universel utilisé pour `%c'"
+
+#~ msgid "unknown escape sequence: '\\' followed by char 0x%x"
+#~ msgstr "séquence d'échappement inconnue: '\\' suivi du caractère 0x%x"
+
+#~ msgid "wrong type argument to %s"
+#~ msgstr "type d'argument erroné pour %s"
+
+#~ msgid "deprecated initialization of zero-length array"
+#~ msgstr "initialisation obsolète d'un tableau de taille zéro"
+
+#~ msgid "initialization of zero-length array before end of structure"
+#~ msgstr "initialisation d'un tableau de taille zéro avant la fin de la structure"
+
+#~ msgid "initialization of zero-length array inside a nested context"
+#~ msgstr "initialisation d'un tableau de taille zéro à l'intérieur 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 chaîné 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 déjà spécifié 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 "Contrôle 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 excède les limites internes pour la table implantée 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 excède la limite normale pour la table implantée 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 "opérateur \"defined\" apparaît durant l'expansion de macro"
+
+#~ msgid "-include and -imacros cannot be used with -fpreprocessed"
+#~ msgstr "-include et -imacros ne peuvent être utilisés avec -fpreprocessed"
+
+#~ msgid "buffers still stacked in cpp_finish"
+#~ msgstr "tampons toujours empilés 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-tête de \"%s\" a changé"
+
+#~ msgid "file \"%s\" entered but not left"
+#~ msgstr "fichier \"%s\" entrée 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 RÉP_OBJ] fichier\n"
+
+#~ msgid "Premature end of input file %s"
+#~ msgstr "Fin prématuré du fichier d'entrée %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'entrée est listé dans les noms de fichiers à compiler"
+
+#~ msgid "Generate code for Boehm GC"
+#~ msgstr "Générer le code pour Boehm GC"
+
+#~ msgid "Don't put synchronization structure in each object"
+#~ msgstr "Ne pas insérer de structure de synchronisation dans cahque objet"
+
+#~ msgid "Arc profiling: some edge counts were bad."
+#~ msgstr "profilage Arc: quelques compteurs de bordures étaient erronées."
+
+#~ 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 mémoire est vérifié"
+
+#~ 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'opérande %d contient `+'"
+
+#~ msgid "\"%s\" and \"%s\" identical in first %d characters"
+#~ msgstr "\"%s\" et \"%s\" identique pour les premiers %d caractères"
+
+#~ msgid "Improve FP speed by violating ANSI & IEEE rules"
+#~ msgstr "Améliorer la vitesse FP en violant les règles ANSI & IEEE"
+
+#~ msgid "Generate code to check every memory access"
+#~ msgstr "Générer du code pour vérifier chaque accès mémoire"
+
+#~ msgid "Add a prefix to all function names"
+#~ msgstr "Ajouter un préfixe à tous les noms de fonctions"
+
+#~ msgid "Errors detected in input file (your bison.simple is out of date)\n"
+#~ msgstr "Erreurs détectées dans le fichier d'entrée (votre bison.simple est périmé)\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 mêmes premiers <nombre> de caractères\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 données %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 "chaîne invalide « %s » dans define_query_cpu_unit"
+
+#~ msgid "invalid first string `%s' in presence_set"
+#~ msgstr "première chaîne invalide « %s » dans presence_set"
+
+#~ msgid "invalid first string `%s' in absence_set"
+#~ msgstr "première chaîne invalide « %s » dans absence_set"
+
+#~ msgid "invalid second string `%s' in absence_set"
+#~ msgstr "seconde chaîne invalide « %s » dans absence_set"
+
+#~ msgid "invalid string `%s' in define_automaton"
+#~ msgstr "chaîne invalide « %s » dans define_automaton"
+
+#~ msgid "garbage after ) in reservation `%s'"
+#~ msgstr "rebut après « ) » dans la réservation « %s »"
+
+#~ msgid "repetition `%s' <= 1 in reservation `%s'"
+#~ msgstr "répétition « %s » <= 1 dans la réservation « %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 "unités « %s » et « %s » dans l'ensemble d'exclusions appartient à un automate différent"
+
+#~ msgid "unit `%s' excludes and requires presence of `%s'"
+#~ msgstr "unité « %s » exclue et requiert la présence de « %s »"
+
+#~ msgid "unit `%s' requires absence and presence of `%s'"
+#~ msgstr "unité « %s » exclue et requiert l'absence ou la présence de « %s »"
+
+#~ msgid "define_insn_reservation `%s' has negative latency time"
+#~ msgstr "define_insn_reservation « %s » a un temps de latence négatif"
+
+#~ msgid "define_bypass `%s - %s' has negative latency time"
+#~ msgstr "define_bypass « %s - %s » a un temps de latence négatif"
+
+#~ msgid "define_unit `%s' without automaton when one defined"
+#~ msgstr "define_unit « %s » sans automate alors qu'il y en a un défini"
+
+#~ msgid "Units `%s' and `%s' should be in the same automaton"
+#~ msgstr "Unités « %s » et « %s » devraient être dans le même 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 (périmé?)"
+
+#~ 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 linéaire d'étrnaglement d'enlignage après avoir atteint récursivement la limite d'enlignage récursif est obtenue par la valeur négative réciproque de ce paramètre"
+
+#~ 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 "dépiler %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 "compléter %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 » entourée"
+
+#~ msgid "ISO C++ does not permit named return values"
+#~ msgstr "ISO C++ ne permet pas les valeurs retournées nommées"
+
+#~ msgid "exception handler inside code that is being protected"
+#~ msgstr "traitement d'exception à l'intérieur du code qui est protégé"
+
+#~ msgid "(debug) trace parsing process"
+#~ msgstr "(débug) tracer le traitement de l'analyse"
+
+#~ msgid "(debug) trace lexical analysis"
+#~ msgstr "(débug) trace l'analyse lexicale"
diff --git a/gcc-4.7/libcpp/po/id.gmo b/gcc-4.7/libcpp/po/id.gmo
new file mode 100644
index 000000000..abd857c80
--- /dev/null
+++ b/gcc-4.7/libcpp/po/id.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/id.po b/gcc-4.7/libcpp/po/id.po
new file mode 100644
index 000000000..44e4666e4
--- /dev/null
+++ b/gcc-4.7/libcpp/po/id.po
@@ -0,0 +1,978 @@
+# 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: 2012-01-27 16:12+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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "konversi dari %s ke %s tidak didukung oleh iconv"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "buka_iconv"
+
+#: charset.c:685
+#, 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:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "mengubah ke eksekusi set karakter"
+
+#: charset.c:804
+#, 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:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Karakter %x mungkin bukan NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "nama karakter universal hanya valid dalam C++ dan C99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "arti dari '\\%c' berbeda dalam tradisional C"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Dalam _cpp_valid_ucn tetapi bukan sebuah UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nama karakter universal %.*s tidak lengkap"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s bukan sebuah karakter universal yang valid"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "'$' dalam identifier atau angka"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "karakter universal %.*s tidak valid dalam sebuah pengidentifikasi"
+
+#: charset.c:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "mengubah UCN ke set karakter asal"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "mengubah UCN ke set karakter eksekusi"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "arti dari '\\x' berbeda dalam tradisional C"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x digunakan dengan tidak mengikuti hex digits"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "hex escape sequence diluar dari jangkauan"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "oktal escape sequence diluar dari jangkauan"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "arti dari '\\a' berbeda dalam tradisional C"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "bukan ISO standar escape sequence, '\\%c'"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "escape sequence: '\\%c' tidak diketahui"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "escape sequence: '\\%s' tidak diketahui"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "mengubah escape sequence ke set karakter eksekusi"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "konstanta karakter terlalu panjang untuk tipenya"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "konstanta karakter multi-karakter"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "konstanta karakter kosong"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "gagal untuk mengubah %s ke %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "ekstra token di akhir dari #%s direktif"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s adalah sebuah ekstensi GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s adalah sebuah ekstensi GCC yang sudah ditinggalkan"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "disarankan tidak menggunakan #elif dalam tradisional C"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "tradisional C mengabaikan #%s dengan # terindentasi"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "disarankan menyembunyikan #%s dari tradisional C dengan sebuah indentasi #"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "embedding sebuah direktif didalam argumen makro yang bukan portabel"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "gaya dari baris direktif bukan sebuah ekstensi GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "preprosesing direktif #%s tidak valid"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" tidak dapat digunakan sebagai sebuah nama makro"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "tidak ada nama makro yang diberikan dalam direktif #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "nama makro harus berupa pengidentifikasi"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "tidak terdefinisi \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "hilang karakter pengakhir >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s diduga \"NAMA BERKAS\" atau <NAMA BERKAS>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nama berkas kosong dalam #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include nested terlalu dalam"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next dalam berkas kode program utama"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "tanda \"%s\" tidak valid dalam baris direktif"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "tidak terduga akhir dari berkas setelah #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" setelah #line bukan sebuah integer positif"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "nomor baris diluar dari jangkauan"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" bukan sebuah nama berkas yang valid"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" setelah # bukan sebuah integer positif"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "direktif #%s tidak valid"
+
+#: directives.c:1158
+#, 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:1167
+#, 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:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s telah terdaftar"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s telah terdaftar"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "mendaftarkan pragma dengan penanganan KOSONG"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma sekali dalam berkas utama"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "#pragma push_macro direktif tidak valid"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "#pragma pop_macro direktif tidak valid"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "#pragma GCC tidak valid merusak direktif"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "merusak makro \"%s\" yang sudah ada"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header diabaikan diluar berkas include"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "tidak dapat menemukan berkas sumber %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "berkas ini lebih lama daripada %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma mengambil sebuah string literal tanda kurung"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else tanpa #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else setelah #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "kondisional berawal disini"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif tanpa #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif setelah #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif tanpa #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "hilang '(' setelah predikat"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "hilang ')' untuk melengkapi jawaban"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "jawaban predikat kosong"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "assertion tanpa predikat"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "predikat harus berupa sebuah pengidentifikasi"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" re-asserted"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "tidak terakhiri #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "komentar tidak terakhiri"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "terlalu banyak titik desimal dalam angka"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "konstanta titik-tetap adalah sebuah ekstensi GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "angka \"%c\" tidak valid dalam konstanta binari"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "angka \"%c\" tidak valid dalam konstanta oktal"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "awalan \"0b\" tidak valid untuk konstanta pecahan"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "tidak ada angka dalam konstanta pecahan heksa desimal"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "penggunaan dari konstanta pecahan heksa desimal C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "eksponen tidak memiliki digits"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "konstanta pecahan heksa desimal membutuhkan sebuah eksponen"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "akhiran \"%.*s\" tidak valid dalam konstanta pecahan"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "dalam tradisi C menolak akhiran \"%.*s\""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "akhiran untuk konstanta ganda adalah sebuah ekstensi GCC"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "akhiran \"%.*s\" tidak valid dengan konstanta pecahan heksa desimal"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "konstanta pecahan desimal adalah sebuah ekstensi GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "akhiran \"%.*s\" tidak valid dalam konstanta integer"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "penggunaan dari konstanta integer long long C++0x"
+
+#: expr.c:594
+#, 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:608
+msgid "imaginary constants are a GCC extension"
+msgstr "konstanta imaginari adalah sebuah ekstensi GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "konstanta binari adalah sebuah ekstensi GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "konstanta integer terlalu besar untuk tipenya"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "konstanta integer terlalu besar yang itu unsigned"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "hilang ')' setelah \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "operator \"defined\" membutuhkan sebuah pengidentifikasi"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" adalah sebuah tanda alternatif untuk \"%s\" dalam C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "penggunaan ini dari \"defined\" mungkin tidak portabel"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "integer overflow dalam ekspresi preprosesor"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "konstanta pecahan dalam ekspresi preprosesor"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "angka imaginari dalam ekspresi preprosesor"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" tidak didefinisikan"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "assertions adalah sebuah ekstensi GCC"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "assertions adalah sebuah ekstensi yang sudah ditinggalkan"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "hilang operator binari sebelum tanda \"%s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "tanda \"%s\" bukan sebuah ekspresi preprosesor yang valid"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "hilang ekspresi diantara '(' dan ')'"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s dengan tanpa ekspresi"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "operator '%s' tidak memiliki operan kanan"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "operator '%s' tidak memiliki operan kiri"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ':' tanpa awalan '?'"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "stack dalam %s tidak seimbang"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operator '%u' tidak mungkin"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "hilang ')' dalam ekspresi"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' tanpa diikuti ':'"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "integer overflow dalam ekspresi preprosesor"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "hilang '(' dalam ekspresi"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "operan kiri dari \"%s\" berubah tanda ketika dipromosikan"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "operan kanan dari \"%s\" berubah tanda ketika dipromosikan"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "tradisional C menolak operator unary plus"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "operator koma dalam operator dari #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "pembagian oleh nol dalam #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "direktori KOSONG dalam find_file"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "gunakan -Winvalid-pch untuk informasi lebih lanjut"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s adalah sebuah perangkat blok"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s terlalu besar"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s lebih pendek dari yang diduga"
+
+#: files.c:881
+#, 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:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Multiple include guards mungkin berguna untuk:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t harus berupa sebuah tipe unsigned"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "target char lebih kecil dari 8 bits wide"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "target wchar_t lebih kecil dari target char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "target int lebih kecil dari target char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP integer-setengah lebih kecil dari karakter CPP"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "backslash dan baris baru dipisahkan dengan spasi"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "backslash baris baru diakhir dari berkas"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c diubah ke %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph ??%c diabaikan, gunakan -trigraph untuk mengaktifkan"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" di dalam komentar"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s dalam direktif preprosesing"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "karakter kosong diabaikan"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' tidak dalam NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' tidak dalam NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "mencoba untuk menggunakan terusak \"%s\""
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "pengidentifikasi \"%s\" adalah nama operator spesial dalam C++"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "pembatas mentah string lebih panjang dari 16 karakter"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "karakter '%c' tidak valid dalam pembatas mentah string"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "tidak terselesaikan raw string"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "karakter kosong dijaga dalam literal"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "hilang karakter pengakhir %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "komentar gaya C++ tidak diijinkan dalam ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(ini hanya akan dilaporkan sekali setiap berkas masukan)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "komentar multi baris"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "tanda %s tidak dapat disebutkan"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makro \"%s\" tidak digunakan"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "makro bawaan \"%s\" tidak valid"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "tidak dapat menentukan berkas timestamp"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "tidak dapat menentukan tanggal dan waktu"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ diekspans didalam direktif dengan -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "string literal tidak valid, mengabaikan final '\\'"
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 membutuhkan argumen rest untuk digunakan"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makro \"%s\" membutuhkan %u argumen, tetapi hanya %u diberikan"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makro \"%s\" melewatkan %u argumen, tetapi hanya mengambil %u"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "daftar argumen tidak terselesaikan memanggil makro \"%s\""
+
+#: macro.c:1026
+#, 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:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "duplikasi parameter makro \"%s\""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" mungkin tidak muncul dalam daftar parameter makro"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "parameter makro yang berupa koma dipisahkan"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "nama parameter hilang"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonymous variadik makro diperkenalkan dalam C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tidak mengijinkan makro variadik bernama"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "hilang ')' dalam daftar parameter makro"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' tidak dapat muncul baik diakhir dari sebuah ekspansi makro"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 membutuhkan whitespace setelah nama makro"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "kurang spasi setelah nama makro"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' tidak diikuti dengan sebuah parameter makro"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" redefinisi"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "ini adalah lokasi dari definisi sebelumnya"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "argumen makro \"%s\" akan stringified dalam tradisional C"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipe hash %d tidak valid dalam cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "ketika menulis precompiled header"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: tidak digunakan karena `%.*s' teracuni"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: tidak digunakan karena `%.*s' tidak didefinisikan"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: tidak digunakan karena `%s' didefinisikan"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: tidak digunakan karena `__COUNTER__' tidak valid"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "ketika membaca precompiled header"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "terdeteksi rekursi ketika mengekspan makro \"%s\""
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "sintaks erro dalam daftar parameter makro"
+
+#~ 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.7/libcpp/po/ja.gmo b/gcc-4.7/libcpp/po/ja.gmo
new file mode 100644
index 000000000..bfb1f6e5f
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ja.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/ja.po b/gcc-4.7/libcpp/po/ja.po
new file mode 100644
index 000000000..d8c55cae0
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ja.po
@@ -0,0 +1,959 @@
+# Japanese messages for GNU gcc cpplib
+# Copyright (C) 2001, 2010, 2011, 2012 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.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.7.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-03-26 00:07+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"
+
+#: charset.c:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "%s ã‹ã‚‰ %s ã¸ã®å¤‰æ›ã¯ iconv ã«ã‚ˆã£ã¦ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "iconv 実装ãŒã‚ã‚Šã¾ã›ã‚“。 %s ã‹ã‚‰ %s ã¸å¤‰æ›ã§ãã¾ã›ã‚“"
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "文字 0x%lx ã¯åŸºæœ¬ã‚½ãƒ¼ã‚¹æ–‡å­—集åˆå†…ã«ã‚ã‚Šã¾ã›ã‚“\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "実行時文字集åˆã‚’変æ›ã—ã¦ã„ã¾ã™"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "文字 0x%lx ã¯å®Ÿè¡Œæ™‚文字集åˆã§ã¯å˜ä¸€ãƒã‚¤ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "文字 %x 㯠NFKC ã§ã¯ç„¡ã„よã†ã§ã™"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "ユニãƒãƒ¼ã‚µãƒ«æ–‡å­—å㯠C++ ãŠã‚ˆã³ C99 内ã§ã®ã¿æœ‰åŠ¹ã§ã™"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "'\\%c' ã®æ„味ã¯å¤ã„ (traditional) C ã§ã¯ç•°ãªã‚Šã¾ã™"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "_cpp_valid_ucn ã®ä¸­ã§ã™ãŒ UCN ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "互æ›æ€§ã®ãªã„ユニãƒãƒ¼ã‚µãƒ«æ–‡å­—å %.*s ã§ã™"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s ã¯æœ‰åŠ¹ãªãƒ¦ãƒ‹ãƒãƒ¼ã‚µãƒ«æ–‡å­—ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "識別å­ã¾ãŸã¯æ•°å­—ã®ä¸­ã« '$' ãŒã‚ã‚Šã¾ã™"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "ユニãƒãƒ¼ã‚µãƒ«æ–‡å­— %.*s ã¯è­˜åˆ¥ã®ä¸­ã§ã¯æœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "ユニãƒãƒ¼ã‚µãƒ«æ–‡å­— %.*s ã¯è­˜åˆ¥å­ã®æœ€åˆã®æ–‡å­—ã¨ã—ã¦æœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "UCN をソースã®æ–‡å­—集åˆã«å¤‰æ›ã—ã¦ã„ã¾ã™"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "UCN を実行時文字集åˆã«å¤‰æ›ã—ã¦ã„ã¾ã™"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\x' ã®æ„味ã¯å¤ã„ (traditional) C ã§ã¯ç•°ãªã‚Šã¾ã™"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x ãŒä½¿ç”¨ã•ã‚Œã¾ã—ãŸãŒã€ãã‚Œã«ç¶šãå六進数ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "å六進エスケープシーケンスãŒç¯„囲外ã§ã™"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "八進エスケープシーケンスãŒç¯„囲外ã§ã™"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "'\\a' ã®æ„味ã¯å¤ã„ (traditional) C ã§ã¯ç•°ãªã‚Šã¾ã™"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "éž ISO 標準ã®ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—シーケンス, '\\%c'"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "ä¸æ˜Žãªã‚¨ã‚¹ã‚±ãƒ¼ãƒ—シーケンス: '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "ä¸æ˜Žãªã‚¨ã‚¹ã‚±ãƒ¼ãƒ—シーケンス: '\\%s'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "エスケープシーケンスを実行時文字集åˆã«å¤‰æ›ã—ã¦ã„ã¾ã™"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "文字定数ãŒåž‹ã«å¯¾ã—ã¦é•·ã™ãŽã¾ã™"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "複数文字ã‹ã‚‰ãªã‚‹æ–‡å­—定数"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "空ã®æ–‡å­—定数"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "%s ã‹ã‚‰ %s ã¸ã®å¤‰æ›ã«å¤±æ•—ã—ã¾ã—ãŸ"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "余分ãªãƒˆãƒ¼ã‚¯ãƒ³ãŒ #%s 指示ã®å¾Œã«ã‚ã‚Šã¾ã™"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s 㯠GCC æ‹¡å¼µã§ã™"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s ã¯å»ƒæ­¢ã•ã‚ŒãŸ GCC æ‹¡å¼µã§ã™"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "å¤ã„ (traditional) C ã§ã¯ #elif を使用ã—ãªã„ã“ã¨ã‚’推奨ã—ã¾ã™"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "å¤ã„ (traditional) C ã§ã¯ # ãŒã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã•ã‚Œã¦ã„る㨠#%s を無視ã—ã¾ã™"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "インデントã•ãŸ # ãŒã‚ã‚‹å¤ã„ (traditional) C ã§ã¯ #%s ã‚’éš ã™ã“ã¨ã‚’推奨ã—ã¾ã™"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "マクロã®å¼•æ•°ã¸ã®æŒ‡ç¤ºã®åŸ‹ã‚è¾¼ã¿ã¯ç§»æ¤æ€§ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "行スタイル指示㯠GCC æ‹¡å¼µã§ã™"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "無効ãªå‰å‡¦ç†æŒ‡ç¤º #%s ã§ã™"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" ã¯ãƒžã‚¯ãƒ­åã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã›ã‚“"
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" 㯠C++ ã®æ¼”ç®—å­ã®ãŸã‚マクロåã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã›ã‚“"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s 指示ã®ä¸­ã§ãƒžã‚¯ãƒ­åãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "マクロåã¯è­˜åˆ¥å­ã§ãªãã¦ã¯ã„ã‘ã¾ã›ã‚“"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "\"%s\" を未定義状態ã«ã—ã¦ã„ã¾ã™"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "終端ã™ã‚‹ > 文字ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s 㯠\"FILENAME\" ã¾ãŸã¯ <FILENAME> ãŒå¿…è¦ã§ã™"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s 内ã®ãƒ•ã‚¡ã‚¤ãƒ«åãŒç©ºã§ã™"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include ã®å…¥ã‚Œå­ãŒæ·±ã™ãŽã¾ã™"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next ãŒä¸»ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚ã‚Šã¾ã™"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "\"%s\" 㯠line 指示ã§ã¯ç„¡åŠ¹ãªãƒ•ãƒ©ã‚°ã§ã™"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "#line 後ã«äºˆæœŸã—ãªã„ファイル終端 (EOF) ã§ã™"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line ã®å¾Œã«ã‚ã‚‹ \"%s\" ãŒæ­£ã®æ•´æ•°ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "行番å·ãŒç¯„囲外ã§ã™"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" ã¯æœ‰åŠ¹ãªãƒ•ã‚¡ã‚¤ãƒ«åã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "# ã®å¾Œã«ã‚ã‚‹ \"%s\" ãŒæ­£ã®æ•´æ•°ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "無効㪠#%s 指示ã§ã™"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "åå‰ç©ºé–“ \"%s\" 内㫠pragma を一致ã—ãªã„åå‰å±•é–‹ã§ç™»éŒ²ã—ã¦ã„ã¾ã™"
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "pragma \"%s\" ã‚’åå‰å±•é–‹æœ‰ã‚ŠãŠã‚ˆã³åå‰ç©ºé–“ç„¡ã—ã§ç™»éŒ²ã—ã¦ã„ã¾ã™"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "\"%s\" ã‚’ pragma ãŠã‚ˆã³ pragma åå‰ç©ºé–“ã®ä¸¡æ–¹ã¨ã—ã¦ç™»éŒ²ã—ã¦ã„ã¾ã™"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s ã¯æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s ã¯æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "NULL ãƒãƒ³ãƒ‰ãƒ©ã§ pragma を登録ã—ã¦ã„ã¾ã™"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once ãŒãƒ¡ã‚¤ãƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚ã‚Šã¾ã™"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "無効㪠#pragma push_macro 指示ã§ã™"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "無効㪠#pragma pop_macro 指示ã§ã™"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "#pragma GCC 汚染ディレクティヴãŒç„¡åŠ¹ã§ã™"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "既存ã®ãƒžã‚¯ãƒ­ \"%s' を汚染ã—ã¾ã™"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "include ファイル外㮠#pragma system_header ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸ"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "ソースファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "ç¾åœ¨ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯ %s よりå¤ã„ã§ã™"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pramga ãŒæ‹¬å¼§ã§å›²ã¾ã‚ŒãŸæ–‡å­—列リテラルをå—ã‘å–ã‚Šã¾ã—ãŸ"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else ã« #if ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else ㌠#else ã®å¾Œã‚ã«ã‚ã‚Šã¾ã™"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "ãã®æ¡ä»¶ã¯ã“ã“ã‹ã‚‰å§‹ã¾ã‚Šã¾ã™"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif ã« #if ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif ㌠#else ã®å¾Œã‚ã«ã‚ã‚Šã¾ã™"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif ã« #if ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "述語ã®å¾Œã‚ã® '(' を欠ã„ã¦ã„ã¾ã™"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "解を補完ã™ã‚‹ ')' を欠ã„ã¦ã„ã¾ã™"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "述語ã®è§£ãŒç©ºã§ã™"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "述語ã®ãªã„アサーションã§ã™"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "述語ã¯è­˜åˆ¥å­ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" ãŒå†ã‚¢ã‚µãƒ¼ãƒˆã•ã‚Œã¾ã—ãŸ"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "終端ã®ãªã„ #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "終端ã•ã‚Œã¦ã„ãªã„コメント"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "標準出力"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "æ•°å­—ã®ä¸­ã«å°æ•°ç‚¹ãŒå¤šã™ãŽã¾ã™"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "固定å°æ•°ç‚¹å®šæ•°ã¯ GCC æ‹¡å¼µã§ã™"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "二進定数内ã«ç„¡åŠ¹ãªæ•°å­— \"%c\" ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "八進定数内ã«ç„¡åŠ¹ãªæ•°å­— \"%c\" ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "浮動å°æ•°å®šæ•°ã«å¯¾ã™ã‚‹ç„¡åŠ¹ãªæŽ¥é ­è¾ž \"0b\" ã§ã™"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "å六進浮動å°æ•°å®šæ•°å†…ã«æ•°å­—ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "C99 å六進浮動å°æ•°å®šæ•°ã‚’使用ã—ã¦ã„ã¾ã™"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "ã¹ãä¹—ã®æ•°å­—ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "å六進浮動å°æ•°å®šæ•°ã«ã¯ã¹ãä¹—ãŒå¿…è¦ã§ã™"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "浮動å°æ•°å®šæ•°ã«ç„¡åŠ¹ãªæŽ¥å°¾è¾ž \"%.*s\" ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "å¤ã„ (traditional) C ã§ã¯ \"%.*s\" 接尾辞ã¯æ‹’å¦ã•ã‚Œã¾ã™"
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "å€ç²¾åº¦å®šæ•°ã®æŽ¥å°¾è¾žã¯ GCC æ‹¡å¼µã§ã™"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "å六進浮動å°æ•°å®šæ•°ã«ç„¡åŠ¹ãªæŽ¥å°¾è¾ž \"%.*s\" ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "å進浮動å°æ•°å®šæ•°ã¯ GCC æ‹¡å¼µã§ã™"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "整数定数ã«ç„¡åŠ¹ãªæŽ¥å°¾è¾ž \"%.*s\" ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "C++0x ã® long long 整数定数を使用ã—ã¦ã„ã¾ã™"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "C99 ã® long long 整数定数を使用ã—ã¦ã„ã¾ã™"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "虚数定数㯠GCC æ‹¡å¼µã§ã™"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "二進定数㯠GCC æ‹¡å¼µã§ã™"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "整数定数ãŒåž‹ã«å¯¾ã—ã¦å¤§ãã™ãŽã¾ã™"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "整数定数ãŒå¤§ãã™ãŽã‚‹ã®ã§ unsigned ã«ãªã‚Šã¾ã—ãŸ"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "\"defined\" ã®å¾Œã‚ã® ')' ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "\"defined\" 演算å­ã¯è­˜åˆ¥å­ã‚’è¦æ±‚ã—ã¾ã™"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(C++ ã§ã¯ \"%s\" ㌠\"%s\" ã®ä»£æ›¿ãƒˆãƒ¼ã‚¯ãƒ³ã§ã™ï¼‰"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "ã“ã® \"defined\" ã®ä½¿ç”¨æ³•ã¯ç§»æ¤æ€§ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "å‰å‡¦ç†å¼å†…ã®ãƒ¦ãƒ¼ã‚¶å®šç¾©ãƒªãƒ†ãƒ©ãƒ«"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "å‰å‡¦ç†å¼ã®ä¸­ã«æµ®å‹•å°æ•°å®šæ•°ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "å‰å‡¦ç†å¼ã®ä¸­ã«è™šæ•°ãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" ã¯å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "アサーション㯠GCC æ‹¡å¼µã§ã™"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "アサーションã¯å»ƒæ­¢ã•ã‚ŒãŸæ‹¡å¼µã§ã™"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "トークン \"%s\" ã®å‰ã«äºŒé …演算å­ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "トークン \"%s\" ã¯æœ‰åŠ¹ãªå‰å‡¦ç†å¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "'(' 㨠')' ã®é–“ã«å¼ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "å¼ãŒç„¡ã„ %s ã§ã™"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "æ¼”ç®—å­ '%s' ã«å³å´è¢«æ¼”ç®—å­ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "æ¼”ç®—å­ '%s' ã«å·¦å´è¢«æ¼”ç®—å­ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr "å‰ã« '?' ãŒç„¡ã„ ':' ã§ã™"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "%s 内ã«é‡£ã‚Šåˆã„ãŒã¨ã‚Œã¦ã„ãªã„スタックãŒã‚ã‚Šã¾ã™"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "ä¸å¯èƒ½ãªæ¼”ç®—å­ '%u' ã§ã™"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "å¼ã®ä¸­ã« ')' ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "後㫠':' ãŒç¶šã„ã¦ã„ãªã„ '?' ã§ã™"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "æ•´æ•°ãŒå‰å‡¦ç†å¼å†…ã§æº¢ã‚Œã¾ã—ãŸ"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "å¼å†…ã« '(' ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\" ã®å·¦å´ã®è¢«æ¼”ç®—å­ã¯å®Ÿè¡Œæ™‚ã«ç¬¦å·ã‚’変更ã—ã¾ã™"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\" ã®å³å´ã®æ¼”ç®—å­ã¯å®Ÿè¡Œæ™‚ã«ç¬¦å·ã‚’変更ã—ã¾ã™"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "å¤ã„ (traditional) C ã§ã¯å˜é …プラス演算å­ã¯æ‹’å¦ã•ã‚Œã¾ã™"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "カンマ演算å­ãŒ #if ã®è¢«æ¼”ç®—å­å†…ã«ã‚ã‚Šã¾ã™"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "#if 内ã§ã‚¼ãƒ­ã«ã‚ˆã‚‹é™¤ç®—ãŒè¡Œã‚ã‚Œã¾ã—ãŸ"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "find_file 内㫠NULL ディレクトリãŒã‚ã‚Šã¾ã™"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "一個以上㮠PCH ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸãŒã€ãれらã¯ç„¡åŠ¹ã§ã™"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "詳細ãªæƒ…å ±ã«é–¢ã—ã¦ã¯ -Winvalid-pch を使用ã—ã¦ãã ã•ã„"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s ã¯ãƒ–ロックデãƒã‚¤ã‚¹ã§ã™"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s ã¯å¤§ãã™ãŽã¾ã™"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s ãŒæœ¬æ¥ã‚ˆã‚Šã‚‚短ã„ã§ã™"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "%s を探索ã™ã‚‹ãŸã‚ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‘スãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "å¤šé‡ include ã‹ã‚‰ã®ä¿è­·ãŒæœ‰ç›Šã¨ãªã‚‹ã§ã—ょã†:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t ã¯ç¬¦å·ç„¡ã—åž‹ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "å‰å‡¦ç†ã®æ•°å€¤æ¼”ç®—ã®æœ€å¤§ç²¾åº¦ã¯ %lu ビットã§ã™ãŒã€ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã¯ %lu ビットをè¦æ±‚ã—ã¦ã„ã¾ã™"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP 数値演算ã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã® int 以上ã®ç²¾åº¦ãŒãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "ターゲット㮠char ㌠8 ビットよりå°ã•ã„ã§ã™"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "ターゲット㮠wchar_t ãŒã‚¿ãƒ¼ã‚²ãƒƒãƒˆã® char よりå°ã•ã„ã§ã™"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "ターゲット㮠int ãŒã‚¿ãƒ¼ã‚²ãƒƒãƒˆã® char よりå°ã•ã„ã§ã™"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP ãƒãƒ¼ãƒ•æ•´æ•°ã¯ CPP character よりå°ã•ã„ã§ã™"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã¨æ”¹è¡ŒãŒç©ºç™½ã§åˆ†å‰²ã•ã‚Œã¾ã—ãŸ"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "ファイルã®çµ‚ã‚Šã«ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥-改行ãŒã‚ã‚Šã¾ã™"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "トライグラフ ??%c 㯠%c ã«å¤‰æ›ã•ã‚Œã¾ã—ãŸ"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "トライグラフ ??%c ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸã€‚有効ã«ã™ã‚‹ã«ã¯ -trigraphs を使用ã—ã¦ãã ã•ã„"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "コメント内㫠\"/*\" ãŒã‚ã‚Šã¾ã™"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "å‰å‡¦ç†æŒ‡ç¤ºä¸­ã« %s ãŒã‚ã‚Šã¾ã™"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "null 文字ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸ"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' 㯠NFKC ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' 㯠NFC ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "汚染ã•ã‚ŒãŸ '%s' 使ãŠã†ã¨ã—ã¦ã„ã¾ã™"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ 㯠C99 å¯å¤‰å¼•æ•°ãƒžã‚¯ãƒ­æ‹¡å¼µã§ã®ã¿å‡ºç¾ã§ãã¾ã™"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "è­˜åˆ¥å­ \"%s\" 㯠C++ ã®ç‰¹åˆ¥ãªæ¼”ç®—å­åã§ã™"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "生ã®æ–‡å­—列区切り㌠16 文字より大ãã„ã§ã™"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "生ã®æ–‡å­—列区切り内ã«ç„¡åŠ¹ãªæ–‡å­— '%c' ãŒã‚ã‚Šã¾ã™"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "終端ã•ã‚Œã¦ã„ãªã„生ã®æ–‡å­—列ã§ã™"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "リテラル中㧠null 文字ãŒç¢ºä¿ã•ã‚Œã¾ã—ãŸ"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "%c 文字ã§ã®çµ‚端を欠ã„ã¦ã„ã¾ã™"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ スタイルã®ã‚³ãƒ¡ãƒ³ãƒˆã¯ ISO C90 ã§ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(ã“ã‚Œã¯å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã«ã¤ã一回ã ã‘報告ã•ã‚Œã¾ã™)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "複数行ã®ã‚³ãƒ¡ãƒ³ãƒˆ"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "綴るã“ã¨ãŒã§ããªã„トークン %s ã§ã™"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "マクロ \"%s\" ã¯ä½¿ç”¨ã•ã‚Œã¾ã›ã‚“"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "無効ãªçµ„ã¿è¾¼ã¿ãƒžã‚¯ãƒ­ \"%s\" ã§ã™"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "ファイルã®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—を決定ã§ãã¾ã›ã‚“"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "日付ã¨æ™‚間を決定ã§ãã¾ã›ã‚“"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ ㌠-fdirectives-only ãŒã‚る指示内ã§å±•é–‹ã•ã‚Œã¾ã—ãŸ"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "文字列リテラルãŒç„¡åŠ¹ã§ã™ã€æœ€å¾Œã® '\\' を無視ã—ã¾ã™"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "\"%s\" 㨠\"%s\" を貼付ã‘ã¾ã—ãŸãŒæ­£å¸¸ãªå‰å‡¦ç†ãƒˆãƒ¼ã‚¯ãƒ³ã¨ãªã‚Šã¾ã›ã‚“"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 ã¯ä½¿ç”¨ã•ã‚Œã‚‹ã¹ã残りã®ã®å¼•æ•°ã‚’è¦æ±‚ã—ã¾ã™"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "マクロ \"%s\" ã¯å¼•æ•°ã‚’ %u è¦æ±‚ã—ã¾ã™ãŒã€%u 個ã—ã‹ä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "マクロ \"%s\" ã«å¼•æ•°ãŒ %u 渡ã•ã‚Œã¾ã—ãŸãŒã€%u ã—ã‹å—ã‘å–ã‚Šã¾ã›ã‚“"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "終端ã•ã‚Œã¦ã„ãªã„引数リストãŒãƒžã‚¯ãƒ­ \"%s\" ã‚’èµ·å‹•ã—よã†ã¨ã—ã¾ã—ãŸ"
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "å¤ã„ C ã§ã¯ã€é–¢æ•°åž‹ãƒžã‚¯ãƒ­ \"%s\" ã«å¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œã­ã°ãªã‚Šã¾ã›ã‚“"
+
+#: macro.c:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "マクロ仮引数 \"%s\" ãŒé‡è¤‡ã—ã¦ã„ã¾ã™"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" ã¯ãƒžã‚¯ãƒ­ä»®å¼•æ•°ãƒªã‚¹ãƒˆã«ç¾ã‚Œã¦ã¯ãªã‚Šã¾ã›ã‚“"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "マクロ仮引数ã¯ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã•ã‚Œãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "仮引数åを欠ã„ã¦ã„ã¾ã™"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "ç„¡åå¯å¤‰å¼•æ•°ãƒžã‚¯ãƒ­ã¯ C99 ã§å°Žå…¥ã•ã‚Œã¾ã—ãŸ"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ã§ã¯åå‰ã¤ãå¯å¤‰å¼•æ•°ãƒžã‚¯ãƒ­ã‚’許ã—ã¾ã›ã‚“"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "マクロ仮引数リスト㫠')' ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' ã¯ãƒžã‚¯ãƒ­å±•é–‹ã®ä¸¡ç«¯ã«ã¯å‡ºç¾ã§ãã¾ã›ã‚“"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 ã§ã¯ãƒžã‚¯ãƒ­åã®å¾Œã«ç©ºç™½ãŒå¿…è¦ã§ã™"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "マクロåã®å¾Œã«ç©ºç™½ãŒã‚ã‚Šã¾ã›ã‚“"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' ã«ãƒžã‚¯ãƒ­ä»®å¼•æ•°åãŒç¶šã„ã¦ã„ã¾ã›ã‚“"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" ãŒå†å®šç¾©ã•ã‚Œã¾ã—ãŸ"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "ã“ã“ãŒä»¥å‰ã®å®£è¨€ãŒã‚ã‚‹ä½ç½®ã§ã™"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "マクロ引数 \"%s\" ã¯å¤ã„ (traditional) C ã§ã¯æ–‡å­—列化ã•ã‚Œã¾ã™"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition 内ã«ç„¡åŠ¹ãªãƒãƒƒã‚·ãƒ¥åž‹ %d ãŒã‚ã‚Šã¾ã™"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "プリコンパイルヘッダ書ãè¾¼ã¿ä¸­"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: `%.*s' ã¯æ±šæŸ“ã•ã‚Œã¦ã„ã‚‹ãŸã‚使用ã§ãã¾ã›ã‚“"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: `%.*s' ã¯å®šç¾©ã•ã‚Œã¦ã„ãªã„ãŸã‚使用ã§ãã¾ã›ã‚“"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: `%.*s' ㌠`%s' ã¨ã—ã¦å®šç¾©ã•ã‚Œã¦ã„ã¦ã€ `%.*s' ã§ã¯ãªã„ãŸã‚使用ã§ãã¾ã›ã‚“"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: `%s' ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹ãŸã‚使用ã§ãã¾ã›ã‚“"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: `__COUNTER__' ãŒç„¡åŠ¹ãªãŸã‚使用ã§ãã¾ã›ã‚“"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "プリコンパイルヘッダを読ã¿è¾¼ã¿ä¸­"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "マクロ \"%s\" を展開中ã«å†å¸°ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "マクロ仮引数リストã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™"
diff --git a/gcc-4.7/libcpp/po/nl.gmo b/gcc-4.7/libcpp/po/nl.gmo
new file mode 100644
index 000000000..3d6812744
--- /dev/null
+++ b/gcc-4.7/libcpp/po/nl.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/nl.po b/gcc-4.7/libcpp/po/nl.po
new file mode 100644
index 000000000..9ebf2c3c6
--- /dev/null
+++ b/gcc-4.7/libcpp/po/nl.po
@@ -0,0 +1,984 @@
+# Dutch messages for cpplib.
+# Copyright (C) 1999, 2000, 2002, 2003, 2005, 2007, 2008, 2009, 2010 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.5-b20100204\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2010-02-06 14:43+0100\n"
+"Last-Translator: Tim Van Holder <tim.van.holder@telenet.be>\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"
+
+#: charset.c:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv ondersteunt geen omzetting van %s naar %s"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "teken 0x%lx maakt geen deel uit van de basis bronkarakterset\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "omzetting naar uitvoeringskarakterset"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "teken 0x%lx is niet unibyte in de uitvoeringskarakterset"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Teken %x is misschien niet NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universele tekennamen zijn enkel geldig in C++ en C99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "de betekenis van '\\%c' is anders in traditionele C"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "In _cpp_valid_ucn maar het is geen UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "onvolledige universele tekennaam %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s is geen geldige universele tekennaam"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "'$' in naam of getal"
+
+# "identifier" is een verdomd rottig woord om te vertalen...
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universeel teken %.*s is niet geldig in een naam"
+
+#: charset.c:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "omzetting van UCN naar bronkarakterset"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "omzetting van UCN naar uitvoeringskarakterset"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "de betekenis van '\\x' is anders in traditionele C"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x gebruikt zonder daaropvolgende hexadecimale cijfers"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "hexadecimale escape sequence buiten bereik"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "octale escape sequence buiten bereik"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "de betekenis van '\\a' is anders in traditionele C"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "escape sequence '\\%c' is niet ISO-standaard"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "onbekende escape sequence: '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "onbekende escape sequence: '\\%s'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "omzetting van escape sequence naar uitvoeringskarakterset"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "karakterconstante te lang voor zijn type"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "karakterconstante bevat meerdere karakters"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "lege karakterconstante"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "fout bij omzetten van %s naar %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "overbodige tokens aan einde van #%s commando"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s is een uitbreiding van GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s is een afgekeurde uitbreiding van GCC"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "gebruik liefst geen #elif in traditionele C"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionele C negeert #%s wanneer de # geïndenteerd is"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "verberg #%s liefst van traditionele C via een geïndenteerde #"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "het plaatsen van een commando binnen macro-argumenten is niet portabel"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "dit soort line commando is een uitbreiding van GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ongeldig preprocessing-commando #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" kan niet als macronaam gebruikt worden"
+
+#: directives.c:556
+#, 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:559
+#, 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:562
+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:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "definitie van \"%s\" wordt ongedaan gemaakt"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "sluitend > teken ontbreekt"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s verwacht \"BESTAND\" of <BESTAND>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "lege bestandsnaam in #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include te diep genest"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next in primair bronbestand"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ongeldige vlag \"%s\" in #line commando"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "onverwacht einde van bestand na #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" (na #line) is geen positieve integer"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "regelnummer buiten bereik"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" is geen geldige bestandsnaam"
+
+#: directives.c:972
+#, 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:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "ongeldig #%s commando"
+
+# goede vertaling voor 'mismatched'?
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "registratie van pragmas in namespace \"%s\" met niet-overeenkomstige naamexpansie"
+
+# moet namespace hier ook vertaald worden?
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registratie van pragma \"%s\" met naamexpansie maar geen namespace"
+
+# moet namespace hier ook vertaald worden?
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registratie van \"%s\" zowel als pragma en als pragma-namespace"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s is reeds geregistreerd"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s is reeds geregistreerd"
+
+# betere vertaling voor 'handler'?
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "registratie van pragma met NULL als afhandelingsroutine"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once in hoofdbestand"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "ongeldig #pragma push_macro commando"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "ongeldig #pragma pop_macro commando"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "ongeldig #pragma GCC poison commando"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "bestaande macro \"%s\" wordt 'vergiftigd'"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header wordt genegeerd buiten een invoegbestand"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "kan bronbestand %s niet vinden"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "huidig bestand is ouder dan %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma verwacht een stringconstante tussen haakjes als argument"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else zonder #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else na #else"
+
+# of gewoon "de conditie"?
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "het conditionele blok begon hier"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif zonder #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif na #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif zonder #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "'(' ontbreekt na predicaat"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "')' ontbreekt als afronding van het antwoord"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "antwoord van het predicaat is leeg"
+
+# dit moet beter kunnen...
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "assertie zonder predicaat"
+
+# ... dit klinkt echt niet - maar wat is hier een beter vertaling voor identifier?
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "predicaat moet een naam zijn"
+
+# is "asserteren" wel een echt woord?
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" opnieuw geasserteerd"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "niet-beëindigde #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "niet-beëindigde commentaar"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+# hoort niet echt een vertaalbare string te zijn :-)
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+# betere vertaling voor decimal point?
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "teveel komma's in getal"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "fixed-point constantes zijn een uitbreiding van GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "ongeldig cijfer \"%c\" in binaire constante"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ongeldig cijfer \"%c\" in octale constante"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ongeldige prefix \"0b\" voor floating-point constante"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "geen cijfers in hexadecimale floating-point constante"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "gebruik van C99 hexadecimale floating-point constante"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "exponent heeft geen cijfers"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadecimale floating-point constante vereist een exponent"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ongeldige suffix \"%.*s\" aan floating-point constante"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionele C aanvaardt de \"%.*s\" suffix niet"
+
+#: expr.c:534
+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:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ongeldige suffix \"%.*s\" bij hexadecimale floating-point constante"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "decimale float-constantes zijn een uitbreiding van GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ongeldige suffix \"%.*s\" aan integerconstante"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "gebruik van C++0x long long integerconstante"
+
+#: expr.c:594
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C99 long long integer constant"
+msgstr "gebruik van C++0x long long integerconstante"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginaire constantes zijn een uitbreiding van GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "binaire constantes zijn een uitbreiding van GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "integerconstante is te groot voor zijn type"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "integerconstante is zo groot dat hij tekenloos is"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "')' ontbreekt na \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "de \"defined\" operator verwacht een naam als argument"
+
+#: expr.c:845
+#, 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:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "dit gebruik van \"define\" is mogelijk niet portabel"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "integer-overflow in preprocessor-expressie"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "floating-point constante in preprocessor-expressie"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginair getal in preprocessor-expressie"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" is niet gedefinieerd"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "assertions zijn een uitbreiding van GCC"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "assertions zijn een afgekeurde uitbreiding"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "binaire operator ontbreekt voor het \"%s\" token"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "token \"%s\" is niet geldig in preprocessor-expressies"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "expressie ontbreekt tussen '(' en ')'"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s zonder expressie"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "operator '%s' heeft geen rechtse operand"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "operator '%s' heeft geen linkse operand"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ':' zonder voorafgaande '?'"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "niet-gebalanceerde stack in %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operator '%u' is onmogelijk"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "')' ontbreekt in expressie"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' zonder daaropvolgende ':'"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "integer-overflow in preprocessor-expressie"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "'(' ontbreekt in expressie"
+
+#: expr.c:1419
+#, 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:1424
+#, 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:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionele C verwerpt de unaire plus-operator"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "comma operator in operand van #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "deling door nul in `#if'"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "directory is NULL in find_file"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "gebruik -Winvalid-pch voor meer informatie"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s is een blokapparaat"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s is te groot"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s is korter dan verwacht"
+
+#: files.c:881
+#, 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:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Meerdere invoegbeschermingen zouden nuttig kunnen zijn voor:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t moet een tekenloos type zijn"
+
+#: init.c:516
+#, 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; doelomgeving vereist %lu bits"
+
+#: init.c:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "char is minder dan 8 bits breed in de doelomgeving"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "wchar_t is smaller dan char in de doelomgeving"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "int is smaller dan char in de doelomgeving"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer is smaller dan een CPP character"
+
+#: init.c:543
+#, 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 karakterconstantes aan van meer dan %lu bits, maar de doelomgeving vereist %lu bits"
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr "backslash en newline gescheiden door spatie(s)"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "backslash-newline aan einde van bestand"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c omgezet naar %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph ??%c genegeerd, gebruik -trigraphs om ondersteuning in te schakelen"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" binnen commentaar"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s binnen preprocessor-commando"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "nulkarakter(s) worden genegeerd"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' zit niet in NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' zit niet in NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "poging tot gebruik van 'vergiftigde' \"%s\""
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, 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:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "rauwe stringscheiding is langer dan 16 tekens"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ongeldig teken '%c' in rauwe stringscheiding"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "niet-beëindigde rauwe string"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "nulkarakter(s) in een constante worden behouden"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "sluitend %c teken ontbreekt"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "commentaar in C++ stijl is niet toegestaan in ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(dit wordt maar een keer gemeld per invoerbestand)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "commentaar gespreid over meerdere lijnen"
+
+# lijkt een vreemde boodschap...
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "kan token %s niet spellen"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "macro \"%s\" wordt nergens gebruikt"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ongeldige ingebouwde macro \"%s\""
+
+# betere vertaling voor 'timestamp'?
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "kan tijdsinformatie van bestand niet bepalen"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "kan datum en tijd niet bepalen"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "expansie van __COUNTER__ binnenin commando terwijl -fdirectives-only opgegeven is"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ongeldige stringconstante, laatste '\\' wordt genegeerd"
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 verplicht het gebruik van restargumenten"
+
+#: macro.c:687
+#, 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:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "niet-beëindigde argumentenlijst bij oproep van macro \"%s\""
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "functie-achtige macro \"%s\" moet in traditionele C altijd met argumenten gebruikt worden"
+
+#: macro.c:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "oproep van macro %s argument %d: lege macro-argumenten zijn niet gedefinieerd in ISO C90 and ISO C++98"
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "herhaalde macro-parameter \"%s\""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" mag niet voorkomen in lijst van macro-parameters"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "macro-parameters moet door komma's gescheiden worden"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "parameternaam weggelaten"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonieme variadische macros werden door C99 ingevoerd"
+
+# variadic? " met variabele argumentenlijst" is nogal lang...
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C staat het gebruik benoemde variadische macro's niet toe"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "')' ontbreekt in lijst van macro-parameters"
+
+#: macro.c:2748
+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:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 vereist witruimte na de macronaam"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "witruimte ontbreekt na de macronaam"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' wordt niet gevolgd door de naam van een macro-parameter"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" opnieuw gedefinieerd"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "dit is de locatie van de eerdere definitie"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "macro-argument \"%s\" zou string gemaakt worden in traditionele C"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ongeldig hashtype %d in cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "bij het schrijven van een voorgecompileerde header"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: niet gebruikt omdat \"%.*s\" vergiftigd is"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: niet gebruikt omdat \"%.*s\" niet gedefinieerd werd"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: niet gebruikt omdat \"%s\" gedefinieerd is"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: niet gebruikt omdat \"__COUNTER__\" ongeldig is"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "bij het lezen van een voorgecompileerde header"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "recursie gedetecteerd bij uitbreiden van macro \"%s\""
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "syntaxfout in lijst van macro-parameters"
diff --git a/gcc-4.7/libcpp/po/ru.gmo b/gcc-4.7/libcpp/po/ru.gmo
new file mode 100644
index 000000000..5b88e0746
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ru.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/ru.po b/gcc-4.7/libcpp/po/ru.po
new file mode 100644
index 000000000..2b19c1f6e
--- /dev/null
+++ b/gcc-4.7/libcpp/po/ru.po
@@ -0,0 +1,957 @@
+# 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.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.7-b20120128\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-01-29 16:23+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.0\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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "преобразование из %s в %s не поддерживаетÑÑ iconv"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "нет реализации в iconv, невозможно преобразовать из %s в %s"
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "Ñимвол 0x%lx отÑутÑтвует в проÑтом наборе Ñимволов иÑходного кода\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "преобразование в набор Ñимволов Ñреды выполнениÑ"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "Ñимвол 0x%lx не ÑвлÑетÑÑ ÑŽÐ½Ð¸Ð±Ð°Ð¹Ñ‚Ð¾Ð¼ (unibyte) в наборе Ñимволов Ñреды выполнениÑ"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Символ %x не может быть NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "универÑальные имена Ñимволов допуÑтимы только в C++ и C99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "назначение «\\%c» отличаетÑÑ Ð² традиционном C"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "В _cpp_valid_ucn, но не UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "неполное универÑальное Ð¸Ð¼Ñ Ñимвола %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым универÑальным именем Ñимвола"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "«$» в идентификаторе или чиÑле"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "универÑальный Ñимвол %.*s недопуÑтим в идентификаторе"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "универÑальный Ñимвол %.*s недопуÑтим в начале идентификатора"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "преобразование UCN в проÑтой набор Ñимволов иÑходного кода"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "преобразование UCN в набор Ñимволов Ñреды выполнениÑ"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "назначение «\\x» отличаетÑÑ Ð² традиционном C"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "поÑле \\x нет шеÑтнадцатеричных цифр"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "шеÑÑ‚Ð½Ð°Ð´Ñ†Ð°Ñ‚ÐµÑ€Ð¸Ñ‡Ð½Ð°Ñ ÑÐºÑ€Ð°Ð½Ð¸Ñ€ÑƒÑŽÑ‰Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ за пределами диапазона"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "воÑÑŒÐ¼ÐµÑ€Ð¸Ñ‡Ð½Ð°Ñ ÑÐºÑ€Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ за пределами диапазона"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "назначение «\\a» отличаетÑÑ Ð² традиционном C"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "не ÑоответÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ñтандарту ISO ÑÐºÑ€Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ, «\\%c»"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÑÐºÑ€Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ «\\%c»"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "неизвеÑÑ‚Ð½Ð°Ñ ÑÐºÑ€Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ «\\%s»"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "преобразование Ñкранированной поÑледовательноÑти в набор Ñимволов Ñреды выполнениÑ"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñтанта Ñлишком длинна Ð´Ð»Ñ Ñвоего типа"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "Ð¼Ð½Ð¾Ð³Ð¾Ð·Ð½Ð°ÐºÐ¾Ð²Ð°Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñтанта"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "пуÑÑ‚Ð°Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñтанта"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "ошибка при преобразовании %s в %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "лишние токены в конце директивы #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s ÑвлÑетÑÑ Ñ€Ð°Ñширением GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s ÑвлÑетÑÑ ÑƒÑтаревшим раÑширением GCC"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "предполагаетÑÑ Ð½Ðµ иÑпользование #elif в традиционном C"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "в традиционном C игнорируетÑÑ #%s Ñ Ð¾Ñ‚Ñтупом у #"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "предполагаетÑÑ Ñкрытие #%s из традиционного C Ñ Ð¾Ñ‚Ñтупом у #"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "вÑтраивание директивы внутрь аргументов макроÑа не переноÑимо"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "Ñтиль Ñтроковых директив ÑвлÑетÑÑ Ñ€Ð°Ñширением GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€ÐµÐ¿Ñ€Ð¾Ñ†ÐµÑÑÐ¾Ñ€Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "«defined» не может иÑпользоватьÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа"
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "«%s» не может иÑпользоватьÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа в качеÑтве оператора в C++"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "не указано Ð¸Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа в директиве #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "имена макроÑов должны быть идентификаторами"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Â«%s»"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "отÑутÑтвует завершающий Ñимвол >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "Ð´Ð»Ñ #%s ожидаетÑÑ \"ИМЯ_ФÐЙЛÐ\" или <ИМЯ_ФÐЙЛÐ>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "пуÑтое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° в #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "Ñлишком много вложенных #include"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next в первичном иÑходном файле"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "неверный флаг «%s» в Ñтроковой директиве"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "неожиданный конец файла поÑле #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "«%s» поÑле #line не ÑвлÑетÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ целым чиÑлом"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "номер Ñтроки вне допуÑтимых пределов"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "«%s» не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым именем файла"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "«%s» поÑле # не ÑвлÑетÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ целым чиÑлом"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° #%s"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "региÑтрируетÑÑ Ð¿Ñ€Ð°Ð³Ð¼Ð° в проÑтранÑтве имён «%s» Ñ Ð½ÐµÑовпадающим именным раÑширением"
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "региÑтрируетÑÑ Ð¿Ñ€Ð°Ð³Ð¼Ð° «%s» Ñ Ð¸Ð¼ÐµÐ½Ð½Ñ‹Ð¼ раÑширением, но без проÑтранÑтва имён"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "региÑтрируетÑÑ Â«%s» как прагма и как проÑтранÑтво имён Ð´Ð»Ñ Ð¿Ñ€Ð°Ð³Ð¼"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s уже зарегиÑтрирована"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s уже зарегиÑтрирована"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "региÑтрируетÑÑ Ð¿Ñ€Ð°Ð³Ð¼Ð° Ñо значением обработчика равным NULL"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once в главном файле"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° #pragma push_macro"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° #pragma pop_macro"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° #pragma GCC poison"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "отравление ÑущеÑтвующего макроÑа «%s»"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header игнорируетÑÑ Ð²Ð½Ðµ включаемого файла"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "не удалоÑÑŒ найти иÑходный файл %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "текущий файл Ñтарее чем %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "Ð´Ð»Ñ _Pragma требуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ Ñтроковый литерал в Ñкобках"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else без #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else поÑле #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "уÑловие начинаетÑÑ Ð·Ð´ÐµÑÑŒ"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif без #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif поÑле #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif без #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "отÑутÑтвует «(» поÑле предиката"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "отÑутÑтвует «)» Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "ответ предиката пуÑÑ‚"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "утверждение без предиката"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "предикат должен быть идентификатором"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "повторное утверждение «%s»"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "незавершённый комментарий"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "Ñлишком много деÑÑтичных точек в чиÑле"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "конÑтанты Ñ Ñ„Ð¸ÐºÑированный точкой ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð°Ñширением GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ†Ð¸Ñ„Ñ€Ð° «%c» в двоичной конÑтанте"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ†Ð¸Ñ„Ñ€Ð° «%c» в воÑьмеричной конÑтанте"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "неверный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Â«0b» в плавающей конÑтанте"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "отÑутÑтвуют цифры в шеÑтнадцатеричной плавающей конÑтанте"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "иÑпользование шеÑтнадцатеричной плавающей конÑтанты C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "в ÑкÑпоненте нет цифр"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "в шеÑтнадцатеричных плавающих конÑтантах должна быть ÑкÑпонента"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "неверный ÑÑƒÑ„Ñ„Ð¸ÐºÑ Â«%.*s» в плавающей конÑтанте"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "в традиционном C отвергаетÑÑ ÑÑƒÑ„Ñ„Ð¸ÐºÑ Â«%.*s»"
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "ÑÑƒÑ„Ñ„Ð¸ÐºÑ Ð´Ð»Ñ ÐºÐ¾Ð½Ñтант типа double ÑвлÑетÑÑ Ñ€Ð°Ñширением GCC"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "неверный ÑÑƒÑ„Ñ„Ð¸ÐºÑ Â«%.*s» в шеÑтнадцатеричной плавающей конÑтанте"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "деÑÑтичные плавающие конÑтанты ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð°Ñширением GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "неверный ÑÑƒÑ„Ñ„Ð¸ÐºÑ Â«%.*s» в целочиÑленной конÑтанте"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "иÑпользование целочиÑленной конÑтанты C++0x long long"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "иÑпользование целочиÑленной конÑтанты C99 long long"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "мнимые конÑтанты ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð°Ñширением GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "двоичные конÑтанты ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð°Ñширением GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "значение целочиÑленной конÑтанты Ñлишком велико Ð´Ð»Ñ Ñвоего типа"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "значение целочиÑленной конÑтанты так велико что Ñтало беззнаковым"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "отÑутÑтвует «)» поÑле «defined»"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° «defined» требуетÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(«%s» ÑвлÑетÑÑ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð¾Ð¹ токену «%s» в C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "такое иÑпользование «defined» может оказатьÑÑ Ð½ÐµÐ¿ÐµÑ€ÐµÐ½Ð¾Ñимым"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "определённый пользователем литерал в препроцеÑÑорном выражении"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰Ð°Ñ ÐºÐ¾Ð½Ñтанта в препроцеÑÑорном выражении"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "мнимое чиÑло в препроцеÑÑорном выражении"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "«%s» не определена"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "ÑƒÑ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð°Ñширением GCC"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "ÑƒÑ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ ÑвлÑÑŽÑ‚ÑÑ ÑƒÑтаревшим раÑширением"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "отÑутÑтвует двоичный оператор перед токеном «%s»"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "токен «%s» не допуÑтим в препроцеÑÑорных раÑширениÑÑ…"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "отÑутÑтвует выражение между «(» и «)»"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s без выражениÑ"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "оператор «%s» не имеет правого операнда"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "оператор «%s» не имеет левого операнда"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " «:» без начального «?»"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "неÑбаланÑированный Ñтек в %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "невозможный оператор «%u»"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "отÑутÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Â«)» в выражении"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "«?» без поÑледующего «:»"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "целочиÑленное переполнение в препроцеÑÑорном выражении"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "отÑутÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Â«(» в выражении"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "левый операнд «%s» изменÑет знак при поÑвлении"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "операнд операнд «%s» изменÑет знак при поÑвлении"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "в традиционном C отвергаетÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€ унарного ÑложениÑ"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "оператор запÑÑ‚Ð°Ñ Ð² операнде #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "деление на ноль в #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "каталог NULL в find_file"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "найден один или более файлов PCH, но вÑе они некорректные"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "иÑпользуйте -Winvalid-pch Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ подробной диагноÑтики"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s ÑвлÑетÑÑ Ð±Ð»Ð¾Ñ‡Ð½Ñ‹Ð¼ уÑтройÑтвом"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s Ñлишком большое"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s короче чем ожидаетÑÑ"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "отÑутÑтвует путь Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÐµÐ¼Ñ‹Ñ… файлов, в котором ищетÑÑ %s"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "ÐеÑколько защит Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть полезно длÑ:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t должна быть беззнакового типа"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "препроцеÑÑÐ¾Ñ€Ð½Ð°Ñ Ð°Ñ€Ð¸Ñ„Ð¼ÐµÑ‚Ð¸ÐºÐ° имеет макÑимальную точноÑÑ‚ÑŒ равную %lu бит; Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ требуетÑÑ %lu бит"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "точноÑÑ‚ÑŒ арифметики CPP должна быть не менее Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ int цели"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "ширина char у цели менее 8 бит"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "wchar_t цели уже чем char цели"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "int цели уже чем char цели"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "ширина половины integer CPP уже чем Ñимвол CPP"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÐºÐ¾ÑÐ°Ñ Ñ‡ÐµÑ€Ñ‚Ð° и Ñимвол новой Ñтроки разделены пробелом"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÐºÐ¾ÑÐ°Ñ Ñ‡ÐµÑ€Ñ‚Ð°/Ñимвол новой Ñтроки в конце файла"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "триграф ??%c преобразован в %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "триграф ??%c игнорируетÑÑ, Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ñпользуйте -trigraphs"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "«/*» внутри комментариÑ"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s в препроцеÑÑорной директиве"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "игнорируетÑÑ Ñимвол(Ñ‹) null"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "«%.*s» не ÑвлÑетÑÑ NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "«%.*s» не ÑвлÑетÑÑ NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "попытка иÑпользовать отравленный «%s»"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ может поÑвлÑÑ‚ÑŒÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в раÑширении C99: вариативном макроÑе"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "идентификатор «%s» ÑвлÑетÑÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ Ñпециального оператора в C++"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "разделитель Ñырой Ñтроки больше 16 Ñимволов"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "неверный Ñимвол «%c» в разделителе Ñырой Ñтроки"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ ÑÑ‹Ñ€Ð°Ñ Ñтрока"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "Ñимвол(Ñ‹) null ÑохранÑÑŽÑ‚ÑÑ Ð² литерале"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "отÑутÑтвует завершающий Ñимвол %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "комментарии в Ñтиле C++ не разрешены в ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(об Ñтом будет Ñообщено только один раз Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ файла)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "многоÑтрочный комментарий"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "неразбираемый токен %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Ð¼Ð°ÐºÑ€Ð¾Ñ Â«%s» не иÑпользуетÑÑ"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "неверный вÑтроенный Ð¼Ð°ÐºÑ€Ð¾Ñ Â«%s»"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "не удалоÑÑŒ определить временную метку файла"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "не удалоÑÑŒ определить дату и времÑ"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ раÑкрываетÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ директивы при указании параметра -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "неверный Ñтроковый литерал, игнорируетÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°ÑŽÑ‰Ð¸Ð¹ «\\»"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "вÑтавка «%s» и «%s» не даёт правильного препроцеÑÑорного токена"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ÑоглаÑно ISO C99 требуетÑÑ Ð¸Ñпользование оÑтальных аргументов"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "Ð´Ð»Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа «%s» требуетÑÑ %u аргументов, но указано только %u"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "в Ð¼Ð°ÐºÑ€Ð¾Ñ Â«%s» передано %u аргументов, но иÑпользуетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ %u"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "незавершённый ÑпиÑок аргументов вызывает Ð¼Ð°ÐºÑ€Ð¾Ñ Â«%s»"
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "Ð¼Ð°ÐºÑ€Ð¾Ñ Â«%s», похожий на функцию, должен иÑпользоватьÑÑ Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ в традиционном C"
+
+#: macro.c:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "повторÑющийÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ макроÑа «%s»"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "«%s» может не поÑвитьÑÑ Ð² ÑпиÑке параметров макроÑа"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "параметры макроÑа должны указыватьÑÑ Ñ‡ÐµÑ€ÐµÐ· запÑтую"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "отÑутÑтвует Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "анонимные вариатичеÑкие макроÑÑ‹ поÑвилиÑÑŒ в C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "в ISO C не разрешены вариатичеÑкие именованные макроÑÑ‹"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "отÑутÑтвует «)» в ÑпиÑке параметров макроÑа"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "«##» не может указыватьÑÑ Ð² конце макрораÑширениÑ"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "в ISO C99 требуетÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»ÑŒÐ½Ñ‹Ð¹ Ñимвол поÑле имени макроÑа"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "отÑутÑтвует пробельный Ñимвол поÑле имени макроÑа"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "поÑле «#» нет параметра макроÑа"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "«%s» переопределён"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "Ñто раÑположение предыдущего определениÑ"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "аргумент макроÑа «%s» был бы Ñтрокой, оформленной в традиционном Ñтиле С"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "неверный тип Ñ…Ñша %d в cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "при запиÑи прекомпилированного заголовка"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: не иÑпользуетÑÑ, так как «%.*s» отравлен"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: не иÑпользуетÑÑ, так как «%.*s» не определён"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: не иÑпользуетÑÑ, так как «%.*s», определённый как «%s», не «%.*s»"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: не иÑпользуетÑÑ, так как «%s» определён"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: не иÑпользуетÑÑ, так как значение «__COUNTER__» неправильно"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "при чтении прекомпилированного заголовка"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "обнаружена рекурÑÐ¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°ÑÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа «%s»"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в ÑпиÑке параметров макроÑа"
diff --git a/gcc-4.7/libcpp/po/sr.gmo b/gcc-4.7/libcpp/po/sr.gmo
new file mode 100644
index 000000000..85185b2d7
--- /dev/null
+++ b/gcc-4.7/libcpp/po/sr.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/sr.po b/gcc-4.7/libcpp/po/sr.po
new file mode 100644
index 000000000..6a4fb3dc2
--- /dev/null
+++ b/gcc-4.7/libcpp/po/sr.po
@@ -0,0 +1,955 @@
+# Serbian translation of cpplib.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib-4.7.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-06-13 11:32+0200\n"
+"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <gnu@prevod.org>\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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "иконв не подржава претварање из %s у %s"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "иконв_отвори"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "нема иконв примене, не могу да претворим из %s у %s"
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "знак 0x%lx није у знаковном Ñкупу оÑновног извора\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "претварам у знаковни Ñкуп извршавања"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "знак 0x%lx није једног бајта у знаковном Ñкупу извршавања"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Знак %x не може бити ÐФКЦ"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "називи Ñвеопштег знака Ñу једино иÑправни у Ц++ и Ц99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "значење „\\%c“ је другачије у уобичајеном Ц-у"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "У _цпп_иÑправан_нÑз али није ÐСЗ"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "непотпун назив Ñвеопштег знака %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s није иÑправан Ñвеопшти знак"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "„$“ у одреднику или број"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "Ñвеопшти знак %.*s није иÑправан у одреднику"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "Ñвеопшти знак %.*s није иÑправан на почетку одредника"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "претварам ÐСЗ у изворни знаковни Ñкуп"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "претварам ÐСЗ у извршни знаковни Ñкуп"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "значење „\\x“ је другачије у уобичајеном Ц-у"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "„\\x“ је коришћено Ñа не пратећим хекÑа цифрама"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "Ñ…ÐµÐºÑ Ð½Ð¸Ð· промене је изван опÑега"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "октални низ промене је изван опÑега"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "значење „\\a“ је другачије у уобичајеном Ц-у"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "низ промене не-ИСО-Ñтандарда, „\\%c“"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "непознат низ промене: „\\%c“"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "непознат низ промене: „\\%s“"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "претварам низ промене у знаковни Ñкуп извршавања"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "конÑтанта знака је предуга за Ñвоју врÑту"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "више-знаковна конÑтанта знака"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "празна конÑтанта знака"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "неуÑпех у претварању %s у %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "поÑебни Ñимболи на крају #%s директиве"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s је ГЦЦ проширење"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s је превазиђено ГЦЦ проширење"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "Ñаветује да Ñе не кориÑти „#elif“ у уобичајеном Ц-у"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "уобичајени Ц занемарује #%s Ñа # увученим"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "Ñаветује Ñкривање #%s из уобичајеног Ц-а Ñа увученим #"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "угнежђивање директиве унутар аргумената макроа није преноÑиво"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "Ñтил директиве реда је ГЦЦ проширење"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "неиÑправна директива предобраде #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "„defined“ не може бити коришћено као назив макроа"
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "„%s“ не може бити коришћено као назив макроа јер је то оператор у Ц++-у"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "није дат назив макроа у #%s директиви"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "називи макроа морају бити одредници"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "неодређујем „%s“"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "недоÑтаје завршни знак >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s очекује „ÐÐЗИВДÐТОТЕКЕ“ или <ÐÐЗИВДÐТОТЕКЕ>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "празан назив датотеке у #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include је угнежђено превише дубоко"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next у примарној изворној датотеци"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "неиÑправна опција „%s“ у директиви реда"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "неочекивани крај датотеке након „#line“"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "„%s“ након „#line“ није позитиван цео број"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "број реда је ван опÑега"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "„%s“ није иÑправан назив датотеке"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "„%s“ након „#“ није позитиван цео број"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "неиÑправна #%s директива"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "бележим прагме у проÑтору назива „%s“ Ñа неодговарајућим ширењем назива"
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "бележим прагму „%s“ Ñа ширењем назива и без проÑтора назива"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "бележим „%s“ и као прагму и као проÑтор назива прагме"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s је већ забележено"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s је већ забележено"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "бележим прагму Ñа ÐИШТÐÐ’ÐИМ руковаоцем"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma једном у главној датотеци"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "неиÑправна „#pragma push_macro“ директива"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "неиÑправна „#pragma pop_macro“ директива"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "неиÑправна „#pragma GCC poison“ директива"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "трујем поÑтојећи макро „%s“"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "„#pragma system_header“ је занемарено изван датотеке укључивања"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "не могу да пронађем изворну датотеку „%s“"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "текућа датотека је Ñтарија од %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Прагма узима ÑловноÑÑ‚ ниÑке затворену заградом"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "„#else“ без „#if“"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "„#else“ након „#else“"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "уÑловљеноÑÑ‚ почиње овде"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "„#elif“ без „#if“"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "„#elif“ након „#else“"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "„#endif“ без „#if“"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "недоÑтаје ( након предиката"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "недоÑтаје ) да доврши одговор"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "одговор предиката је празан"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "тврдња без предиката"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "предикат мора бити одредник"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "„%s“ је поново утврђен"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "неокончано #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "неокончана напомена"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "Ñтдизлаз"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "превише децималних тачака у броју"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "конÑтанте Ñталне тачке Ñу ГЦЦ проширења"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "неиÑправна цифра „%c“ у бинарној конÑтанти"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "неиÑправна цифра „%c“ у окталној конÑтанти"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "неиÑправан Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ â€ž0b“ за покретну конÑтанту"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "нема цифара у хекÑадецималној покретној конÑтанти"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "употреба Ц99 хекÑадецималне покретне конÑтанте"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "изложилац нема цифру"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "хекÑадецималне покретне конÑтанте захтевају изложилац"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "неиÑправан ÑÑƒÑ„Ð¸ÐºÑ â€ž%.*s“ на покретној конÑтанти"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "уобичајени Ц одбацује „%.*s“ ÑуфикÑ"
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "ÑÑƒÑ„Ð¸ÐºÑ Ð·Ð° двоÑтруку конÑтанту је ГЦЦ проширење"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "неиÑправан ÑÑƒÑ„Ð¸ÐºÑ â€ž%.*s“ Ñа хекÑадецималном покретном конÑтантом"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "децималне покретне конÑтанте Ñу ГЦЦ проширења"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "неиÑправан ÑÑƒÑ„Ð¸ÐºÑ â€ž%.*s“ на конÑтанти целог броја"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "употреба Ц++0x дуге дуге конÑтанте целог броја"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "употреба Ц99 дуге дуге конÑтанте целог броја"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "имагинарне конÑтанте Ñу ГЦЦ проширења"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "бинарне конÑтанте Ñу ГЦЦ проширења"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "конÑтанта целог броја је предуга за њену врÑту"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "конÑтанта целог броја је толико велика тако да је неозначена"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "недоÑтаје ( након „defined“"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "оператор „defined“ захтева одредника"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(„%s“ је резервни Ñимбол за „%s“ у Ц++-у)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "ова употреба „defined“ не може бити преноÑива"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "ÑловноÑÑ‚ коју је одредио кориÑник у изразу претпроцеÑора"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "покретна конÑтанта у изразу претптоцеÑора"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "имагинаран број у изразу претптоцеÑора"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "„%s“ није одређено"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "тврдње Ñу ГЦЦ проширења"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "тврдње Ñу заÑтарела проширења"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "недоÑтаје бинарни оператор пре Ñимбола „%s“"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "Ñимбол „%s“ није иÑправан у изразима претпроцеÑора"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "недоÑтаје израз између ( и )"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s без израза"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "оператор „%s“ нема деÑни операнд"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "оператор „%s“ нема леви операнд"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " „:“ без предводећег „?“"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "неуравнотежен Ñтек у %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "немогућ оператор у „%u“"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "недоÑтаје ) у изразу"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "„?“ без пратећег „:“"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "прекорачење целог броја у изразу претпроцеÑора"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "недоÑтаје ( у изразу"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "леви операнд за „%s“ мења знак када је претворен"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "деÑни операнд за „%s“ мења знак када је претворен"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "уобичајени Ц одбацује унарни Ð¿Ð»ÑƒÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "оператор зареза у операнду „#if“"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "дељење нулом у „#if“"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "ÐИШТÐÐ’ÐРдиректоријум у пронађи_датотеку"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "једна или више ПЦХ датотека је пронађено, али Ñу неиÑправне"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "кориÑтите „-Winvalid-pch“ за више података"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s је блок уређај"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s је превелико"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s је краће од очекиваног"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "нема путање укључивања у којој потражити „%s“"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Више чувара укључивања може бити кориÑно за:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "„cppchar_t“ мора бити неозначена врÑта"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "аритметика претпроцеÑора има највећу тачноÑÑ‚ од %lu бита; мета затева %lu бита"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "ЦПП аритметика мора бити тачна барем колико и циљни цео број"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "циљни знак је дужи мање од 8 бита"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "циљни широки знак (wchar_t) је ужи од циљног знака"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "циљни цео број је ужи од циљног знака"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "ЦПП полуцео број је ужи од ЦПП знака"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "контра коÑа и нови ред Ñу раздвојени размаком"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "контра коÑа-нови ред на крају датотеке"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "триграф ??%c је претворен у %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "триграф ??%c је занемарен, кориÑтите „-trigraphs“ да укључите"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "„/*“ унутар напомене"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s у директиви претпроцеÑора"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "ништаван знак(ци) је занемарен(и)"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "„%.*s“ није у ÐФКЦ-у"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "„%.*s“ није у ÐФЦ-у"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "покушај коришћења отрованог „%s“"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "„__VA_ARGS__“ може Ñамо да Ñе појави у ширењу вариадик макроа Ц99"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "одредник „%s“ је назив поÑебног оператора у Ц++-у"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "граничник Ñирове ниÑке је дужи од 16 знака"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "неиÑправан знак „%c“ у граничнику Ñирове ниÑке"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "неокончана Ñирова ниÑка"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "ништаван знак је причуван у ÑловноÑти"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "недоÑтаје завршни знак %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Ðапомене Ц++ Ñтила ниÑу допуштене у ИСО Ц90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(ово ће бити извештено Ñамо једном по улазној датотеци)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "напомена више редова"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "неизговорљив Ñимбол %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "макро „%s“ није коришћен"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "неиÑправан макро уградње „%s“"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "не могу да одредим временÑку ознаку датотеке"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "не могу да одредим датум и време"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "„__COUNTER__“ је проширен у директиви Ñа „-fdirectives-only“"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "неиÑправна ÑловноÑÑ‚ ниÑке, занемарујем завршну \\"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "налепљивање „%s“ и „%s“ не даје иÑправан Ñимбол претпроцеÑора"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ИСО Ц99 захтева да оÑтали аргументи буду коришћени"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "макро „%s“ захтева %u аргумента, али Ñамо %u Ñу дата"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "макро „%s“ је проÑледио %u аргумента, али узима Ñамо %u"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "беÑконачан ÑпиÑак аргумената призивајући макро „%s“"
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "макро налик функцији „%s“ мора бити коришћен Ñа аргументима у уобичајеном Ц-у"
+
+#: macro.c:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "параметар двоÑтруког макроа „%s“"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "„%s“ не може да Ñе појави у ÑпиÑку параметара макроа"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "параметри макроа морају бити раздвојени зарезом"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "недоÑтаје назив параметра"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "безимени вариадик макрои Ñу уведени у Ц99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ИСО Ц не дозвољава именоване вариадик макрое"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "недоÑтаје ) у ÑпиÑку параметара макроа"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "„##“ не може да Ñе појави у или на крају макро ширења"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ИСО Ц99 захтева празнине након назива макроа"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "недоÑтаје празнина након назива макроа"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "за „#“ не Ñледи параметар макроа"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "„%s“ је поново одређено"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "ово је меÑто претходне одреднице"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "макро аргумент „%s“ ће бити ниÑкован у уобичајеном Ц-у"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "неиÑправна врÑта хеша %d у цпп_макро_одредници"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "за време упиÑивања претходно преведеног заглавља"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: није употребљено зато што је „%.*s“ отровано"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: није употребљено зато што „%.*s“ није одређено"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: није употребљено зато што „%.*s“ одређено као „%s“ није „%.*s“"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: није употребљено зато што је „%s“ одређено"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: није употребљено зато што „__COUNTER__“ није иÑправно"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "за време читања претходно преведеног заглавља"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "откривено је дубачење за време ширења макроа „%s“"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "Ñадржајна грешка у ÑпиÑку параметара макроа"
diff --git a/gcc-4.7/libcpp/po/sv.gmo b/gcc-4.7/libcpp/po/sv.gmo
new file mode 100644
index 000000000..4fa1c37d8
--- /dev/null
+++ b/gcc-4.7/libcpp/po/sv.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/sv.po b/gcc-4.7/libcpp/po/sv.po
new file mode 100644
index 000000000..30fb0599b
--- /dev/null
+++ b/gcc-4.7/libcpp/po/sv.po
@@ -0,0 +1,958 @@
+# Swedish messages for cpplib.
+# Copyright © 2000, 2005, 2006, 2007, 2008, 2009, 2010, 2012 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.
+#
+# Remember: GCC team does not want RCS keywords in the header!
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.7-b20120128\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-01-30 12:11+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=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: charset.c:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "konverterar till teckenuppsättning för körning"
+
+#: charset.c:804
+#, 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:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Tecknet %x är kanske inte NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universella teckennamn är endast giltiga i C++ och C99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "betydelsen av \"\\%c\" är annorlunda i traditionell C"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "I _cpp_valid_ucn men inte en UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "ofullständigt unversellt teckennamn %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s är inte ett giltigt universellt tecken"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "\"$\" i identifierare eller tal"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universellt tecken %.*s är inte giltigt i en identifierare"
+
+#: charset.c:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "vid konvertering av UCN källteckenuppsättning"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "vid konverting av UCN till teckenuppsättning för körning"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "betydelsen av \"\\x\" är annorlunda i traditionell C"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x använt utan några följande hexadecimala siffror"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "hexadecimal specialsekvens utanför intervallet"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "oktal specialsekvens utanför intervallet"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "betydelsen av \"\\a\" är annorlunda i traditionell C"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "icke-ISO-standardspecialsekvens, \"\\%c\""
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "okänd escape-sekvens: \"\\%c\""
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "okänd escape-sekvens: \"\\%s\""
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "vid konvertering av specialsekvens till teckenuppsättning för körning"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "teckenkonstant för lång för sin typ"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "flerteckens teckenkonstant"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "tom teckenkonstant"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "misslyckades att konvertera %s till %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "extra symboler vid slutet av direktivet #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s är en GCC-utvidgning"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s är en GCC-utvidgning som avrådes ifrån"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "föreslår att inte använda #elif i traditionell C"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionell C ignorerar #%s dör tecknet # är indenterat"
+
+#: directives.c:381
+#, 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:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "att bädda in ett direktiv i makroargument är inte portabelt"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "stil på raddirektiv är en GCC-utvidgning"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ogiltigt preprocessordirektiv #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" kan inte användas som ett makronamn"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "inget makronamn angivet i direktivet #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "makronamn måste vara identifierare"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "avdefinierar \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "saknar avslutande tecken >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s förväntar \"FILNAMN\" eller <FILNAMN>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "tomt filnamn i #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include nästlad för djupt"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next i primär källkodsfil"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ogiltigt flagga \"%s\" i line-direktiv"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "oväntat filslut efter #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" efter #line är inte ett positivt heltal"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "radnummer utanför möjligt intervall"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" är inte ett giltigt filnamn"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" efter # är inte ett positivt heltal"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "ogiltigt #%s-direktiv"
+
+#: directives.c:1158
+#, 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:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registrerar pragma \"%s\" med namnexpansion och utan namnrymd"
+
+#: directives.c:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s är redan registrerat"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s är redan registrerat"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "registrerar pragma med NULL-hanterare"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once i huvudfil"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "ogiltigt direktiv #pragma push_macro"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "ogiltigt direktiv #pragma pop_macro"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "ogiltigt direktiv #pragma GCC poison"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "förgiftar existerande makro \"%s\""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorerat utanför huvudfil"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "kan inte hitta källfil %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuell fil är äldre än %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma tar en strängkonstant inom parenteser"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else utan #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else efter #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "villkorssatsen började här"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif utan #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif efter #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif utan #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "saknas '(' efter predikat"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "saknas ')' för att avsluta svaret"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "predikatets svar är tomt"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "försäkran utan predikat"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "predikat måste vara en identifierare"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" omförsäkrat"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "oavslutad #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "ej avslutad kommentar"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "standard ut"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "för många decimalpunker i tal"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "fastdecimalskonstanter är en GCC-utvidgning"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "ogiltig siffra \"%c\" i binär konstant"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ogiltigt siffra \"%c\" i oktal konstant"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ogiltigt prefix \"0b\" på flyttalskonstant"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "inga siffror i hexadecimal flyttalskonstant"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "användning av hexadecimal flyttalskonstant enligt C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "exponenten har inga siffror"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadecimala flyttalskonstanter måste ha en exponent"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ogiltigt suffix \"%.*s\" på flyttalskonstant"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionell C tillåter inte suffixet \"%.*s\""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "suffix för double-konstanter är en GCC-utvidgning"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ogiltigt suffix \"%.*s\" på hexadecimal flyttalskonstant"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "decimala flyttalskonstanter är en GCC-utvidgning"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ogiltig ändelse \"%.*s\" på heltalskonstant"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "användning av long long heltalskonstant enligt C++0x"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "användning av long long heltalskonstant enligt C99"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginära konstanter är en GCC-utvidgning"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "binära konstanter är en GCC-utvidgning"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "heltalskonstant är för stor för sin typ"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "heltalskonstant är så stor att den är teckenlös"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "saknar ')' efter \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "operatorn \"defined\" måste ha en identiferare"
+
+#: expr.c:845
+#, 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:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "denna användning av \"defined\" är kanske inte portabel"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "användardefinierad konstant i preprocessoruttryck"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "flyttalskonstant i preprocessoruttryck"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginärt tal i preprocessoruttryck"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" är inte definierad"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "försäkringar är en GCC-utvidgning"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "försäkringar är en GCC-utvidgning som avrådes ifrån"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "saknad binär operator före symbolen \"%s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "symbolen \"%s\" är inte ett giltigt preprocessoruttryck"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "saknat uttryck mellan \"(\" och \")\""
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s utan uttryck"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "operatorn \"%s\" har ingen högra operand"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "operatorn \"%s\" har ingen vänstra operand"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr "\":\" utan föregående \"?\""
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "obalanserad stack i %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "omöjlig operator \"%u\""
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "saknad \")\" i uttryck"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "\"?\" utan följande \":\""
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "heltalsspill i preprocessoruttryck"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "saknad \"(\" i uttryck"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "vänsteroperanden till \"%s\" byter tecken vid befodran"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "högeroperanden till \"%s\" byter tecken vid befodran"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionell C hanterar inte operatorn unärt plus"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "kommaoperator i operand till #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "division med noll i #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "NOLL-katalog i find_file"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "använd -Winvalid-pch för mer information"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s är en blockenhet"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s är för stor"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s är kortare än förväntat"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "ingen huvudfilssökväg att leta efter %s i"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Multipla inkluderingsvakter kan vara användbart för:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t måste vare en teckenlös typ"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "målets char är mindre än 8 bitar bred"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "målets wchar_t är smalare än målets char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "målets int är smalare än målets char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP:s halva heltal är smalare än CPP:s tecken"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "bakåtstreck och nyrad skiljda av mellanrum"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "bakåtstreck-nyrad vid filslut"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c konverterad till %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph ??%c ingorerad, använd -trigraphs för att aktivera"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" i kommentar"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s i preprocessordirektiv"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "nolltecken ignorerat"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "\"%.*s\" är inte i NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "\"%.*s\" är inte i NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "försök att använda förgiftad \"%s\""
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "identifieraren \"%s\" är ett speciellt operatornamn i C++"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "avgränsare för rå sträng längre än 16 tecken"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ogiltigt tecken \"%c\" i avgränsare för rå sträng"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "oavslutad rå sträng"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "nolltecken bevarade i konstant"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "avslutande %c-tecken saknas"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ kommentarer tillåts inte i ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(detta rapporteras bara en gång per infil)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "flerradskommentar"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "ostavbar symbol %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makrot \"%s\" är inte använt"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ogiltigt inbyggt makro \"%s\""
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "det gick inte att avgöra fils tidsstämpel"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "det gick inte att avgöra datum och tid"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ expanderad inuti direktiv med -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ogiltig strängkonstant, inorerar avslutande \"\\\""
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 kräver att restargument används"
+
+#: macro.c:687
+#, 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:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "oavslutad argumentlista vid anrop av makrot \"%s\""
+
+#: macro.c:1026
+#, 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:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "dubblerad makroparameter \"%s\""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" får inte förekomma i en makroparameterlista"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametrar måste avdelas av komman"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "parameternamn saknas"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyma variabla makron introducerades i C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tillåter inte namngivna variabla makron"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "saknad \")\" i makroparameterlista"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "\"##\" kan inte förekomma vid någon av ändarna av makroexpansionen"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 kräver mellanrum efter makronamnet"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "mellanrum saknas efter makronamn"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "\"#\" följs inte av en makroparameter"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" omdefinierad"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "detta är platsen för den tidigare definitionen"
+
+#: macro.c:3066
+#, 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:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ogiltig hash-typ %d i cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "vid skrivning av förkompilerat huvud"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: inte använd för att \"%.*s\" är förgiftad"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: inte använd för att \"%.*s\" inte är definierad"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: inte använd för att \"%s\" är definierad"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: inte använd för att \"__COUNTER__\" är ogiltig"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "vid läsning av förkompilerat huvud"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "upptäckte rekursion vid under expansion av makrot \"%s\""
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "syntaxfel i makroparameterlista"
diff --git a/gcc-4.7/libcpp/po/tr.gmo b/gcc-4.7/libcpp/po/tr.gmo
new file mode 100644
index 000000000..9a186ab15
--- /dev/null
+++ b/gcc-4.7/libcpp/po/tr.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/tr.po b/gcc-4.7/libcpp/po/tr.po
new file mode 100644
index 000000000..8dbefee5c
--- /dev/null
+++ b/gcc-4.7/libcpp/po/tr.po
@@ -0,0 +1,1012 @@
+# Turkish translations for cpplib messages.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+#
+# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.2.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2007-05-23 01:17+0300\n"
+"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\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: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: charset.c:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, 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:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "çalışma karakter kümesine dönüştürülüyor"
+
+#: charset.c:804
+#, 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:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "%x karakteri NFKC olmayabilir"
+
+#: charset.c:994
+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:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "`\\%c'nin anlamı geleneksel C'de farklıdır"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Bir UCN içinde değil, _cpp_valid_ucn içinde"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "evrensel karakter ismi %.*s tamamlanmamış"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s geçerli bir evrensel karakter değil"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "belirteç ya da sayı içinde '$'"
+
+#: charset.c:1066
+#, 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:1070
+#, 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:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "UCN'den kaynak karakter kümesine dönüşüm"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "UCN'den icra karakter kümesine dönüşüm"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\x'in anlamı geleneksel C'de farklıdır"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x izleyen onaltılık rakamlar olmaksızın kullanılmış"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "onaltılık önceleme dizgesi kapsamdışı"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "sekizlik önceleme dizgesi kapsamdışı"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "`\\a'nın anlamı geleneksel C'de farklıdır"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
+
+#: charset.c:1321
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "bilinmeyen önceleme dizgesi '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "bilinmeyen önceleme dizgesi '\\%s'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "önceleme diziliminden icra karakter kümesine dönüşüm"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "karakter sabiti, türü için çok uzun"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "çoklu-karakter karakter sabiti"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "karakter sabit boÅŸ"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "`%s' ile `%s' arasında dönüşüm başarısız"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "#%s yönergesinin sonunda fazladan dizgecikler"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s bir GCC uzantısıdır"
+
+#: directives.c:361
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s bir GCC uzantısıdır"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "geleneksel C'de #elif kullanılmıyor varsayılır"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "geleneksel C'de girintili # ile #%s yoksayılır"
+
+#: directives.c:381
+#, 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:407
+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:427
+msgid "style of line directive is a GCC extension"
+msgstr "satır yönergesinin tarzı bir GCC özelliğidir"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "önişlem yönergesi #%s geçersiz"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" makro ismi olarak kullanılamaz"
+
+#: directives.c:556
+#, 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:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s yönergesinde makro ismi verilmemiş"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "makro isimleri tanımlayıcılar olmalı"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "tanımsız yapılan \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "sonlandıran > karakteri eksik"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s \"DOSYA\" ya da <DOSYA> gerektirir"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s ile belirtilen dosya boÅŸ"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include iç içeliği çok derin"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "birncil kaynak dosyasında #include_next"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "satır yönergesinde geçersiz \"%s\" seçeneği"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line'dan sonraki \"%s\" bir pozitif tamsayı değil"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "satır numarası kapsam dışı"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" geçerli bir dosya ismi değil"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "#'dan sonraki \"%s\" bir pozitif tamsayı değil"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "#%s yönergesi geçersiz"
+
+#: directives.c:1158
+#, 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:1167
+#, 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:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s zaten kayıtlı"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s zaten kayıtlı"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "pragma NULL eylemci ile kaydediliyor"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "main dosyasında '#pragma once'"
+
+#: directives.c:1485
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "geçersiz #pragma GCC poison yönergesi"
+
+#: directives.c:1540
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "geçersiz #pragma GCC poison yönergesi"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "geçersiz #pragma GCC poison yönergesi"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "zehirlenen mevcut makro \"%s\""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "başlık dosyasının dışındaki '#pragma system_header' yoksayıldı"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "%s kaynak dosyası bulunamıyor"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "mevcut dosya %s den daha eski"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma bir parantezli dizge sabiti alır"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#if siz #else"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else den sonra #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "koşul başlangıcı burası"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#if siz #elif "
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#else den sonra #elif"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#if siz #endif"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "dayanaktan sonra '(' eksik"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "yanıtı tamamlayacak ')' eksik"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "dayanakların cevabı boş"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "dayanaksız olumlama"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "dayanak bir tanımlayıcı olmalı"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" tekrar olumlanmış"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "sonlandırılmamış #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "sonlandırılmamış açıklama"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdÇ"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "sayı içindeki ondalık nokta sayısı çok fazla"
+
+#: expr.c:453 expr.c:547
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "fixed-point constants are a GCC extension"
+msgstr "sanal sabitler bir GCC geniÅŸletmesidir"
+
+#: expr.c:466
+#, fuzzy, c-format
+#| msgid "invalid digit \"%c\" in octal constant"
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "sekizlik sabit içindeki \"%c\" geçersiz"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "sekizlik sabit içindeki \"%c\" geçersiz"
+
+#: expr.c:476
+#, fuzzy
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
+
+#: expr.c:481
+#, fuzzy
+#| msgid "use of C99 hexadecimal floating constant"
+msgid "no digits in hexadecimal floating constant"
+msgstr "C99 onaltılık gerçel sayı sabit kullanımı"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "C99 onaltılık gerçel sayı sabit kullanımı"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "üs rakam içermiyor"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "onaltılık gerçel sabitler bir üs gerektirir"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
+
+#: expr.c:534
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "sanal sabitler bir GCC geniÅŸletmesidir"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz"
+
+#: expr.c:551
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "decimal float constants are a GCC extension"
+msgstr "sanal sabitler bir GCC geniÅŸletmesidir"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
+
+#: expr.c:593
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++0x long long integer constant"
+msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "sanal sabitler bir GCC geniÅŸletmesidir"
+
+#: expr.c:611
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "binary constants are a GCC extension"
+msgstr "sanal sabitler bir GCC geniÅŸletmesidir"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "tamsayı sabit, türü için oldukça büyük"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "tamsayı sabit unsigned olarak oldukça büyük"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "\"defined\" dan sonra ')' eksik"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "\"defined\" işleci bir tanımlayıcı gerektirir"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(C++'da \"%s\" \"%s\" için bir alternatif dizgeciktir)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "önişlemci ifadesinde tamsayı taşması"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "önişlemci ifadesinde gerçel sayı taşması"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "önişlemci ifadesinde sanal sayı"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" tanımlı değil"
+
+#: expr.c:984
+#, fuzzy
+#| msgid "#%s is a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "#%s bir GCC uzantısıdır"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "\"%s\" dizgeciğinden önceki iki terimli işleç eksik"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "\"%s\" dizgeciği önişlemci ifadelerinde geçersizdir"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "'(' ve ')' arasında ifade eksik"
+
+#: expr.c:1160
+#, fuzzy, c-format
+#| msgid "#if with no expression"
+msgid "%s with no expression"
+msgstr "#if ifadesiz"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "`%s' işlecinin sağ tarafı yok"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "`%s' iÅŸlecinin sol terimi yok"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr "':' den önce '?' yok"
+
+#: expr.c:1222
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "#if ifadesinde karşılıksız yığın"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "işleç '%u' imkansız"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "ifadede ')' eksik"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' dan sonra ':' yok"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "önişlemci ifadesinde tamsayı taşması"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "ifadede '(' eksik"
+
+#: expr.c:1419
+#, 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:1424
+#, 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:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "geleneksel C tekil artı işlecini dışlar"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "#if'in teriminde virgül"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "#if içinde sıfırla bölme"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "find_file içinde boş dizin"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s bir blok aygıtıdır"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s çok büyük"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s beklenenden daha kısa"
+
+#: files.c:881
+#, 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:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t bir usigned tür olmalı"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "hedef char 8bitlik genişlikten küçük"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "hedef wchar_t hedef char'dan daha dar"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "hedef int hedef char'dan daha dar"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer'ı CPP character'dan daha dar"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "ters bölü ve satırsonu arasında boşluk var"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "dosyanın sonunda tersbölülü satırsonu"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "??%c üçlü harfi %c olarak dönüştürüldü"
+
+#: lex.c:875
+#, 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:924
+msgid "\"/*\" within comment"
+msgstr "açıklama içinde \"/*\" bulundu"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "önişlem yönergesi içinde %s"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "null karakter(ler) yoksayıldı"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' NFKC'de yok"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' NFC'de yok"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "zehirli \"%s\" kullanılmaya çalışılıyor"
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, fuzzy, c-format
+#| msgid "universal character %.*s is not valid in an identifier"
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "evrensel karakter %.*s bir belirteç içinde geçerli değil"
+
+#: lex.c:1460 lex.c:1482
+#, fuzzy
+#| msgid "unterminated #%s"
+msgid "unterminated raw string"
+msgstr "sonlandırılmamış #%s"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "null karakter(ler) sabit içinde saklanmış"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "sonlandıran %c karakteri eksik"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ tarzı açıklamalara ISO C90'da izin verilmez"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(her girdi dosyasında sadece bir kere raporlanacaktır)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "çok satırlı açıklama"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "dizgecik %s okunabilir deÄŸil"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "\"%s\" makrosu kullanılmadı"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "geçersiz yerleşik makro \"%s\""
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "dosya tarih damgası saptanamadı"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "tarih ve saat saptanamadı"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "geçersiz dizge sabit, son '\\' yoksayılıyor"
+
+#: macro.c:592
+#, 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:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C kalan argümanların kullanılmış olmasını gerektirir"
+
+#: macro.c:687
+#, 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:692
+#, 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:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "sonlandırılmamış argüman listesi çağıran makro \"%s\""
+
+#: macro.c:1026
+#, 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:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "yinelenmiÅŸ makro parametresi \"%s\""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" makro parametre listesinde görünmeyebilir"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "makro parametreleri virgüllerle ayrılmış olmalı"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "parametre ismi eksik"
+
+#: macro.c:2685
+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:2690
+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:2699
+msgid "missing ')' in macro parameter list"
+msgstr "makro parametre listesinde ')' eksik"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' bir makronun her iki ucunda da görünemez"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 makro isminden sonra boÅŸluk gerektirir"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "makro isminden sonra boÅŸluk gerekir"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' iÅŸaretinden sonra bir makro parametresi yok"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" yeniden tanımlanmış"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "burası evvelki tanımın yapıldığı yer"
+
+#: macro.c:3066
+#, 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:3093
+#, 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:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "önderlemeli başlık yazılırken"
+
+#: pch.c:608
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
+
+#: pch.c:642
+#, 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:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
+
+#: pch.c:703
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "önderlemeli başlık okunurken"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "makro \"%s\" genişletilirken iç içelik saptandı"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "makro parametre listesinde sözdizimi hatası"
+
+#~ msgid "warning: "
+#~ msgstr "uyarı: "
+
+#~ msgid "internal error: "
+#~ msgstr "iç hata: "
+
+#~ msgid "error: "
+#~ msgstr "hata: "
+
+#~ 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.7/libcpp/po/uk.gmo b/gcc-4.7/libcpp/po/uk.gmo
new file mode 100644
index 000000000..b84260987
--- /dev/null
+++ b/gcc-4.7/libcpp/po/uk.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/uk.po b/gcc-4.7/libcpp/po/uk.po
new file mode 100644
index 000000000..1fead4f69
--- /dev/null
+++ b/gcc-4.7/libcpp/po/uk.po
@@ -0,0 +1,980 @@
+# 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.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.7-b20120128\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-01-31 19:31+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.2\n"
+
+#: charset.c:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· %s у %s не підтримуєтьÑÑ iconv"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "не реалізовано у iconv, не вдаєтьÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ з %s на %s"
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "Ñимвол 0x%lx відÑутній у базовому первинному наборі Ñимволів\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° виконуваний набір Ñимволів"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "Ñимвол 0x%lx не однобайтовий у виконуваному наборі Ñимволів"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Символ %x може не бути NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "універÑальні назви Ñимволів допуÑтимі лише у C++ та C99"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "ÑÐµÐ½Ñ '\\%c' відрізнÑєтьÑÑ Ð²Ñ–Ð´ традиційної мови C"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "У _cpp_valid_ucn але не UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "неповна універÑальна назва Ñимволу %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s не Ñ” допуÑтимим універÑальним Ñимволом"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "'$' у ідентифікаторі чи чиÑлі"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "універÑальний Ñимвол %.*s не Ñ” допуÑтимим у ідентифікаторі"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "універÑальний Ñимвол %.*s не Ñ” допуÑтимим на початку ідентифікатора"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ UCN на первинний набір Ñимволів"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ UCN на виконуваний набір Ñимволів"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "ÑÐµÐ½Ñ '\\x' відрізнÑєтьÑÑ Ð²Ñ–Ð´ традиційної мови C"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x викориÑтовуєтьÑÑ Ð· наÑтупними шіÑтнадцÑтковими цифрами"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "шіÑтнадцÑткова escape-поÑлідовніÑÑ‚ÑŒ поза межами діапазону"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "віÑімкова escape-поÑлідовніÑÑ‚ÑŒ поза межами діапазону"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "ÑÐµÐ½Ñ '\\a' відрізнÑєтьÑÑ Ð²Ñ–Ð´ традиційної мови C"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "escape-поÑлідовніÑÑ‚ÑŒ не за Ñтандартом ISO, '\\%c'"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "невідома керівна поÑлідовніÑÑ‚ÑŒ: '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "Ðевідома escape-поÑлідовніÑÑ‚ÑŒ: '\\%s'"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "escape-поÑлідовніÑÑ‚ÑŒ перетворюєтьÑÑ Ð½Ð° виконуваний набір Ñимволів"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "Ñимвольна конÑтанта надто довга Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ типу"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "багатоÑимвольна Ñимвольна конÑтанта"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ Ñимвольна конÑтанта"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "помилка при перетворені %s на %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "зайві лекÑеми наприкінці директиви #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s Ñ” розширеннÑм GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s Ñ” заÑтарілим розширеннÑм GCC"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "рекомендуєтьÑÑ Ð½Ðµ викориÑтовувати #elif у традиційній мові C"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "у традиційній мові C ігноруютьÑÑ #%s, Ñкщо # з відÑтупом"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "рекомендуєтьÑÑ Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ #%s у традиційній мові C викориÑтовуючи відÑтуп перед #"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "вбудована директива з макроаргументами не Ñ” переноÑимою"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "Ñтиль директиви line Ñ” розширеннÑм GCC"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "неправильна директива препроцеÑора #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" не може викориÑтовуватиÑÑŒ Ñк назва макроÑу"
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" не може викориÑтовуватиÑÑŒ Ñк назва макроÑу, оÑкільки це - оператор у C++"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "не вказаний Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ директиві #%s"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "назви макроÑів повинні бути ідентифікаторами"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "ÑкаÑовуєтьÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \"%s\""
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "відÑутній завершальний Ñимвол >"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s очікує \"FILENAME\" або <FILENAME>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° файлу у #%s"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "надто глибоке Ð²ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ #include"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next у первинному файлі текÑту програми"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "некоректна ознака \"%s\" у директиві line"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "неочікуване Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° піÑÐ»Ñ #line"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" піÑÐ»Ñ #line не Ñ” додатнім цілим чиÑлом"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "номер Ñ€Ñдка за межами діапазону"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" не є коректною назвою файлу"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" піÑÐ»Ñ # не Ñ” додатнім цілим чиÑлом"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "некоректна директива #%s"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "прагми реєÑтруютьÑÑ Ñƒ проÑторі назв \"%s\" за відÑутноÑÑ‚Ñ– Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²"
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "прагма \"%s\" реєÑтруєтьÑÑ Ð· розширеннÑм назви але без проÑтору назви"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "\"%s\" реєÑтруєтьÑÑ Ñк прагма та Ñк проÑÑ‚Ñ–Ñ€ назв прагм"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s вже зареєÑтровано"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s вже зареєÑтровано"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "реєÑтруєтьÑÑ pragma з NULL-обробником"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma один раз у головному файлі"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "некоректна директива #pragma push_macro"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "некоректна директива #pragma pop_macro"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "некоректна директива #pragma GCC poison"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ð¾Ñ‚Ñ€ÑƒÑ”Ð½Ð½Ñ (poisoning) вже Ñтвореного макроÑу \"%s\""
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header проігноровано за межами включеного файлу"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "не вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ первинний файл %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "поточний файл Ñтаріший ніж %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma охоплює дужками Ñимвольний літерал"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else без #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else піÑÐ»Ñ #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "умова починаєтьÑÑ Ñ‚ÑƒÑ‚"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif без #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif піÑÐ»Ñ #else"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif без #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "відÑÑƒÑ‚Ð½Ñ '(' піÑÐ»Ñ Ð¿Ñ€ÐµÐ´Ð¸ÐºÐ°Ñ‚Ñƒ"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "відÑÑƒÑ‚Ð½Ñ ')' Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ñ–"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "відповідь предиката порожнÑ"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÐµÐ· предиката"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "предикат має бути ідентифікатором"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" повторне ÑтвердженнÑ"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "незавершене #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "незавершений коментар"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "надто багато деÑÑткових точок у чиÑлі"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "конÑтанти з фікÑованим розташуваннÑм крапки Ñ” розширеннÑм GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "некоректна цифра, \"%c\", у двійковій конÑтанті"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "некоректна цифра \"%c\" у віÑімковій конÑтанті"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "некоректний Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ \"0b\" Ð´Ð»Ñ ÐºÐ¾Ð½Ñтанти з рухомою крапкою"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "немає цифр шіÑтнадцÑткової конÑтанти з рухомою крапкою"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "викориÑтовуйте деÑÑтково-шіÑтнадцÑткову конÑтанту з плаваючою комою мови C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "екÑпонента не має цифр"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "Ð´Ð»Ñ Ð´ÐµÑÑтково-шіÑтнадцÑткової конÑтанти з плаваючою комою потрібна екÑпонента"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "некоректний ÑÑƒÑ„Ñ–ÐºÑ \"%.*s\" у конÑтанті з плаваючою комою"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "традиційною мовою C не ÑприймаєтьÑÑ ÑÑƒÑ„Ñ–ÐºÑ \"%.*s\""
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "ÑÑƒÑ„Ñ–ÐºÑ Ð´Ð»Ñ ÐºÐ¾Ð½Ñтант double Ñ” розширеннÑм GCC"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "некоректний ÑÑƒÑ„Ñ–ÐºÑ \"%.*s\" з деÑÑтково-шіÑтнадцÑтковою конÑтантою з плаваючою комою"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "деÑÑткові конÑтанти з рухомою крапкою Ñ” розширеннÑм GCC"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "некоректний ÑÑƒÑ„Ñ–ÐºÑ \"%.*s\" у цілій конÑтанті"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ñ— конÑтанти long long з C++0x"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ñ— конÑтанти long long з C99"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "уÑвні конÑтанти Ñ” розширеннÑм GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "бінарні конÑтанти Ñ” розширеннÑм GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "ціла конÑтанта надто велика Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ типу"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "ціла конÑтанта така велика, що вона не матиме знаку"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "відÑÑƒÑ‚Ð½Ñ ')' піÑÐ»Ñ \"defined\""
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° \"defined\" потрібен ідентифікатор"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" - альтернативна лекÑема Ð´Ð»Ñ \"%s\" у C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ \"defined\" може бути непереноÑимим"
+
+#: expr.c:914
+msgid "user-defined literal in preprocessor expression"
+msgstr "буквальне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача у виразі Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¿Ñ€Ð¾Ñ†ÐµÑора"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "конÑтанта з плаваючою комою у виразі препроцеÑора"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "уÑвне чиÑло у виразі препроцеÑора"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" не визначено"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "assertions Ñ” розширеннÑм GCC"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ assertions вважаєтьÑÑ Ð·Ð°Ñтарілим"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "відÑутній двійковий оператор перед лекÑемою \"%s\""
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "лекÑема \"%s\" не Ñ” допуÑтимим у виразі препроцеÑора"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "відÑутній вираз між '(' та ')'"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "немає виразу у %s"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "оператор '%s' не міÑтить коректного операнду"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "оператор '%s' не міÑтить лівого операнду"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " ':' без Ð¿Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ '?'"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "незбаланÑований Ñтек у %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "неможливий оператор '%u'"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "відÑÑƒÑ‚Ð½Ñ ')' у виразі"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "'?' без наÑтупного ':'"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ чиÑла у виразі препроцеÑора"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "відÑÑƒÑ‚Ð½Ñ '(' у виразі"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "лівий операнд \"%s\" змінює знак при підвищенні"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "правий оператор \"%s\" змінює знак при підвищенні"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "у традиційній мові C не допуÑкаєтьÑÑ ÑƒÐ½Ð°Ñ€Ð½Ð¸Ð¹ оператор плюÑ"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "оператор кома у операнді #if"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð½Ð° нуль у #if"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ NULL у find_file"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "знайдено один або більше файлів PCH, але вони некоректні"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "докладніша Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒÑÑ, Ñкщо вказати -Winvalid-pch"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s Ñ” блочним приÑтроєм"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s надто великий"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s коротший ніж очікувалоÑÑ"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "відÑутні шлÑÑ… Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñƒ Ñкому ведетьÑÑ Ð¿Ð¾ÑˆÑƒÐº Ð´Ð»Ñ %s"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Декілька include guards можуть бути кориÑні длÑ:\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t має бути беззнакового типу"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "арифметика препроцеÑора має макÑимальну точніÑÑ‚ÑŒ %lu біт; ціль вимагає %lu біт"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "арифметика CPP повинна мати принаймні таку ж точніÑÑ‚ÑŒ Ñ Ñƒ цільового цілого чиÑла"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "ширина цільового типу char менша за 8 біт"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "цільовий wchar_t є вужчим за цільовий char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "цільовий тип int є вужчим ніж цільовий char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer є вужчим за CPP character"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "зворотна коÑа риÑка та Ñимвол нового Ñ€Ñдка відділÑÑŽÑ‚ÑŒÑÑ Ð¿Ñ€Ð¾Ð±Ñ–Ð»Ð¾Ð¼"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "зворотна коÑа риÑка та Ñимвол нового Ñ€Ñдка наприкінці файлу"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "триÑторонній ??%c перетворено на %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "триÑторонній ??%c проігноровано, викориÑтовуйте -trigraphs, щоб увімкнути"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "\"/*\" вÑередині коментарÑ"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s в директиві препроцеÑора"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "null-Ñимволи проігноровані"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' не у NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' не у NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "Ñпроба викориÑтати отруєного (poisoned) \"%s\""
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ може з'ÑвлÑтиÑÑ Ð»Ð¸ÑˆÐµ у розширенні макроÑу variadic з мови C99"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "ідентифікатор \"%s\" Ñ” оÑобливою назвою оператора у C++"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "роздільник необроблених Ñ€Ñдків довжиною, що перевищує 16 Ñимволів"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "некоректний Ñимвол, «%c», у роздільнику проÑтого Ñ€Ñдка"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "незавершений проÑтий Ñ€Ñдок"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "null-Ñимволи збережені буквально"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "відÑутній завершальний Ñимвол %c"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Коментарі у Ñтилі C++ неприпуÑтимі згідно ISO C90"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ це з'ÑвитьÑÑ Ð»Ð¸ÑˆÐµ один Ð´Ð»Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ файлу)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "багаторÑдковий коментар"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "неможливо розібрати лекÑему %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Ð¼Ð°ÐºÑ€Ð¾Ñ \"%s\" не викориÑтовуєтьÑÑ"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "некоректний вбудований Ð¼Ð°ÐºÑ€Ð¾Ñ \"%s\""
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "не вдаєтьÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ чаÑову мітку файлу"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "не вдаєтьÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ дату та чаÑ"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ розгорнуто вÑередині директиви з -fdirectives-only"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "некоректний Ñимвольний літерал, ігноруєтьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñимвол '\\'"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "вÑтавка \"%s\" та \"%s\" не призводить до коректної лекÑеми препроцеÑора"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 вимагає, щоб викориÑтовувалиÑÑŒ решта аргументів"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "Ð´Ð»Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу \"%s\" потрібно вказати %u аргументів, але вказано лише %u"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "макроÑу \"%s\" передано %u аргументів, але з них викориÑтано лише %u"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "незавершений ÑпиÑок аргументів у виклику макроÑу \"%s\""
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "подібний до функції Ð¼Ð°ÐºÑ€Ð¾Ñ \"%s\" має викориÑтовуватиÑÑ Ð· аргументами у традиційній мові C"
+
+#: macro.c:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "дублікат параметра макроÑу \"%s\""
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" не може з'ÑвлÑтиÑÑ Ñƒ ÑпиÑку параметрів макроÑу"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "параметри макроÑу мають бути розділені комами"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "відÑÑƒÑ‚Ð½Ñ Ð½Ð°Ð·Ð²Ð° параметра"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "анонімні макроÑи variadic започатковані у C99"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C не припуÑкає іменовані макроÑи variadic"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "відÑÑƒÑ‚Ð½Ñ ')' у ÑпиÑку параметрів макроÑу"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' не може з'ÑвлÑтиÑÑ Ð· обох кінців макророзширеннÑ"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "у ISO C99 має бути пробіл піÑÐ»Ñ Ð½Ð°Ð·Ð²Ð¸ макроÑу"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "відÑутні пробіл піÑÐ»Ñ Ð½Ð°Ð·Ð²Ð¸ макроÑу"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' не ÑупроводжуєтьÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ макроÑу"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \"%s\""
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "...це міÑце першого визначеннÑ"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "аргумент макроÑу \"%s\" був би перетворений на Ñ€Ñдок у традиційній мові C"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "некоректний типу хешу %d у cpp_macro_definition"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "при запиÑÑ– попередньо Ñкомпільованих заголовків"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: не викориÑтовуєтьÑÑ, оÑкільки отруєно (poisoned) `%.*s'"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: не викориÑтовуєтьÑÑ Ð¾Ñкільки `%.*s' не визначено"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: не викориÑтовуєтьÑÑ, оÑкільки `%.*s' визначено Ñк `%s' не `%.*s'"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: не викориÑтовуєтьÑÑ, оÑкільки визначено `%s'"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: не викориÑтовуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· некоректніÑÑ‚ÑŒ `__COUNTER__'"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "при читанні попередньо Ñкомпільованого заголовка"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "при розширенні макроÑу \"%s\" виÑвлено рекурÑÑ–ÑŽ"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+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.7/libcpp/po/vi.gmo b/gcc-4.7/libcpp/po/vi.gmo
new file mode 100644
index 000000000..c017f4d81
--- /dev/null
+++ b/gcc-4.7/libcpp/po/vi.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/vi.po b/gcc-4.7/libcpp/po/vi.po
new file mode 100644
index 000000000..d39363608
--- /dev/null
+++ b/gcc-4.7/libcpp/po/vi.po
@@ -0,0 +1,961 @@
+# Vietnamese translation for CPPlib.
+# Copyright © 2012 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib-4.7.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2012-04-18 07:46+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"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: LocFactoryEditor 1.8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: charset.c:674
+#, 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:677
+msgid "iconv_open"
+msgstr "iconv_open (mở)"
+
+#: charset.c:685
+#, 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:781
+#, 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:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "đang chuyển đổi sang bộ ký tự thi hành"
+
+#: charset.c:804
+#, 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:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "Ký tự %x có lẽ không phải có kiểu NFKC"
+
+#: charset.c:994
+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:997
+#, 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:1006
+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:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "tên ký tự chung %.*s chưa hoàn thành"
+
+#: charset.c:1046
+#, 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:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "gặp « $ » trong bộ nhận hiện hay con số"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "ký tự chung %.*s không phải là hợp lệ trong bộ nhận diện"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "ký tự chung %.*s không phải hợp lệ tại đầu của bộ nhận diện"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "đang chuyển đổi UCN sang bộ ký tự nguồn"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "đang chuyển đổi UCN sang bộ ký tự thi hành"
+
+#: charset.c:1178
+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:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x được dùng còn không có chữ số thâp lục theo sau"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "dãy thoát thập lục ở ngoài phạm vi"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "dãy thoát bát phân ở ngoài phạm vi"
+
+#: charset.c:1306
+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:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "dãy thoát khác chuẩn ISO: « \\%c »"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "không rõ dãy thoát: '\\%c'"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "không biết dãy thoát « \\%s »"
+
+#: charset.c:1336
+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:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "hằng ký tự quá dài cho kiểu nó"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "hằng ký tự đa ký tự"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "hằng ký tự trống"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "lỗi chuyển đổi %s sang %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "gặp hiệu bài thêm tại kết thúc của chỉ thị #%s"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s là phần mở rộng kiểu GCC"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s là một phần mở rộng GCC bị phản đối"
+
+#: directives.c:374
+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:377
+#, 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:381
+#, 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:407
+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:427
+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:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "chỉ thị tiá»n xá»­ lý không hợp lệ #%s"
+
+#: directives.c:550
+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:556
+#, 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:559
+#, 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:562
+msgid "macro names must be identifiers"
+msgstr "má»i tên vÄ© lệnh phải là bá»™ nhận diện"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "đang hủy định nghĩa « %s »"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "thiếu ký tự « > » chấm dứt"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s ngỠ\"TÊN_TẬP_TIN\" hoặc <TÊN_TẬP_TIN>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s chứa tên tập tin trống"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "« #include » (bao gồm) lồng nhau quá sâu"
+
+#: directives.c:822
+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:848
+#, 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:908
+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:911
+#, 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:917 directives.c:919
+msgid "line number out of range"
+msgstr "số hiệu dòng ở ngoài phạm vi"
+
+#: directives.c:932 directives.c:1012
+#, 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:972
+#, 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:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "chỉ thị #%s không hợp lệ"
+
+#: directives.c:1158
+#, 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:1167
+#, 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:1185
+#, 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:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "« #pragma %s %s » đã được đăng ký"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "« #pragma %s » đã được đăng ký"
+
+#: directives.c:1221
+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:1462
+msgid "#pragma once in main file"
+msgstr "Có « #pragma » một lần trong tập tin chính"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "gặp chỉ thị #pragma push_macro sai"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "gặp chỉ thị #pragma pop_macro sai"
+
+#: directives.c:1595
+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:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "đang vô hiệu hóa vĩ lệnh tồn tại « %s »"
+
+#: directives.c:1623
+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:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "không tìm thấy tập tin nguồn %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "tập tin hiện thá»i là cÅ© hÆ¡n %s"
+
+#: directives.c:1837
+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:1958
+msgid "#else without #if"
+msgstr "#else (nếu không) không có #if (nếu)"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else (nếu không) nằm sau #else"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "bá»™ Ä‘iá»u kiện đã bắt đầu ở đây"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif (nếu không thì nếu) không có #if (nếu)"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif (nếu không thì nếu) nằm sau #else (nếu không)"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif (thôi nếu) không có #if (nếu)"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "thiếu « ( » nằm sau vị ngữ"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "thiếu « ) » để xong trả lá»i"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "vị ngữ chứa trả lá»i trống"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "sự khẳng định không có vị ngữ"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "vị ngữ phải là bộ nhận diện"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "« %s » được khẳng định lại"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s chưa chấm dứt"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "gặp chú thích chưa được chấm dứt"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "thiết bị xuất chuẩn"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "con số chứa quá nhiá»u dấu thập phân"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "hằng định điểm là phần mở rộng GCC"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "gặp chữ số không hợp lệ « %c » trong hằng nhị phân"
+
+#: expr.c:468
+#, c-format
+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"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "gặp tiá»n tố không hợp lệ « 0b » cho hằng trôi nổi"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "hằng trôi nổi thập lục không chứa chữ số"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "dùng hằng trôi nổi thập lục C99"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "số mũ không co chữ số nào"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "mỗi hằng trôi nổi thập lục cần đến một số mũ"
+
+#: expr.c:515
+#, 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 trôi nổi"
+
+#: expr.c:526 expr.c:585
+#, 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:534
+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:540
+#, 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 trôi nổi thập lục"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "hằng trôi nổi thập lục là phần mở rộng GCC"
+
+#: expr.c:569
+#, 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:593
+msgid "use of C++0x long long integer constant"
+msgstr "dùng hằng số nguyên dài dài C++0x"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "dùng hằng số nguyên dài dài C99"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "hằng ảo là phần mở rộng GCC"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "hằng nhị phân là phần mở rộng GCC"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "hằng số nguyên quá lớn cho kiểu nó"
+
+#: expr.c:735
+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:830
+msgid "missing ')' after \"defined\""
+msgstr "thiếu « ) » nằm sau « defined » (đã định nghĩa)"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "toán tử « defined » (đã định nghĩa) cần đến bộ nhận diện"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(« %s » là một hiệu bài thay thế cho « %s » trong ngôn ngữ C++)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "khả năng dùng « defined » (đã định nghĩa) có lẽ không thể mạng theo"
+
+#: expr.c:914
+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:919
+msgid "floating constant in preprocessor expression"
+msgstr "gặp hằng trôi nổi nằm trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "gặp số ảo nằm trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "chưa định nghĩa « %s »"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "khẳng định là một phần mở rộng GCC"
+
+#: expr.c:987
+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:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "thiếu toán tử nhị phân nằm trước thẻ bài « %s »"
+
+#: expr.c:1140
+#, c-format
+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ý"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "thiếu biểu thức nằm giữa « ( » và « ) »"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s không có biểu thức"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "toán tử « %s » không có tác tử bên phải"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "toán tử « %s » không có tác từ bên trái"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr " Dấu hai chấm « : » không có dấu há»i « ? » Ä‘i trÆ°á»›c"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "có đống không cân bằng trong %s"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "toán từ không thể « %u »"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "thiếu « ) » nằm trong biểu thức"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "Dấu há»i « ? » không có dấu hai chấm « : » Ä‘i sau"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "tràn số nguyên trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "thiếu « ( » nằm trong biểu thức"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "tác tử bên trái của « %s » thay đổi dấu (dương/âm) khi được tăng cấp"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "tác tử bên phai của « %s » thay đổi dấu (dương/âm) khi đươc tăng cấp"
+
+#: expr.c:1683
+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 tác tá»­"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "toán tử dấu phẩy nằm trong tác tử của #if (nếu)"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "chia số không trong #if (nếu)"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "thư mục RỖNG trong « find_file » (tìm tập tin)"
+
+#: files.c:500
+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:503
+msgid "use -Winvalid-pch for more information"
+msgstr "hãy thử lệnh « -Winvalid-pch » để tìm thấy thông tin thêm"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s là một thiết bị khối"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s quá lớn"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "ngỠ%s dài hơn"
+
+#: files.c:881
+#, 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 kíếm %s"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Nhiá»u Ä‘iá»u bảo vệ bao gồm có lẽ hiệu ích cho :\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "« cppchar_t » phải là kiểu không có dấu dương/âm"
+
+#: init.c:516
+#, 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:523
+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:526
+msgid "target char is less than 8 bits wide"
+msgstr "« char » đích có độ rộng ít hơn 8 bit"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "« wchar_t » đích có độ rộng ít hơn « char » đích"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "« int » đích có độ rộng ít hơn « char » đích"
+
+#: init.c:539
+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:543
+#, 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 cần thiết %lu bit"
+
+#: lex.c:846
+msgid "backslash and newline separated by space"
+msgstr "xuyệc ngược và ký tự dòng mới phân cách nhau bởi dấu cách"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "gặp xuyệc ngược-ký tự dòng mới tại kết thúc của tập tin"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "chữ ba « ??%c » đã được chuyển đổi thành « %c »"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "chữ ba « ??%c » bị bỠqua nên hãy sư dụng tùy chon « -trigraphs » (chữ ba) để hiệu lực nó"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "gặp « /* » nằm trong chú thích"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "gặp %s nằm trong chỉ thị tiá»n xá»­ lý"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "(má»i) ký tá»± rá»—ng bị bá» qua"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "« %.*s » không phải nằm trong NFKC"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "« %.*s » không phải nằm trong NFC"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "đã cố gắng dùng « %s » bị vô hiệu hóa"
+
+#: lex.c:1107 lex.c:1184
+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:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "dấu nhận diện « %s » là một tên toán tử đặc biệt trong C++"
+
+#: lex.c:1334
+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:1337
+#, 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:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "chuỗi thô chưa chấm dứt"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "(các) ký tá»± rá»—ng được giữ lại trong Ä‘iá»u nghÄ©a chữ"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "thiếu ký tự « %c » chấm dứt"
+
+#: lex.c:2144
+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:2146
+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 nhập)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "gặp chú thích đa dòng"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "gặp thẻ bài không thể chính tả %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "bộ đối số « %s » không được dùng"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "vĩ lệnh có sẳn không hợp lệ « %s »"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "không thể quyết định nhãn giỠcủa tập tin"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "không thể quyết định ngày và giá»"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ đã mở rộng bên trong chỉ thị với « -fdirectives-only »"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "Ä‘iá»u nghÄ©a chữ chuá»—i không hợp lệ nên bá» qua « \\ » cuối cùng"
+
+#: macro.c:592
+#, 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:682
+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:687
+#, 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:692
+#, 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:886 traditional.c:681
+#, 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:1026
+#, 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:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "tham số vĩ lệnh trùng « %s »"
+
+#: macro.c:2642
+#, 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:2650
+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:2667
+msgid "parameter name missing"
+msgstr "thiếu tên tham số"
+
+#: macro.c:2685
+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:2690
+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:2699
+msgid "missing ')' in macro parameter list"
+msgstr "thiếu « ) » trong danh sách tham số bộ đối số"
+
+#: macro.c:2748
+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:2783
+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:2807
+msgid "missing whitespace after the macro name"
+msgstr "thiếu khoảng trắng nằm sau tên vĩ lệnh"
+
+#: macro.c:2841
+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:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "« %s » bị định nghĩa lại"
+
+#: macro.c:3005
+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:3066
+#, 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:3093
+#, 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:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "trong khi ghi đầu trang biên dịch sẵn"
+
+#: pch.c:608
+#, 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:630
+#, 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:642
+#, 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:683
+#, 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:703
+#, 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:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "trong khi Ä‘á»c đầu trang biên dịch sẵn"
+
+#: traditional.c:751
+#, 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:969
+msgid "syntax error in macro parameter list"
+msgstr "gặp lỗi cú pháp trong danh sách tham số vĩ lệnh"
diff --git a/gcc-4.7/libcpp/po/zh_CN.gmo b/gcc-4.7/libcpp/po/zh_CN.gmo
new file mode 100644
index 000000000..834998127
--- /dev/null
+++ b/gcc-4.7/libcpp/po/zh_CN.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/zh_CN.po b/gcc-4.7/libcpp/po/zh_CN.po
new file mode 100644
index 000000000..fb8c1bc3f
--- /dev/null
+++ b/gcc-4.7/libcpp/po/zh_CN.po
@@ -0,0 +1,981 @@
+# 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: 2012-01-27 16:12+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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv ä¸æ”¯æŒä»Ž %s 到 %s 的转æ¢"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "没有 iconv 的实现,无法从 %s 转æ¢åˆ° %s"
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "字符 0x%lx ä¸åœ¨åŸºæœ¬æºå­—符集中\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "转æ¢åˆ°å¯æ‰§è¡Œæ–‡ä»¶çš„字符集"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "字符 0x%lx 在执行字符集中ä¸æ˜¯å•å­—节的"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "字符 %x å¯èƒ½ä¸æ˜¯ NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "Unicode 字符ååªåœ¨ C++ å’Œ C99 中有效"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "‘\\%c’的æ„义与在传统 C 中ä¸åŒ"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "在 _cpp_valid_ucn 中但ä¸æ˜¯ä¸€ä¸ª UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "ä¸å®Œå…¨çš„ Unicode 字符å %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ Unicode 字符"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "‘$’出现在标识符或数字中"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "Unicode 字符 %.*s 在标识符中无效"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "Unicode 字符 %.*s 在标识符开头无效"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "å°† UCN 转æ¢åˆ°æºå­—符集"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "å°† UCN 转æ¢åˆ°æ‰§è¡Œå­—符集"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "‘\\x’的æ„义与在传统 C 中ä¸åŒ"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x åŽæ²¡æœ‰ 16 进制数字"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "16 进制转义åºåˆ—越界"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "8 进制转义åºåˆ—越界"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "‘\\a’的æ„义与在传统 C 中ä¸åŒ"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "éž ISO 标准的转义åºåˆ—,‘\\%c’"
+
+#: charset.c:1321
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "未知的转义åºåˆ—:‘\\%c’"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "未知的转义åºåˆ—:‘\\%s’"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "将转义åºåˆ—转æ¢åˆ°æ‰§è¡Œå­—符集"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "字符常é‡å¤§å°è¶…出其类型"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "多字节字符常é‡"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "空的字符常é‡"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "无法从 %s 转æ¢åˆ° %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "#%s 指示的末尾有多余的标识符"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s 是一个 GCC 扩展"
+
+#: directives.c:361
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s 是一个已过时的 GCC 扩展"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "建议在传统 C 中ä¸ä½¿ç”¨ #elif"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "当 # 有缩进时传统 C 忽略 #%s"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "建议使用缩进的 # 以让 #%s 对传统 C ä¸å¯è§"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "将一个指示嵌入å®å‚数中是ä¸å¯ç§»æ¤çš„"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "line 指示的风格是一个 GCC 扩展"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "无效的预处ç†æŒ‡ç¤º #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "“definedâ€ä¸èƒ½è¢«ç”¨ä½œå®å"
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "“%sâ€ä¸èƒ½è¢«ç”¨ä½œå®å,因为它是 C++ 中的一个æ“作符"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s 指示中未给出å®å"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "å®å必须是标识符"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "å–消对“%sâ€çš„定义"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "缺少结尾的 > 字符"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s éœ€è¦ \"FILENAME\" 或 <FILENAME>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s 中文件å为空"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include 嵌套过深"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next 出现在主æºæ–‡ä»¶ä¸­"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "line 指示中有无效的标记“%sâ€"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr "#line åŽæœªé¢„期的文件结æŸ"
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line åŽçš„“%sâ€ä¸æ˜¯ä¸€ä¸ªæ­£æ•´æ•°"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "è¡Œå·è¶…出范围"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "“%sâ€ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„文件å"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "# åŽçš„“%sâ€ä¸æ˜¯ä¸€ä¸ªæ­£æ•´æ•°"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "无效的 #%s 指示"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "在命å空间“%sâ€ä¸­æ³¨å†Œ pragma æ—¶å称扩展ä¸åŒ¹é…"
+
+#: directives.c:1167
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "pragma “%sâ€è¢«æ³¨å†Œä¸ºä¸€ä¸ªå‘½å扩展,而没有命å空间"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "“%sâ€æ—¢è¢«æ³¨å†Œä¸ºä¸€ä¸ªpragma åˆè¢«æ³¨å†Œä¸ºä¸€ä¸ª pragma 命å空间"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s å·²ç»è¢«æ³¨å†Œ"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s å·²ç»è¢«æ³¨å†Œ"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr "pragma 注册为被 NULL 处ç†"
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once 出现在主文件中"
+
+#: directives.c:1485
+msgid "invalid #pragma push_macro directive"
+msgstr "无效的 #pragma push_macro 指示"
+
+#: directives.c:1540
+msgid "invalid #pragma pop_macro directive"
+msgstr "无效的 #pragma pop_macro 指示"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "无效的 #pragma GCC poison 指示"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "对已存在的å®â€œ%sâ€æŠ•æ¯’"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_heade 在包å«æ–‡ä»¶å¤–被忽略"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "找ä¸åˆ°æºæ–‡ä»¶ %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "当å‰æ–‡ä»¶æ—©äºŽ %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma 需è¦ä¸€ä¸ªæ‹¬èµ·çš„字符串字é¢å¸¸é‡"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else 没有匹é…çš„ #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else 出现在 #else åŽ"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "æ¡ä»¶è‡ªæ­¤å¼€å§‹"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif 没有匹é…çš„ #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif 出现在 #else åŽ"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif 没有匹é…çš„ #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "è°“è¯åŽç¼ºå°‘‘(’"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "完整的答案缺少‘)’"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "è°“è¯çš„答案为空"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "断言åŽæ²¡æœ‰è°“è¯"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "è°“è¯å¿…须是一个标识符"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "é‡æ–­è¨€â€œ%sâ€"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "未终止的 #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "未结æŸçš„注释"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "数字中有太多å°æ•°ç‚¹"
+
+#: expr.c:453 expr.c:547
+msgid "fixed-point constants are a GCC extension"
+msgstr "定点常é‡æ˜¯ä¸€ä¸ª GCC 扩展"
+
+#: expr.c:466
+#, c-format
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "二进制常é‡ä¸­æœ‰æ— æ•ˆæ•°å­—“%câ€"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "8 进制常é‡ä¸­æœ‰éžæ³•å­—符“%câ€"
+
+#: expr.c:476
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "浮点常é‡çš„“0bâ€å‰ç¼€æ— æ•ˆ"
+
+#: expr.c:481
+msgid "no digits in hexadecimal floating constant"
+msgstr "16 进制浮点常é‡ä¸­æ²¡æœ‰æ•°å­—"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "使用 C99 å¼çš„ 16 进制浮点常é‡"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "指数部分没有数字"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "16 进制浮点常é‡éœ€è¦æŒ‡æ•°éƒ¨åˆ†"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "浮点常é‡çš„“%.*sâ€åŽç¼€æ— æ•ˆ"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "传统 C ä¸æŽ¥å—“%.*sâ€åŽç¼€"
+
+#: expr.c:534
+msgid "suffix for double constant is a GCC extension"
+msgstr "åŒç²¾åº¦å¸¸é‡åŽç¼€æ˜¯ä¸€ä¸ª GCC 扩展"
+
+#: expr.c:540
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "å六进制浮点常é‡çš„“%.*sâ€åŽç¼€æ— æ•ˆ"
+
+#: expr.c:551
+msgid "decimal float constants are a GCC extension"
+msgstr "å进制浮点常é‡æ˜¯ä¸€ä¸ª GCC 扩展"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "整数常é‡çš„“%.*sâ€åŽç¼€æ— æ•ˆ"
+
+#: expr.c:593
+msgid "use of C++0x long long integer constant"
+msgstr "使用 C++0x long long 整数常é‡"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "使用 C99 long long 整数常é‡"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "虚数常é‡æ˜¯ä¸€ä¸ª GCC 扩展"
+
+#: expr.c:611
+msgid "binary constants are a GCC extension"
+msgstr "二进制常é‡æ˜¯ä¸€ä¸ª GCC 扩展"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "整数常é‡å€¼è¶…出其类型"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "整数常é‡å¤ªå¤§ï¼Œè®¤å®šä¸º unsigned"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "“defined†åŽå‡ºçŽ°â€˜)’"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "æ“作符“definedâ€éœ€è¦ä¸€ä¸ªæ ‡è¯†ç¬¦"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(在 C++ 中“%sâ€ä¼šæ˜¯â€œ%sâ€çš„替代标识符)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "使用“definedâ€å¯èƒ½ä¸åˆ©äºŽç§»æ¤"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "预处ç†è¡¨è¾¾å¼ä¸­æ•´æ•°æº¢å‡º"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "浮点常é‡å‡ºçŽ°åœ¨é¢„处ç†è¡¨è¾¾å¼ä¸­"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "预处ç†è¡¨è¾¾å¼ä¸­å‡ºçŽ°è™šæ•°"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "“%sâ€æœªå®šä¹‰"
+
+#: expr.c:984
+msgid "assertions are a GCC extension"
+msgstr "断言是一个 GCC 扩展"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr "断言是一个已过时的 GCC 扩展"
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "标识符“%sâ€å‰ç¼ºå°‘二元è¿ç®—符"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "标识符“%sâ€åœ¨é¢„处ç†è¡¨è¾¾å¼ä¸­æ— æ•ˆ"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "‘(’与‘)’之间缺少表达å¼"
+
+#: expr.c:1160
+#, c-format
+msgid "%s with no expression"
+msgstr "%s åŽæ²¡æœ‰è¡¨è¾¾å¼"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "æ“作符‘%s’没有å³æ“作数"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "æ“作符‘%s’没有左æ“作数"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr "‘:’å‰æ²¡æœ‰â€˜?’"
+
+#: expr.c:1222
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "%s 中堆栈ä¸å¹³è¡¡"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "ä¸å¯èƒ½çš„æ“作‘%u’"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "表达å¼ä¸­ç¼ºå°‘‘)’"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "‘?’åŽæ²¡æœ‰â€˜:’"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "预处ç†è¡¨è¾¾å¼ä¸­æ•´æ•°æº¢å‡º"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "表达å¼ä¸­ç¼ºå°‘‘(’"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "“%sâ€çš„å·¦æ“作数在æå‡æ—¶å˜æ¢äº†ç¬¦å·"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "“%sâ€çš„å³æ“作数在æå‡æ—¶å˜æ¢äº†ç¬¦å·"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "传统 C ä¸æŽ¥å—å•ç›® + è¿ç®—符"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "#if æ“作数中出现逗å·"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "#if 中用零åšé™¤æ•°"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "find_file 中有 NULL 目录"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "找到一个或多个 PCH 文件,但它们是无效的"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "使用 -Winvalid-pch 以获得更多信æ¯"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s 是一个å—设备"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s 过大"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s 短于预期"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "没有包å«è·¯å¾„å¯ä¾›æœç´¢ %s"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "多个防止é‡åŒ…å«å¯èƒ½å¯¹å…¶æœ‰ç”¨ï¼š\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t 必须是无符å·åž‹"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "预处ç†ç®—术的最高精度为 %lu ä½ï¼›ç›®æ ‡éœ€è¦ %lu ä½"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP 算术必须至少具有目标 int 的精度"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "目标 char 短于 8 ä½"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "目录 wchar_t 短于目标 char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "目标 int 短于目标 char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP åŠæ•´æ•°çŸ­äºŽ CPP 字符"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "åæ–œæ å’Œæ¢è¡Œä¸ºç©ºæ ¼æ‰€åˆ†éš”"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "åæ–œæ ç»­è¡Œå‡ºçŽ°åœ¨æ–‡ä»¶æœ«å°¾"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "三元符 ??%c 转æ¢ä¸º %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "三元符 ??%c 被忽略,请使用 -trigraphs æ¥å¯ç”¨"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "“/*â€å‡ºçŽ°åœ¨æ³¨é‡Šä¸­"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "预处ç†æŒ‡ç¤ºä¸­å‡ºçŽ° %s"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "忽略空字符"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "‘%.*s’ä¸åœ¨ NFKC 中"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "‘%.*s’ä¸åœ¨ NFC 中"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "试图使用有毒的“%sâ€"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ åªèƒ½å‡ºçŽ°åœ¨ C99 å¯å˜å‚æ•°å®çš„展开中"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "标识符“%sâ€æ˜¯ C++ 中的一个特殊æ“作符"
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr "原始字符串分隔符长过 16 个字符"
+
+#: lex.c:1337
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "原始字符串分隔符中有无效字符‘%c’"
+
+#: lex.c:1460 lex.c:1482
+msgid "unterminated raw string"
+msgstr "未终止的原始字符串"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "空字符将ä¿ç•™åœ¨å­—é¢å­—符串中"
+
+#: lex.c:1604
+#, c-format
+msgid "missing terminating %c character"
+msgstr "缺少结尾的 %c 字符"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ 风格的注释在 ISO C90 中ä¸è¢«å…许"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(此警告为æ¯ä¸ªè¾“入文件åªæŠ¥å‘Šä¸€æ¬¡)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "多行注释"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "无法拼出的标识符 %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "å®â€œ%sâ€æœªè¢«ä½¿ç”¨"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "无效的内建å®â€œ%sâ€"
+
+#: macro.c:260
+msgid "could not determine file timestamp"
+msgstr "无法决定文件的时间戳"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "无法决定日期与时间"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "带 -fdirectives-only 时 __COUNTER__ 在指示中扩展"
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "无效的字é¢å­—符串,忽略最åŽçš„‘\\’"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "毗连“%sâ€å’Œâ€œ%sâ€ä¸èƒ½ç»™å‡ºä¸€ä¸ªæœ‰æ•ˆçš„预处ç†æ ‡è¯†ç¬¦"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 需è¦ä½¿ç”¨å‰©ä½™çš„å‚æ•°"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "å®â€œ%sâ€éœ€è¦ %u 个å‚数,但åªç»™å‡ºäº† %u 个"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "å®â€œ%sâ€ä¼ é€’了 %u 个å‚数,但åªéœ€è¦ %u 个"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "调用å®â€œ%sâ€æ—¶å‚数列表未终止"
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "类似函数的å®â€œ%sâ€åœ¨ä¼ ç»Ÿ C 中必须与å‚数一起使用"
+
+#: macro.c:1694
+#, 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:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "é‡å¤çš„å®å‚数“%sâ€"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "“%sâ€ä¸èƒ½å‡ºçŽ°åœ¨å®å‚数列表中"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "å®å‚数必须由逗å·éš”å¼€"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "缺少形å‚å"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "匿åå¯å˜å‚æ•°å®åœ¨ C99 中被引入"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ä¸å…许有åçš„å¯å˜å‚æ•°å®"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "在å®å‚数表中缺少‘)’"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "‘##’ä¸èƒ½å‡ºçŽ°åœ¨å®å±•å¼€çš„两端"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 è¦æ±‚å®ååŽå¿…须有空白"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "å®ååŽç¼ºå°‘空白"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "‘#’åŽæ²¡æœ‰å®å‚æ•°"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "“%sâ€é‡å®šä¹‰"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "这是先å‰å®šä¹‰çš„ä½ç½®"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "å®å‚数“%sâ€å°†åœ¨ä¼ ç»Ÿ C 中被字符串化"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition 中有无效的散列类型 %d"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "在写入预编译头时"
+
+#: pch.c:608
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s:未使用因为‘%.*s’已被投毒"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s:未使用因为‘%.*s’未定义"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s:未使用因为‘%.*s’被定义为‘%s’而éžâ€˜%*.s’"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s:未使用因为‘%s’已定义"
+
+#: pch.c:703
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s:未使用因为‘__COUNTER__’无效"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "在读å–预编译头时"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "展开å®â€œ%sâ€æ—¶æ£€æµ‹åˆ°é€’å½’"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+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.7/libcpp/po/zh_TW.gmo b/gcc-4.7/libcpp/po/zh_TW.gmo
new file mode 100644
index 000000000..c006505d6
--- /dev/null
+++ b/gcc-4.7/libcpp/po/zh_TW.gmo
Binary files differ
diff --git a/gcc-4.7/libcpp/po/zh_TW.po b/gcc-4.7/libcpp/po/zh_TW.po
new file mode 100644
index 000000000..678101806
--- /dev/null
+++ b/gcc-4.7/libcpp/po/zh_TW.po
@@ -0,0 +1,1016 @@
+# Traditional Chinese translation for cpplib.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the cpplib package.
+# Meng Jie <zuxyhere@eastday.com>, 2005.
+# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.1.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2012-01-27 16:12+0000\n"
+"PO-Revision-Date: 2006-03-09 12:37+0800\n"
+"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\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:674
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv ä¸æ”¯æ´å¾ž %s 到 %s 的轉æ›"
+
+#: charset.c:677
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:685
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "沒有實作 iconv,無法從 %s 轉æ›åˆ° %s"
+
+#: charset.c:781
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "å­—å…ƒ 0x%lx ä¸åœ¨åŸºæœ¬ä¾†æºå­—元集中\n"
+
+#: charset.c:798 charset.c:1444
+msgid "converting to execution character set"
+msgstr "轉æ›åˆ°å¯åŸ·è¡Œæª”案的字元集"
+
+#: charset.c:804
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "å­—å…ƒ 0x%lx 在執行字元集中ä¸æ˜¯å–®ä½å…ƒçµ„çš„"
+
+#: charset.c:928
+#, c-format
+msgid "Character %x might not be NFKC"
+msgstr "å­—å…ƒ %x å¯èƒ½ä¸æ˜¯ NFKC"
+
+#: charset.c:994
+msgid "universal character names are only valid in C++ and C99"
+msgstr "è¬åœ‹ç¢¼å­—å…ƒå稱åªåœ¨ C++ å’Œ C99 中有效"
+
+#: charset.c:997
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "「\\%cã€çš„æ„義與在傳統 C 中ä¸åŒ"
+
+#: charset.c:1006
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "在 _cpp_valid_ucn 中並ä¸æ˜¯ä¸€å€‹ UCN"
+
+#: charset.c:1031
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "ä¸å®Œæ•´çš„è¬åœ‹ç¢¼å­—å…ƒå稱 %.*s"
+
+#: charset.c:1046
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„è¬åœ‹ç¢¼å­—å…ƒ"
+
+#: charset.c:1056 lex.c:1052
+msgid "'$' in identifier or number"
+msgstr "「$ã€å‡ºç¾åœ¨è­˜åˆ¥å­—或數字中"
+
+#: charset.c:1066
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "è¬åœ‹ç¢¼å­—å…ƒ %.*s 在識別字中無效"
+
+#: charset.c:1070
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "è¬åœ‹ç¢¼å­—å…ƒ %.*s 在識別字開頭無效"
+
+#: charset.c:1102 charset.c:1674
+msgid "converting UCN to source character set"
+msgstr "å°‡ UCN 轉æ›åˆ°ä¾†æºå­—元集"
+
+#: charset.c:1106
+msgid "converting UCN to execution character set"
+msgstr "å°‡ UCN 轉æ›åˆ°åŸ·è¡Œå­—元集"
+
+#: charset.c:1178
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "「\\xã€çš„æ„義與在傳統 C 中ä¸åŒ"
+
+#: charset.c:1195
+msgid "\\x used with no following hex digits"
+msgstr "\\x 後沒有å六進ä½æ•¸å­—"
+
+#: charset.c:1202
+msgid "hex escape sequence out of range"
+msgstr "å六進ä½é€¸å‡ºåºåˆ—越界"
+
+#: charset.c:1240
+msgid "octal escape sequence out of range"
+msgstr "八進ä½é€¸å‡ºåºåˆ—越界"
+
+#: charset.c:1306
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "「\\aã€çš„æ„義與在傳統 C 中ä¸åŒ"
+
+#: charset.c:1313
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "éž ISO 標準的逸出åºåˆ—,「\\%cã€"
+
+#: charset.c:1321
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "ä¸æ˜Žçš„逸出åºåˆ—:「\\%cã€"
+
+#: charset.c:1329
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "ä¸æ˜Žçš„逸出åºåˆ—:「\\%sã€"
+
+#: charset.c:1336
+msgid "converting escape sequence to execution character set"
+msgstr "將逸出åºåˆ—轉æ›åˆ°åŸ·è¡Œå­—元集"
+
+#: charset.c:1509 charset.c:1573
+msgid "character constant too long for its type"
+msgstr "字元常數大å°è¶…出其類型"
+
+#: charset.c:1512
+msgid "multi-character character constant"
+msgstr "多ä½å…ƒçµ„字元常數"
+
+#: charset.c:1612
+msgid "empty character constant"
+msgstr "空的字元常數"
+
+#: charset.c:1721
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "無法從 %s 轉æ›åˆ° %s"
+
+#: directives.c:223 directives.c:249
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "#%s 指令的末尾有多餘的符記"
+
+#: directives.c:356
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s 是 GCC 擴充功能"
+
+#: directives.c:361
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s 是 GCC 擴充功能"
+
+#: directives.c:374
+msgid "suggest not using #elif in traditional C"
+msgstr "建議在傳統 C 中ä¸è¦ä½¿ç”¨ #elif"
+
+#: directives.c:377
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "當 # 有縮排時傳統 C 忽略 #%s"
+
+#: directives.c:381
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "建議使用縮排的 # 以讓 #%s å°å‚³çµ± C ä¸å¯è¦‹"
+
+#: directives.c:407
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "將一個指令內嵌於巨集åƒæ•¸ä¸­æ˜¯ä¸å¯ç§»æ¤çš„"
+
+#: directives.c:427
+msgid "style of line directive is a GCC extension"
+msgstr "line 指令的風格是 GCC 擴充功能"
+
+#: directives.c:482
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "無效的é å…ˆè™•ç†æŒ‡ä»¤ #%s"
+
+#: directives.c:550
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "「definedã€ä¸èƒ½åšç‚ºå·¨é›†å"
+
+#: directives.c:556
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "「%sã€ä¸èƒ½åšç‚ºå·¨é›†å,因為它是 C++ 中的一個é‹ç®—å­"
+
+#: directives.c:559
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s 指令中未給出巨集å"
+
+#: directives.c:562
+msgid "macro names must be identifiers"
+msgstr "巨集å必須是識別字"
+
+#: directives.c:611
+#, c-format
+msgid "undefining \"%s\""
+msgstr "å–消å°ã€Œ%sã€çš„定義"
+
+#: directives.c:666
+msgid "missing terminating > character"
+msgstr "缺少çµå°¾çš„ > å­—å…ƒ"
+
+#: directives.c:725
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s éœ€è¦ \"FILENAME\" 或 <FILENAME>"
+
+#: directives.c:771
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s 中檔案å稱為空"
+
+#: directives.c:781
+msgid "#include nested too deeply"
+msgstr "#include 巢狀éŽæ·±"
+
+#: directives.c:822
+msgid "#include_next in primary source file"
+msgstr "#include_next 出ç¾åœ¨ä¸»ä¾†æºæª”案中"
+
+#: directives.c:848
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "line 指令中有無效的標記「%sã€"
+
+#: directives.c:908
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:911
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line 後的「%sã€ä¸æ˜¯ä¸€å€‹æ­£æ•´æ•¸"
+
+#: directives.c:917 directives.c:919
+msgid "line number out of range"
+msgstr "列號超出範åœ"
+
+#: directives.c:932 directives.c:1012
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "「%sã€ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„檔案å稱"
+
+#: directives.c:972
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "# 後的「%sã€ä¸æ˜¯ä¸€å€‹æ­£æ•´æ•¸"
+
+#: directives.c:1067 directives.c:1069 directives.c:1071
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1095
+#, c-format
+msgid "invalid #%s directive"
+msgstr "無效的 #%s 指令"
+
+#: directives.c:1158
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1167
+#, 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 "「%sã€æ—¢è¢«è¨»å†Šç‚ºä¸€å€‹ pragma åˆè¢«è¨»å†Šç‚ºä¸€å€‹ pragma 命å空間"
+
+#: directives.c:1185
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "「%sã€æ—¢è¢«è¨»å†Šç‚ºä¸€å€‹ pragma åˆè¢«è¨»å†Šç‚ºä¸€å€‹ pragma 命å空間"
+
+#: directives.c:1188
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s 已經被註冊"
+
+#: directives.c:1191
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s 已經被註冊"
+
+#: directives.c:1221
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1462
+msgid "#pragma once in main file"
+msgstr "#pragma once 出ç¾åœ¨ä¸»æª”案中"
+
+#: directives.c:1485
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "無效的 #pragma GCC poison 指令"
+
+#: directives.c:1540
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "無效的 #pragma GCC poison 指令"
+
+#: directives.c:1595
+msgid "invalid #pragma GCC poison directive"
+msgstr "無效的 #pragma GCC poison 指令"
+
+#: directives.c:1604
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "å°å·²å­˜åœ¨çš„巨集「%sã€åŠ æ–™"
+
+#: directives.c:1623
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header 在包å«æª”案外被忽略"
+
+#: directives.c:1648
+#, c-format
+msgid "cannot find source file %s"
+msgstr "找ä¸åˆ°ä¾†æºæª”案 %s"
+
+#: directives.c:1652
+#, c-format
+msgid "current file is older than %s"
+msgstr "ç›®å‰æª”案早於 %s"
+
+#: directives.c:1837
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma 需è¦ä¸€å€‹æ‹¬èµ·çš„字串原文"
+
+#: directives.c:1958
+msgid "#else without #if"
+msgstr "#else 沒有匹é…çš„ #if"
+
+#: directives.c:1963
+msgid "#else after #else"
+msgstr "#else 出ç¾åœ¨ #else 後"
+
+#: directives.c:1965 directives.c:1998
+msgid "the conditional began here"
+msgstr "æ¢ä»¶è‡ªæ­¤é–‹å§‹"
+
+#: directives.c:1991
+msgid "#elif without #if"
+msgstr "#elif 沒有匹é…çš„ #if"
+
+#: directives.c:1996
+msgid "#elif after #else"
+msgstr "#elif 出ç¾åœ¨ #else 後"
+
+#: directives.c:2034
+msgid "#endif without #if"
+msgstr "#endif 沒有匹é…çš„ #if"
+
+#: directives.c:2114
+msgid "missing '(' after predicate"
+msgstr "述語後缺少「(ã€"
+
+#: directives.c:2129
+msgid "missing ')' to complete answer"
+msgstr "完整的答案缺少「)ã€"
+
+#: directives.c:2149
+msgid "predicate's answer is empty"
+msgstr "述語的答案為空"
+
+#: directives.c:2176
+msgid "assertion without predicate"
+msgstr "判定語後沒有述語"
+
+#: directives.c:2179
+msgid "predicate must be an identifier"
+msgstr "述語必須是一個識別字"
+
+#: directives.c:2265
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "å·²å†åˆ¤å®šã€Œ%sã€"
+
+#: directives.c:2556
+#, c-format
+msgid "unterminated #%s"
+msgstr "未終止的 #%s"
+
+#: directives-only.c:222 lex.c:2133 traditional.c:163
+msgid "unterminated comment"
+msgstr "未終çµçš„註釋"
+
+#: errors.c:235
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:237
+#, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: expr.c:424
+msgid "too many decimal points in number"
+msgstr "數字中有太多å°æ•¸é»ž"
+
+#: expr.c:453 expr.c:547
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "fixed-point constants are a GCC extension"
+msgstr "虛數常數是一個 GCC 擴充功能"
+
+#: expr.c:466
+#, fuzzy, c-format
+#| msgid "invalid digit \"%c\" in octal constant"
+msgid "invalid digit \"%c\" in binary constant"
+msgstr "八進ä½å¸¸æ•¸ä¸­æœ‰ç„¡æ•ˆå­—元「%cã€"
+
+#: expr.c:468
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "八進ä½å¸¸æ•¸ä¸­æœ‰ç„¡æ•ˆå­—元「%cã€"
+
+#: expr.c:476
+#, fuzzy
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "浮點常數的「%.*sã€å­—尾無效"
+
+#: expr.c:481
+#, fuzzy
+#| msgid "use of C99 hexadecimal floating constant"
+msgid "no digits in hexadecimal floating constant"
+msgstr "使用 C99 å¼çš„å六進ä½æµ®é»žå¸¸æ•¸"
+
+#: expr.c:485
+msgid "use of C99 hexadecimal floating constant"
+msgstr "使用 C99 å¼çš„å六進ä½æµ®é»žå¸¸æ•¸"
+
+#: expr.c:494
+msgid "exponent has no digits"
+msgstr "指數部分沒有數字"
+
+#: expr.c:501
+msgid "hexadecimal floating constants require an exponent"
+msgstr "å六進ä½æµ®é»žå¸¸æ•¸éœ€è¦æŒ‡æ•¸éƒ¨åˆ†"
+
+#: expr.c:515
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "浮點常數的「%.*sã€å­—尾無效"
+
+#: expr.c:526 expr.c:585
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "傳統 C ä¸æŽ¥å—「%.*sã€å­—å°¾"
+
+#: expr.c:534
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "虛數常數是一個 GCC 擴充功能"
+
+#: expr.c:540
+#, fuzzy, c-format
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "浮點常數的「%.*sã€å­—尾無效"
+
+#: expr.c:551
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "decimal float constants are a GCC extension"
+msgstr "虛數常數是一個 GCC 擴充功能"
+
+#: expr.c:569
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "整數常數的「%.*sã€å­—尾無效"
+
+#: expr.c:593
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++0x long long integer constant"
+msgstr "使用 C99 long long 整數常數"
+
+#: expr.c:594
+msgid "use of C99 long long integer constant"
+msgstr "使用 C99 long long 整數常數"
+
+#: expr.c:608
+msgid "imaginary constants are a GCC extension"
+msgstr "虛數常數是一個 GCC 擴充功能"
+
+#: expr.c:611
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "binary constants are a GCC extension"
+msgstr "虛數常數是一個 GCC 擴充功能"
+
+#: expr.c:704
+msgid "integer constant is too large for its type"
+msgstr "整數常數值超出其類型"
+
+#: expr.c:735
+msgid "integer constant is so large that it is unsigned"
+msgstr "整數常數太大,èªå®šç‚º unsigned"
+
+#: expr.c:830
+msgid "missing ')' after \"defined\""
+msgstr "「defined〠後缺少「)ã€"
+
+#: expr.c:837
+msgid "operator \"defined\" requires an identifier"
+msgstr "é‹ç®—å­ã€Œdefinedã€éœ€è¦ä¸€å€‹è­˜åˆ¥å­—"
+
+#: expr.c:845
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(在 C++ 中「%sã€æœƒæ˜¯ã€Œ%sã€çš„替代識別字)"
+
+#: expr.c:855
+msgid "this use of \"defined\" may not be portable"
+msgstr "使用「definedã€å¯èƒ½ä¸åˆ©æ–¼ç§»æ¤"
+
+#: expr.c:914
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "é å…ˆè™•ç†é‹ç®—å¼ä¸­æ•´æ•¸æº¢å‡º"
+
+#: expr.c:919
+msgid "floating constant in preprocessor expression"
+msgstr "浮點常數出ç¾åœ¨é å…ˆè™•ç†é‹ç®—å¼ä¸­"
+
+#: expr.c:925
+msgid "imaginary number in preprocessor expression"
+msgstr "é å…ˆè™•ç†é‹ç®—å¼ä¸­å‡ºç¾è™›æ•¸"
+
+#: expr.c:972
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "「%sã€æœªå®šç¾©"
+
+#: expr.c:984
+#, fuzzy
+#| msgid "#%s is a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "#%s 是 GCC 擴充功能"
+
+#: expr.c:987
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1120 expr.c:1149
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "識別字「%sã€å‰ç¼ºå°‘二元é‹ç®—å­"
+
+#: expr.c:1140
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "識別字「%sã€åœ¨é å…ˆè™•ç†é‹ç®—å¼ä¸­ç„¡æ•ˆ"
+
+#: expr.c:1157
+msgid "missing expression between '(' and ')'"
+msgstr "「(ã€èˆ‡ã€Œ)ã€ä¹‹é–“缺少é‹ç®—å¼"
+
+#: expr.c:1160
+#, fuzzy, c-format
+#| msgid "#if with no expression"
+msgid "%s with no expression"
+msgstr "#if 後沒有é‹ç®—å¼"
+
+#: expr.c:1163
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "é‹ç®—å­ã€Œ%sã€æ²’有å³é‹ç®—å…ƒ"
+
+#: expr.c:1168
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "é‹ç®—å­ã€Œ%sã€æ²’有左é‹ç®—å…ƒ"
+
+#: expr.c:1194
+msgid " ':' without preceding '?'"
+msgstr "「:ã€å‰æ²’有「?ã€"
+
+#: expr.c:1222
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "#if 中ä¸å¹³è¡¡çš„堆疊"
+
+#: expr.c:1242
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "ä¸å¯èƒ½çš„é‹ç®—å­ã€Œ%uã€"
+
+#: expr.c:1343
+msgid "missing ')' in expression"
+msgstr "é‹ç®—å¼ä¸­ç¼ºå°‘「)ã€"
+
+#: expr.c:1372
+msgid "'?' without following ':'"
+msgstr "「?ã€å¾Œæ²’有「:ã€"
+
+#: expr.c:1382
+msgid "integer overflow in preprocessor expression"
+msgstr "é å…ˆè™•ç†é‹ç®—å¼ä¸­æ•´æ•¸æº¢å‡º"
+
+#: expr.c:1387
+msgid "missing '(' in expression"
+msgstr "é‹ç®—å¼ä¸­ç¼ºå°‘「(ã€"
+
+#: expr.c:1419
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "「%sã€çš„å·¦é‹ç®—元在æå‡æ™‚變æ›äº†ç¬¦è™Ÿ"
+
+#: expr.c:1424
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "「%sã€çš„å³é‹ç®—元在æå‡æ™‚變æ›äº†ç¬¦è™Ÿ"
+
+#: expr.c:1683
+msgid "traditional C rejects the unary plus operator"
+msgstr "傳統 C ä¸æŽ¥å—單元 + é‹ç®—å­"
+
+#: expr.c:1766
+msgid "comma operator in operand of #if"
+msgstr "#if é‹ç®—元中出ç¾é€—號"
+
+#: expr.c:1902
+msgid "division by zero in #if"
+msgstr "#if 中用零åšé™¤æ•¸"
+
+#: files.c:463
+msgid "NULL directory in find_file"
+msgstr "find_file 中有 NULL 目錄"
+
+#: files.c:500
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "找到一個或多個 PCH 檔案,但它們是無效的"
+
+#: files.c:503
+msgid "use -Winvalid-pch for more information"
+msgstr "使用 -Winvalid-pch 以ç²å¾—更多資訊"
+
+#: files.c:594
+#, c-format
+msgid "%s is a block device"
+msgstr "%s 是一個å€å¡Šè£ç½®"
+
+#: files.c:611
+#, c-format
+msgid "%s is too large"
+msgstr "%s éŽå¤§"
+
+#: files.c:646
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s 短於é æœŸ"
+
+#: files.c:881
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "沒有包å«è·¯å¾‘å¯ä¾›æœå°‹ %s"
+
+#: files.c:1305
+msgid "Multiple include guards may be useful for:\n"
+msgstr "多個防止é‡åŒ…å«å¯èƒ½å°å…¶æœ‰ç”¨ï¼š\n"
+
+#: init.c:512
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t 必須是無號類型"
+
+#: init.c:516
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "é å…ˆè™•ç†ç®—術的最高精度為 %lu ä½ï¼›ç›®æ¨™éœ€è¦ %lu ä½"
+
+#: init.c:523
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP 算術必須至少具有目標 int 的精度"
+
+#: init.c:526
+msgid "target char is less than 8 bits wide"
+msgstr "目標 char 短於 8 ä½"
+
+#: init.c:530
+msgid "target wchar_t is narrower than target char"
+msgstr "目標 wchar_t 短於目標 char"
+
+#: init.c:534
+msgid "target int is narrower than target char"
+msgstr "目標 int 短於目標 char"
+
+#: init.c:539
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP åŠæ•´æ•¸çŸ­æ–¼ CPP å­—å…ƒ"
+
+#: init.c:543
+#, 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:846
+msgid "backslash and newline separated by space"
+msgstr "å斜線和æ›åˆ—為空格所分隔"
+
+#: lex.c:851
+msgid "backslash-newline at end of file"
+msgstr "å斜線-æ›åˆ—出ç¾åœ¨æª”案末尾"
+
+#: lex.c:867
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "三元符 ??%c 轉æ›ç‚º %c"
+
+#: lex.c:875
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "三元符 ??%c 被忽略,請使用 -trigraphs 來啟用"
+
+#: lex.c:924
+msgid "\"/*\" within comment"
+msgstr "「/*ã€å‡ºç¾åœ¨è¨»é‡‹ä¸­"
+
+#: lex.c:982
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "é å…ˆè™•ç†æŒ‡ä»¤ä¸­å‡ºç¾ %s"
+
+#: lex.c:991
+msgid "null character(s) ignored"
+msgstr "忽略空字元"
+
+#: lex.c:1028
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "「%.*sã€ä¸åœ¨ NFKC 中"
+
+#: lex.c:1031
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "「%.*sã€ä¸åœ¨ NFC 中"
+
+#: lex.c:1099 lex.c:1176
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "試圖使用已加料的「%sã€"
+
+#: lex.c:1107 lex.c:1184
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ åªèƒ½å‡ºç¾åœ¨ C99 å¯è®Šåƒæ•¸å·¨é›†çš„展開中"
+
+#: lex.c:1113 lex.c:1190
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1334
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1337
+#, fuzzy, c-format
+#| msgid "universal character %.*s is not valid in an identifier"
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "è¬åœ‹ç¢¼å­—å…ƒ %.*s 在識別字中無效"
+
+#: lex.c:1460 lex.c:1482
+#, fuzzy
+#| msgid "unterminated #%s"
+msgid "unterminated raw string"
+msgstr "未終止的 #%s"
+
+#: lex.c:1601
+msgid "null character(s) preserved in literal"
+msgstr "空字元將ä¿ç•™åœ¨åŽŸæ–‡ä¸­"
+
+#: lex.c:1604
+#, fuzzy, c-format
+#| msgid "missing terminating > character"
+msgid "missing terminating %c character"
+msgstr "缺少çµå°¾çš„ > å­—å…ƒ"
+
+#: lex.c:2144
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ 風格的註釋在 ISO C90 中ä¸è¢«å…許"
+
+#: lex.c:2146
+msgid "(this will be reported only once per input file)"
+msgstr "(此警告為æ¯å€‹è¼¸å…¥æª”案åªå ±å‘Šä¸€æ¬¡)"
+
+#: lex.c:2151
+msgid "multi-line comment"
+msgstr "多列註釋"
+
+#: lex.c:2471
+#, c-format
+msgid "unspellable token %s"
+msgstr "無法拼出的識別字 %s"
+
+#: macro.c:188
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "巨集「%sã€æœªè¢«ä½¿ç”¨"
+
+#: macro.c:226 macro.c:423
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "無效的內建巨集「%sã€"
+
+#: macro.c:260
+#, fuzzy
+#| msgid "could not determine date and time"
+msgid "could not determine file timestamp"
+msgstr "無法決定日期與時間"
+
+#: macro.c:358
+msgid "could not determine date and time"
+msgstr "無法決定日期與時間"
+
+#: macro.c:374
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:532
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "無效的原文字串,忽略最後的「\\ã€"
+
+#: macro.c:592
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "粘貼「%sã€å’Œã€Œ%sã€ä¸èƒ½çµ¦å‡ºä¸€å€‹æœ‰æ•ˆçš„é å…ˆè™•ç†è­˜åˆ¥å­—"
+
+#: macro.c:682
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 需è¦ä½¿ç”¨å‰©é¤˜çš„引數"
+
+#: macro.c:687
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "巨集「%sã€éœ€è¦ %u 個引數,但åªçµ¦å‡ºäº† %u 個"
+
+#: macro.c:692
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "巨集「%sã€å‚³éžäº† %u 個引數,但åªéœ€è¦ %u 個"
+
+#: macro.c:886 traditional.c:681
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "呼å«å·¨é›†ã€Œ%sã€æ™‚引數清單未終止"
+
+#: macro.c:1026
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "類似函å¼çš„巨集「%sã€åœ¨å‚³çµ± C 中必須與引數一起使用"
+
+#: macro.c:1694
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2596
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "é‡è¤‡çš„巨集åƒæ•¸ã€Œ%sã€"
+
+#: macro.c:2642
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "「%sã€ä¸èƒ½å‡ºç¾åœ¨å·¨é›†åƒæ•¸æ¸…單中"
+
+#: macro.c:2650
+msgid "macro parameters must be comma-separated"
+msgstr "巨集åƒæ•¸å¿…須由逗號隔開"
+
+#: macro.c:2667
+msgid "parameter name missing"
+msgstr "缺少åƒæ•¸å"
+
+#: macro.c:2685
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "匿åå¯è®Šåƒæ•¸å·¨é›†åœ¨ C99 中被引入"
+
+#: macro.c:2690
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ä¸å…許具åçš„å¯è®Šåƒæ•¸å·¨é›†"
+
+#: macro.c:2699
+msgid "missing ')' in macro parameter list"
+msgstr "在巨集åƒæ•¸è¡¨ä¸­ç¼ºå°‘「)ã€"
+
+#: macro.c:2748
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "「##ã€ä¸èƒ½å‡ºç¾åœ¨å·¨é›†å±•é–‹çš„兩端"
+
+#: macro.c:2783
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 è¦æ±‚巨集å後必須有空白"
+
+#: macro.c:2807
+msgid "missing whitespace after the macro name"
+msgstr "巨集å後缺少空白"
+
+#: macro.c:2841
+msgid "'#' is not followed by a macro parameter"
+msgstr "「#ã€å¾Œæ²’有巨集åƒæ•¸"
+
+#: macro.c:2999
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "「%sã€é‡å®šç¾©"
+
+#: macro.c:3005
+msgid "this is the location of the previous definition"
+msgstr "這是先å‰å®šç¾©çš„ä½ç½®"
+
+#: macro.c:3066
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "巨集引數「%sã€å°‡åœ¨å‚³çµ± C 中被字串化"
+
+#: macro.c:3093
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition 中有無效的雜湊類型 %d"
+
+#: pch.c:88 pch.c:336 pch.c:348 pch.c:366 pch.c:372 pch.c:381 pch.c:388
+msgid "while writing precompiled header"
+msgstr "在寫入é å…ˆç·¨è­¯æ¨™é ­æ™‚"
+
+#: pch.c:608
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s:未使用,因為「%sã€å·²å®šç¾©"
+
+#: pch.c:630
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s:未使用,因為「%.*sã€æœªå®šç¾©"
+
+#: pch.c:642
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s:未使用,因為「%.*sã€è¢«å®šç¾©ç‚ºã€Œ%sã€è€Œéžã€Œ%*.sã€"
+
+#: pch.c:683
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s:未使用,因為「%sã€å·²å®šç¾©"
+
+#: pch.c:703
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s:未使用,因為「%sã€å·²å®šç¾©"
+
+#: pch.c:712 pch.c:888
+msgid "while reading precompiled header"
+msgstr "在讀å–é å…ˆç·¨è­¯æ¨™é ­æ™‚"
+
+#: traditional.c:751
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "展開巨集「%sã€æ™‚åµæ¸¬åˆ°éžè¿´"
+
+#: traditional.c:969
+msgid "syntax error in macro parameter list"
+msgstr "巨集åƒæ•¸æ¸…單語法錯誤"
+
+#~ msgid "warning: "
+#~ msgstr "警告:"
+
+#~ msgid "internal error: "
+#~ msgstr "內部錯誤:"
+
+#~ msgid "error: "
+#~ msgstr "錯誤:"
+
+#~ 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.7/libcpp/symtab.c b/gcc-4.7/libcpp/symtab.c
new file mode 100644
index 000000000..48a5338b1
--- /dev/null
+++ b/gcc-4.7/libcpp/symtab.c
@@ -0,0 +1,363 @@
+/* Hash tables.
+ Copyright (C) 2000, 2001, 2003, 2004, 2008, 2009
+ 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 (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. */
+
+hash_table *
+ht_create (unsigned int order)
+{
+ unsigned int nslots = 1 << order;
+ hash_table *table;
+
+ table = XCNEW (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 (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 (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 (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 (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 (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 (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 (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 (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.7/libcpp/system.h b/gcc-4.7/libcpp/system.h
new file mode 100644
index 000000000..2a1f70967
--- /dev/null
+++ b/gcc-4.7/libcpp/system.h
@@ -0,0 +1,445 @@
+/* Get common system includes and various definitions and declarations based
+ on autoconf macros.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009, 2010, 2011
+ 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.7/libcpp/traditional.c b/gcc-4.7/libcpp/traditional.c
new file mode 100644
index 000000000..4206b6fa7
--- /dev/null
+++ b/gcc-4.7/libcpp/traditional.c
@@ -0,0 +1,1170 @@
+/* CPP Library - traditional lexical analysis and macro expansion.
+ Copyright (C) 2002, 2004, 2005, 2007, 2008, 2009
+ 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.7/libcpp/ucnid.h b/gcc-4.7/libcpp/ucnid.h
new file mode 100644
index 000000000..e5690b223
--- /dev/null
+++ b/gcc-4.7/libcpp/ucnid.h
@@ -0,0 +1,801 @@
+/* Unicode characters and various properties.
+ Copyright (C) 2003, 2005, 2009 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. */
+
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00a9 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00aa },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b4 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00b5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x00b7 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x00b9 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00ba },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00bf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x00d6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00d7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x00f6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00f7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0131 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0133 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x013e },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0140 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0148 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0149 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x017e },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x017f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01c3 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x01cc },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01f0 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x01f3 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01f5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x01f9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0217 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x024f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x02a8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02af },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x02b8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02ba },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02bb },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02bc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02c1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02cf },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02d1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02df },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x02e4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0379 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x037a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0383 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0x0384 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x0385 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0386 },
+{ 0| 0| 0|CID| 0| 0| 0, 0, 0x0387 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x038a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x038b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x038c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x038d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03a1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03a2 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03ce },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03cf },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x03d6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03d9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03da },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03db },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03dc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03dd },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03de },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03df },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03e0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03e1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03ef },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x03f2 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03f3 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x0400 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x040c },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x040d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x040e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x044f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0450 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x045c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x045d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0481 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x048f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04c4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04c6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04c8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04ca },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04cc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04cf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04eb },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04ed },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04f5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04f7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04f9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0530 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0556 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0558 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0559 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0560 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0586 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0587 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05af },
+{ C99| 0| 0|CID|NFC|NKC| 0, 10, 0x05b0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 11, 0x05b1 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 12, 0x05b2 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 13, 0x05b3 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 14, 0x05b4 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 15, 0x05b5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 16, 0x05b6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 17, 0x05b7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 18, 0x05b8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 19, 0x05b9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05ba },
+{ C99| 0| 0|CID|NFC|NKC| 0, 20, 0x05bb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 21, 0x05bc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 22, 0x05bd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05be },
+{ C99| 0| 0|CID|NFC|NKC| 0, 23, 0x05bf },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05c0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 24, 0x05c1 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 25, 0x05c2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05cf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x05ea },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05ef },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x05f2 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x05f4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0620 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x063a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x063f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x064a },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 27, 0x064b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 28, 0x064c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 29, 0x064d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 30, 0x064e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 31, 0x064f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 32, 0x0650 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 33, 0x0651 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 34, 0x0652 },
+{ 0| 0| 0|CID|NFC|NKC|CTX, 0, 0x065f },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0669 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x066f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0674 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0678 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06b7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06b9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06be },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06bf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06ce },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06cf },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x06d5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d9 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06da },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06db },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06dc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06e4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06e6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 230, 0x06e7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06e8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06e9 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x06ea },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06eb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06ec },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x06ed },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06ef },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x06f9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0900 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0903 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0904 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0939 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x093c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x094c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x094d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x094f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0950 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0951 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0952 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0957 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x095f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0962 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0963 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0965 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x096f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0980 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0983 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0984 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x098c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x098e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0990 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0992 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09a8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09a9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09b1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09b5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09bd },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x09be },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09c4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09c6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09c8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09ca },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x09cb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09cc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x09cd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09db },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x09dd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09de },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x09df },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09e1 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09e3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09e5 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x09ef },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09f1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a01 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a02 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a0a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a0e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a12 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a30 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a31 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a32 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a34 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a35 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a36 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a37 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a3d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a42 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a46 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a4a },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0a4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a58 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a5b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a5c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a5d },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a5e },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0a6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a73 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a74 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a80 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a83 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a84 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a8b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a8c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a8d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a8e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a91 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a92 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0aa8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0aa9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ab1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ab4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0abc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0aca },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0acc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0acd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0acf },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ad0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0adf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ae0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ae5 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0aef },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b00 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b03 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b0c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b0e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b12 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b30 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b31 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b35 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b3c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b3d },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0b3e },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b43 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b46 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b4a },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0b4b },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0b4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b5b },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0b5d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b5e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b61 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0b6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b81 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b83 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b84 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b8a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b8d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b90 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b91 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b95 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b98 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b9b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b9d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ba2 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ba4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ba7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0baa },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bad },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0bb5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bb6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0bb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bbd },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0bbe },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc9 },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0bcb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bcc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0bcd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0be6 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0bef },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c00 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c03 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c0c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c0d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c11 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c34 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c3d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c44 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c45 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c49 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0c4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c5f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c61 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0c6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c81 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c83 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c84 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c8c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c8d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c90 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c91 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ca8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ca9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0cb3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cb4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0cb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cbd },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc1 },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0cc2 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc9 },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0cca },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ccc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0ccd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdd },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cde },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ce1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ce5 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0cef },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d01 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d03 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d0c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d0d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d11 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d3d },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0d3e },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d43 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d45 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d49 },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0d4b },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0d4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d5f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d61 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0d6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e00 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e30 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e31 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e32 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0e33 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e37 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 103, 0x0e38 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 103, 0x0e39 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0e3a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e3f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e46 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e47 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 107, 0x0e48 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 107, 0x0e49 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e4e },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e4f },
+{ C99|DIG|CXX|CID|NFC|NKC| 0, 0, 0x0e59 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e5b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e80 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e82 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e83 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e84 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e86 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e88 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e89 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e8a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e8c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e8d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e93 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e97 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e98 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e9f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea0 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eab },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eac },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eae },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eaf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eb0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0eb1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eb2 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0eb3 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0eb7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 118, 0x0eb8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 118, 0x0eb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eba },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ebc },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ebd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ebf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ec4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ec5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ec6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ec7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0ec8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0ec9 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0eca },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ecd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ecf },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0ed9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0edb },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0edd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eff },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f00 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f17 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f18 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f19 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f1f },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0f33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f34 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f35 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f36 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f37 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f38 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 216, 0x0f39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f3d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f42 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f43 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f47 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f48 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f4c },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f4d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f51 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f52 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f56 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f57 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f5b },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f5c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f68 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f69 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f70 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 129, 0x0f71 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f72 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f73 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 132, 0x0f74 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f76 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0f77 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f78 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0f79 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7a },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7b },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f7f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f80 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f81 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f82 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f83 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0f84 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f85 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f86 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f8b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f8f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f92 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f93 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f95 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f96 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f97 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f98 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f9c },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f9d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fa1 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fa2 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fa6 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fa7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fab },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fac },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fad },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb8 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x109f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x10c5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10cf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x10f6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10ff },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x1159 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1160 },
+{ 0| 0|CXX|CID|NFC|NKC|CTX, 0, 0x1175 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x11a2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11a7 },
+{ 0| 0|CXX|CID|NFC|NKC|CTX, 0, 0x11c2 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x11f9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1dff },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1e99 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x1e9a },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x1e9b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e9f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ef9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1eff },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f15 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f17 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f1d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f1f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f45 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f47 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f4f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f57 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f58 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f59 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5a },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f5b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f5d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f70 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f71 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f72 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f73 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f74 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f75 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f76 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f77 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f78 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f79 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f7a },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f7b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f7c },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f7d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f7f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fb4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fb5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fba },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fbb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fbc },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fbd },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x1fbe },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fc1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fc4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fc5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fc8 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fc9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fca },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fcb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fcc },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fcf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fd2 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fd3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fd5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fda },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fdb },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fdf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fe2 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fe3 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fea },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1feb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fec },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1ff1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ff4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1ff5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ff8 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1ff9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ffa },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1ffb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ffc },
+{ 0| 0| 0|CID| 0| 0| 0, 0, 0x203e },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2040 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x207e },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x207f },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2101 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2102 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2106 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2107 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2109 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2113 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2114 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2115 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2117 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2118 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x211d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2123 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2124 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2125 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x2126 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2127 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2128 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2129 },
+{ C99| 0| 0|CID| 0| 0| 0, 0, 0x212a },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x212b },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x212d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x212e },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2131 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2132 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2138 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x215f },
+{ C99|DIG| 0|CID|NFC| 0| 0, 0, 0x217f },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x2182 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3004 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x3006 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3007 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3020 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3029 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3040 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x3093 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x3094 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x309a },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x309c },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x309e },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x30a0 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x30f6 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fa },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fc },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fe },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x3104 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x312c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x4dff },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x9fa5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xabff },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0xd7a3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xf8ff },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa0d },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa0f },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa10 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa11 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa12 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa14 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa1e },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa1f },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa20 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa21 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa22 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa24 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa26 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa29 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa2d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb1e },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb1f },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfb29 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb36 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb37 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb3c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb3d },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb3e },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb3f },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb41 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfb42 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb44 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb45 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb4e },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfbb1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfbd2 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfd3d },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfd3f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfd4f },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfd8f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfd91 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfdc7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfdef },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfdfb },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xfe6f },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfe72 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe73 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfe74 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe75 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfefc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xff20 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xff3a },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xff40 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xff5a },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xff65 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffbe },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffc1 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffc7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffc9 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffcf },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffd1 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffd7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffd9 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffdc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffff },
diff --git a/gcc-4.7/libcpp/ucnid.tab b/gcc-4.7/libcpp/ucnid.tab
new file mode 100644
index 000000000..2d1f34727
--- /dev/null
+++ b/gcc-4.7/libcpp/ucnid.tab
@@ -0,0 +1,211 @@
+; Table of UCNs which are valid in identifiers.
+; Copyright (C) 2003, 2005, 2009 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.
+
+[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
+
+; Digits
+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
+