From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- libcpp/ChangeLog | 2324 +++++ libcpp/Makefile.in | 283 + libcpp/aclocal.m4 | 24 + libcpp/charset.c | 1797 ++++ libcpp/config.in | 351 + libcpp/configure | 8435 +++++++++++++++++ libcpp/configure.ac | 192 + libcpp/directives-only.c | 241 + libcpp/directives.c | 2560 ++++++ libcpp/errors.c | 238 + libcpp/expr.c | 1793 ++++ libcpp/files.c | 1827 ++++ libcpp/identifiers.c | 121 + libcpp/include/cpp-id-data.h | 81 + libcpp/include/cpplib.h | 988 ++ libcpp/include/line-map.h | 193 + libcpp/include/mkdeps.h | 79 + libcpp/include/symtab.h | 104 + libcpp/init.c | 722 ++ libcpp/internal.h | 742 ++ libcpp/lex.c | 2847 ++++++ libcpp/line-map.c | 319 + libcpp/macro.c | 2123 +++++ libcpp/makeucnid.c | 342 + libcpp/mkdeps.c | 430 + libcpp/pch.c | 893 ++ libcpp/po/ChangeLog | 475 + libcpp/po/be.gmo | Bin 0 -> 1003 bytes libcpp/po/be.po | 3000 ++++++ libcpp/po/ca.gmo | Bin 0 -> 18195 bytes libcpp/po/ca.po | 1019 +++ libcpp/po/cpplib.pot | 987 ++ libcpp/po/da.gmo | Bin 0 -> 14425 bytes libcpp/po/da.po | 16282 +++++++++++++++++++++++++++++++++ libcpp/po/de.gmo | Bin 0 -> 22293 bytes libcpp/po/de.po | 6607 ++++++++++++++ libcpp/po/el.gmo | Bin 0 -> 703 bytes libcpp/po/el.po | 5313 +++++++++++ libcpp/po/es.gmo | Bin 0 -> 22643 bytes libcpp/po/es.po | 976 ++ libcpp/po/fi.gmo | Bin 0 -> 22946 bytes libcpp/po/fi.po | 962 ++ libcpp/po/fr.gmo | Bin 0 -> 21443 bytes libcpp/po/fr.po | 20029 +++++++++++++++++++++++++++++++++++++++++ libcpp/po/id.gmo | Bin 0 -> 22050 bytes libcpp/po/id.po | 972 ++ libcpp/po/ja.gmo | Bin 0 -> 24801 bytes libcpp/po/ja.po | 954 ++ libcpp/po/nl.gmo | Bin 0 -> 22215 bytes libcpp/po/nl.po | 978 ++ libcpp/po/ru.gmo | Bin 0 -> 29576 bytes libcpp/po/ru.po | 953 ++ libcpp/po/sv.gmo | Bin 0 -> 21356 bytes libcpp/po/sv.po | 954 ++ libcpp/po/tr.gmo | Bin 0 -> 19463 bytes libcpp/po/tr.po | 1006 +++ libcpp/po/uk.gmo | Bin 0 -> 25211 bytes libcpp/po/uk.po | 1003 +++ libcpp/po/vi.gmo | Bin 0 -> 25668 bytes libcpp/po/vi.po | 954 ++ libcpp/po/zh_CN.gmo | Bin 0 -> 20555 bytes libcpp/po/zh_CN.po | 975 ++ libcpp/po/zh_TW.gmo | Bin 0 -> 17440 bytes libcpp/po/zh_TW.po | 1010 +++ libcpp/symtab.c | 363 + libcpp/system.h | 430 + libcpp/traditional.c | 1170 +++ libcpp/ucnid.h | 801 ++ libcpp/ucnid.tab | 211 + 69 files changed, 98433 insertions(+) create mode 100644 libcpp/ChangeLog create mode 100644 libcpp/Makefile.in create mode 100644 libcpp/aclocal.m4 create mode 100644 libcpp/charset.c create mode 100644 libcpp/config.in create mode 100755 libcpp/configure create mode 100644 libcpp/configure.ac create mode 100644 libcpp/directives-only.c create mode 100644 libcpp/directives.c create mode 100644 libcpp/errors.c create mode 100644 libcpp/expr.c create mode 100644 libcpp/files.c create mode 100644 libcpp/identifiers.c create mode 100644 libcpp/include/cpp-id-data.h create mode 100644 libcpp/include/cpplib.h create mode 100644 libcpp/include/line-map.h create mode 100644 libcpp/include/mkdeps.h create mode 100644 libcpp/include/symtab.h create mode 100644 libcpp/init.c create mode 100644 libcpp/internal.h create mode 100644 libcpp/lex.c create mode 100644 libcpp/line-map.c create mode 100644 libcpp/macro.c create mode 100644 libcpp/makeucnid.c create mode 100644 libcpp/mkdeps.c create mode 100644 libcpp/pch.c create mode 100644 libcpp/po/ChangeLog create mode 100644 libcpp/po/be.gmo create mode 100644 libcpp/po/be.po create mode 100644 libcpp/po/ca.gmo create mode 100644 libcpp/po/ca.po create mode 100644 libcpp/po/cpplib.pot create mode 100644 libcpp/po/da.gmo create mode 100644 libcpp/po/da.po create mode 100644 libcpp/po/de.gmo create mode 100644 libcpp/po/de.po create mode 100644 libcpp/po/el.gmo create mode 100644 libcpp/po/el.po create mode 100644 libcpp/po/es.gmo create mode 100644 libcpp/po/es.po create mode 100644 libcpp/po/fi.gmo create mode 100644 libcpp/po/fi.po create mode 100644 libcpp/po/fr.gmo create mode 100644 libcpp/po/fr.po create mode 100644 libcpp/po/id.gmo create mode 100644 libcpp/po/id.po create mode 100644 libcpp/po/ja.gmo create mode 100644 libcpp/po/ja.po create mode 100644 libcpp/po/nl.gmo create mode 100644 libcpp/po/nl.po create mode 100644 libcpp/po/ru.gmo create mode 100644 libcpp/po/ru.po create mode 100644 libcpp/po/sv.gmo create mode 100644 libcpp/po/sv.po create mode 100644 libcpp/po/tr.gmo create mode 100644 libcpp/po/tr.po create mode 100644 libcpp/po/uk.gmo create mode 100644 libcpp/po/uk.po create mode 100644 libcpp/po/vi.gmo create mode 100644 libcpp/po/vi.po create mode 100644 libcpp/po/zh_CN.gmo create mode 100644 libcpp/po/zh_CN.po create mode 100644 libcpp/po/zh_TW.gmo create mode 100644 libcpp/po/zh_TW.po create mode 100644 libcpp/symtab.c create mode 100644 libcpp/system.h create mode 100644 libcpp/traditional.c create mode 100644 libcpp/ucnid.h create mode 100644 libcpp/ucnid.tab (limited to 'libcpp') diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog new file mode 100644 index 000000000..39c29c7d0 --- /dev/null +++ b/libcpp/ChangeLog @@ -0,0 +1,2324 @@ +2013-04-12 Release Manager + + * GCC 4.6.4 released. + +2013-04-03 Sebastian Huber + + PR target/56771 + * configure.ac: Require 64-bit int for arm*-*-rtems[.0-9]*. + * configure: Regenerate. + +2012-03-01 Release Manager + + * GCC 4.6.3 released. + +2011-10-26 Release Manager + + * GCC 4.6.2 released. + +2011-06-27 Release Manager + + * GCC 4.6.1 released. + +2011-05-22 Uros Bizjak + + 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-28 Michael Meissner + + Backport from mainline + 2011-03-18 Michael Meissner + + PR preprocessor/48192 + * directives.c (do_ifdef): Do not consider conditional macros as + being defined. + (do_ifndef): Ditto. + * expr.c (parse_defined): Ditto. + +2011-04-24 Jakub Jelinek + + 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-03-25 Release Manager + + * GCC 4.6.0 released. + +2011-03-18 Richard Henderson + + PR bootstrap/45381 + * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5. + +2011-11-04 Eric Botcazou + Jakub Jelinek + + 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 + + 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 + + PR preprocessor/17349 + * lex.c (save_comment): Handle in argument passing c++ + comments special. + +2010-11-02 Ian Lance Taylor + + * configure.ac: Use AC_SYS_LARGEFILE. + * configure: Rebuild. + * config.in: Rebuild. + +2010-10-19 Basile Starynkevitch + + * line-map.h (source_location): Remove obsolete comment + mentioning location_s. + +2010-09-29 Kai Tietz + + 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 + + * 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 + + * init.c: Fix type name in comment. + +2010-08-31 Jakub Jelinek + + 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 + + * system.h [HAVE_INTTYPES_H]: Include inttypes.h. + +2010-08-24 Richard Henderson + + 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 + + * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer + etc. on Solaris 2/x86. + +2010-08-21 Richard Henderson + Andi Kleen + David S. Miller + + * 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 + + * 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 + + * 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 + + 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 + + * include/symtab.h (ht_identifier_ptr): New. + +2010-06-03 Joern Rennecke + Ralf Wildenhues + + PR bootstrap/42798 + * configure.ac: Check for declaration of 'basename(char *)'. + * configure: Regenerate. + * config.in: Regenerate. + +2010-04-25 Joseph Myers + + * 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 + + PR cpp/43195 + * files.c (report_missing_guard): Test for #pragma once. + +2010-04-07 Simon Baldwin + + * 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 + + PR preprocessor/43642 + * lex.c (lex_raw_string): Change type of TYPE variable to + unsigned char. + +2010-04-02 Ralf Wildenhues + + * aclocal.m4: Regenerate. + +2010-03-29 Jason Merrill + + 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 + + * init.c (read_original_filename): Don't call read_original_directory + if _cpp_handle_directive returns 0. + +2010-01-01 Joseph Myers + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * charset.c (_cpp_valid_ucn): Update C++0x restrictions. + +2009-10-09 Neil Vachharajani + + * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and + sccs. + +2009-09-23 Loren J. Rittle + + * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h. + * configure: Rebuilt. + +2009-09-22 Richard Guenther + + PR pch/38987 + * files.c (pch_open_file): Disallow non-toplevel PCH inclusion. + +2009-09-18 Chris Demetriou + + 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 + + * configure.ac: Set for i?86-w64-mingw* + need_64bit_hwint to yes. + * configure: Regenerated. + +2009-09-10 Jason Merrill + + * directives.c (cpp_define): constify. + +2009-09-02 Ian Lance Taylor + + * macro.c (stringify_arg): Escape CPP_WCHAR tokens. + +2009-08-24 Ralf Wildenhues + + * configure.ac (AC_PREREQ): Bump to 2.64. + +2009-08-22 Ralf Wildenhues + + * aclocal.m4: Regenerate. + * config.in: Regenerate. + * configure: Regenerate. + +2009-08-17 Tom Tromey + + PR preprocessor/41067: + * charset.c (convert_escape): Add missing ":" to error text. + +2009-07-27 Douglas B Rupp + + * include/cpplib.h (INO_T_CPP): New macro. + (struct cpp_dir): Use it. + +2009-07-20 Jerry Quinn + + PR regression/40800 + * configure.ac: Use = instead of == for testing + ENABLE_BUILD_WITH_CXX. + * configure: Rebuild. + +2009-07-17 Jerry Quinn + + * 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 + + * 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 + + * expr.c (num_div_op): Take explicit location. + +2009-06-17 Ian Lance Taylor + + * include/cpplib.h (progname): Don't declare. + +2009-06-12 Ian Lance Taylor + + * 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 + + * include/line-map.h (LAST_SOURCE_COLUMN): New. + +2009-06-01 Ian Lance Taylor + + * 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 + + * include/cpplib.h (enum cpp_builtin_type): Rename from enum + builtin_type. Change all uses. + +2009-05-14 Manuel Lopez-Ibanez + + 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 + + * 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 + + * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte + UTF-8 sequences. + +2009-04-25 Joseph Myers + + 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 + + * 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 + + 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 + + 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 + + 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 + + * directives.c (parse_include): Pass true to check_eol. + +2009-04-18 Joseph Myers + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + PR preprocessor/39512: + * line-map.c (linemap_init): Initialize 'reallocator' field. + +2009-03-30 Jakub Jelinek + + 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 + + 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 + + * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not + mkinstalldirs. + +2009-03-18 Jakub Jelinek + + * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts. + +2009-02-21 Joseph Myers + + * 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 + + Revert last change. + +2009-02-13 Richard Guenther + + * configure.ac: Enable LFS. + * configure: Re-generate. + * config.in: Likewise. + +2009-01-05 Ben Elliston + + * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir. + (.po.pox): Likewise. + (po/$(PACKAGE).pot): Likewise. + +2008-12-10 Alexandre Oliva + + 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 + + * lex.c (cpp_token_len): Use 6 as default length. + +2008-10-31 Manuel López-Ibáñez + + * 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 + Arnaud Charlet + + * 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 + + * 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 + + 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 + + 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 + + * 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 + + * 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 + + PR preprocessor/33305 + * macro.c (replace_args): Print a warning for empty macro + arguments in C89 and C++. + +2008-06-17 Ralf Wildenhues + + * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies. + * configure: Regenerate. + +2008-06-16 Ralf Wildenhues + + * Makefile.in (datarootdir): New variable. + +2008-06-12 H.J. Lu + + PR preprocessor/36479 + * charset.c (cpp_interpret_string_notranslate): Also set + narrow_cset_desc.width. + +2008-06-07 Joseph Myers + + * configure.ac (parisc*64*-*-*): Remove. + * configure: Regenerate. + +2008-05-30 Tom Tromey + + 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 + + * include/cpplib.h (struct cpp_dir): Add new field, canonical_name. + +2008-05-21 Tom Tromey + + 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 + + * 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 + + PR preprocessor/22168: + * include/cpplib.h (struct cpp_options) : 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 + + PR preprocessor/35313, PR preprocessor/36088: + * expr.c (optab) : Set precedence to 4. + (reduce) : Special case CPP_COMMA and CPP_COLON. + +2008-05-04 David S. Miller + + * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes. + * configure: Regenerate. + +2008-04-22 Daniel Franke + + * include/cpplib.h (cpp_define_formatted): New. + * directives.c (cpp_define_formatted): New. + +2008-04-21 Tom Tromey + + 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) : 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 + + * 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) : New field. + (struct cpp_reader) : Idem. + (struct cpp_reader) : 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 + + PR bootstrap/35457 + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2008-04-17 Tom Tromey + + PR libcpp/34866: + * errors.c (cpp_error): Don't reference a token before the start + of the current run. + +2008-04-16 Tom Tromey + + * Makefile.in (TAGS_SOURCES): New variable. + (TAGS): New target. + +2008-04-11 Kaz Kojima + + * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-* + and shbe-*-*. + * configure: Rebuilt. + +2008-04-02 Joseph Myers + + * 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 + + 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 + + * Makefile.in (POSTCOMPILE): New variable. + (.c.o): Use it. + +2008-03-13 Tom Tromey + + PR libcpp/35322: + * directives.c (destringize_and_run): Set pfile->directive. + +2008-03-06 Markus Milleder + + PR preprocessor/35458 + * mkdeps.c (munge): Quote '#' with a '\'. + +2008-02-27 Ralf Wildenhues + + 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 + + * Makefile.in ($(srcdir)/config.in): Depend on configure.ac. + +2008-02-19 Tom Tromey + + * 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 + + 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 + + PR c++/34859 + * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and + __STDC_CONSTANT_MACROS. + +2008-01-07 Fred Fish + + 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 + + PR preprocessor/34602 + * directives.c (do_line): Don't try to spell EOF token. + (do_linemarker): Add comment. + +2007-12-11 DJ Delorie + + * charset.c (convert_using_iconv): Close out any shift states, + returning to the initial state. + +2007-12-06 Tom Tromey + + PR c/29172 + * internal.h (struct cpp_reader) : Changed + type. + : 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 + + PR preprocessor/34288 + * configure.ac, config.in: Rebuilt. + * configure.ac: Check for ssize_t. + +2007-11-30 Tom Tromey + + PR preprocessor/32868 + * macro.c (_cpp_create_definition): Special case + __STDC_FORMAT_MACROS. + +2007-11-16 Michael Matz + + * files.c (search_path_head): Fix check for absolute paths. + +2007-11-11 Tom Tromey + + PR c++/17557 + * include/cpplib.h (cpp_included_before): Declare. + * files.c (struct file_hash_entry) : New field. + (_cpp_find_file): Initialize new field. + (make_cpp_dir): Likewise. + (cpp_included_before): New function. + +2007-11-01 Tom Tromey + + 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 + + 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 + + * internal.h (struct cpp_reader) : New + field. + (struct cpp_reader) : 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) : Likewise. + (struct line_maps) : 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 + + * 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 + + PR preprocessor/32974 + * directives.c (parse_include): Don't check for EOL when + processing #pragma dependency. + +2007-07-30 Ollie Wild + + * 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 + + * 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 + + * 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 + + * files.c (open_file): Prevent the call + for stat from overwriting errno. + +2007-06-09 Vladimir Prus + + * files.c (open_file): Account for the + fact that on windows, opening a directory gives + EACCES. + +2007-06-05 Joerg Wunsch + + 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 + + PR preprocessor/14331 + * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF. + +2007-05-24 Ollie Wild + + * 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 + + 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 + + * 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 + + * 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 + + * expr.c (num_div_op): Don't overflow if the result is + zero. + +2007-05-02 Tom Tromey + + PR preprocessor/28709 + * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs. + +2007-03-30 Michael Meissner + + * directives.c (lex_macro_node_from_str): Fix alloca call to be + type correct. + +2007-03-30 Richard Henderson + + * 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 + + * Makefile.in: Add dummy install-pdf target. + +2007-01-30 Tom Tromey + + PR preprocessor/30468 + * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped + './'. + +2007-01-30 Tom Tromey + + 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 + + * configure: Rebuilt. + +2007-01-12 Tom Tromey + + 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 + + * configure: Regenerate. + +2007-01-11 Paolo Bonzini + + * configure: Regenerate. + +2007-01-04 Tom Tromey + + 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 + + * 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 + + 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 + + PR preprocessor/30001 + * charset.c (_cpp_convert_input): Check that to.len is greater + than zero. + +2006-11-20 Trevor Smigiel + + * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU. + * configure: Rebuilt. + +2006-11-01 Douglas Gregor + + * 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 + + * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux* + depending on --enable-targets=all. + * configure: Regenerate. + +2006-10-12 Jakub Jelinek + + 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 + + * Makefile.in: Added empty "pdf" target. + +2006-09-22 Geoffrey Keating + + * 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 + + PR c/28768 + PR preprocessor/14634 + * lex.c (lex_string): Pedwarn for unterminated literals. + +2006-09-08 Eric Christopher + + * configure.ac: Add 64-bit HWI support for i?86-darwin. + +2006-08-14 Steve Ellcey + + PR c++/28288 + PR c++/14556 + * include/cpplib.h: Remove ?, ?= 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 + + 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 + + * Makefile.in (CATALOGS): Add po/ prefix. + * configure: Regenerated. + +2006-05-23 Carlos O'Donell + + * Makefile.in: Add install-html target. Add install-html to .PHONY + +2006-02-17 Grigory Zagorodnev + + * 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 + + 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) : Only check + cpp_in_system_header condition. + +2006-01-05 Paolo Bonzini + + * Makefile.in: Use -MMD instead of -MD. + +2006-01-04 Dmitry Kurochkin + Richard Henderson + + 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 + + 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 + + PR c++/23333 + * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure. + +2005-12-07 Jon Grimm + Ben Elliston + + * 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 + Ian Lance Taylor + + * 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 + Uros Bizjak + + 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 + + PR preprocessor/24202 + * files.c (_cpp_pop_file_buffer): Set buffer_valid to false. + +2005-11-04 Joseph S. Myers + + * 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 + + 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 + + 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 + + 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 + + * configure.ac: Require 64-bit int for arm*-*-*eabi*. + * configure: Regenerate. + +2005-10-04 Ian Lance Taylor + + 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 + + * 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 + + 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 + + * configure.ac (ACX_PROG_CC_WARNING_OPTS): add + -Wmissing-format-attribute. + + * configure: Regenerate. + +2005-06-29 Kelley Cook + + * all files: Update FSF address in copyright headers. + * makeucnid.c (write_copyright): Update outputted FSF address. + +2005-06-13 Zack Weinberg + + * 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 + + * 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 + + * 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 + + PR bootstrap/21230 + * configure: Regenerate. + +2005-04-27 Andris Pavenis + + * files.c: Include io.h for DJGPP to get prototype of setmode. + +2005-04-19 Per Bothner + + 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 + + * system.h (fopen, fdopen, freopen): Define these to the unlocked + libiberty functions. + +2005-04-11 Kaveh R. Ghazi + + * 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 + + 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 + + * lex.c (warn_about_normalization): Cast field width to int to + avoid warning. + +2005-03-19 Joseph S. Myers + + * configure.ac: Consistently use solaris2.1[0-9]* instead of + solaris2.1[0-9]. + * configure: Regenerate. + +2005-03-15 Geoffrey Keating + + * charset.c (_cpp_valid_ucn): In identifiers, reject a partial + UCN rather than printing an error. + +2005-03-14 Geoffrey Keating + + * lex.c (forms_identifier_p): Disable UCNs in C89 mode. + +2005-03-14 Geoffrey Keating + + * 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 + + * 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 + + 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 + + * directives.c (do_line): Save sysp early before line table is + realloc'ed. + +2005-02-20 Zack Weinberg + + 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 + + * charset.c (_cpp_convert_input): Check '\r' before inserting + '\n' at the end. + +2005-02-15 Eric Christopher + + 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 + + * directives.c, files.c, init.c, internal.h, macro.c, pch.c, + traditional.c: Update copyright. + +2005-02-14 Paolo Bonzini + + 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 + + * 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 + + * configure: Regenerate. + +2005-01-11 Tobias Schlueter + + * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader. + + * include/cpplib.h: Also update copyright years. + +2005-01-03 Geoffrey Keating + + * files.c (_cpp_find_file): Add files found by search_path_exhausted + to the list of all files. + +2005-01-01 Gabriel Dos Reis + + * 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 + + 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 + + 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 + Zack Weinberg + + * 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 + + * aclocal.m4: Regenerate. + +2004-11-24 Roger Sayle + + PR preprocessor/15824 + * configure.ac: Correct HAVE_UCHAR test to #include + directly, instead of the non-existant "system.h" and "ansidecl.h". + * configure: Regenerate. + +2004-11-23 Daniel Jacobowitz + Joseph Myers + + * 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 + Mark Mitchell + + * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set + need_64bit_hwint=yes. + * configure: Regenerate. + +2004-11-09 Joseph S. Myers + + * 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 + Gerald Pfeifer + + * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H + as well. + +2004-10-27 Zack Weinberg + + 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 + + * errors.c (_cpp_begin_message): Print "error: " for errors. + +2004-10-10 Andreas Jaeger + + * 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 + + * 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 + + * 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 + + * 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 + + * Makefile.in (aclocal.m4): Update dependencies. + * configure.ac (AC_CONFIG_MACRO_DIR): New. + * aclocal.m4, configure: Regenerate. + +2004-09-17 Zack Weinberg + + * 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 + + * 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 + Zack Weinberg + + * 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 + + PR preprocessor/14699 + * symtab.c (ht_dump_statistics): Change type of sum_of_squares + from size_t to double. + +2004-08-28 Andreas Schwab + Andreas Jaeger + + * configure.ac: Set PACKAGE correctly. + * configure: Regenerated. + +2004-08-25 Paolo Bonzini + + * Makefile.in: Add back top_builddir. + +2004-08-25 Paolo Bonzini + + * 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 + + * configure.ac (arm*-*-eabi*): New target. + (arm*-*-symbianelf*): Likewise. + * configure: Regenerated. + +2004-07-24 Bernardo Innocenti + + * 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 + + * init.c (init_library): Use PACKAGE for the text domain. + +2004-07-16 Andris Pavenis + + 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 + + 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 + + * include/line-map.h (fileline): Remove old typedef. + * internal.h (struct cpp_reader): Use source_location typedef instead. + +2004-06-26 Zack Weinberg + + 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 + + * 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 + + * Makefile.in: Regenerate with automake 1.8.5. + * aclocal.m4: Likewise. + * configure: Regenerate. + +2004-06-11 Zack Weinberg + + * 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 + + * 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 + + * Makefile.am (all-local): New. + * Makefile.in: Regenerate. + +2004-06-06 Roger Sayle + + * Makefile.am (LIBICONV): Declare. + (makedepend_LDADD): Use LIBICONV. + * Makefile.in: Regenerate. + +2004-06-05 Andrew Pinski + + * Makefile.am (LIBINTL): Declare + (makedepend_LDADD): Use LIBINTL. + * Makefile.in: Regenerate. + +2004-06-05 Zack Weinberg + + * 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 + + * 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 + + PR bootstrap/15651 + * configure.ac: Fix m4 quoting when picking + the size of HOST_WIDE_INT. + * configure: Regenerate. + +2004-05-25 Paolo Bonzini + + * Makefile.am: the correct directory for + gettext include files is given by @INCINTL@. + * Makefile.in: Regenerate. + +2004-05-24 Paolo Bonzini + + * system.h [!ENABLE_NLS]: dgettext takes two + parameters. + +2004-05-23 Paolo Bonzini + + 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/libcpp/Makefile.in b/libcpp/Makefile.in new file mode 100644 index 000000000..33c44b542 --- /dev/null +++ b/libcpp/Makefile.in @@ -0,0 +1,283 @@ +# @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 +#. + +@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@ + +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) $(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 + 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/libcpp/aclocal.m4 b/libcpp/aclocal.m4 new file mode 100644 index 000000000..c3a9f037a --- /dev/null +++ b/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/libcpp/charset.c b/libcpp/charset.c new file mode 100644 index 000000000..cba19a671 --- /dev/null +++ b/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 +. */ + +#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 + 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/libcpp/config.in b/libcpp/config.in new file mode 100644 index 000000000..05542fe37 --- /dev/null +++ b/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 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 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 header file. */ +#undef HAVE_INTTYPES_H + +/* Define if you have and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the 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 header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_FILE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define if 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 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 and . */ +#undef STRING_WITH_STRINGS + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define to 1 if your 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 does not define. */ +#undef off_t + +/* Define to `int' if does not define. */ +#undef ptrdiff_t + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to `int' if 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/libcpp/configure b/libcpp/configure new file mode 100755 index 000000000..aa3663022 --- /dev/null +++ b/libcpp/configure @@ -0,0 +1,8435 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.64 for cpplib . +# +# Report bugs to . +# +# 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 &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 +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#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 +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 if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + 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 . +_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 +#include +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 &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 declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#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 +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 +#include +#include +#include +/* 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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 +#include +#include +#include + +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 + +_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 + +_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 +#include +#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 + /* 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 + /* 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 + /* 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 + /* 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 + /* 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 option in -W -Wall -Wwrite-strings \ + -Wmissing-format-attribute; do + 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:+ }$option" +fi + done +CFLAGS="$save_CFLAGS" + +c_warn= +save_CFLAGS="$CFLAGS" +for option in -Wstrict-prototypes -Wmissing-prototypes \ + -Wold-style-definition -Wc++-compat; do + 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:+ }$option" +fi + done +CFLAGS="$save_CFLAGS" + +WARN_PEDANTIC= +if test "$GCC" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wno-long-long" >&5 +$as_echo_n "checking whether $CC supports -pedantic -Wno-long-long... " >&6; } +if test "${acx_cv_prog_cc_pedantic__Wno_long_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + save_CFLAGS="$CFLAGS" +CFLAGS="-pedantic -Wno-long-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__Wno_long_long=yes +else + acx_cv_prog_cc_pedantic__Wno_long_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__Wno_long_long" >&5 +$as_echo "$acx_cv_prog_cc_pedantic__Wno_long_long" >&6; } +if test $acx_cv_prog_cc_pedantic__Wno_long_long = yes; then : + WARN_PEDANTIC="$WARN_PEDANTIC${WARN_PEDANTIC:+ }-pedantic -Wno-long-long" +fi + +fi + + +# 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 +#include +#include + +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 +#include +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 + #include + +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 + #include + +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 defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +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 + +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 +#include + +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 +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 +# define alloca _alloca +# else +# ifdef HAVE_ALLOCA_H +# include +# 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 +#include +#include +#include + +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 + +_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 + +_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 +#include +#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 +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 + +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 + + + 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 &5; then + acl_cv_prog_gnu_ld=yes +else + acl_cv_prog_gnu_ld=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } +if test "${acl_cv_rpath+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then : + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } +if test "${am_cv_func_iconv+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +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 +#include +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 +#include +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 + + +# 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*-*-rtems[.0-9]* | \ + arm*-*-symbianelf* | \ + x86_64-*-* | \ + ia64-*-* | \ + hppa*64*-*-* | \ + i[34567]86-*-darwin* | \ + i[34567]86-*-solaris2.1[0-9]* | \ + i[34567]86-w64-mingw* | \ + mips*-*-* | \ + mmix-*-* | \ + powerpc*-*-* | \ + rs6000*-*-* | \ + s390*-*-* | \ + sparc*-*-* | \ + spu-*-* | \ + sh[123456789lbe]*-*-* | sh-*-*) + need_64bit_hwint=yes ;; + i[34567]86-*-linux*) + if test "x$enable_targets" = xall; then + need_64bit_hwint=yes + else + need_64bit_hwint=no + fi + ;; + *) + 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 ." + +_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` +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 +' >$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 +' >$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/libcpp/configure.ac b/libcpp/configure.ac new file mode 100644 index 000000000..7fe89f8d1 --- /dev/null +++ b/libcpp/configure.ac @@ -0,0 +1,192 @@ +# -*- 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 -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]) + +# 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 +], +[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 defines \`uchar'.]) +fi + +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*-*-rtems[.0-9]* | \ + arm*-*-symbianelf* | \ + x86_64-*-* | \ + ia64-*-* | \ + hppa*64*-*-* | \ + i[34567]86-*-darwin* | \ + i[34567]86-*-solaris2.1[0-9]* | \ + i[34567]86-w64-mingw* | \ + mips*-*-* | \ + mmix-*-* | \ + powerpc*-*-* | \ + rs6000*-*-* | \ + s390*-*-* | \ + sparc*-*-* | \ + spu-*-* | \ + sh[123456789lbe]*-*-* | sh-*-*) + need_64bit_hwint=yes ;; + i[34567]86-*-linux*) + if test "x$enable_targets" = xall; then + need_64bit_hwint=yes + else + need_64bit_hwint=no + fi + ;; + *) + 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/libcpp/directives-only.c b/libcpp/directives-only.c new file mode 100644 index 000000000..e19f80696 --- /dev/null +++ b/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 . + +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 +. */ + +#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. */ + LINEMAP_POSITION_FOR_COLUMN (loc, 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/libcpp/directives.c b/libcpp/directives.c new file mode 100644 index 000000000..f244ae5b5 --- /dev/null +++ b/libcpp/directives.c @@ -0,0 +1,2560 @@ +/* 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 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 +. */ + +#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; + linenum_type 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 ", + 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 = &line_table->maps[line_table->used - 1]; + + /* skip_rest_of_line() may cause line table to be realloc()ed so note down + sysp right now. */ + + unsigned char map_sysp = map->sysp; + const cpp_token *token; + const char *new_file = map->to_file; + 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 = &line_table->maps[line_table->used - 1]; + const cpp_token *token; + const char *new_file = map->to_file; + linenum_type new_lineno; + unsigned int new_sysp = map->sysp; + 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, map->to_line, 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--; + 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->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/libcpp/errors.c b/libcpp/errors.c new file mode 100644 index 000000000..c586749ab --- /dev/null +++ b/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 +. + + 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/libcpp/expr.c b/libcpp/expr.c new file mode 100644 index 000000000..3c36127b5 --- /dev/null +++ b/libcpp/expr.c @@ -0,0 +1,1793 @@ +/* Parse C expressions for cpplib. + Copyright (C) 1987, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2001, + 2002, 2004, 2008, 2009, 2010 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 +. */ + +#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)); +} + +/* 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)); +} + +/* Categorize numeric constants according to their field (integer, + floating point, or invalid), radix (decimal, octal, hexadecimal), + and type suffixes. */ +unsigned int +cpp_classify_number (cpp_reader *pfile, const cpp_token *token) +{ + 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 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) + { + 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) + { + 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) + 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); + 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: and . 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/libcpp/files.c b/libcpp/files.c new file mode 100644 index 000000000..456c0b0f1 --- /dev/null +++ b/libcpp/files.c @@ -0,0 +1,1827 @@ +/* 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 + 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 +. */ + +#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 + +/* 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 + /* 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 , 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 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); + 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 + , 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) +{ + if (file->buffer_start) + 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 strcmp (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 strcmp ((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 = &line_table->maps[line_table->used-1]; + + /* 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, map->to_file, + 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 . + 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; + } +} + +/* 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 && 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 && 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 (!strcmp (dir->name_map[index], fname)) + return xstrdup (dir->name_map[index + 1]); + + p = strchr (fname, '/'); + 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/libcpp/identifiers.c b/libcpp/identifiers.c new file mode 100644 index 000000000..8244f0c54 --- /dev/null +++ b/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 +. + + 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/libcpp/include/cpp-id-data.h b/libcpp/include/cpp-id-data.h new file mode 100644 index 000000000..a57edad52 --- /dev/null +++ b/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 +. */ + +#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/libcpp/include/cpplib.h b/libcpp/include/cpplib.h new file mode 100644 index 000000000..8fa28819b --- /dev/null +++ b/libcpp/include/cpplib.h @@ -0,0 +1,988 @@ +/* Definitions for CPP library. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005, 2007, 2008, 2009, 2010 + 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 +. + + 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 +#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) /* in #include */ \ + \ + 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_GNUC1X, + CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC1X, + CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX0X, CLK_CXX0X, 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 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 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; + + /* 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 + 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 *, unsigned int, const unsigned char *, + const char *, int, const cpp_token **); + void (*define) (cpp_reader *, unsigned int, cpp_hashnode *); + void (*undef) (cpp_reader *, unsigned int, cpp_hashnode *); + void (*ident) (cpp_reader *, unsigned int, const cpp_string *); + void (*def_pragma) (cpp_reader *, unsigned int); + 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 *, unsigned int, cpp_hashnode *); + void (*used_undef) (cpp_reader *, unsigned int, 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. */ + +/* 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 *); + +/* Evaluate a token classified as category CPP_N_INTEGER. */ +extern cpp_num cpp_interpret_integer (cpp_reader *, const cpp_token *, + unsigned int type); + +/* 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 *); + +#endif /* ! LIBCPP_CPPLIB_H */ diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h new file mode 100644 index 000000000..3234423ff --- /dev/null +++ b/libcpp/include/line-map.h @@ -0,0 +1,193 @@ +/* Map logical line numbers to (source file, line number) pairs. + Copyright (C) 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 +. + + 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 adding a line change with add_line_map (). 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. */ +enum lc_reason {LC_ENTER = 0, LC_LEAVE, LC_RENAME, LC_RENAME_VERBATIM}; + +/* 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); + +/* 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<start_location) >> (MAP)->column_bits) + (MAP)->to_line) + +#define SOURCE_COLUMN(MAP, LOC) \ + (((LOC) - (MAP)->start_location) & ((1 << (MAP)->column_bits) - 1)) + +/* Returns the last source line within a 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)) +#define LAST_SOURCE_COLUMN(MAP) \ + SOURCE_COLUMN (MAP, LAST_SOURCE_LINE_LOCATION (MAP)) +#define LAST_SOURCE_LINE_LOCATION(MAP) \ + ((((MAP)[1].start_location - 1 - (MAP)->start_location) \ + & ~((1 << (MAP)->column_bits) - 1)) \ + + (MAP)->start_location) + +/* Returns the map a given map was included from. */ +#define INCLUDED_FROM(SET, MAP) (&(SET)->maps[(MAP)->included_from]) + +/* Nonzero if the map is at the bottom of the include stack. */ +#define MAIN_FILE_P(MAP) ((MAP)->included_from < 0) + +/* Set LOC to a source position that is the same line as the most recent + linemap_line_start, but with the specified TO_COLUMN column number. */ + +#define LINEMAP_POSITION_FOR_COLUMN(LOC, SET, TO_COLUMN) do { \ + unsigned int to_column = (TO_COLUMN); \ + struct line_maps *set = (SET); \ + if (__builtin_expect (to_column >= set->max_column_hint, 0)) \ + (LOC) = linemap_position_for_column (set, to_column); \ + else { \ + source_location r = set->highest_line; \ + r = r + to_column; \ + if (r >= set->highest_location) \ + set->highest_location = r; \ + (LOC) = r; \ + }} while (0) + + +extern source_location +linemap_position_for_column (struct line_maps *set, unsigned int to_column); + +#endif /* !LIBCPP_LINE_MAP_H */ diff --git a/libcpp/include/mkdeps.h b/libcpp/include/mkdeps.h new file mode 100644 index 000000000..50bcee407 --- /dev/null +++ b/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 +. + + 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/libcpp/include/symtab.h b/libcpp/include/symtab.h new file mode 100644 index 000000000..4107a6f8a --- /dev/null +++ b/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 +. */ + +#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/libcpp/init.c b/libcpp/init.c new file mode 100644 index 000000000..cfc16e8f8 --- /dev/null +++ b/libcpp/init.c @@ -0,0 +1,722 @@ +/* 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 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 +. */ + +#include "config.h" +#include "system.h" +#include "cpplib.h" +#include "internal.h" +#include "mkdeps.h" +#include "localedir.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; +}; + +static const struct lang_flags lang_defaults[] = +{ /* c99 c++ xnum xid std // digr ulit */ + /* GNUC89 */ { 0, 0, 1, 0, 0, 1, 1, 0 }, + /* GNUC99 */ { 1, 0, 1, 0, 0, 1, 1, 1 }, + /* GNUC1X */ { 1, 0, 1, 0, 0, 1, 1, 1 }, + /* STDC89 */ { 0, 0, 0, 0, 1, 0, 0, 0 }, + /* STDC94 */ { 0, 0, 0, 0, 1, 0, 1, 0 }, + /* STDC99 */ { 1, 0, 1, 0, 1, 1, 1, 0 }, + /* STDC1X */ { 1, 0, 1, 0, 1, 1, 1, 0 }, + /* GNUCXX */ { 0, 1, 1, 0, 0, 1, 1, 0 }, + /* CXX98 */ { 0, 1, 1, 0, 1, 1, 1, 0 }, + /* GNUCXX0X */ { 1, 1, 1, 0, 0, 1, 1, 1 }, + /* CXX0X */ { 1, 1, 1, 0, 1, 1, 1, 1 }, + /* ASM */ { 0, 0, 1, 0, 0, 1, 0, 0 } + /* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX0X, and + CXX0X 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; +} + +/* Initialize library global state. */ +static void +init_library (void) +{ + static int initialized = 0; + + if (! initialized) + { + initialized = 1; + + /* 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); + + 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.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; + + /* 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); + + if (pfile->out.base) + 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 + ). 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)) + _cpp_define_builtin (pfile, "__cplusplus 1"); + 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_STDC1X + || CPP_OPTION (pfile, lang) == CLK_GNUC1X) + _cpp_define_builtin (pfile, "__STDC_VERSION__ 201000L"); + else if (CPP_OPTION (pfile, c99)) + _cpp_define_builtin (pfile, "__STDC_VERSION__ 199901L"); + + 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 = pfile->line_table->maps[pfile->line_table->used-1].to_file; + } + 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 # "/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 + && token->val.str.text[token->val.str.len-2] == '/' + && 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/libcpp/internal.h b/libcpp/internal.h new file mode 100644 index 000000000..d2872c4a1 --- /dev/null +++ b/libcpp/internal.h @@ -0,0 +1,742 @@ +/* Part of CPP library. + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 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 +. */ + +/* 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 +#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 = &line_table->maps[line_table->used-1]; \ + 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) + +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; + + /* For a macro context, the macro node, otherwise NULL. */ + cpp_hashnode *macro; + + /* True if utoken element is token, else ptoken. */ + bool direct_p; +}; + +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; +}; + +/* 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 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 *); + +/* 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 unsigned char *uxstrdup (const unsigned char *); +static inline 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 unsigned char * +uxstrdup (const unsigned char *s1) +{ + return (unsigned char *) xstrdup ((const char *)s1); +} + +static inline unsigned char * +ustrchr (const unsigned char *s1, int c) +{ + return (unsigned char *) strchr ((const char *)s1, c); +} + +static inline int +ufputs (const unsigned char *s, FILE *f) +{ + return fputs ((const char *)s, f); +} + +#ifdef __cplusplus +} +#endif + +#endif /* ! LIBCPP_INTERNAL_H */ diff --git a/libcpp/lex.c b/libcpp/lex.c new file mode 100644 index 000000000..6c3be7115 --- /dev/null +++ b/libcpp/lex.c @@ -0,0 +1,2847 @@ +/* CPP Library - lexical analysis. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 + 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 +. */ + +#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 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; + +static void __attribute__((constructor)) +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 + +/* 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) +{ + source_location saw_NUL = 0; + 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]; + } + else if (c == '\0' && !saw_NUL) + LINEMAP_POSITION_FOR_COLUMN (saw_NUL, pfile->line_table, + CPP_BUF_COLUMN (pfile->buffer, cur)); + } + break_outer_loop: + + if (saw_NUL && !pfile->state.skipping) + cpp_error_with_line (pfile, CPP_DL_WARNING, saw_NUL, 0, + "null character(s) preserved in literal"); + + 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); + + 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; +} + +/* 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 = (context->direct_p + ? LAST (context).token - FIRST (context).token + : LAST (context).ptoken - FIRST (context).ptoken); + + if (index < (int) sz) + return (context->direct_p + ? FIRST (context).token + index + : *(FIRST (context).ptoken + 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++; + + LINEMAP_POSITION_FOR_COLUMN (result->src_loc, 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, uliterals)) + { + if ((*buffer->cur == '\'' && c != 'R') + || *buffer->cur == '"' + || (*buffer->cur == 'R' + && c != 'R' + && buffer->cur[1] == '"' + && CPP_OPTION (pfile, uliterals)) + || (*buffer->cur == '8' + && c == 'u' + && (buffer->cur[1] == '"' + || (buffer->cur[1] == 'R' && buffer->cur[2] == '"')))) + { + 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; + } +} diff --git a/libcpp/line-map.c b/libcpp/line-map.c new file mode 100644 index 000000000..a82c4286f --- /dev/null +++ b/libcpp/line-map.c @@ -0,0 +1,319 @@ +/* Map logical line numbers to (source file, line number) pairs. + Copyright (C) 2001, 2003, 2004, 2007, 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 +. + + 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" + +static void trace_include (const struct line_maps *, const struct line_map *); + +/* Initialize a line map set. */ + +void +linemap_init (struct line_maps *set) +{ + set->maps = NULL; + set->allocated = 0; + set->used = 0; + set->last_listed = -1; + set->trace_includes = false; + set->depth = 0; + set->cache = 0; + set->highest_location = RESERVED_LOCATION_COUNT - 1; + set->highest_line = RESERVED_LOCATION_COUNT - 1; + set->max_column_hint = 0; + set->reallocator = 0; +} + +/* 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 = &set->maps[set->used - 1]; ! MAIN_FILE_P (map); + map = INCLUDED_FROM (set, map)) + fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n", + map->to_file); +} + +/* Free a line map set. */ + +void +linemap_free (struct line_maps *set) +{ + if (set->maps) + { + linemap_check_files_exited (set); + + free (set->maps); + } +} + +/* 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; + + if (set->used && start_location < set->maps[set->used - 1].start_location) + abort (); + + if (set->used == set->allocated) + { + line_map_realloc reallocator + = set->reallocator ? set->reallocator : xrealloc; + set->allocated = 2 * set->allocated + 256; + set->maps + = (struct line_map *) (*reallocator) (set->maps, + set->allocated + * sizeof (struct line_map)); + memset (&set->maps[set->used], 0, ((set->allocated - set->used) + * sizeof (struct line_map))); + } + + map = &set->maps[set->used]; + + if (to_file && *to_file == '\0' && reason != LC_RENAME_VERBATIM) + to_file = ""; + + if (reason == LC_RENAME_VERBATIM) + reason = LC_RENAME; + + /* If we don't keep our line maps consistent, we can easily + segfault. Don't rely on the client to do it for us. */ + if (set->depth == 0) + reason = LC_ENTER; + else if (reason == LC_LEAVE) + { + struct line_map *from; + bool error; + + if (MAIN_FILE_P (map - 1)) + { + if (to_file == NULL) + { + set->depth--; + return NULL; + } + error = true; + reason = LC_RENAME; + from = map - 1; + } + else + { + from = INCLUDED_FROM (set, map - 1); + error = to_file && strcmp (from->to_file, 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 = from->to_file; + to_line = SOURCE_LINE (from, from[1].start_location); + sysp = from->sysp; + } + } + + map->reason = reason; + map->sysp = sysp; + map->start_location = start_location; + map->to_file = to_file; + map->to_line = to_line; + set->cache = set->used++; + map->column_bits = 0; + set->highest_location = start_location; + set->highest_line = start_location; + set->max_column_hint = 0; + + if (reason == LC_ENTER) + { + map->included_from = set->depth == 0 ? -1 : (int) (set->used - 2); + set->depth++; + if (set->trace_includes) + trace_include (set, map); + } + else if (reason == LC_RENAME) + map->included_from = map[-1].included_from; + else if (reason == LC_LEAVE) + { + set->depth--; + map->included_from = INCLUDED_FROM (set, map - 1)->included_from; + } + + return map; +} + +source_location +linemap_line_start (struct line_maps *set, linenum_type to_line, + unsigned int max_column_hint) +{ + struct line_map *map = &set->maps[set->used - 1]; + 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 * map->column_bits > 1000) + || (max_column_hint >= (1U << map->column_bits)) + || (max_column_hint <= 80 && map->column_bits >= 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 != map->to_line + || SOURCE_COLUMN (map, highest) >= (1U << column_bits)) + map = (struct line_map *) linemap_add (set, LC_RENAME, map->sysp, + map->to_file, to_line); + map->column_bits = column_bits; + r = map->start_location + ((to_line - map->to_line) << column_bits); + } + else + r = highest - SOURCE_COLUMN (map, highest) + + (line_delta << map->column_bits); + set->highest_line = r; + if (r > set->highest_location) + set->highest_location = r; + set->max_column_hint = max_column_hint; + return r; +} + +source_location +linemap_position_for_column (struct line_maps *set, unsigned int to_column) +{ + source_location r = set->highest_line; + 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 = &set->maps[set->used - 1]; + 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; +} + +/* Given a logical line, returns the map from which the corresponding + (source file, line) pair can be deduced. 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. */ + +const struct line_map * +linemap_lookup (struct line_maps *set, source_location line) +{ + unsigned int md, mn, mx; + const struct line_map *cached; + + mn = set->cache; + mx = set->used; + + cached = &set->maps[mn]; + /* We should get a segfault if no line_maps have been added yet. */ + if (line >= cached->start_location) + { + if (mn + 1 == mx || line < cached[1].start_location) + return cached; + } + else + { + mx = mn; + mn = 0; + } + + while (mx - mn > 1) + { + md = (mn + mx) / 2; + if (set->maps[md].start_location > line) + mx = md; + else + mn = md; + } + + set->cache = mn; + return &set->maps[mn]; +} + +/* 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", map->to_file); +} diff --git a/libcpp/macro.c b/libcpp/macro.c new file mode 100644 index 000000000..d9324a350 --- /dev/null +++ b/libcpp/macro.c @@ -0,0 +1,2123 @@ +/* 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 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 +. + + 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; +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. */ +}; + +/* Macro expansion. */ + +static int enter_macro_context (cpp_reader *, cpp_hashnode *, + const cpp_token *); +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 _cpp_buff *collect_args (cpp_reader *, const cpp_hashnode *, + _cpp_buff **); +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 replace_args (cpp_reader *, cpp_hashnode *, cpp_macro *, + macro_arg *); +static _cpp_buff *funlike_invocation_p (cpp_reader *, cpp_hashnode *, + _cpp_buff **); +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 *); + +/* 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 struct line_map *map; + 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; + map = linemap_lookup (pfile->line_table, pfile->line_table->highest_line); + + if (node->value.builtin == BT_BASE_FILE) + while (! MAIN_FILE_P (map)) + map = INCLUDED_FROM (pfile->line_table, map); + + name = map->to_file; + 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: + map = &pfile->line_table->maps[pfile->line_table->used-1]; + /* 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 = SOURCE_LINE (map, + 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; + 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->direct_p) + rhs = FIRST (context).token++; + else + rhs = *FIRST (context).ptoken++; + + 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. */ +static _cpp_buff * +collect_args (cpp_reader *pfile, const cpp_hashnode *node, + _cpp_buff **pragma_buff) +{ + _cpp_buff *buff, *base_buff; + cpp_macro *macro; + macro_arg *args, *arg; + const cpp_token *token; + unsigned int argc; + + macro = node->value.macro; + if (macro->paramc) + argc = macro->paramc; + else + argc = 1; + buff = _cpp_get_buff (pfile, argc * (50 * 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; + + argc++; + arg->first = (const cpp_token **) buff->cur; + + 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, + 1000 * sizeof (cpp_token *)); + arg->first = (const cpp_token **) buff->cur; + } + + token = cpp_get_token (pfile); + + 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 (pfile); + } + 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; + } + + arg->first[ntokens++] = token; + } + + /* Drop trailing padding. */ + while (ntokens > 0 && arg->first[ntokens - 1]->type == CPP_PADDING) + ntokens--; + + arg->count = ntokens; + arg->first[ntokens] = &pfile->eof; + + /* 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; + 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. */ +static _cpp_buff * +funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node, + _cpp_buff **pragma_buff) +{ + 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); + } + + /* 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. */ +static int +enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, + const cpp_token *result) +{ + /* 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; + + pfile->state.prevent_expansion++; + pfile->keep_tokens++; + pfile->state.parsing_args = 1; + buff = funlike_invocation_p (pfile, node, &pragma_buff); + 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); + _cpp_release_buff (pfile, buff); + } + + /* 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, result->src_loc, node); + + macro->used = 1; + + if (macro->paramc == 0) + _cpp_push_token_context (pfile, node, macro->exp.tokens, + macro_real_token_count (macro)); + + if (pragma_buff) + { + if (!pfile->state.in_directive) + _cpp_push_token_context (pfile, NULL, + padding_token (pfile, result), 1); + do + { + _cpp_buff *tail = pragma_buff->next; + pragma_buff->next = NULL; + push_ptoken_context (pfile, NULL, pragma_buff, + (const cpp_token **) pragma_buff->base, + ((const cpp_token **) BUFF_FRONT (pragma_buff) + - (const cpp_token **) pragma_buff->base)); + pragma_buff = tail; + } + while (pragma_buff != NULL); + return 2; + } + + return 1; + } + + /* Handle built-in macros and the _Pragma operator. */ + return builtin_macro (pfile, node); +} + +/* 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. */ +static void +replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, macro_arg *args) +{ + unsigned int i, total; + const cpp_token *src, *limit; + const cpp_token **dest, **first; + macro_arg *arg; + _cpp_buff *buff; + unsigned int count; + + /* 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. */ + count = macro_real_token_count (macro); + total = count; + limit = macro->exp.tokens + count; + + for (src = macro->exp.tokens; src < limit; src++) + if (src->type == CPP_MACRO_ARG) + { + /* Leading and trailing padding tokens. */ + total += 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; + } + } + + /* Now allocate space for the expansion, copy the tokens and replace + the arguments. */ + buff = _cpp_get_buff (pfile, total * sizeof (cpp_token *)); + first = (const cpp_token **) buff->base; + dest = first; + + for (src = macro->exp.tokens; src < limit; src++) + { + unsigned int count; + const cpp_token **from, **paste_flag; + + if (src->type != CPP_MACRO_ARG) + { + *dest++ = src; + continue; + } + + paste_flag = 0; + arg = &args[src->val.macro_arg.arg_no - 1]; + if (src->flags & STRINGIFY_ARG) + count = 1, from = &arg->stringified; + else if (src->flags & PASTE_LEFT) + count = arg->count, from = arg->first; + else if (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT)) + { + count = arg->count, from = arg->first; + if (dest != first) + { + if (dest[-1]->type == CPP_COMMA + && macro->variadic + && src->val.macro_arg.arg_no == macro->paramc) + { + /* Swallow a pasted comma if from == NULL, otherwise + drop the paste flag. */ + if (from == NULL) + dest--; + else + paste_flag = dest - 1; + } + /* Remove the paste flag if the RHS is a placemarker. */ + else if (count == 0) + paste_flag = dest - 1; + } + } + else + count = arg->expanded_count, from = 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)) + *dest++ = padding_token (pfile, src); + + if (count) + { + memcpy (dest, from, count * sizeof (cpp_token *)); + dest += count; + + /* With a non-empty argument on the LHS of ##, the last + token should be flagged PASTE_LEFT. */ + if (src->flags & PASTE_LEFT) + paste_flag = dest - 1; + } + 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)) + *dest++ = &pfile->avoid_paste; + + /* 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; + } + } + + /* Free the expanded arguments. */ + for (i = 0; i < macro->paramc; i++) + if (args[i].expanded) + free (args[i].expanded); + + push_ptoken_context (pfile, node, buff, first, dest - first); +} + +/* 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); + 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->direct_p = false; + context->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->direct_p = true; + context->macro = macro; + context->buff = NULL; + FIRST (context).token = first; + LAST (context).token = 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->direct_p = true; + context->macro = macro; + context->buff = NULL; + CUR (context) = start; + RLIMIT (context) = start + len; + macro->flags |= NODE_DISABLED; +} + +/* 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) +{ + unsigned int capacity; + bool saved_warn_trad; + + if (arg->count == 0) + return; + + /* Don't warn about funlike macros when pre-expanding. */ + saved_warn_trad = CPP_WTRADITIONAL (pfile); + CPP_WTRADITIONAL (pfile) = 0; + + /* Loop, reading in the arguments. */ + capacity = 256; + arg->expanded = XNEWVEC (const cpp_token *, capacity); + + push_ptoken_context (pfile, NULL, NULL, arg->first, arg->count + 1); + for (;;) + { + const cpp_token *token; + + if (arg->expanded_count + 1 >= capacity) + { + capacity *= 2; + arg->expanded = XRESIZEVEC (const cpp_token *, arg->expanded, + capacity); + } + + token = cpp_get_token (pfile); + + if (token->type == CPP_EOF) + break; + + arg->expanded[arg->expanded_count++] = token; + } + + _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. The context + structure is not freed so that we can re-use it later. */ +void +_cpp_pop_context (cpp_reader *pfile) +{ + cpp_context *context = pfile->context; + + if (context->macro) + context->macro->flags &= ~NODE_DISABLED; + + if (context->buff) + _cpp_release_buff (pfile, context->buff); + + pfile->context = context->prev; +} + +/* 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) +{ + const cpp_token *result; + bool can_set = pfile->set_invocation_location; + 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); + else if (FIRST (context).token != LAST (context).token) + { + if (context->direct_p) + result = FIRST (context).token++; + else + result = *FIRST (context).ptoken++; + + if (result->flags & PASTE_LEFT) + { + paste_all_tokens (pfile, result); + if (pfile->state.in_directive) + continue; + return padding_token (pfile, result); + } + } + else + { + _cpp_pop_context (pfile); + if (pfile->state.in_directive) + continue; + return &pfile->avoid_paste; + } + + 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->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); + 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); + if (ret) + { + if (pfile->state.in_directive || ret == 2) + continue; + return padding_token (pfile, result); + } + } + 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; + } + + return result; +} + +/* Like cpp_get_token, but also returns a location separate from the + one provided 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 -- the token's location + will indicate where the macro is defined, but *LOC will be the + location of the start of the expansion. */ +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 (pfile); + if (pfile->context->macro) + *loc = pfile->invocation_location; + else + *loc = result->src_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->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->direct_p) + FIRST (pfile->context).token--; + else + FIRST (pfile->context).ptoken--; + } +} + +/* #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 (¯o1->exp.tokens[i], ¯o2->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 *) ¯o->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 *) ¯o->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 = ¯o->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 = ¯o->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/libcpp/makeucnid.c b/libcpp/makeucnid.c new file mode 100644 index 000000000..50bc4e164 --- /dev/null +++ b/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 +. */ + +/* Run this program as + ./makeucnid ucnid.tab UnicodeData.txt DerivedNormalizationProps.txt \ + > ucnid.h +*/ + +#include +#include +#include +#include +#include + +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\ + .\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/libcpp/mkdeps.c b/libcpp/mkdeps.c new file mode 100644 index 000000000..faac1623d --- /dev/null +++ b/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 +. + + 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 (!strncmp (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 && strcmp (buf, self) != 0) + deps_add_dep (deps, buf); + } + + free (buf); + return 0; +} diff --git a/libcpp/pch.c b/libcpp/pch.c new file mode 100644 index 000000000..00b7794ef --- /dev/null +++ b/libcpp/pch.c @@ -0,0 +1,893 @@ +/* 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 +. */ + +#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: + if (namebuf != NULL) + free (namebuf); + if (undeftab != NULL) + free (undeftab); + if (nl.defs != NULL) + 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/libcpp/po/ChangeLog b/libcpp/po/ChangeLog new file mode 100644 index 000000000..16ade9d9d --- /dev/null +++ b/libcpp/po/ChangeLog @@ -0,0 +1,475 @@ +2013-04-12 Release Manager + + * GCC 4.6.4 released. + +2012-03-01 Release Manager + + * GCC 4.6.3 released. + +2011-10-26 Release Manager + + * GCC 4.6.2 released. + +2011-07-08 Joseph Myers + + * 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-27 Release Manager + + * GCC 4.6.1 released. + +2011-06-21 Joseph Myers + + * cpplib.pot: Regenerate. + +2011-05-12 Joseph Myers + + * zh_CN.po: Update. + +2011-04-03 Joseph Myers + + * 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-25 Release Manager + + * GCC 4.6.0 released. + +2011-03-24 Joseph Myers + + * cpplib.pot: Regenerate. + +2011-03-05 Joseph Myers + + * cpplib.pot: Regenerate. + +2011-01-07 Joseph Myers + + * ru.po: New. + +2010-12-19 Joseph Myers + + * 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 + + * ja.po: Update. + +2010-12-18 Joseph Myers + + * cpplib.pot: Regenerate. + +2010-12-18 Joseph Myers + + * ja.po: Update. + +2010-12-17 Joseph Myers + + * ja.po: Update. + +2010-12-13 Joseph Myers + + * de.po: Update. + +2010-11-23 Joseph Myers + + * es.po: Update. + +2010-11-15 Joseph Myers + + * sv.po: Update. + +2010-11-14 Joseph Myers + + * 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 + + * cpplib.pot: Regenerate. + +2010-05-15 Joseph Myers + + * fi.po: New. + +2010-04-19 Joseph Myers + + * zh_CN.po: Update. + +2010-04-18 Joseph Myers + + * es.po: Update. + +2010-04-16 Joseph Myers + + * sv.po: Update. + +2010-04-16 Joseph Myers + + * 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 + + * cpplib.pot: Regenerate. + +2010-02-24 Joseph Myers + + * zh_CN.po: Update. + +2010-02-09 Joseph Myers + + * vi.po: Update. + +2010-02-07 Joseph Myers + + * es.po, nl.po: Update. + +2010-02-05 Joseph Myers + + * sv.po: Update. + +2010-02-05 Joseph Myers + + * 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 + + * cpplib.pot: Regenerate. + +2010-01-09 Joseph Myers + + * nl.po: Update. + +2009-12-10 Joseph Myers + + * es.po: Update. + +2009-12-10 Joseph Myers + + * zh_CN.po: Update. + +2009-12-07 Joseph Myers + + * id.po: Update. + +2009-12-04 Joseph Myers + + * sv.po: Update. + +2009-12-04 Joseph Myers + + * 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 + + * cpplib.pot: Regenerate. + +2009-10-17 Joseph Myers + + * cpplib.pot: Regenerate. + +2009-09-19 Joseph Myers + + * vi.po: Update. + +2009-09-08 Joseph Myers + + * id.po: Update. + +2009-09-02 Joseph Myers + + * es.po: Update. + +2009-08-04 Joseph Myers + + * es.po: Update. + +2009-07-25 Joseph Myers + + * nl.po: Update. + +2009-07-23 Joseph Myers + + * 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 + + * cpplib.pot: Regenerate. + +2009-03-28 Joseph Myers + + * cpplib.pot: Regenerate. + +2009-03-04 Joseph Myers + + * es.po: Update. + +2009-02-13 Joseph S. Myers + + * zh_CN.po: Update. + +2009-02-06 Joseph S. Myers + + * vi.po: Update. + +2008-12-06 Joseph S. Myers + + * nl.po, sv.po: Update. + +2008-11-29 Joseph S. Myers + + * 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 + + * cpplib.pot: Regenerate. + +2008-11-13 Joseph S. Myers + + * id.po: New. + +2008-08-27 Joseph S. Myers + + * cpplib.pot: Regenerate. + +2008-03-28 Joseph S. Myers + + * fr.po: Update. + +2008-03-20 Joseph S. Myers + + * vi.po: Update. + +2008-03-18 Joseph S. Myers + + * es.po, nl.po: Update. + +2008-03-15 Joseph S. Myers + + * zh_CN.po: Update. + +2008-03-15 Joseph S. Myers + + * de.po: Update. + +2008-03-14 Joseph S. Myers + + * sv.po: Update. + +2008-03-14 Joseph S. Myers + + * 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 + + * cpplib.pot: Regenerate. + +2008-01-20 Joseph S. Myers + + * sv.po: Update. + +2008-01-20 Joseph S. Myers + + * sv.po: Update. + +2008-01-20 Joseph S. Myers + + * sv.po: Update. + +2007-12-05 Joseph S. Myers + + * vi.po: Update. + +2007-11-15 Joseph S. Myers + + * es.po: Update. + +2007-11-11 Joseph S. Myers + + * de.po, zh_CN.po: Update. + +2007-11-10 Joseph S. Myers + + * 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 + + * cpplib.pot: Regenerate. + +2007-10-21 Joseph S. Myers + + * es.po, vi.po: Update. + +2007-10-10 Joseph S. Myers + + * 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 + + * 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 + + * 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 + + * cpplib.pot: Regenerate. + +2006-10-22 Joseph S. Myers + + * cpplib.pot: Regenerate. + +2006-09-03 Joseph S. Myers + + * vi.po: Update. + +2006-06-24 Joseph S. Myers + + * sv.po: Update. + +2006-06-24 Joseph S. Myers + + * 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 + + * de.po: Update. + +2006-03-31 Joseph S. Myers + + * sv.po: Update. + +2006-03-13 Joseph S. Myers + + * 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 + + * vi.po: Update. + +2005-12-03 Joseph S. Myers + + * zh_CN.po: New file. + +2005-12-01 Joseph S. Myers + + * 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 + + * cpplib.pot: Regenerate. + +2005-09-04 Joseph S. Myers + + * 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 + + * tr.po, vi.po: Update. + +2005-06-16 Joseph S. Myers + + * 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 + + * fr.po, sv.po: Update. + +2005-06-07 Jakub Jelinek + + * cpplib.pot: Regenerate. + +2005-05-05 Joseph S. Myers + + * nl.po: Update. + +2005-04-27 Joseph S. Myers + + * 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 + + * rw.po: New file. + +2005-03-29 Joseph S. Myers + + * de.po: Update. + +2005-03-04 Joseph S. Myers + + * tr.po: Update. + * vi.po: New file. + +2005-03-04 Joseph S. Myers + + * 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 + + * cpplib.pot: Regenerate. + +2004-12-15 Joseph S. Myers + + * fr.po: Update. + +2004-12-04 Joseph S. Myers + + * tr.po: Update. + +2004-12-02 Joseph S. Myers + + * es.po: Update. + +2004-12-01 Joseph S. Myers + + * 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 + + * cpplib.pot: Regenerate. + +2004-11-09 Joseph S. Myers + + * cpplib.pot: Regenerate. + +2004-05-23 Paolo Bonzini + + * 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/libcpp/po/be.gmo b/libcpp/po/be.gmo new file mode 100644 index 000000000..0cf576b0c Binary files /dev/null and b/libcpp/po/be.gmo differ diff --git a/libcpp/po/be.po b/libcpp/po/be.po new file mode 100644 index 000000000..0c25b5fc1 --- /dev/null +++ b/libcpp/po/be.po @@ -0,0 +1,3000 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Ales Nyakhaychyk , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: gcc 3.1\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2002-05-17 15:54+0200\n" +"Last-Translator: Ales Nyakhaychyk \n" +"Language-Team: Belarusian \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:1041 +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 " +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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "" + +#: directives.c:1093 +#, fuzzy, c-format +msgid "invalid #%s directive" +msgstr "нерэчаісны ініцыялізатар" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "" + +#: directives.c:1186 +#, fuzzy, c-format +msgid "#pragma %s %s is already registered" +msgstr "Клас \"%s\" ужо існуе" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "" + +#: directives.c:1454 +#, fuzzy +msgid "invalid #pragma push_macro directive" +msgstr "нерэчаісны ініцыялізатар" + +#: directives.c:1509 +#, fuzzy +msgid "invalid #pragma pop_macro directive" +msgstr "нерэчаісны ініцыялізатар" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "" + +#: directives.c:1617 +#, fuzzy, c-format +#| msgid "cannot find source %s" +msgid "cannot find source file %s" +msgstr "не магу знайсці крыніцу %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "" + +#: directives-only.c:222 lex.c:2077 traditional.c:163 +msgid "unterminated comment" +msgstr "незавершаныя каментарыі" + +#: errors.c:235 +msgid "stdout" +msgstr "" + +#: errors.c:237 +#, c-format +msgid "%s: %s" +msgstr "" + +#: expr.c:282 +msgid "too many decimal points in number" +msgstr "" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "" + +#: expr.c:324 +#, fuzzy, c-format +#| msgid "invalid string constant `%E'" +msgid "invalid digit \"%c\" in binary constant" +msgstr "`%E' - нерэчаісная нязьменная тыпу string" + +#: expr.c:326 +#, fuzzy, c-format +#| msgid "invalid string constant `%E'" +msgid "invalid digit \"%c\" in octal constant" +msgstr "`%E' - нерэчаісная нязьменная тыпу string" + +#: expr.c:334 +#, fuzzy +#| msgid "invalid string constant `%E'" +msgid "invalid prefix \"0b\" for floating constant" +msgstr "`%E' - нерэчаісная нязьменная тыпу string" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "" + +#: expr.c:365 +#, fuzzy, c-format +#| msgid "invalid string constant `%E'" +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "`%E' - нерэчаісная нязьменная тыпу string" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "" + +#: expr.c:410 +#, fuzzy, c-format +#| msgid "invalid string constant `%E'" +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "`%E' - нерэчаісная нязьменная тыпу string" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, fuzzy, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "прапушчан прабел пасля нумара \"%.*s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "" + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced #endif" +msgid "unbalanced stack in %s" +msgstr "незбалансаваны #endif" + +#: expr.c:1079 +#, fuzzy, c-format +#| msgid "impossible operator '%s'" +msgid "impossible operator '%u'" +msgstr "немагчымы апэратар '%s'" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "" + +#: init.c:520 +#, c-format +msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" +msgstr "" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "" + +#: lex.c:1020 +#, fuzzy, c-format +#| msgid "`%D' is not a function," +msgid "`%.*s' is not in NFC" +msgstr "`%D' - гэта ня функцыя," + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, fuzzy, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "сімвальная канстанта вельмі доўгая" + +#: lex.c:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated comment" +msgid "unterminated raw string" +msgstr "незавершаныя каментарыі" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "прапушчан завяршаючы сімвал %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "" + +#: lex.c:2415 +#, fuzzy, c-format +msgid "unspellable token %s" +msgstr "немагу адчыніць файл \"%s\"" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "" + +#: macro.c:160 +#, fuzzy +msgid "could not determine file timestamp" +msgstr "не магу знайсці крыніцу %s\n" + +#: macro.c:256 +#, fuzzy +#| msgid "Could not open data file %s.\n" +msgid "could not determine date and time" +msgstr "Немагчыма адчыніць файл з дадзенымі %s.\n" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "" + +#: macro.c:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "" + +#: macro.c:1718 +#, fuzzy +#| msgid "missing white space after number '%.*s'" +msgid "missing whitespace after the macro name" +msgstr "прапушчан прабел пасля нумара \"%.*s\"" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "" + +#: macro.c:2004 +#, 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:891 +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], ) is not supported on this target" +#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты" + +#, fuzzy +#~ msgid "#pragma pack(pop[, id], ) 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= Override built-in specs with the contents of \n" +#~ msgstr " -o <файл> Памясціць вывад у <файл>\n" + +#~ msgid " -o Place the output into \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/libcpp/po/ca.gmo b/libcpp/po/ca.gmo new file mode 100644 index 000000000..f8de82b6b Binary files /dev/null and b/libcpp/po/ca.gmo differ diff --git a/libcpp/po/ca.po b/libcpp/po/ca.po new file mode 100644 index 000000000..6c2047b92 --- /dev/null +++ b/libcpp/po/ca.po @@ -0,0 +1,1019 @@ +# 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 , 2002. +# Gilles MATEU , 2003. +# Gilles MATEU , 2004. +# Mateu Gilles , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2005-11-25 22:56+0100\n" +"Last-Translator: Mateu Gilles \n" +"Language-Team: Catalan \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 carcter 0x%lx no s en el joc de carcters de base\n" + +#: charset.c:798 charset.c:1444 +msgid "converting to execution character set" +msgstr "convertint al joc de carcters d'execuci" + +#: charset.c:804 +#, c-format +msgid "character 0x%lx is not unibyte in execution character set" +msgstr "el carcter 0x%lx no s mono octet en el joc de carcters d'execuci" + +#: charset.c: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 carcter universals noms sn vlids 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 carcter universal %.*s s incomplet" + +#: charset.c:1046 +#, c-format +msgid "%.*s is not a valid universal character" +msgstr "%.*s no s un carcter universal vlid" + +#: charset.c:1056 lex.c:1041 +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 carcter universal %.*s no s vlid 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 carcter universal %.*s no s vlid 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 carcters" + +#: charset.c:1106 +msgid "converting UCN to execution character set" +msgstr "convertint UCN al joc de carcters 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 dgits hexadecimales a continuaci" + +#: charset.c:1202 +msgid "hex escape sequence out of range" +msgstr "seqncia d'escapa hexadecimal fora de rang" + +#: charset.c:1240 +msgid "octal escape sequence out of range" +msgstr "seqncia 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 "seqncia d'escapa que no s estndard ISO, \"\\%c\"" + +#: charset.c:1321 +#, fuzzy, c-format +#| msgid "unknown escape sequence '\\%c'" +msgid "unknown escape sequence: '\\%c'" +msgstr "seqncia d'escapa \"\\%c\" desconeguda" + +#: charset.c:1329 +#, fuzzy, c-format +#| msgid "unknown escape sequence '\\%c'" +msgid "unknown escape sequence: '\\%s'" +msgstr "seqncia d'escapa \"\\%c\" desconeguda" + +#: charset.c:1336 +msgid "converting escape sequence to execution character set" +msgstr "convertint una seqncia d'escapa al joc de carcters d'execuci" + +#: charset.c:1509 charset.c:1573 +msgid "character constant too long for its type" +msgstr "constant de carcter massa gran pel seu tipus" + +#: charset.c:1512 +msgid "multi-character character constant" +msgstr "constant de carcter amb mltiples carcters" + +#: charset.c:1612 +msgid "empty character constant" +msgstr "constant de carter 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 lnia s una extenci del GCC" + +#: directives.c:482 +#, c-format +msgid "invalid preprocessing directive #%s" +msgstr "directiva de preprocessament #%s invlida" + +#: 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 carcter de terminaci >" + +#: directives.c:725 +#, c-format +msgid "#%s expects \"FILENAME\" or " +msgstr "#%s espera \"NOM_DE_FITXER\" o " + +#: 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\" invlid en la directiva de lnia" + +#: 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\" desprs de #line no s un enter positiu" + +#: directives.c:917 directives.c:919 +msgid "line number out of range" +msgstr "nombre de lnia 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 vlid" + +#: directives.c:972 +#, c-format +msgid "\"%s\" after # is not a positive integer" +msgstr "\"%s\" desprs de # no s un enter positiu" + +#: directives.c:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "" + +#: directives.c:1093 +#, fuzzy, c-format +#| msgid "invalid #ident directive" +msgid "invalid #%s directive" +msgstr "directiva #ident invlida" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "" + +#: directives.c:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "ja s'ha desat #pragma %s %s" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "ja s'ha desat #pragma %s" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma una vegada en el fitxer principal" + +#: directives.c:1454 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma push_macro directive" +msgstr "directiva #pragma de GCC enverinada invlida" + +#: directives.c:1509 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma pop_macro directive" +msgstr "directiva #pragma de GCC enverinada invlida" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "directiva #pragma de GCC enverinada invlida" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "enverinant la macro existent \"%s\"" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header ignorat fora del fitxer d'inclusi" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "no es pot trobar la font %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "el fitxer actual s ms vell que %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma pren una cadena literal entre parntesis" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else sense #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else desprs de #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "el condicional va comenar aqu" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif sense #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif desprs de #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif sense #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "falta \"(\" abans del predicat" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "falta \")\" per a completar la resposta" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "el predicat de la resposta est buit" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "afirmaci sense predicat" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "el predicat ha de ser un identificador" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" reafirmat" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "#%s sense acabar" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "nombre amb massa punts decimals" + +#: expr.c:311 expr.c:396 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "fixed-point constants are a GCC extension" +msgstr "les constants imaginries sn una extensi d'el GCC" + +#: expr.c:324 +#, fuzzy, c-format +#| msgid "invalid digit \"%c\" in octal constant" +msgid "invalid digit \"%c\" in binary constant" +msgstr "dgit \"%c\" invlid en la constant octal" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "dgit \"%c\" invlid en la constant octal" + +#: expr.c:334 +#, fuzzy +#| msgid "invalid suffix \"%.*s\" on floating constant" +msgid "invalid prefix \"0b\" for floating constant" +msgstr "sufix \"%.*s\" invlid en la constant de coma flotant" + +#: expr.c:339 +#, 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:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "s d'una constant de coma flotant hexadecimal C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "exponent no t dgits" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "la constant de coma flotant hexadecimal requereix un exponent" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "sufix \"%.*s\" invlid en la constant de coma flotant" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "el C tradicional rebutja el sufix \"%.*s\"" + +#: expr.c:383 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "suffix for double constant is a GCC extension" +msgstr "les constants imaginries sn una extensi d'el GCC" + +#: expr.c:389 +#, fuzzy, c-format +#| msgid "invalid suffix \"%.*s\" on floating constant" +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "sufix \"%.*s\" invlid en la constant de coma flotant" + +#: expr.c:400 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "decimal float constants are a GCC extension" +msgstr "les constants imaginries sn una extensi d'el GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "sufix \"%.*s\" invlid en constant entera" + +#: expr.c:433 +#, 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:434 +msgid "use of C99 long long integer constant" +msgstr "s d'una constant entera long long C99" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "les constants imaginries sn una extensi d'el GCC" + +#: expr.c:451 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "binary constants are a GCC extension" +msgstr "les constants imaginries sn una extensi d'el GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "la constant entera s massa gran pel seu tipus" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "la constant entera s tan gran que s unsigned" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "\")\" faltant desprs de \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "l'operador \"defined\" requereix un identificador" + +#: expr.c:685 +#, 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:695 +msgid "this use of \"defined\" may not be portable" +msgstr "aquest s de \"defined\" podria no ser portable" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "constant de coma flotant en l'expressi del preprocessador" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "nombre imaginari en l'expressi del preprocessador" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" no s definit" + +#: expr.c:821 +#, fuzzy +#| msgid "#%s is a GCC extension" +msgid "assertions are a GCC extension" +msgstr "#%s s una extenci del GCC" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "operador binari faltant abans de l'element \"%s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "l'element \"%s\" no s vlid en les expressions del preprocesador" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "expressin faltant entre \"(\" i \")\"" + +#: expr.c:997 +#, fuzzy, c-format +#| msgid "#if with no expression" +msgid "%s with no expression" +msgstr "#if sense expressi" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "l'operador \"%s\" no t operant de dreta" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "l'operador \"%s\" no t operant d'esquera" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " \":\" sense \"?\" precedent" + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced stack in #if" +msgid "unbalanced stack in %s" +msgstr "pila desequilibrada en #if" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "operador \"%u\" impossible" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "\")\" faltant en l'expressi" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr " \"?\" sense el \":\" segent" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "desbordament d'enter en l'expressi del preprocessador" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "\"(\" faltant en l'expressi" + +#: expr.c:1256 +#, 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:1261 +#, 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:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "C tradicional rebutja l'operador unari ms" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "operador coma en operant de #if" + +#: expr.c:1739 +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 ms fitxers PCH varen ser trobats, per varen ser invlids" + +#: files.c:503 +msgid "use -Winvalid-pch for more information" +msgstr "usi -Winvalid-pch per a ms 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 ms 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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Mltiples gurdies d'inclusi poden ser tils per a:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t ha de ser d'un tipus unsigned" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "l'aritmtica del preprocesador t una precisi mxima de %lu bits; l'objectiu requereix %lu bits" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "l'aritmtica de CPP ha de ser almenys tan precisa com un int de l'objectiu" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "el char de l'objectiu t menys de 8 bits d'ampliaria" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "el wchar_t de l'objectiu s ms estret qu'el char de l'objectiu" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "el int de l'objectiu s ms estret qu'el char de l'objectiu" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "el half-integer de CPP s ms estret que el carcter de CPP" + +#: init.c:520 +#, c-format +msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" +msgstr "CPP no pot manejar constants de carcter amples ms enll de %lu bits en aquest ordinador, per l'objectiu requereix %lu bits" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "barra invertida i fi de lnia separats per un espai" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "barra invertida i nova lnia al final del fitxer" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigraph ??%c convertit a %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "s'ignora el trigraph ??%c, usi -trigraphs per permetre-ho" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" dintre d'un comentari" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s en una directiva de preprocessament" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "carter(es) nul(s) ignorats" + +#: lex.c:1017 +#, fuzzy, c-format +#| msgid "\"%s\" is not defined" +msgid "`%.*s' is not in NFKC" +msgstr "\"%s\" no s definit" + +#: lex.c:1020 +#, fuzzy, c-format +#| msgid "\"%s\" is not defined" +msgid "`%.*s' is not in NFC" +msgstr "\"%s\" no s definit" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "intent d'usar \"%s\" enverinat" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ solament pot aparixer en l'expansi d'una macro variadic C99" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, fuzzy, c-format +#| msgid "universal character %.*s is not valid in an identifier" +msgid "invalid character '%c' in raw string delimiter" +msgstr "el nom de carcter universal %.*s no s vlid en un identificador" + +#: lex.c:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated #%s" +msgid "unterminated raw string" +msgstr "#%s sense acabar" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "carcter(es) nul(s) preservats en la literal" + +#: lex.c:1589 +#, fuzzy, c-format +#| msgid "missing terminating > character" +msgid "missing terminating %c character" +msgstr "falta el carcter de terminaci >" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "els comentaris d'estil C++ no sn permesos en ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(aix es reportar solament una vegada per cada fitxer d'entrada)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "comentari en mltiples lnies" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "Element %s impronunciable" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "no s'usa la macro \"%s\"" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "macro interna \"%s\" invlida" + +#: macro.c:160 +#, 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:256 +msgid "could not determine date and time" +msgstr "no es pot determinar la data i l'hora" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "cadena literal invlida, s'ignora el \"\\\" final" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "enganxar \"%s\" i \"%s\" no dna un element de preprocessament vlid" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 requereix que la resta dels arguments sigui usat" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "la macro \"%s\" requereix %u arguments, per noms %u passats" + +#: macro.c:575 +#, 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:734 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:866 +#, 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:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "parmetre de macro \"%s\" duplicat" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" podria faltar en la llista de parmetre de macro" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "els parmetres de macro han de ser separats per comes" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "falta el nom del parmetre" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "els macros variadic annims es van introduir en C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C no permet macros variadic nomenats" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "\")\" faltant en la llista de parmetres de macro" + +#: macro.c:1659 +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:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 requereix espais en blanc desprs del nom de macro" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "espais en blanc faltant desprs del nom de macro" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "\"#\" no s seguit per un parmetre de macro" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" re-definit" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "aquesta s la ubicaci de la definici prvia" + +#: macro.c:1977 +#, 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:2004 +#, c-format +msgid "invalid hash type %d in cpp_macro_definition" +msgstr "tipus de hash %d invlid 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 capalera 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:891 +msgid "while reading precompiled header" +msgstr "mentre llegint capalera 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 sintctic en la llista de parmetre de macro" + +#~ msgid "unknown escape sequence: '\\%03o'" +#~ msgstr "seqncia d'escapa desconeguda: '\\%03o'" + +#~ msgid "warning: " +#~ msgstr "avs: " + +#~ msgid "internal error: " +#~ msgstr "error intern: " + +#~ msgid "error: " +#~ msgstr "error: " + +#~ msgid "no newline at end of file" +#~ msgstr "no hi ha carcter de fi de lnia al final del fitxer" + +#~ msgid "In file included from %s:%u" +#~ msgstr "En el fitxer incls ds de %s:%u" + +#~ msgid "" +#~ ",\n" +#~ " from %s:%u" +#~ msgstr "" +#~ ",\n" +#~ " ds de %s:%u" diff --git a/libcpp/po/cpplib.pot b/libcpp/po/cpplib.pot new file mode 100644 index 000000000..fa6ed784e --- /dev/null +++ b/libcpp/po/cpplib.pot @@ -0,0 +1,987 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \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:1041 +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 " +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:1065 +#: directives.c:1067 +#: directives.c:1069 +#, c-format +msgid "%s" +msgstr "" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "" + +#: directives.c:1934 +#: directives.c:1967 +msgid "the conditional began here" +msgstr "" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "" + +#: directives-only.c:222 +#: lex.c:2077 +#: traditional.c:163 +msgid "unterminated comment" +msgstr "" + +#: errors.c:235 +msgid "stdout" +msgstr "" + +#: errors.c:237 +#, c-format +msgid "%s: %s" +msgstr "" + +#: expr.c:282 +msgid "too many decimal points in number" +msgstr "" + +#: expr.c:311 +#: expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "" + +#: expr.c:375 +#: expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 +#: expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "" + +#: init.c:493 +#, c-format +msgid "" +"preprocessor arithmetic has maximum precision of %lu bits; target requires " +"%lu bits" +msgstr "" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "" + +#: init.c:520 +#, c-format +msgid "" +"CPP on this host cannot handle wide character constants over %lu bits, but " +"the target requires %lu bits" +msgstr "" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "" + +#: lex.c:1088 +#: lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "" + +#: lex.c:1096 +#: lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "" + +#: lex.c:1102 +#: lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "" + +#: lex.c:1450 +#: lex.c:1472 +msgid "unterminated raw string" +msgstr "" + +#: lex.c:1487 +#: lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "" + +#: macro.c:126 +#: macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "" + +#: macro.c:734 +#: traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "" + +#: macro.c:1040 +#, c-format +msgid "" +"invoking macro %s argument %d: empty macro arguments are undefined in ISO " +"C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "" + +#: macro.c:2004 +#, 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:891 +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/libcpp/po/da.gmo b/libcpp/po/da.gmo new file mode 100644 index 000000000..6577c7fd5 Binary files /dev/null and b/libcpp/po/da.gmo differ diff --git a/libcpp/po/da.po b/libcpp/po/da.po new file mode 100644 index 000000000..b7bb6a80d --- /dev/null +++ b/libcpp/po/da.po @@ -0,0 +1,16282 @@ +# Danish version of GCC strings. +# Copyright (C) 2002, 03 Free Software Foundation, Inc. +# Ole Laursen , 2001, 02, 03. +# +# Konventioner: +# +# ABI -> binr grnseflade +# ANSI -> (har jeg tilladt mig at opdatere til (modsvarer Info-hjlpen)) ISO +# access -> tilgangs- +# aggregate -> en variabel af en sammensat type (fx struct, class) +# ambigeous -> tvetydig +# arg, argument -> parameter (for ikke at blande sammen med diskussionsargument) +# array -> tabel +# assembler -> maskinkodeoverstter +# assertion -> postulat +# attribute -> egenskab +# base class -> stamklasse +# basic block -> basisblok (funktioner deles op i disse under oversttelsen) +# braces -> krllede paranteser +# braced-group -> stningsblok +# branch -> forgrening +# buffer -> mellemlager +# cast -> typetildeling, omtvingelse af typen +# con-/destructor -> kon-/destruktionsfunktion +# conflicting -> modstridende +# convert -> konvertere, omdanne +# declared -> erklret +# defaults to -> antages at vre +# dereference -> flge +# discard -> fjerne +# discard -> kassere +# driver -> styringsprogram +# duplicate -> optrder mere end n gang; mangfoldiggre +# edge list -> kantliste +# elt -> udtrykstr +# endian -> endet (fx storendet, lillendet) +# endianness -> endethed +# exception handling -> hndtering af undtagelser +# excess -> for mange +# expansion -> udfoldning +# extra -> (ret ofte) overskydende +# floating point -> kommatal +# formals -> parametre +# format string -> formateringsstreng +# forward -> forhnd (f.eks. forhndserklring) +# frame table -> rammetabel +# friend -> ven(ne-) +# gp (general purpose) register -> alment register (havde frst brug- med, med det er overfldigt) +# hard register -> hardware-register +# have no effect -> udvirker intet +# identifier -> kaldenavn +# incompatible -> uforenelig, passer ikke +# incomplete -> ufuldstndig +# initialize -> tildele startvrdi, klargre +# initializer -> startvrdi +# initializer list -> klargringsliste +# inline -> integrede, indbygges (eller som reserveret ord: inline) +# instance -> instans (fx af en klasse) +# issue (fx warnings) -> fremkom med +# iterator -> lkkevariabel +# junk -> ragelse +# keyword -> reserveret ord +# label -> etiket +# linking -> sammenkdning +# lvalue -> venstrevrdi +# macro -> makro +# malformed -> forkert udformet, misdannet +# member function/method -> [medlems]funktion (metode i Objective C) +# mismatch -> passer ikke med +# mmap -> indlse +# modifier, qualifier -> modifikation +# multiple inheritance -> multipel nedarvning +# newline -> linjeskift +# non-numeric -> ikke et tal +# null character -> nultegn +# null pointer -> nul[-]henvisning +# offset -> forskydning +# opcodes (til ovenstende) -> instruktioner +# out of range -> uden for det gyldige (til tider mulige) interval +# overflow -> (til tider) lber over +# overlap -> [interval]sammenfald +# overloading -> flertydiggrelse +# padding -> udfylning +# pass -> overbringe (fx parametre), videregive +# pointer -> henvisning[svariabel] +# preprocessor -> prprocessor +# profiling -> profilering +# promote -> forfremme +# request -> (til tider) foresprgsel +# return -> returnerer +# schedule -> planlg +# scope -> virkningsfelt +# shadowing -> skygger for +# shift -> skift +# specified -> (oftest) angivet +# specifier -> anvisning, angivelse +# stab -> stik (?) +# statement -> stning +# storage class -> lagringsklasse +# strict -> nje +# string -> streng +# subscript -> indeks, opslag +# target -> ml[arkitektur] +# template -> skabelon +# thrown -> kastet +# token -> symbol +# top-level -> verste niveau +# trigraphs ('??%c'-dimser) -> trigrafer +# undefine -> glemme definitionen +# undefined blahblah -> blahblah er ikke defineret +# underscore -> understreg +# universal-character-name -> universelt tegn[navn] +# unsigned -> uden fortegn +# varargs -> variable parameterlister +# variadic macro -> makro med vilkrligt antal parametre +# variabels -> variabler (med afslutnings-r) +# vtable -> virtuel tabel +# wide character -> bredtegn +# white space -> mellemrum +# whitespace -> mellemrum +# +# Reserverede ord ofte ikke oversat, ej heller er der anbragt ' omkring +# (fx unsigned -> unsigned; derimod function -> funktion). Forkortelser +# som decl (for declaration) og arg (for argument) er oversat uforkortet +# - der er jo masser af plads at tage af. +# +msgid "" +msgstr "" +"Project-Id-Version: gcc 3.3\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2003-05-25 18:00+0200\n" +"Last-Translator: Ole Laursen \n" +"Language-Team: Danish \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 str for '%c', som er en del af det basale kildekodetegnst" + +#: 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 "ufuldstndigt 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 erklrer" + +#: charset.c:1056 lex.c:1041 +#, 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 efterflgende 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 "foreslr 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 nr '#' er indrykket" + +#: directives.c:381 +#, c-format +msgid "suggest hiding #%s from traditional C with an indented #" +msgstr "foreslr 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 prprocessordirektiv #%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 vre 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 " +msgstr "#%s forventer \"FILNAVN\" eller " + +#: 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 primre 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 "Justr 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, fuzzy, c-format +#| msgid "invalid #ident directive" +msgid "invalid #%s directive" +msgstr "ugyldigt #ident-direktiv" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "" + +#: directives.c:1165 +#, fuzzy, c-format +#| msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "registrerer \"%s\" som bde et pragma og som et pragmanavnerum" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "registrerer \"%s\" som bde et pragma og som et pragmanavnerum" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s er allerede registreret" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s er allerede registreret" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "'#pragma once' i hovedfil" + +#: directives.c:1454 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma push_macro directive" +msgstr "ugyldigt #pragma GCC poison-direktiv" + +#: directives.c:1509 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma pop_macro directive" +msgstr "ugyldigt #pragma GCC poison-direktiv" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "ugyldigt #pragma GCC poison-direktiv" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "forgifter eksisterende makro \"%s\"" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "'#pragma system_header' ignoreret uden for inkluderingsfil" + +#: directives.c:1617 +#, fuzzy, c-format +#| msgid "cannot find source %s" +msgid "cannot find source file %s" +msgstr "kan ikke finde kilden %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "aktuel fil er ldre end %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma tager en strengkonstant med paranteser omkring" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else uden #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else efter #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "betingelsen begyndte her" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif uden #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif efter #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif uden #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "manglende '(' efter udsagn" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "manglende ')' til at fuldfre svar" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "udsagnets svar et tomt" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "postulat uden udsagn" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "udsagn skal vre et kaldenavn" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" genpostuleret" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "uafsluttet #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "for mange decimalkommaer i tal" + +#: expr.c:311 expr.c:396 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "fixed-point constants are a GCC extension" +msgstr "imaginre konstanter er en GCC-udvidelse" + +#: expr.c:324 +#, 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:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "ugyldig ciffer \"%c\" i oktal konstant" + +#: expr.c:334 +#, fuzzy +#| msgid "invalid suffix \"%.*s\" on floating constant" +msgid "invalid prefix \"0b\" for floating constant" +msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant" + +#: expr.c:339 +#, fuzzy +#| msgid "use of C99 hexadecimal floating constant" +msgid "no digits in hexadecimal floating constant" +msgstr "brug af C99 hexadecimal kommatalskonstant" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "brug af C99 hexadecimal kommatalskonstant" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "der er ingen cifre i eksponent" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "hexadecimal kommatalskonstant skal have en eksponent" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "traditionel C tillader ikke endelsen \"%.*s\"" + +#: expr.c:383 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "suffix for double constant is a GCC extension" +msgstr "imaginre konstanter er en GCC-udvidelse" + +#: expr.c:389 +#, 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:400 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "decimal float constants are a GCC extension" +msgstr "imaginre konstanter er en GCC-udvidelse" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "ugyldig endelse \"%.*s\" i heltalskonstant" + +#: expr.c:433 +#, 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:434 +msgid "use of C99 long long integer constant" +msgstr "brug af ISO C99 long long-heltalskonstanter" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "imaginre konstanter er en GCC-udvidelse" + +#: expr.c:451 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "binary constants are a GCC extension" +msgstr "imaginre konstanter er en GCC-udvidelse" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "heltalskonstanten er for stor for dens type" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "heltalskonstanten er s stor at den er unsigned" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "manglende ')' efter \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "operatoren \"defined\" krver et kaldenavn" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(\"%s\" er et alternativt symbol for \"%s\" i C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "denne brug af \"defined\" er muligvis ikke portabel" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "kommatalskonstant i prprocessorudtryk" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "imaginrt tal i prprocessorudtryk" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" er ikke defineret" + +#: expr.c:821 +#, fuzzy +#| msgid "#%s is a GCC extension" +msgid "assertions are a GCC extension" +msgstr "#%s er en GCC-udvidelse" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "manglende binr operator fr symbolet \"%s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "symbolet \"%s\" er ikke gyldigt i prprocessorudtryk" + +#: expr.c:994 +#, fuzzy +#| msgid "void expression between '(' and ')'" +msgid "missing expression between '(' and ')'" +msgstr "tomt udtryk mellem '(' og ')'" + +#: expr.c:997 +#, fuzzy, c-format +#| msgid "#if with no expression" +msgid "%s with no expression" +msgstr "#if uden noget udtryk" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "operatoren '%s' har ikke nogen hjre operand" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "operatoren '%s' har ikke nogen venstre operand" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ':' uden forudgende '?'" + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced stack in #if" +msgid "unbalanced stack in %s" +msgstr "uafbalanceret stak i #if" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "umulig operator '%u'" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "manglende ')' i udtryk" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' uden efterflgende ':'" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "heltallet lber over i prprocessorudtrykket" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "manglende '(' i udtryk" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "den venstre operand til \"%s\" ndrer fortegn ved forfremmelse" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "den hjre operand til \"%s\" ndrer fortegn ved forfremmelse" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "traditionel C tillader ikke operatoren unr plus" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "kommeoperator i en operand til #if" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Flere inkluderingsvagter kan vre nyttige til:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t skal vre en unsigned type" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "prprocessorberegning har en maksimal prcision p %lu bit; mlarkitektur krver %lu bit" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "CPP-beregning skal vre mindst lige s prcis som en mlarkitekturs int" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "mlarkitekturs char er mindre end 8 bit bred" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "mlarkitekturs wchar_t er mindre end mlarkitekturs char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "mlarkitekturs int er mindre end mlarkitekturs char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP-halvheltal er mindre end CPP-tegn" + +#: init.c:520 +#, c-format +msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" +msgstr "CPP p denne vrt kan ikke hndtere bredtegnkonstanter over %lu bit, men mlarkitekturen krver %lu bit" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "omvendt skrstreg og linjeskift er adskilt af mellemrum" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "omvendt skrstreg efterfulgt af linjeskift ved slutningen af filen" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigrafen ??%c konverteret til %c" + +#: lex.c:864 +#, fuzzy, c-format +#| msgid "trigraph ??%c ignored" +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "trigrafen ??%c ignoreret" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" i en kommentar" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s i prprocessordirektiv" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "nultegn ignoreret" + +#: lex.c:1017 +#, fuzzy, c-format +#| msgid "\"%s\" is not defined" +msgid "`%.*s' is not in NFKC" +msgstr "\"%s\" er ikke defineret" + +#: lex.c:1020 +#, fuzzy, c-format +#| msgid "\"%s\" is not defined" +msgid "`%.*s' is not in NFC" +msgstr "\"%s\" er ikke defineret" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "forsg p at bruge forgiftet \"%s\"" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ kan kun optrde i udfoldelsen af en C99-makro med vilkrligt antal parametre" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, 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:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated format string" +msgid "unterminated raw string" +msgstr "uafsluttet formateringsstreng" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "nultegn bevaret i strengkonstant" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "manglende afsluttende '%c'-tegn" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(dette rapporteres kun en enkelt gang per inddatafil)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "flerlinjers kommentar" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "symbol %s kan ikke staves" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "makroen \"%s\" bliver ikke brugt" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "ugyldig indbygget makro \"%s\"" + +#: macro.c:160 +#, fuzzy +#| msgid "could not determine date and time" +msgid "could not determine file timestamp" +msgstr "kunne ikke bestemme dato og tid" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "kunne ikke bestemme dato og tid" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "indsttelse af \"%s\" og \"%s\" giver ikke et gyldigt prprocessorsymbol" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 pkrver at restparametrene skal bruges" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "makroen \"%s\" krver %u parametre, men modtager kun %u" + +#: macro.c:575 +#, 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:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "uafsluttet parameterliste ved kald af makroen \"%s\"" + +#: macro.c:866 +#, 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:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "makroparameternavnet \"%s\" optrder mere end n gang" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" m ikke optrde i makroparameterliste" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "makroparametre skal vre komma-adskilte" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "parameternavn mangler" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "anonyme makroer med vilkrligt antal parametre blev introduceret i C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C tillader ikke navngivne makroer med vilkrligt antal parametre" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "manglende ')' i makroparameterliste" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' m ikke optrde ved nogen af enderne i en makrokrop" + +#: macro.c:1694 +#, fuzzy +#| msgid "ISO C requires whitespace after the macro name" +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C pkrver mellemrum efter makronavnet" + +#: macro.c:1718 +#, fuzzy +#| msgid "ISO C requires whitespace after the macro name" +msgid "missing whitespace after the macro name" +msgstr "ISO C pkrver mellemrum efter makronavnet" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' efterflges ikke af en makroparameter" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" omdefineret" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "den foregende definition er her" + +#: macro.c:1977 +#, 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:2004 +#, 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:891 +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 optrde i makroparameterliste" + +#~ msgid "`%s' attribute directive ignored" +#~ msgstr "egenskabsdirektivet '%s' ignoreret" + +#~ msgid "wrong number of arguments specified for `%s' attribute" +#~ msgstr "forkert antal parametre angivet til egenskaben '%s'" + +#~ msgid "`%s' attribute does not apply to types" +#~ msgstr "egenskaben '%s' kan ikke anvendes p typer" + +#~ msgid "`%s' attribute only applies to function types" +#~ msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper" + +#~ msgid "`%s' attribute ignored" +#~ msgstr "egenskaben '%s' ignoreret" + +#~ msgid "offset outside bounds of constant string" +#~ msgstr "forskydning udenfor grnserne af konstant streng" + +#~ msgid "second arg to `__builtin_prefetch' must be a constant" +#~ msgstr "den anden parameter til '__builtin_prefetch' skal vre en konstant" + +#~ msgid "invalid second arg to __builtin_prefetch; using zero" +#~ msgstr "ugyldig anden parameter til '__builtin_prefetch'; benytter nul" + +#~ msgid "third arg to `__builtin_prefetch' must be a constant" +#~ msgstr "en tredje parameter til '__builtin_prefetch' skal vre en konstant" + +#~ msgid "invalid third arg to __builtin_prefetch; using zero" +#~ msgstr "ugyldig tredje parameter til '__builtin_prefetch'; benytter nul" + +#~ msgid "__builtin_saveregs not supported by this target" +#~ msgstr "__builtin_saveregs understttes ikke af denne mlarkitektur" + +#~ msgid "argument of `__builtin_args_info' must be constant" +#~ msgstr "parameteren til '__builtin_args_info' skal vre konstant" + +#~ msgid "argument of `__builtin_args_info' out of range" +#~ msgstr "parameteren til '__builtin_args_info' er uden for det gyldige interval" + +#~ msgid "missing argument in `__builtin_args_info'" +#~ msgstr "manglende parameter i '__builtin_args_info'" + +#~ msgid "`va_start' used in function with fixed args" +#~ msgstr "`va_start' benyttet i en funktion med fast antal parametre" + +#~ msgid "second parameter of `va_start' not last named argument" +#~ msgstr "den anden parameter til 'va_start' er ikke den sidste navngivne parameter" + +#~ msgid "`__builtin_next_arg' called without an argument" +#~ msgstr "`__builtin_next_arg' kaldt uden en parameter" + +#~ msgid "too many arguments to function `va_start'" +#~ msgstr "for mange parametre til funktionen 'va_start'" + +#~ msgid "first argument to `va_arg' not of type `va_list'" +#~ msgstr "den frste parameter til 'va_arg' er ikke af typen 'va_list'" + +#~ msgid "`%s' is promoted to `%s' when passed through `...'" +#~ msgstr "'%s' forfremmes til '%s' ved overbringelse gennem '...'" + +#~ msgid "(so you should pass `%s' not `%s' to `va_arg')" +#~ msgstr "(s du skal overbring '%s' ikke '%s' til 'va_arg')" + +#~ msgid "invalid arg to `__builtin_frame_address'" +#~ msgstr "ugyldig parameter til '__builtin_frame_address'" + +#~ msgid "invalid arg to `__builtin_return_address'" +#~ msgstr "ugyldig parameter til '__builtin_return_address'" + +#~ msgid "unsupported arg to `__builtin_frame_address'" +#~ msgstr "ikke-understttet parameter til '__builtin_frame_address'" + +#~ msgid "unsupported arg to `__builtin_return_address'" +#~ msgstr "ikke-understttet parameter til '__builtin_return_address'" + +#~ msgid "second arg to `__builtin_expect' must be a constant" +#~ msgstr "den anden parameter til '__builtin_expect' skal vre en konstant" + +#~ msgid "__builtin_longjmp second argument must be 1" +#~ msgstr "den anden paramter til '__builtin_longjmp' skal vre 1" + +#~ msgid "built-in function `%s' not currently supported" +#~ msgstr "den indbyggede funktion '%s' understttes i jeblikket ikke" + +#~ msgid "target format does not support infinity" +#~ msgstr "mlprocessoren understtter ikke uendelig" + +#~ msgid "`%s' is not defined outside of function scope" +#~ msgstr "'%s' er ikke defineret uden for funktionsvirkefelt" + +#~ msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" +#~ msgstr "strenglngden '%d' er strre end den lngde p '%d' som ISO C%d-oversttere er plagt at understtte" + +#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" +#~ msgstr "sammenstning af strengkonstanter med __FUNCTION__ er forldet" + +#~ msgid "overflow in constant expression" +#~ msgstr "overlb i konstant udtryk" + +#~ msgid "integer overflow in expression" +#~ msgstr "heltalsoverlb i udtryk" + +#~ msgid "floating point overflow in expression" +#~ msgstr "kommatalsoverlb i udtryk" + +#~ msgid "vector overflow in expression" +#~ msgstr "vektoroverlb i udtryk" + +#~ msgid "large integer implicitly truncated to unsigned type" +#~ msgstr "stort heltal forkortes underforstet til type uden fortegn" + +#~ msgid "negative integer implicitly converted to unsigned type" +#~ msgstr "negativt heltal forkortes underforstet til type uden fortegn" + +#~ msgid "overflow in implicit constant conversion" +#~ msgstr "overlb i underforstet konstant konvertering" + +#~ msgid "operation on `%s' may be undefined" +#~ msgstr "brug af '%s' er muligvis ikke defineret" + +#~ msgid "expression statement has incomplete type" +#~ msgstr "udtrykket er af en ufuldstndig type" + +#~ msgid "case label does not reduce to an integer constant" +#~ msgstr "case-etiketten kan ikke reduceres til en heltalskonstant" + +#~ msgid "invalid truth-value expression" +#~ msgstr "ugyldigt sandhedsvrdiudtryk" + +#~ msgid "invalid operands to binary %s" +#~ msgstr "ugyldige operander til binr %s" + +#~ msgid "comparison is always false due to limited range of data type" +#~ msgstr "sammenligning er altid falsk p grund af den begrnsede rkkevidde af datatypen" + +#~ msgid "comparison is always true due to limited range of data type" +#~ msgstr "sammenligning er altid sand p grund af den begrnsede rkkevidde af datatypen" + +#~ msgid "comparison of unsigned expression >= 0 is always true" +#~ msgstr "sammenligning med unsigned udtryk >= 0 er altid sand" + +#~ msgid "comparison of unsigned expression < 0 is always false" +#~ msgstr "sammenligning med unsigned udtryk < 0 er altid falsk" + +#~ msgid "pointer of type `void *' used in arithmetic" +#~ msgstr "henvisning af typen 'void *' benyttet i udregning" + +#~ msgid "pointer to a function used in arithmetic" +#~ msgstr "henvisning til en funktion benyttet i udregning" + +#~ msgid "pointer to member function used in arithmetic" +#~ msgstr "henvisning til en medlemsfunktion benyttet i udregning" + +#~ msgid "pointer to a member used in arithmetic" +#~ msgstr "henvisning til et medlem benyttet i udregning" + +#~ msgid "struct type value used where scalar is required" +#~ msgstr "vrdi af struct-type angivet hvor skalar er pkrvet" + +#~ msgid "union type value used where scalar is required" +#~ msgstr "vrdi af union-type angivet hvor skalar er pkrvet" + +#~ msgid "array type value used where scalar is required" +#~ msgstr "vrdi af tabeltype angivet hvor skalar er pkrvet" + +#~ msgid "suggest parentheses around assignment used as truth value" +#~ msgstr "foreslr paranteser omkring tildeling der er benyttet som boolsk vrdi" + +#~ msgid "invalid use of `restrict'" +#~ msgstr "ugyldig brug af 'restrict'" + +#~ msgid "invalid application of `sizeof' to a function type" +#~ msgstr "ugyldig anvendelse af 'sizeof' p en funktionstype" + +#~ msgid "invalid application of `%s' to a void type" +#~ msgstr "ugyldig anvendelse af '%s' p en void-type" + +#~ msgid "invalid application of `%s' to an incomplete type" +#~ msgstr "ugyldig anvendelse af '%s' p en ufuldstndig type" + +#~ msgid "`__alignof' applied to a bit-field" +#~ msgstr "'__alignof' benyttet p et bitfelt" + +#~ msgid "cannot disable built-in function `%s'" +#~ msgstr "kan ikke deaktivere den indbyggede funktion '%s'" + +#~ msgid "too few arguments to function `%s'" +#~ msgstr "for f parametre til funktionen '%s'" + +#~ msgid "too many arguments to function `%s'" +#~ msgstr "for mange parametre til funktionen '%s'" + +#~ msgid "non-floating-point argument to function `%s'" +#~ msgstr "parameter der ikke er et kommatal, til funktionen '%s'" + +#~ msgid "pointers are not permitted as case values" +#~ msgstr "henvisningsvariabler er ikke tilladt som case-vrdier" + +#~ msgid "ISO C++ forbids range expressions in switch statements" +#~ msgstr "ISO C++ forbyder intervaludtryk i switch-stninger" + +#~ msgid "ISO C forbids range expressions in switch statements" +#~ msgstr "ISO C forbyder intervaludtryk i switch-stninger" + +#~ msgid "empty range specified" +#~ msgstr "tomt interval angivet" + +#~ msgid "duplicate (or overlapping) case value" +#~ msgstr "case-vrdi optrder mere end n gang (mske pga. intervalsammenfald)" + +#~ msgid "this is the first entry overlapping that value" +#~ msgstr "dette er det frste punkt som falder sammen med den vrdi" + +#~ msgid "duplicate case value" +#~ msgstr "case-vrdi optrder mere end n gang" + +#~ msgid "previously used here" +#~ msgstr "tidligere benyttet her" + +#~ msgid "multiple default labels in one switch" +#~ msgstr "flere default-etiketter i n switch-konstruktion" + +#~ msgid "this is the first default label" +#~ msgstr "dette er den frste default-etiket" + +#~ msgid "ISO C++ forbids taking the address of a label" +#~ msgstr "ISO C++ forbyder at tage adressen af en etiket" + +#~ msgid "ISO C forbids taking the address of a label" +#~ msgstr "ISO C forbyder at tage adressen af en etiket" + +#~ msgid "declaration of `%s' shadows %s" +#~ msgstr "erklring af '%s' skygger for '%s'" + +#~ msgid "unknown machine mode `%s'" +#~ msgstr "ukendt maskintilstand '%s'" + +#~ msgid "no data type for mode `%s'" +#~ msgstr "ingen datatype til tilstanden '%s'" + +#~ msgid "unable to emulate '%s'" +#~ msgstr "kunne ikke emulere '%s'" + +#~ msgid "section attribute cannot be specified for local variables" +#~ msgstr "sektionsegenskaben kan ikke angives for lokale variabler" + +#~ msgid "section of `%s' conflicts with previous declaration" +#~ msgstr "sektionen '%s' strider mod tidligere erklring" + +#~ msgid "section attribute not allowed for `%s'" +#~ msgstr "sektionsegenskaben er ikke tilladt for '%s'" + +#~ msgid "section attributes are not supported for this target" +#~ msgstr "sektionsegenskaber understttes ikke p denne mlarkitektur" + +#~ msgid "requested alignment is not a constant" +#~ msgstr "angivet justering er ikke en konstant" + +#~ msgid "requested alignment is not a power of 2" +#~ msgstr "angivet justering er ikke en potens af 2" + +#~ msgid "requested alignment is too large" +#~ msgstr "angivet justering er for stor" + +#~ msgid "alignment may not be specified for `%s'" +#~ msgstr "justering m ikke angives for '%s'" + +#~ msgid "`%s' defined both normally and as an alias" +#~ msgstr "'%s' er defineret bde normalt og som et alias" + +#~ msgid "alias arg not a string" +#~ msgstr "aliasparameter er ikke en streng" + +#~ msgid "visibility arg not a string" +#~ msgstr "synlighedsparameter er ikke en streng" + +#~ msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" +#~ msgstr "synlighedsparameter skal vre en af \"default\", \"hidden\", \"protected\" eller \"internal\"" + +#~ msgid "tls_model arg not a string" +#~ msgstr "tls_model-parameter er ikke en streng" + +#~ msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" +#~ msgstr "tls_model-parameter skal vre en af \"local-exec\", \"initial-exec\", \"local-dynamic\" eller \"global-dynamic\"" + +#~ msgid "`%s' attribute applies only to functions" +#~ msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner" + +#~ msgid "can't set `%s' attribute after definition" +#~ msgstr "kan ikke angive '%s'-egenskaben efter definitionen" + +#~ msgid "`%s' attribute ignored for `%s'" +#~ msgstr "'%s'-egenskaben ignoreret for '%s'" + +#~ msgid "invalid vector type for attribute `%s'" +#~ msgstr "ugyldig vektortype for egenskaben '%s'" + +#~ msgid "no vector mode with the size and type specified could be found" +#~ msgstr "ingen vektortilstand med den angivne strrelse og typen kunne findes" + +#~ msgid "nonnull attribute without arguments on a non-prototype" +#~ msgstr "ikke-nul egenskab uden parametre til en ikke-prototype" + +#~ msgid "nonnull argument has invalid operand number (arg %lu)" +#~ msgstr "ikke-nul parameter har ugyldig operandnummer (parameter %lu)" + +#~ msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" +#~ msgstr "ikke-nul parameter med operandnummer uden for det gyldig interval (parameter %lu, operand %lu)" + +#~ msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" +#~ msgstr "ikke-nul parameter refererer til ikke-henvisningsoperand (parameter %lu, operand %lu)" + +#~ msgid "null argument where non-null required (arg %lu)" +#~ msgstr "nulparameter hvor ikke-nul er pkrvet (parameter %lu)" + +#~ msgid "void value not ignored as it ought to be" +#~ msgstr "tom vrdi er ikke ignoreret som den burde vre" + +#~ msgid "conversion to non-scalar type requested" +#~ msgstr "konvertering til ikke-skalartype udbedt" + +#~ msgid "array `%s' assumed to have one element" +#~ msgstr "tabellen '%s' antages kun at have t element" + +#~ msgid "`struct %s' incomplete in scope ending here" +#~ msgstr "'struct %s' er ufuldstndig ved virkefeltets afslutning her" + +#~ msgid "`union %s' incomplete in scope ending here" +#~ msgstr "'union %s' er ufuldstndig ved virkefeltets afslutning her" + +#~ msgid "`enum %s' incomplete in scope ending here" +#~ msgstr "'enum %s' er ufuldstndig ved virkefeltets afslutning her" + +#~ msgid "label `%s' defined but not used" +#~ msgstr "etiketten '%s' er defineret, men ikke benyttet" + +#~ msgid "function `%s' redeclared as inline" +#~ msgstr "funktionen '%s' omerklret som inline" + +#~ msgid "previous declaration of function `%s' with attribute noinline" +#~ msgstr "tidligere erklring af funktionen '%s' med egenskaben noinline" + +#~ msgid "function `%s' redeclared with attribute noinline" +#~ msgstr "funktionen '%s' omerklret med egenskaben noinline" + +#~ msgid "previous declaration of function `%s' was inline" +#~ msgstr "tidligere erklring af funktionen '%s' var inline" + +# shadowing betyder at en funktion har samme navn og dermed skjuler en anden +#~ msgid "shadowing built-in function `%s'" +#~ msgstr "skygger for den indbyggede funktion '%s'" + +#~ msgid "shadowing library function `%s'" +#~ msgstr "skygger for biblioteksfunktionen '%s'" + +#~ msgid "library function `%s' declared as non-function" +#~ msgstr "biblioteksfunktionen '%s' er erklret som noget der ikke er en funktion" + +#~ msgid "built-in function `%s' declared as non-function" +#~ msgstr "den indbyggede funktion '%s' er erklret som noget der ikke er en funktion" + +#~ msgid "`%s' redeclared as different kind of symbol" +#~ msgstr "'%s' omerklret som en anden form for symbol" + +#~ msgid "previous declaration of `%s'" +#~ msgstr "'%s' er tidligere erklret" + +#~ msgid "conflicting types for built-in function `%s'" +#~ msgstr "modstridende typer for den indbyggede funktion '%s'" + +#~ msgid "conflicting types for `%s'" +#~ msgstr "modstridende typer for '%s'" + +#~ msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration" +#~ msgstr "en parameterliste med '...' passer ikke til en erklring med en tom parameterliste" + +#~ msgid "an argument type that has a default promotion can't match an empty parameter name list declaration" +#~ msgstr "en parametertype med automatisk forfremmelse passer ikke til en erklring med en tom parameterliste" + +#~ msgid "thread-local declaration of `%s' follows non thread-local declaration" +#~ msgstr "trdlokal erklring af '%s' flger ikke-trdlokal erklring" + +#~ msgid "non thread-local declaration of `%s' follows thread-local declaration" +#~ msgstr "ikke-trdlokal erklring af '%s' flger trdlokal erklring" + +#~ msgid "redefinition of `%s'" +#~ msgstr "omdefinering af '%s'" + +#~ msgid "redeclaration of `%s'" +#~ msgstr "omerklring af '%s'" + +#~ msgid "conflicting declarations of `%s'" +#~ msgstr "modstridende erklringer af '%s'" + +#~ msgid "prototype for `%s' follows" +#~ msgstr "prototypen for '%s' flger" + +#~ msgid "non-prototype definition here" +#~ msgstr "definition uden prototype her" + +#~ msgid "prototype for `%s' follows and number of arguments doesn't match" +#~ msgstr "prototypen for '%s' flger og antallet af parametre passer ikke" + +#~ msgid "prototype for `%s' follows and argument %d doesn't match" +#~ msgstr "prototypen for '%s' flger og den %d. parameter passer ikke" + +#~ msgid "`%s' declared inline after being called" +#~ msgstr "'%s' er erklret inline efter at vre blevet kaldt" + +#~ msgid "`%s' declared inline after its definition" +#~ msgstr "'%s' er erklret inline efter dens definition" + +# anden 'declaration' er underforstet i engelsk original +#~ msgid "static declaration for `%s' follows non-static" +#~ msgstr "static-erklring af '%s' flger erklring uden static" + +#~ msgid "non-static declaration for `%s' follows static" +#~ msgstr "erklring uden static af '%s' flger static-erklring" + +#~ msgid "const declaration for `%s' follows non-const" +#~ msgstr "const-erklring af '%s' flger ikke-konstant erklring" + +#~ msgid "type qualifiers for `%s' conflict with previous decl" +#~ msgstr "typemodifikationer for '%s' strider mod tidligere erklring" + +#~ msgid "redundant redeclaration of `%s' in same scope" +#~ msgstr "overfldig omerklring af '%s' i samme virkefelt" + +#~ msgid "declaration of `%s' shadows a parameter" +#~ msgstr "erklring af '%s' skygger for en parameter" + +#~ msgid "declaration of `%s' shadows a symbol from the parameter list" +#~ msgstr "erklring af '%s' skygger for et symbol fra parameterlisten" + +#~ msgid "a parameter" +#~ msgstr "en parameter" + +#~ msgid "a previous local" +#~ msgstr "en tidligere lokal variabel" + +#~ msgid "a global declaration" +#~ msgstr "en global erklring" + +#~ msgid "nested extern declaration of `%s'" +#~ msgstr "indlejret extern-erklring af '%s'" + +#~ msgid "`%s' used prior to declaration" +#~ msgstr "'%s' benyttes fr erklringen" + +#~ msgid "`%s' was declared implicitly `extern' and later `static'" +#~ msgstr "'%s' blev underforstet erklret 'extern' og derefter 'static'" + +#~ msgid "type mismatch with previous external decl" +#~ msgstr "typen passer ikke med tidligere ekstern erklring" + +#~ msgid "previous external decl of `%s'" +#~ msgstr "tidligere ekstern erklring af '%s'" + +#~ msgid "type mismatch with previous implicit declaration" +#~ msgstr "typen passer ikke med tidligere underforstet erklring" + +#~ msgid "previous implicit declaration of `%s'" +#~ msgstr "tidligere underforstet erklring af '%s'" + +#~ msgid "`%s' was previously implicitly declared to return `int'" +#~ msgstr "'%s' blev tidligere underforstet erklret til at returnere 'int'" + +#~ msgid "`%s' was declared `extern' and later `static'" +#~ msgstr "'%s' blev erklret 'extern' og derefter 'static'" + +#~ msgid "extern declaration of `%s' doesn't match global one" +#~ msgstr "extern-erklring af '%s' passer ikke med den globale" + +#~ msgid "`%s' locally external but globally static" +#~ msgstr "'%s' er lokalt ekstern, men globalt statisk" + +#~ msgid "function `%s' was previously declared within a block" +#~ msgstr "funktionen '%s' blev tidligere erklret inden for en blok" + +#~ msgid "implicit declaration of function `%s'" +#~ msgstr "underforstet erklring af funktionen '%s'" + +#~ msgid "label %s referenced outside of any function" +#~ msgstr "der er blevet henvist til etiketten '%s' uden for en funktion" + +#~ msgid "duplicate label declaration `%s'" +#~ msgstr "etiketten '%s' er blevet erklret mere end n gang" + +#~ msgid "this is a previous declaration" +#~ msgstr "dette er en tidligere erklring" + +#~ msgid "unnamed struct/union that defines no instances" +#~ msgstr "unavngiven struct/union som ikke definerer nogen instanser" + +#~ msgid "useless keyword or type name in empty declaration" +#~ msgstr "ubrugeligt reserveret ord eller typenavn i tom erklring" + +#~ msgid "two types specified in one empty declaration" +#~ msgstr "to typer angivet i n tom erklring" + +#~ msgid "empty declaration" +#~ msgstr "tom erklring" + +#~ msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" +#~ msgstr "ISO C90 understtter ikke 'static' eller typemodifikationer i parametertabelerklringer" + +#~ msgid "ISO C90 does not support `[*]' array declarators" +#~ msgstr "ISO C90 understtter ikke tabelerklringer med '[*]'" + +#~ msgid "GCC does not yet properly implement `[*]' array declarators" +#~ msgstr "GCC understtter endnu ikke ordentligt tabelerklringer med '[*]'" + +#~ msgid "static or type qualifiers in abstract declarator" +#~ msgstr "static eller typemodifikationer i abstrakt erklring" + +#~ msgid "`%s' is usually a function" +#~ msgstr "'%s' er sdvanligvis en funktion" + +# init dkker over vrditildeling her - samme for de nste mange +#~ msgid "typedef `%s' is initialized (use __typeof__ instead)" +#~ msgstr "typedef '%s' bliver tildelt en vrdi (benyt __typeof__ i stedet)" + +#~ msgid "function `%s' is initialized like a variable" +#~ msgstr "funktionen '%s' bliver tildelt en startvrdi som en variabel" + +#~ msgid "parameter `%s' is initialized" +#~ msgstr "parameteren '%s' bliver tildelt en startvrdi" + +#~ msgid "variable-sized object may not be initialized" +#~ msgstr "et objekt af variabel strrelse m ikke tildeles en startvrdi" + +#~ msgid "variable `%s' has initializer but incomplete type" +#~ msgstr "variablen '%s' bliver tildelt en startvrdi, men er af en ufuldstndig type" + +#~ msgid "elements of array `%s' have incomplete type" +#~ msgstr "elementer i tabellen '%s' er af en ufuldstndig type" + +#~ msgid "declaration of `%s' has `extern' and is initialized" +#~ msgstr "erklringen af '%s' indeholder 'extern' og variablen bliver tildelt en startvrdi" + +#~ msgid "inline function `%s' given attribute noinline" +#~ msgstr "inline funktion '%s' givet egenskaben noinline" + +#~ msgid "initializer fails to determine size of `%s'" +#~ msgstr "startvrdien giver ikke strrelsen af '%s'" + +#~ msgid "array size missing in `%s'" +#~ msgstr "tabelstrrelsen mangler i '%s'" + +#~ msgid "zero or negative size array `%s'" +#~ msgstr "nul eller negativ strrelse for tabellen '%s'" + +#~ msgid "storage size of `%s' isn't known" +#~ msgstr "lagringsstrrelsen af '%s' er ikke kendt" + +#~ msgid "storage size of `%s' isn't constant" +#~ msgstr "lagringsstrrelsen af '%s' er ikke konstant" + +#~ msgid "ignoring asm-specifier for non-static local variable `%s'" +#~ msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'" + +#~ msgid "ISO C forbids parameter `%s' shadowing typedef" +#~ msgstr "ISO C forbyder at parameteren '%s' skygger for typedef" + +#~ msgid "`long long long' is too long for GCC" +#~ msgstr "'long long long' er for langt for GCC" + +#~ msgid "ISO C90 does not support `long long'" +#~ msgstr "ISO C90 understtter ikke 'long long'" + +#~ msgid "duplicate `%s'" +#~ msgstr "'%s' optrder mere end n gang" + +#~ msgid "`__thread' before `extern'" +#~ msgstr "'__thread' fr 'extern'" + +#~ msgid "`__thread' before `static'" +#~ msgstr "'__thread' fr 'static'" + +#~ msgid "two or more data types in declaration of `%s'" +#~ msgstr "mere end n datatype i erklringen af '%s'" + +#~ msgid "`%s' fails to be a typedef or built in type" +#~ msgstr "'%s' er hverken en typedef eller en indbygget type" + +#~ msgid "type defaults to `int' in declaration of `%s'" +#~ msgstr "typen antages at vre 'int' i erklringen af '%s'" + +#~ msgid "both long and short specified for `%s'" +#~ msgstr "bde long og short er angivet for '%s'" + +#~ msgid "long or short specified with char for `%s'" +#~ msgstr "long eller short angivet samtidig med char for '%s'" + +#~ msgid "long or short specified with floating type for `%s'" +#~ msgstr "long eller short angivet samtidig med en kommatalstype for '%s'" + +#~ msgid "the only valid combination is `long double'" +#~ msgstr "den eneste gyldige kombination er 'long double'" + +#~ msgid "both signed and unsigned specified for `%s'" +#~ msgstr "bde signed og unsigned er angivet for '%s'" + +#~ msgid "long, short, signed or unsigned invalid for `%s'" +#~ msgstr "long, short, signed og unsigned er ugyldige for '%s'" + +#~ msgid "long, short, signed or unsigned used invalidly for `%s'" +#~ msgstr "long, short, signed og unsigned er benyttet p ugyldig vis for '%s'" + +#~ msgid "complex invalid for `%s'" +#~ msgstr "complex ugyldig for '%s'" + +#~ msgid "ISO C90 does not support complex types" +#~ msgstr "ISO C90 understtter ikke komplekse typer" + +#~ msgid "ISO C does not support plain `complex' meaning `double complex'" +#~ msgstr "ISO C understtter ikke at blot 'complex' betyder 'double complex'" + +#~ msgid "ISO C does not support complex integer types" +#~ msgstr "ISO C understtter ikke komplekse heltalstyper" + +#~ msgid "duplicate `const'" +#~ msgstr "'const' optrder mere end n gang" + +#~ msgid "duplicate `restrict'" +#~ msgstr "'restrict' optrder mere end n gang" + +#~ msgid "duplicate `volatile'" +#~ msgstr "'volatile' optrder mere end n gang" + +#~ msgid "multiple storage classes in declaration of `%s'" +#~ msgstr "flere lagringsklasser optrder i erklringen af '%s'" + +#~ msgid "function definition declared `auto'" +#~ msgstr "'auto' er phftet funktionsdefinitionen" + +#~ msgid "function definition declared `register'" +#~ msgstr "'register' er phftet funktionsdefinitionen" + +#~ msgid "function definition declared `typedef'" +#~ msgstr "'typedef' er phftet funktionsdefinitionen" + +#~ msgid "function definition declared `__thread'" +#~ msgstr "'__thread' er phftet funktionsdefinitionen" + +#~ msgid "storage class specified for structure field `%s'" +#~ msgstr "lagringsklasse angivet for strukturfelt '%s'" + +#~ msgid "storage class specified for parameter `%s'" +#~ msgstr "lagringsklasse angivet for parameter '%s'" + +#~ msgid "storage class specified for typename" +#~ msgstr "lagringsklasse angivet for typenavn" + +#~ msgid "`%s' initialized and declared `extern'" +#~ msgstr "'%s' bliver tildelt en startvrdi og er samtidig erklret 'extern'" + +#~ msgid "`%s' has both `extern' and initializer" +#~ msgstr "'%s' er erklret 'extern', men bliver tildelt en startvrdi" + +#~ msgid "top-level declaration of `%s' specifies `auto'" +#~ msgstr "erklring af '%s' p verste niveau angiver 'auto'" + +#~ msgid "nested function `%s' declared `extern'" +#~ msgstr "indlejret funktion '%s' er erklret 'extern'" + +#~ msgid "function-scope `%s' implicitly auto and declared `__thread'" +#~ msgstr "'%s' i funktionsvirkefelt underforstet auto og erklret '__thread'" + +#~ msgid "static or type qualifiers in non-parameter array declarator" +#~ msgstr "static eller typemodifikationer i ikke-parametertabelerklring" + +#~ msgid "declaration of `%s' as array of voids" +#~ msgstr "'%s' erklret som en tabel af void" + +#~ msgid "declaration of `%s' as array of functions" +#~ msgstr "'%s' erklret som en tabel af funktioner" + +#~ msgid "invalid use of structure with flexible array member" +#~ msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem" + +#~ msgid "size of array `%s' has non-integer type" +#~ msgstr "strrelsen af tabellen '%s' er ikke af en heltalstype" + +#~ msgid "ISO C forbids zero-size array `%s'" +#~ msgstr "ISO C forbyder tabellen '%s' med strrelsen nul" + +#~ msgid "size of array `%s' is negative" +#~ msgstr "strrelsen af tabellen '%s' er negativ" + +#~ msgid "ISO C90 forbids array `%s' whose size can't be evaluated" +#~ msgstr "ISO C90 forbyder tabellen '%s' hvis strrelse ikke kan bestemmes" + +#~ msgid "ISO C90 forbids variable-size array `%s'" +#~ msgstr "ISO C90 forbyder tabellen '%s' med variabel strrelse" + +#~ msgid "size of array `%s' is too large" +#~ msgstr "strrelsen af tabellen '%s' er for stor" + +#~ msgid "ISO C90 does not support flexible array members" +#~ msgstr "ISO C90 understtter ikke fleksible tabelmedlemmer" + +#~ msgid "array type has incomplete element type" +#~ msgstr "tabeltypen er af en ufuldstndig type" + +#~ msgid "ISO C forbids const or volatile function types" +#~ msgstr "ISO C forbyder const eller volatile funktionstyper" + +#~ msgid "`%s' declared as function returning a function" +#~ msgstr "'%s' er erklret som en funktion der returnerer en funktion" + +#~ msgid "`%s' declared as function returning an array" +#~ msgstr "'%s' er erklret som en funktion der returnerer en tabel" + +#~ msgid "ISO C forbids qualified void function return type" +#~ msgstr "ISO C forbyder void funktionsreturtype med modifikationer" + +#~ msgid "type qualifiers ignored on function return type" +#~ msgstr "typemodifikationer ignoreret i funktionsreturtypen" + +#~ msgid "ISO C forbids qualified function types" +#~ msgstr "ISO C forbyder funktionsreturtype med modifikationer" + +#~ msgid "invalid type modifier within pointer declarator" +#~ msgstr "ugyldig typemodifikation i erklring af henvisning" + +#~ msgid "variable or field `%s' declared void" +#~ msgstr "variabel eller felt '%s' erklret void" + +#~ msgid "attributes in parameter array declarator ignored" +#~ msgstr "egenskaber i parametertabelerklring ignoreret" + +#~ msgid "invalid type modifier within array declarator" +#~ msgstr "ugyldig typemodifikation i tabelerklring" + +#~ msgid "field `%s' declared as a function" +#~ msgstr "feltet '%s' er erklret som en funktion" + +#~ msgid "field `%s' has incomplete type" +#~ msgstr "feltet '%s' er af en ufuldstndig type" + +#~ msgid "invalid storage class for function `%s'" +#~ msgstr "ugyldig lagringsklasse for funktion '%s'" + +#~ msgid "`noreturn' function returns non-void value" +#~ msgstr "en funktion uden returtype returnerer en ikke-tom vrdi" + +# at overstte inline med et udsagnsord her bliver vist for tvetydigt +#~ msgid "cannot inline function `main'" +#~ msgstr "funktionen 'main' kan ikke vre inline" + +#~ msgid "variable `%s' declared `inline'" +#~ msgstr "variablen '%s' er erklret 'inline'" + +#~ msgid "thread-local storage not supported for this target" +#~ msgstr "trdlokal lagring understttes ikke p mlarkitekturen" + +#~ msgid "function declaration isn't a prototype" +#~ msgstr "funktionserklringen er ikke en prototype" + +#~ msgid "parameter names (without types) in function declaration" +#~ msgstr "parameternavne (uden typer) i funktionserklringen" + +#~ msgid "parameter `%s' has incomplete type" +#~ msgstr "parameteren '%s' er af en ufuldstndig type" + +#~ msgid "parameter has incomplete type" +#~ msgstr "parameteren er af en ufuldstndig type" + +# engelsk original uprcis (hvordan kan man henvise til en type?) +#~ msgid "parameter `%s' points to incomplete type" +#~ msgstr "parameteren '%s' er en henvisning til en ufuldstndig type" + +#~ msgid "parameter points to incomplete type" +#~ msgstr "parameteren er en henvisning til en ufuldstndig type" + +#~ msgid "parameter `%s' has just a forward declaration" +#~ msgstr "parameteren '%s' har kun en forhndserklring" + +#~ msgid "`void' in parameter list must be the entire list" +#~ msgstr "'void' i en parameterliste skal udgre hele listen" + +#~ msgid "`struct %s' declared inside parameter list" +#~ msgstr "'struct %s' erklret inde i en parameterliste" + +#~ msgid "`union %s' declared inside parameter list" +#~ msgstr "'union %s' erklret inde i en parameterliste" + +#~ msgid "`enum %s' declared inside parameter list" +#~ msgstr "'enum %s' erklret inde i en parameterliste" + +#~ msgid "anonymous struct declared inside parameter list" +#~ msgstr "anonym struct erklret inde i en parameterliste" + +#~ msgid "anonymous union declared inside parameter list" +#~ msgstr "anonym union erklret inde i en parameterliste" + +#~ msgid "anonymous enum declared inside parameter list" +#~ msgstr "anonym enum erklret inde i en parameterliste" + +#~ msgid "its scope is only this definition or declaration, which is probably not what you want" +#~ msgstr "dens virkefelt er kun denne definition eller erklring hvilket sandsynligvis ikke er hvad du nsker." + +#~ msgid "redefinition of `union %s'" +#~ msgstr "omdefinering af 'union %s'" + +#~ msgid "redefinition of `struct %s'" +#~ msgstr "omdefinering af 'struct %s'" + +#~ msgid "declaration does not declare anything" +#~ msgstr "erklring erklrer ikke noget" + +# engelsk original forkortet +#~ msgid "%s defined inside parms" +#~ msgstr "%s defineret inden i parameterliste" + +#~ msgid "union" +#~ msgstr "union" + +#~ msgid "structure" +#~ msgstr "struktur" + +#~ msgid "%s has no %s" +#~ msgstr "%s har ingen %s" + +#~ msgid "struct" +#~ msgstr "struct" + +#~ msgid "named members" +#~ msgstr "navngivne medlemmer" + +#~ msgid "members" +#~ msgstr "medlemmer" + +#~ msgid "nested redefinition of `%s'" +#~ msgstr "indlejret omdefinering af '%s'" + +#~ msgid "bit-field `%s' width not an integer constant" +#~ msgstr "bredden af bitfeltet '%s' er ikke en heltalskonstant" + +#~ msgid "bit-field `%s' has invalid type" +#~ msgstr "bitfeltet '%s' er af en ufuldstndig type" + +#~ msgid "bit-field `%s' type invalid in ISO C" +#~ msgstr "typen af bitfeltet '%s' er ugyldig i ISO C" + +#~ msgid "negative width in bit-field `%s'" +#~ msgstr "negativ bredde i bitfeltet '%s'" + +#~ msgid "width of `%s' exceeds its type" +#~ msgstr "bredden af '%s' overstiger typen" + +#~ msgid "zero width for bit-field `%s'" +#~ msgstr "en bredde p nul for bitfeltet '%s'" + +# RETMIG: find p et eller andet med prcisionen +#~ msgid "`%s' is narrower than values of its type" +#~ msgstr "'%s' er smallere end vrdier af dens type" + +#~ msgid "flexible array member in union" +#~ msgstr "fleksibelt tabelmedlem i union" + +#~ msgid "flexible array member not at end of struct" +#~ msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur" + +#~ msgid "flexible array member in otherwise empty struct" +#~ msgstr "fleksibelt tabelmedlem i ellers tom struktur" + +#~ msgid "duplicate member `%s'" +#~ msgstr "medlemmet '%s' optrder mere end n gang" + +#~ msgid "union cannot be made transparent" +#~ msgstr "union kan ikke ikke gres gennemsigtig" + +#~ msgid "redeclaration of `enum %s'" +#~ msgstr "omerklring af 'enum %s'" + +# original forkortet +#~ msgid "enum defined inside parms" +#~ msgstr "enum defineret inden i parameterliste" + +#~ msgid "enumeration values exceed range of largest integer" +#~ msgstr "enum-vrdier overstige rkkevidden af det strste heltal" + +#~ msgid "enumerator value for `%s' not integer constant" +#~ msgstr "enum-vrdien for '%s' er ikke en heltalskonstant" + +#~ msgid "overflow in enumeration values" +#~ msgstr "enum-vrdier for store" + +#~ msgid "ISO C restricts enumerator values to range of `int'" +#~ msgstr "ISO C begrnser enum-vrdier til rkkevidden af 'int'" + +#~ msgid "return type is an incomplete type" +#~ msgstr "returtypen er en ufuldstndig type" + +#~ msgid "return type defaults to `int'" +#~ msgstr "returtypen antages at vre 'int'" + +#~ msgid "no previous prototype for `%s'" +#~ msgstr "ingen tidligere prototype for '%s'" + +#~ msgid "`%s' was used with no prototype before its definition" +#~ msgstr "'%s' blev brugt uden en prototype fr dens definition" + +#~ msgid "no previous declaration for `%s'" +#~ msgstr "ingen tidligere erklring af '%s'" + +#~ msgid "`%s' was used with no declaration before its definition" +#~ msgstr "'%s' blev brugt uden en erklring fr dens definition" + +#~ msgid "return type of `%s' is not `int'" +#~ msgstr "returtypen til '%s' er ikke 'int'" + +#~ msgid "first argument of `%s' should be `int'" +#~ msgstr "den frste parameter til '%s' skal vre 'int'" + +#~ msgid "second argument of `%s' should be `char **'" +#~ msgstr "den anden parameter til '%s' skal vre 'char **'" + +#~ msgid "third argument of `%s' should probably be `char **'" +#~ msgstr "den tredje parameter til '%s' skal sandsynligvis vre 'char **'" + +#~ msgid "`%s' takes only zero or two arguments" +#~ msgstr "'%s' tager kun mod to eller ingen parametre" + +#~ msgid "`%s' is normally a non-static function" +#~ msgstr "'%s' er normalt en ikke-statisk funktion" + +#~ msgid "parm types given both in parmlist and separately" +#~ msgstr "parametertyper angivet bde i parameterliste og separat" + +#~ msgid "parameter name omitted" +#~ msgstr "parameternavn udeladt" + +#~ msgid "parameter `%s' declared void" +#~ msgstr "parameteren '%s' erklret void" + +#~ msgid "parameter name missing from parameter list" +#~ msgstr "parameternavn mangler fra parameterliste" + +#~ msgid "multiple parameters named `%s'" +#~ msgstr "flere parametre ved navn '%s'" + +#~ msgid "type of `%s' defaults to `int'" +#~ msgstr "typen til '%s' antages at vre 'int'" + +#~ msgid "declaration for parameter `%s' but no such parameter" +#~ msgstr "erklring af parameteren '%s', men ingen sdan parameter" + +#~ msgid "number of arguments doesn't match prototype" +#~ msgstr "antallet af parametre passer ikke til prototypen" + +#~ msgid "promoted argument `%s' doesn't match prototype" +#~ msgstr "den forfremmede parameter '%s' passer ikke til prototypen" + +#~ msgid "argument `%s' doesn't match prototype" +#~ msgstr "parameteren '%s' passer ikke til prototypen" + +#~ msgid "no return statement in function returning non-void" +#~ msgstr "ingen return-stning i en funktion der ikke returnerer void" + +#~ msgid "this function may return with or without a value" +#~ msgstr "denne funktion kan returnere med eller uden en vrdi" + +#~ msgid "size of return value of `%s' is %u bytes" +#~ msgstr "strrelsen af returtypen til '%s' er %u byte" + +#~ msgid "size of return value of `%s' is larger than %d bytes" +#~ msgstr "strrelsen af returtypen til '%s' er strre end %d byte" + +#~ msgid "`for' loop initial declaration used outside C99 mode" +#~ msgstr "begyndelseserklring i 'for'-lkke benyttet uden for C99-tilstand" + +#~ msgid "`struct %s' declared in `for' loop initial declaration" +#~ msgstr "'struct %s' erklret i begyndelseserklring i 'for'-lkke" + +#~ msgid "`union %s' declared in `for' loop initial declaration" +#~ msgstr "'union %s' erklret i begyndelseserklring i 'for'-lkke" + +#~ msgid "`enum %s' declared in `for' loop initial declaration" +#~ msgstr "'enum %s' erklret i begyndelseserklring i 'for'-lkke" + +#~ msgid "declaration of non-variable `%s' in `for' loop initial declaration" +#~ msgstr "erklring af '%s' der ikke er en variabel, i begyndelseserklring i 'for'-lkke" + +#~ msgid "declaration of static variable `%s' in `for' loop initial declaration" +#~ msgstr "erklring af '%s' der er en statisk variabel, i begyndelseserklring i 'for'-lkke" + +#~ msgid "declaration of `extern' variable `%s' in `for' loop initial declaration" +#~ msgstr "erklring af '%s' der er en 'extern'-variabel, i begyndelseserklring i 'for'-lkke" + +#~ msgid "format string arg not a string type" +#~ msgstr "formateringsstrengsparameter er ikke af en strengtype" + +#~ msgid "args to be formatted is not '...'" +#~ msgstr "parametrene der skal formateres, er ikke '...'" + +#~ msgid "strftime formats cannot format arguments" +#~ msgstr "strftime-formater kan ikke formatere parametre" + +#~ msgid "format string has invalid operand number" +#~ msgstr "formateringsstrengen har et ugyldigt operandtal" + +#~ msgid "function does not return string type" +#~ msgstr "funktionen returnerer ikke en strengtype" + +#~ msgid "unrecognized format specifier" +#~ msgstr "ukendt formateringsanvisning" + +#~ msgid "`%s' is an unrecognized format function type" +#~ msgstr "'%s' er en ukendt formateringsfunktionstype" + +#~ msgid "format string arg follows the args to be formatted" +#~ msgstr "formateringsstrengsparameter efterflger parametrene der skal formateres" + +# her er der tale om en signalering +#~ msgid "` ' flag" +#~ msgstr "' '-flag" + +#~ msgid "the ` ' printf flag" +#~ msgstr "' '-printf-flaget" + +#~ msgid "`+' flag" +#~ msgstr "'+'-flag" + +#~ msgid "the `+' printf flag" +#~ msgstr "'+'-printf-flaget" + +#~ msgid "`#' flag" +#~ msgstr "'#'-flag" + +#~ msgid "the `#' printf flag" +#~ msgstr "'#'-printf-flaget" + +#~ msgid "`0' flag" +#~ msgstr "'0'-flag" + +#~ msgid "the `0' printf flag" +#~ msgstr "'0'-printf-flaget" + +#~ msgid "`-' flag" +#~ msgstr "'-'-flag" + +#~ msgid "the `-' printf flag" +#~ msgstr "'-'-printf-flaget" + +#~ msgid "`'' flag" +#~ msgstr "'''-flag" + +#~ msgid "the `'' printf flag" +#~ msgstr "'''-printf-flaget" + +#~ msgid "`I' flag" +#~ msgstr "'I'-flag" + +#~ msgid "the `I' printf flag" +#~ msgstr "'I'-printf-flaget" + +#~ msgid "field width" +#~ msgstr "feltbredde" + +#~ msgid "field width in printf format" +#~ msgstr "feltbredde i printf-formatering" + +#~ msgid "precision" +#~ msgstr "prcision" + +#~ msgid "precision in printf format" +#~ msgstr "prcision i printf-formatering" + +#~ msgid "length modifier" +#~ msgstr "lngdetilpasning" + +#~ msgid "length modifier in printf format" +#~ msgstr "lngdetilpasning i printf-formatering" + +#~ msgid "assignment suppression" +#~ msgstr "tildelingsundertrykkelse" + +#~ msgid "the assignment suppression scanf feature" +#~ msgstr "den tildelingsundertrykkende scanf-facilitet" + +#~ msgid "`a' flag" +#~ msgstr "'a'-flag" + +#~ msgid "the `a' scanf flag" +#~ msgstr "'a'-scanf-flaget" + +#~ msgid "field width in scanf format" +#~ msgstr "feltbredde i scanf-formatering" + +#~ msgid "length modifier in scanf format" +#~ msgstr "lngdetilpasning i scanf-formatering" + +#~ msgid "the `'' scanf flag" +#~ msgstr "'''-scanf-flaget" + +#~ msgid "the `I' scanf flag" +#~ msgstr "'I'-scanf-flaget" + +#~ msgid "`_' flag" +#~ msgstr "'_'-flag" + +#~ msgid "the `_' strftime flag" +#~ msgstr "'_'-strftime-flaget" + +#~ msgid "the `-' strftime flag" +#~ msgstr "'-'-strftime-flaget" + +#~ msgid "the `0' strftime flag" +#~ msgstr "'0'-strftime-flaget" + +#~ msgid "`^' flag" +#~ msgstr "'^'-flag" + +#~ msgid "the `^' strftime flag" +#~ msgstr "'^'-strftime-flaget" + +#~ msgid "the `#' strftime flag" +#~ msgstr "'#'-strftime-flaget" + +#~ msgid "field width in strftime format" +#~ msgstr "feltbredde i strftime-formatering" + +#~ msgid "`E' modifier" +#~ msgstr "'E'-modifikation" + +#~ msgid "the `E' strftime modifier" +#~ msgstr "'E'-strftime-modifikationen" + +#~ msgid "`O' modifier" +#~ msgstr "'O'-modifikation" + +#~ msgid "the `O' strftime modifier" +#~ msgstr "'O'-strftime-modifikationen" + +#~ msgid "the `O' modifier" +#~ msgstr "'O'-modifikation" + +#~ msgid "fill character" +#~ msgstr "udfyldningstegn" + +#~ msgid "fill character in strfmon format" +#~ msgstr "udfyldningstegn i strfmon-formatering" + +#~ msgid "the `^' strfmon flag" +#~ msgstr "'^'-strfmon-flaget" + +#~ msgid "the `+' strfmon flag" +#~ msgstr "'+'-strfmon-flaget" + +#~ msgid "`(' flag" +#~ msgstr "'('-flag" + +#~ msgid "the `(' strfmon flag" +#~ msgstr "'('-strfmon-flaget" + +#~ msgid "`!' flag" +#~ msgstr "'!'-flag" + +#~ msgid "the `!' strfmon flag" +#~ msgstr "'!'-strfmon-flaget" + +#~ msgid "the `-' strfmon flag" +#~ msgstr "'-'-strfmon-flaget" + +#~ msgid "field width in strfmon format" +#~ msgstr "feltbredde i strfmon-formatering" + +#~ msgid "left precision" +#~ msgstr "venstreprcision" + +#~ msgid "left precision in strfmon format" +#~ msgstr "venstreprcision i strfmon-formatering" + +#~ msgid "right precision" +#~ msgstr "hjreprcision" + +#~ msgid "right precision in strfmon format" +#~ msgstr "hjreprcision i strfmon-formatering" + +#~ msgid "length modifier in strfmon format" +#~ msgstr "lngdemodifikation i strfmon-formatering" + +#~ msgid "function might be possible candidate for `%s' format attribute" +#~ msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab" + +#~ msgid "missing $ operand number in format" +#~ msgstr "manglende $-operandnummer i formatering" + +#~ msgid "%s does not support %%n$ operand number formats" +#~ msgstr "%s understtter ikke %%n$-operandnummerformateringer" + +#~ msgid "operand number out of range in format" +#~ msgstr "operandnummer uden for det gyldige interval" + +#~ msgid "format argument %d used more than once in %s format" +#~ msgstr "formateringsparameter %d brugt mere end en gang i %s-formatering" + +#~ msgid "format argument %d unused before used argument %d in $-style format" +#~ msgstr "formateringsparameter %d ubenyttet fr den brugte parameter %d i formatering med $" + +#~ msgid "format not a string literal, format string not checked" +#~ msgstr "formatering er ikke en strengkonstant, formateringsstrengen er ikke kontrolleret" + +#~ msgid "format not a string literal and no format arguments" +#~ msgstr "formatering er ikke en strengkonstant og der er ingen formateringsparametre" + +#~ msgid "format not a string literal, argument types not checked" +#~ msgstr "formatering er ikke en strengkonstant, parametertyper er ikke kontrolleret" + +#~ msgid "too many arguments for format" +#~ msgstr "for mange parametre til formatering" + +#~ msgid "unused arguments in $-style format" +#~ msgstr "ubenyttede parametre i formatering med $" + +#~ msgid "zero-length %s format string" +#~ msgstr "formateringsstreng %s med lngden nul" + +#~ msgid "format is a wide character string" +#~ msgstr "formatering er en bredtegnsstreng" + +#~ msgid "embedded `\\0' in format" +#~ msgstr "indlejret '\\0' i formatering" + +#~ msgid "spurious trailing `%%' in format" +#~ msgstr "mystisk afsluttende '%%' i formatering" + +#~ msgid "repeated %s in format" +#~ msgstr "gentaget %s i formatering" + +#~ msgid "missing fill character at end of strfmon format" +#~ msgstr "mangler fyldtegn i slutningen af strfmon-formatering" + +#~ msgid "too few arguments for format" +#~ msgstr "for f parametre til formatering" + +#~ msgid "zero width in %s format" +#~ msgstr "bredde p nul i %s-formatering" + +#~ msgid "empty left precision in %s format" +#~ msgstr "tom venstreprcision i %s-formatering" + +#~ msgid "field precision" +#~ msgstr "feltprcision" + +#~ msgid "empty precision in %s format" +#~ msgstr "tom prcision i %s-formatering" + +#~ msgid "%s does not support the `%s' %s length modifier" +#~ msgstr "%s understtter ikke '%s' %s-lngdemodifikationen" + +#~ msgid "conversion lacks type at end of format" +#~ msgstr "konvertering mangler type i slutningen af formatering" + +#~ msgid "unknown conversion type character `%c' in format" +#~ msgstr "ukendt konverteringstypetegn '%c' i formatering" + +#~ msgid "unknown conversion type character 0x%x in format" +#~ msgstr "ukendt konverteringstypetegn 0x%x i formatering" + +#~ msgid "%s does not support the `%%%c' %s format" +#~ msgstr "%s understtter ikke '%%%c' %s-formateringen" + +#~ msgid "%s used with `%%%c' %s format" +#~ msgstr "%s brugt med '%%%c' %s-formatering" + +#~ msgid "%s does not support %s" +#~ msgstr "%s understtter ikke %s" + +#~ msgid "%s does not support %s with the `%%%c' %s format" +#~ msgstr "%s understtter ikke %s med '%%%c' %s-formateringen" + +#~ msgid "%s ignored with %s and `%%%c' %s format" +#~ msgstr "%s ignoreret med %s og '%%%c' %s-formatering" + +#~ msgid "%s ignored with %s in %s format" +#~ msgstr "%s ignoreret med %s i %s-formatering" + +#~ msgid "use of %s and %s together with `%%%c' %s format" +#~ msgstr "brug af %s og %s sammen med '%%%c' %s-formatering" + +#~ msgid "use of %s and %s together in %s format" +#~ msgstr "brug af %s og %s sammen i %s-formatering" + +#~ msgid "`%%%c' yields only last 2 digits of year in some locales" +#~ msgstr "'%%%c' giver kun de to sidste cifre af ret under nogle regionalindstillinger" + +#~ msgid "`%%%c' yields only last 2 digits of year" +#~ msgstr "'%%%c' giver kun de to sidste cifre af ret" + +#~ msgid "no closing `]' for `%%[' format" +#~ msgstr "ingen afsluttende '[' til '%%['-formatering" + +#~ msgid "use of `%s' length modifier with `%c' type character" +#~ msgstr "brug af '%s'-lngdemodifikation med '%c'-typetegn" + +#~ msgid "%s does not support the `%%%s%c' %s format" +#~ msgstr "%s understtter ikke '%%%s%c' %s-formateringen" + +#~ msgid "operand number specified with suppressed assignment" +#~ msgstr "operandnummer angivet med undertrykt tildeling" + +#~ msgid "operand number specified for format taking no argument" +#~ msgstr "operandnummer angiver for formatering der ikke tager mod parametre" + +#~ msgid "writing through null pointer (arg %d)" +#~ msgstr "skrivning gennem nulhenvisning (parameter %d)" + +#~ msgid "reading through null pointer (arg %d)" +#~ msgstr "lsning gennem nulhenvisning (parameter %d)" + +#~ msgid "writing into constant object (arg %d)" +#~ msgstr "skrivning til konstant objekt (parameter %d)" + +#~ msgid "extra type qualifiers in format argument (arg %d)" +#~ msgstr "ekstra typemodifikationer i formateringsparameter (parameter %d)" + +#~ msgid "format argument is not a pointer (arg %d)" +#~ msgstr "formateringsparameter er ikke en henvisning (parameter %d)" + +#~ msgid "format argument is not a pointer to a pointer (arg %d)" +#~ msgstr "formateringsparameter er ikke en henvisning til en henvisning (parameter %d)" + +#~ msgid "pointer" +#~ msgstr "henvisning" + +#~ msgid "different type" +#~ msgstr "anden type" + +#~ msgid "%s is not type %s (arg %d)" +#~ msgstr "%s er ikke af typen %s (parameter %d)" + +#~ msgid "%s format, %s arg (arg %d)" +#~ msgstr "%s-formatering, %s-parameter (parameter %d)" + +#~ msgid "YYDEBUG not defined" +#~ msgstr "YYDEBUG ikke defineret" + +#~ msgid "badly nested C headers from preprocessor" +#~ msgstr "ugyldigt indlejrede C-inkluderingsfiler fra prprocessoren" + +#~ msgid "ignoring #pragma %s %s" +#~ msgstr "ignorerer #pragma %s %s" + +#~ msgid "universal-character-name '\\u%04x' not valid in identifier" +#~ msgstr "universelt tegn '\\u%04x' er ikke gyldigt i kaldenavne" + +#~ msgid "stray '%c' in program" +#~ msgstr "vildfaren '%c' i program" + +#~ msgid "stray '\\%o' in program" +#~ msgstr "vildfaren '\\%o' i program" + +#~ msgid "this decimal constant is unsigned only in ISO C90" +#~ msgstr "denne kommatalskonstant er kun unsigned i ISO C90" + +#~ msgid "this decimal constant would be unsigned in ISO C90" +#~ msgstr "denne kommatalskonstant ville vre unsigned i ISO C90" + +#~ msgid "integer constant is too large for \"%s\" type" +#~ msgstr "heltalskonstanten er for stor til typen '%s'" + +#~ msgid "floating constant exceeds range of \"%s\"" +#~ msgstr "kommatalskonstant overskrider intervallet for '%s'" + +#~ msgid "ignoring invalid multibyte character" +#~ msgstr "ignorerer ugyldigt flerbyte-tegn" + +#~ msgid "missing argument to \"-%s\"" +#~ msgstr "der mangler en parameter til tilvalget '-%s'" + +#~ msgid "no class name specified with \"-%s\"" +#~ msgstr "intet klassenavn angivet med '-%s'" + +#~ msgid "missing filename after \"-%s\"" +#~ msgstr "et filnavn mangler efter '-%s'" + +#~ msgid "missing target after \"-%s\"" +#~ msgstr "et ml mangler efter '-%s'" + +#~ msgid "options array incorrectly sorted: %s is before %s" +#~ msgstr "tilvalgstabel sorteret forkert: %s er fr %s" + +#~ msgid "too many filenames given. Type %s --help for usage" +#~ msgstr "for mange filnavne angivet - vejledning i brug kan fs med '%s --help'" + +#~ msgid "-Wno-strict-prototypes is not supported in C++" +#~ msgstr "-Wno-strict-prototypes er ikke understttet i C++" + +#~ msgid "switch \"%s\" is no longer supported" +#~ msgstr "tilvalget '%s' understttes ikke lngere" + +#~ msgid "switch \"%s\" is deprecated, please see documentation for details" +#~ msgstr "tilvalget '%s' er forldet, se venligst dokumentationen for detaljer" + +#~ msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)" +#~ msgstr "-fhandle-exceptions er blevet omdbt til -fexceptions (og er nu til som standard)" + +#~ msgid "output filename specified twice" +#~ msgstr "uddatafilnavnet er angivet to gange" + +#~ msgid "-Wformat-y2k ignored without -Wformat" +#~ msgstr "-Wformat-y2k ignoreret uden -Wformat" + +#~ msgid "-Wformat-extra-args ignored without -Wformat" +#~ msgstr "-Wformat-extra-args ignoreret uden -Wformat" + +#~ msgid "-Wformat-zero-length ignored without -Wformat" +#~ msgstr "-Wformat-zero-length ignoreret uden -Wformat" + +#~ msgid "-Wformat-nonliteral ignored without -Wformat" +#~ msgstr "-Wformat-nonliteral ignoreret uden -Wformat" + +#~ msgid "-Wformat-security ignored without -Wformat" +#~ msgstr "-Wformat-security ignoreret uden -Wformat" + +#~ msgid "-Wmissing-format-attribute ignored without -Wformat" +#~ msgstr "-Wmissing-format-attribute ignoreret uden -Wformat" + +#~ msgid "opening output file %s" +#~ msgstr "bner uddatafilen %s" + +#~ msgid "opening dependency file %s" +#~ msgstr "bner afhngighedsfilen %s" + +#~ msgid "closing dependency file %s" +#~ msgstr "lukker afhngighedsfilen %s" + +#~ msgid "when writing output to %s" +#~ msgstr "ved skrivning af uddata til %s" + +#~ msgid "to generate dependencies you must specify either -M or -MM" +#~ msgstr "for at generere afhngigheder skal du angive enten -M eller -MM" + +#~ msgid "\"-%s\" is valid for %s but not for %s" +#~ msgstr "'-%s' er gyldigt for %s, men ikke for %s" + +# den fulde tekst til disse bidder findes ogs senere +#~ msgid "" +#~ "Switches:\n" +#~ " -include Include the contents of before other files\n" +#~ " -imacros Accept definition of macros in \n" +#~ " -iprefix Specify as a prefix for next two options\n" +#~ " -iwithprefix Add to the end of the system include path\n" +#~ " -iwithprefixbefore Add to the end of the main include path\n" +#~ " -isystem Add to the start of the system include path\n" +#~ msgstr "" +#~ "Tilvalg:\n" +#~ " -include Inkludr indholdet af fr andre filer\n" +#~ " -imacros Ls makrodefinitionerne i \n" +#~ " -iprefix Angiv som et prfiks til de nste to tilvalg\n" +#~ " -iwithprefix Fj til slutningen af systeminkluderingsstien\n" +#~ " -withprefixbefore Fj til slutningen af den alm. inkluderingssti\n" +#~ " -isystem Fj til begyndelsen af systeminkluderingsstien\n" + +#~ msgid "" +#~ " -idirafter Add to the end of the system include path\n" +#~ " -I Add 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 Put output into \n" +#~ msgstr "" +#~ " -idirafter Fj til slutningen af systeminkluderingsstien\n" +#~ " -I Fj til slutningen af den alm. inkluderingssti\n" +#~ " -I- Nje kontrolleret inkluderingssti; se info-hjlpen\n" +#~ " -nostdinc Sg ikke i systeminkluderingskataloger\n" +#~ " (kataloger angivet med -isystem sges dog stadig)\n" +#~ " -nostdinc++ Sg ikke i systeminkluderingskataloger til C++\n" +#~ " -o Send uddata til \n" + +#~ msgid "" +#~ " -trigraphs Support ISO C trigraphs\n" +#~ " -std= Specify the conformance standard; one of:\n" +#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n" +#~ " iso9899:199409, iso9899:1999, c++98\n" +#~ " -w Inhibit warning messages\n" +#~ " -W[no-]trigraphs Warn if trigraphs are encountered\n" +#~ " -W[no-]comment{s} Warn if one comment starts inside another\n" +#~ msgstr "" +#~ " -trigraphs Understt ISO C trigrafer\n" +#~ " -std= Angiv at koden retter sig efter en af standarderne:\n" +#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n" +#~ " iso9899:199409, iso9899:1999, c++98\n" +#~ " -w Undertryk advarselsmeddelelser\n" +#~ " -W[no-]trigraphs Advar hvis trigrafer mdes\n" +#~ " -W[no-]comment{s} Advar hvis en kommentar begynder inden i en anden\n" + +#~ msgid "" +#~ " -W[no-]traditional Warn about features not present in traditional C\n" +#~ " -W[no-]undef Warn if an undefined macro is used by #if\n" +#~ " -W[no-]import Warn about the use of the #import directive\n" +#~ msgstr "" +#~ " -W[no-]traditional Advar om utilgngelige faciliteter i traditionel C\n" +#~ " -W[no-]undef Advar hvis en ikkedefineret makro bruges med #if\n" +#~ " -W[no-]import Advar om brug af #import-direktivet\n" + +#~ msgid "" +#~ " -W[no-]error Treat all warnings as errors\n" +#~ " -W[no-]system-headers Do not suppress warnings from system headers\n" +#~ " -W[no-]all Enable most preprocessor warnings\n" +#~ msgstr "" +#~ " -W[no-]error Behandl alle advarsler som fejl\n" +#~ " -W[no-]system-headers Undertryk ikke advarsler fra systeminkluderingsfiler\n" +#~ " -W[no-]all Sl alle prprocessoradvarsler til\n" + +#~ msgid "" +#~ " -M Generate make dependencies\n" +#~ " -MM As -M, but ignore system header files\n" +#~ " -MD Generate make dependencies and compile\n" +#~ " -MMD As -MD, but ignore system header files\n" +#~ " -MF Write dependency output to the given file\n" +#~ " -MG Treat missing header file as generated files\n" +#~ msgstr "" +#~ " -M Generr afhngigheder til make\n" +#~ " -MM Som -M, men ignorr systeminkluderingsfiler\n" +#~ " -MD Generer make-afhngigheder og overst\n" +#~ " -MMD Som -MD, men ignorr systeminkluderingsfiler\n" +#~ " -MF Skriv afhnghedsuddata til den givne fil\n" +#~ " -MG Behandl manglende inkl.-filer som genererede filer\n" + +# make kalder phony targets for falske ml +#~ msgid "" +#~ " -MP\t\t\t Generate phony targets for all headers\n" +#~ " -MQ Add a MAKE-quoted target\n" +#~ " -MT Add an unquoted target\n" +#~ msgstr "" +#~ " -MP Generr \"falske\" ml for alle inkluderingsfiler\n" +#~ " -MQ Tilfj et MAKE-ml i anfrselstegn\n" +#~ " -MT Tilfj et ml uden anfrselstegn\n" + +#~ msgid "" +#~ " -D Define a with string '1' as its value\n" +#~ " -D= Define a with as its value\n" +#~ " -A= Assert the to \n" +#~ " -A-= Disable the to \n" +#~ " -U Undefine \n" +#~ " -v Display the version number\n" +#~ msgstr "" +#~ " -D Definr makroen med strengen '1' som vrdi\n" +#~ " -D= Definr makroen med vrdien \n" +#~ " -A= Angiv at er svar p \n" +#~ " -A-= Angiv at ikke er svar p \n" +#~ " -U Glem definitionen af \n" +#~ " -v Skriv versionsnummeret\n" + +#~ msgid "" +#~ " -H Print the name of header files as they are used\n" +#~ " -C Do not discard comments\n" +#~ " -dM Display a list of macro definitions active at end\n" +#~ " -dD Preserve macro definitions in output\n" +#~ " -dN As -dD except that only the names are preserved\n" +#~ " -dI Include #include directives in the output\n" +#~ msgstr "" +#~ " -H Skriv navnene p inkluderingsfilerne nr de bruges\n" +#~ " -C Fjern ikke kommentarer\n" +#~ " -dM Vis til sidst de aktive makrodefinitioner\n" +#~ " -dD Bevar makrodefinitioner i uddata\n" +#~ " -dN Som -dD bortset fra at kun navnene bevares\n" +#~ " -dI Inkludr #include-anvisninger i uddata\n" + +#~ msgid "" +#~ " -f[no-]preprocessed Treat the input file as already preprocessed\n" +#~ " -ftabstop= Distance between tab stops for column reporting\n" +#~ " -P Do not generate #line directives\n" +#~ " -remap Remap file names when including files\n" +#~ " --help Display this information\n" +#~ msgstr "" +#~ " -f[no-]preprocessed Behandl inddatafilen som allerede prprocesseret\n" +#~ " -ftabstop= Afstand mellem tabulatorstop i kolonnerapportering\n" +#~ " -P Generr ikke #line-angivelser\n" +#~ " -remap Omdan filnavne ved filinkludering\n" +#~ " --help Vis denne vejledning\n" + +#~ msgid "syntax error" +#~ msgstr "syntaksfejl" + +#~ msgid "syntax error: cannot back up" +#~ msgstr "syntaksfejl: kan ikke g tilbage" + +#~ msgid "ISO C forbids an empty source file" +#~ msgstr "ISO C forbyder en tom kildefil" + +#~ msgid "argument of `asm' is not a constant string" +#~ msgstr "parameteren til 'asm' er ikke en konstant streng" + +#~ msgid "ISO C forbids data definition with no type or storage class" +#~ msgstr "ISO C forbyder definition af data uden angivelse af type eller lagringsklasse" + +#~ msgid "data definition has no type or storage class" +#~ msgstr "definition af data uden angivelse af type eller lagringsklasse" + +#~ msgid "ISO C does not allow extra `;' outside of a function" +#~ msgstr "ISO C tillader ikke ekstra ';' uden for funktioner" + +#~ msgid "`sizeof' applied to a bit-field" +#~ msgstr "'sizeof' benyttet p et bitfelt" + +#~ msgid "ISO C forbids omitting the middle term of a ?: expression" +#~ msgstr "ISO C forbyder udeladelse af den midterste del af et '?:'-udtryk" + +#~ msgid "ISO C89 forbids compound literals" +#~ msgstr "ISO C89 forbyder sammensatte konstanter" + +#~ msgid "ISO C forbids braced-groups within expressions" +#~ msgstr "ISO C forbyder stningsblokke inden i udtryk" + +#~ msgid "first argument to __builtin_choose_expr not a constant" +#~ msgstr "frste parameter til '__builtin_choose_expr' skal vre en konstant" + +#~ msgid "traditional C rejects ISO C style function definitions" +#~ msgstr "traditionel C tillader ikke ISO C-functionsdefinitioner" + +#~ msgid "`%s' is not at beginning of declaration" +#~ msgstr "'%s' er ikke ved begyndelsen af erklringen" + +#~ msgid "ISO C forbids empty initializer braces" +#~ msgstr "ISO C forbyder tom startvrdiblok" + +#~ msgid "ISO C89 forbids specifying subobject to initialize" +#~ msgstr "ISO C89 forbyder angivelse af underobjekt til klargring" + +# RETMIG: hm, gad vide om dette er rigtigt +#~ msgid "obsolete use of designated initializer without `='" +#~ msgstr "forldet brug af udpeget startvrdi uden '='" + +#~ msgid "obsolete use of designated initializer with `:'" +#~ msgstr "forldet brug af udpeget startvrdi med ':'" + +#~ msgid "ISO C forbids specifying range of elements to initialize" +#~ msgstr "ISO C forbyder angivelse af interval af elementer til klargring" + +#~ msgid "ISO C forbids nested functions" +#~ msgstr "ISO C forbyder indlejrede funktioner" + +#~ msgid "ISO C forbids forward references to `enum' types" +#~ msgstr "ISO C forbyder forhndsreferencer til 'enum'-typer" + +#~ msgid "comma at end of enumerator list" +#~ msgstr "komma i slutningen af enum-liste" + +#~ msgid "no semicolon at end of struct or union" +#~ msgstr "intet semikolon i slutningen af struct eller union" + +#~ msgid "extra semicolon in struct or union specified" +#~ msgstr "ekstra semikolon angivet i struct eller union" + +#~ msgid "ISO C doesn't support unnamed structs/unions" +#~ msgstr "ISO C understtter ikke unavngivne struct/union-konstruktioner" + +#~ msgid "ISO C forbids member declarations with no members" +#~ msgstr "ISO C forbyder medlemserklringer uden medlemmer" + +#~ msgid "deprecated use of label at end of compound statement" +#~ msgstr "forldet brug af etiket i slutningen af sammensat stning" + +#~ msgid "ISO C89 forbids mixed declarations and code" +#~ msgstr "ISO C89 forbyder blandede erklringer og kode" + +#~ msgid "ISO C forbids label declarations" +#~ msgstr "ISO C forbyder etiketerklringer" + +#~ msgid "braced-group within expression allowed only inside a function" +#~ msgstr "stningsblokke i udtryk er kun tilladt inde i en funktion" + +#~ msgid "empty body in an else-statement" +#~ msgstr "tom krop i en else-stning" + +#~ msgid "ISO C forbids `goto *expr;'" +#~ msgstr "ISO C forbyder 'goto *udtryk;'" + +#~ msgid "ISO C forbids forward parameter declarations" +#~ msgstr "ISO C forbyder forhndsparametererklringer" + +#~ msgid "ISO C requires a named argument before `...'" +#~ msgstr "ISO C pkrver en navngiven parameter fr '...'" + +#~ msgid "`...' in old-style identifier list" +#~ msgstr "'...' i gammeldags liste af kaldenavne" + +#~ msgid "parse error; also virtual memory exhausted" +#~ msgstr "tolkningsfejl; desuden lbet tr for virtuel hukommelse" + +#~ msgid "parse error" +#~ msgstr "tolkningsfejl" + +#~ msgid "parser stack overflow" +#~ msgstr "overlb i tolkerens stak" + +#~ msgid "%s at end of input" +#~ msgstr "%s ved slutning af inddata" + +#~ msgid "%s before %s'%c'" +#~ msgstr "%s fr %s'%c'" + +#~ msgid "%s before %s'\\x%x'" +#~ msgstr "%s fr %s'\\x%x'" + +#~ msgid "%s before string constant" +#~ msgstr "%s fr strengkonstant" + +#~ msgid "%s before numeric constant" +#~ msgstr "%s fr talkonstant" + +#~ msgid "%s before \"%s\"" +#~ msgstr "%s fr \"%s\"" + +#~ msgid "%s before '%s' token" +#~ msgstr "%s fr symbolet '%s'" + +#~ msgid "traditional C rejects string concatenation" +#~ msgstr "traditionel C tillader ikke strengsammenstning" + +#~ msgid "syntax error at '%s' token" +#~ msgstr "syntaksfejl ved symbolet '%s'" + +#~ msgid "#pragma pack (pop) encountered without matching #pragma pack (push, )" +#~ msgstr "'#pragma pack (pop)' mdt uden tilsvarende '#pragma pack (push, )'" + +#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, )" +#~ msgstr "'#pragma pack(pop, %s)' mdt uden tilsvarende '#pragma pack(push, %s, )'" + +#~ msgid "#pragma pack(push[, id], ) is not supported on this target" +#~ msgstr "#pragma pack(push[, id], ) understttes ikke p mlarkitekturen" + +#~ msgid "#pragma pack(pop[, id], ) is not supported on this target" +#~ msgstr "#pragma pack(pop[, id], ) understttes ikke p mlarkitekturen" + +#~ msgid "missing '(' after '#pragma pack' - ignored" +#~ msgstr "manglende '(' efter '#pragma pack' - ignoreret" + +#~ msgid "malformed '#pragma pack' - ignored" +#~ msgstr "forkert udformet '#pragma pack' - ignoreret" + +#~ msgid "malformed '#pragma pack(push[, id], )' - ignored" +#~ msgstr "forkert udformet '#pragma pack(push[, id], )' - ignoreret" + +#~ msgid "malformed '#pragma pack(pop[, id])' - ignored" +#~ msgstr "forkert udformet '#pragma pack(pop[, id])' - ignoreret" + +#~ msgid "unknown action '%s' for '#pragma pack' - ignored" +#~ msgstr "ukendt handling '%s' for '#pragma pack' - ignoreret" + +#~ msgid "junk at end of '#pragma pack'" +#~ msgstr "ragelse i slutningen af '#pragma pack'" + +#~ msgid "alignment must be a small power of two, not %d" +#~ msgstr "justering skal vre en lille potens af to, ikke %d" + +#~ msgid "applying #pragma weak `%s' after first use results in unspecified behavior" +#~ msgstr "anvendelse af #pragma weak '%s' efter frste brug resulterer i ikke-defineret opfrsel" + +#~ msgid "malformed #pragma weak, ignored" +#~ msgstr "forkert udformet '#pragma weak' - ignoreret" + +#~ msgid "junk at end of #pragma weak" +#~ msgstr "ragelse i slutningen af '#pragma weak'" + +#~ msgid "malformed #pragma redefine_extname, ignored" +#~ msgstr "forkert udformet '#pragma redefine_extname' - ignoreret" + +#~ msgid "junk at end of #pragma redefine_extname" +#~ msgstr "ragelse i slutningen af '#pragma redefine_extname'" + +#~ msgid "#pragma redefine_extname conflicts with declaration" +#~ msgstr "#pragma redefine_extname er i konflikt med erklring" + +#~ msgid "malformed #pragma extern_prefix, ignored" +#~ msgstr "forkert udformet '#pragma extern_prefix' - ignoreret" + +#~ msgid "junk at end of #pragma extern_prefix" +#~ msgstr "ragelse i slutningen af '#pragma extern_prefix'" + +#~ msgid "asm declaration conflicts with previous rename" +#~ msgstr "asm-erklring er i konflikt med tidligere omdbelse" + +#~ msgid "break statement not within loop or switch" +#~ msgstr "break-stning befinder sig ikke i en lkke- eller switch-konstruktion" + +#~ msgid "continue statement not within a loop" +#~ msgstr "continue-stning befinder sig ikke i en lkke" + +#~ msgid "destructor needed for `%#D'" +#~ msgstr "destruktionsfunktion pkrvet til '%#D'" + +#~ msgid "where case label appears here" +#~ msgstr "hvor case-etiket optrder her" + +#~ msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" +#~ msgstr "(indesluttede handlinger fra tidligere case-stninger krver destruktionsfunktioner i deres eget virkefelt)" + +#~ msgid "%s qualifier ignored on asm" +#~ msgstr "%s-modifikation ignoreret ved asm" + +#~ msgid "`%s' has an incomplete type" +#~ msgstr "'%s' er af en ufuldstndig type" + +#~ msgid "invalid use of void expression" +#~ msgstr "ugyldig brug af void-udtryk" + +#~ msgid "invalid use of flexible array member" +#~ msgstr "ugyldig brug af fleksibelt tabelmedlem" + +#~ msgid "invalid use of array with unspecified bounds" +#~ msgstr "ugyldig brug af tabel uden angivne grnser" + +#~ msgid "invalid use of undefined type `%s %s'" +#~ msgstr "ugyldig brug af en type '%s %s' der ikke er defineret" + +#~ msgid "invalid use of incomplete typedef `%s'" +#~ msgstr "ugyldig brug af ufuldstndig typedef '%s'" + +#~ msgid "function types not truly compatible in ISO C" +#~ msgstr "funktionstyper ikke er fuldt ud forenelige i ISO C" + +#~ msgid "types are not quite compatible" +#~ msgstr "typer er ikke helt forenelige" + +#~ msgid "arithmetic on pointer to an incomplete type" +#~ msgstr "beregninger udfrt p en henvisning til en ufuldstndig type" + +#~ msgid "%s has no member named `%s'" +#~ msgstr "%s har intet medlem ved navn '%s'" + +#~ msgid "request for member `%s' in something not a structure or union" +#~ msgstr "foresprgsel efter medlemmet '%s' i noget der hverken er en union eller en struktur" + +#~ msgid "dereferencing pointer to incomplete type" +#~ msgstr "forsg p at flge en henvisning til en variabel af en ufuldstndig type" + +#~ msgid "dereferencing `void *' pointer" +#~ msgstr "forsg p at flge en 'void *'-henvisning" + +#~ msgid "invalid type argument of `%s'" +#~ msgstr "ugyldig typeparameter '%s'" + +#~ msgid "subscript missing in array reference" +#~ msgstr "indeks mangler i tabelopslag" + +#~ msgid "array subscript has type `char'" +#~ msgstr "tabelindeks er af typen 'char'" + +#~ msgid "array subscript is not an integer" +#~ msgstr "tabelindeks er ikke et heltal" + +#~ msgid "ISO C forbids subscripting `register' array" +#~ msgstr "ISO C forbyder opslag i 'register'-tabel" + +#~ msgid "ISO C90 forbids subscripting non-lvalue array" +#~ msgstr "ISO C90 forbyder opslag i tabel der ikke er venstrevrdi" + +#~ msgid "subscript has type `char'" +#~ msgstr "indeks er af typen 'char'" + +#~ msgid "subscripted value is neither array nor pointer" +#~ msgstr "vrdien der er pfrt et indeks, er hverken en tabel eller en henvisningsvariabel" + +#~ msgid "`%s' undeclared here (not in a function)" +#~ msgstr "'%s' ikke erklret her (ikke i en funktion)" + +#~ msgid "`%s' undeclared (first use in this function)" +#~ msgstr "'%s' er ikke erklret (frst benyttet i denne funktion)" + +#~ msgid "(Each undeclared identifier is reported only once" +#~ msgstr "(et kaldenavn der ikke er erklret, rapporteres kun n gang" + +#~ msgid "for each function it appears in.)" +#~ msgstr "per funktion)" + +#~ msgid "local declaration of `%s' hides instance variable" +#~ msgstr "den lokale erklring af funktionen '%s' skjuler instansvariabel" + +#~ msgid "called object is not a function" +#~ msgstr "det kaldte objekt er ikke en funktion" + +#~ msgid "too many arguments to function" +#~ msgstr "for mange parametre til funktionen" + +#~ msgid "type of formal parameter %d is incomplete" +#~ msgstr "typen af den formelle parameter %d er ufuldstndig" + +#~ msgid "%s as integer rather than floating due to prototype" +#~ msgstr "%s som heltal i stedet for kommatal p grund af prototypen" + +#~ msgid "%s as integer rather than complex due to prototype" +#~ msgstr "%s som heltal i stedet for complex p grund af prototypen" + +#~ msgid "%s as complex rather than floating due to prototype" +#~ msgstr "%s som complex i stedet for kommatal p grund af prototypen" + +#~ msgid "%s as floating rather than integer due to prototype" +#~ msgstr "%s som kommatal i stedet for heltal p grund af prototypen" + +#~ msgid "%s as complex rather than integer due to prototype" +#~ msgstr "%s som complex i stedet for heltal p grund af prototypen" + +#~ msgid "%s as floating rather than complex due to prototype" +#~ msgstr "%s som kommatal i stedet for complex p grund af prototypen" + +#~ msgid "%s as `float' rather than `double' due to prototype" +#~ msgstr "%s som float i stedet for double p grund af prototypen" + +#~ msgid "%s with different width due to prototype" +#~ msgstr "%s med anderledes bredde p grund af prototypen" + +#~ msgid "%s as unsigned due to prototype" +#~ msgstr "%s som unsigned p grund af prototypen" + +#~ msgid "%s as signed due to prototype" +#~ msgstr "%s som signed p grund af prototypen" + +#~ msgid "too few arguments to function" +#~ msgstr "for f parametre til funktionen" + +#~ msgid "suggest parentheses around + or - inside shift" +#~ msgstr "foreslr paranteser omkring + eller - inden i skifteoperation" + +#~ msgid "suggest parentheses around && within ||" +#~ msgstr "foreslr paranteser omkring && inden i ||" + +#~ msgid "suggest parentheses around arithmetic in operand of |" +#~ msgstr "foreslr paranteser omkring beregning i operand til |" + +#~ msgid "suggest parentheses around comparison in operand of |" +#~ msgstr "foreslr paranteser omkring sammenligning i operand til |" + +#~ msgid "suggest parentheses around arithmetic in operand of ^" +#~ msgstr "foreslr paranteser omkring beregning i operand til ^" + +#~ msgid "suggest parentheses around comparison in operand of ^" +#~ msgstr "foreslr paranteser omkring sammenligning i operand til ^" + +#~ msgid "suggest parentheses around + or - in operand of &" +#~ msgstr "foreslr paranteser omkring + eller - i operand til &" + +#~ msgid "suggest parentheses around comparison in operand of &" +#~ msgstr "foreslr paranteser omkring sammenligning i operand til &" + +#~ msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" +#~ msgstr "sammenligninger som 'x <= y <= z' flger ikke den matematiske betydning" + +#~ msgid "division by zero" +#~ msgstr "division med nul" + +#~ msgid "right shift count is negative" +#~ msgstr "hjreskiftsantal er negativ" + +#~ msgid "right shift count >= width of type" +#~ msgstr "hjreskiftsantal er strre end bredden af typen" + +#~ msgid "left shift count is negative" +#~ msgstr "venstreskiftsantal er negativ" + +#~ msgid "left shift count >= width of type" +#~ msgstr "venstreskiftsantal er strre end bredden af typen" + +#~ msgid "shift count is negative" +#~ msgstr "skifteantal er negativ" + +#~ msgid "shift count >= width of type" +#~ msgstr "skifteantal er strre end bredden af typen" + +#~ msgid "comparing floating point with == or != is unsafe" +#~ msgstr "sammenligning af kommatal med == eller != er ikke sikkert" + +#~ msgid "ISO C forbids comparison of `void *' with function pointer" +#~ msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning" + +#~ msgid "comparison of distinct pointer types lacks a cast" +#~ msgstr "sammenligning med forskellige henvisningstyper mangler en typeomtvingelse" + +#~ msgid "comparison between pointer and integer" +#~ msgstr "sammenligning mellem henvisningsvariabel og heltal" + +#~ msgid "ISO C forbids ordered comparisons of pointers to functions" +#~ msgstr "ISO C forbyder ordnede sammenligninger af henvisninger til funktioner" + +#~ msgid "comparison of complete and incomplete pointers" +#~ msgstr "sammenligning mellem en fuldstndig og ufuldstndig henvisning" + +#~ msgid "ordered comparison of pointer with integer zero" +#~ msgstr "ordnet sammenligning af henvisning med heltallet nul" + +#~ msgid "unordered comparison on non-floating point argument" +#~ msgstr "uordnet sammenligning af ikke-kommatalsparameter" + +#~ msgid "comparison between signed and unsigned" +#~ msgstr "sammenligning mellem signed og unsigned" + +#~ msgid "comparison of promoted ~unsigned with constant" +#~ msgstr "sammenligning af forfremmet ~unsigned med konstant" + +#~ msgid "comparison of promoted ~unsigned with unsigned" +#~ msgstr "sammenligning af forfremmet ~unsigned med unsigned" + +#~ msgid "pointer of type `void *' used in subtraction" +#~ msgstr "henvisning af typen 'void *' benyttet i subtraktion" + +#~ msgid "pointer to a function used in subtraction" +#~ msgstr "henvisning til en funktion benyttet i subtraktion" + +#~ msgid "wrong type argument to unary plus" +#~ msgstr "forkert parametertype til unrt plus" + +#~ msgid "wrong type argument to unary minus" +#~ msgstr "forkert parametertype til unrt minus" + +#~ msgid "ISO C does not support `~' for complex conjugation" +#~ msgstr "ISO C understtter ikke '~' til compleks-konjugering" + +#~ msgid "wrong type argument to bit-complement" +#~ msgstr "forkert parametertype til bitkomplement" + +#~ msgid "wrong type argument to abs" +#~ msgstr "forkert parametertype til abs" + +#~ msgid "wrong type argument to conjugation" +#~ msgstr "forkert parametertype til konjugation" + +#~ msgid "wrong type argument to unary exclamation mark" +#~ msgstr "forkert parametertype til unrt udrbstegn" + +#~ msgid "ISO C does not support `++' and `--' on complex types" +#~ msgstr "ISO C understtter ikke '++' og '--' for complex-typer" + +# man kan ikke stikke en forgelse (++) en type som parameter, 'type +# argument' skal opfattes p en anden mde +#~ msgid "wrong type argument to increment" +#~ msgstr "forkert parametertype til forgelse" + +#~ msgid "wrong type argument to decrement" +#~ msgstr "forkert parametertype til formindskelse" + +#~ msgid "increment of pointer to unknown structure" +#~ msgstr "forgelse af henvisning til en ukendt struktur" + +#~ msgid "decrement of pointer to unknown structure" +#~ msgstr "formindskelse af henvisning til en ukendt struktur" + +# RETMIG: hvad betyder dette? +#~ msgid "ISO C forbids the address of a cast expression" +#~ msgstr "ISO C forbyder adressen af et typeomtvingningsudtryk" + +#~ msgid "invalid lvalue in unary `&'" +#~ msgstr "ugyldig venstrevrdi i unr '&'" + +#~ msgid "attempt to take address of bit-field structure member `%s'" +#~ msgstr "forsg p at finde adressen af bitfeltstrukturmedlemmet '%s'" + +#~ msgid "ISO C forbids use of conditional expressions as lvalues" +#~ msgstr "ISO C forbyder brug af betingede udtryk som venstrevrdier" + +#~ msgid "ISO C forbids use of compound expressions as lvalues" +#~ msgstr "ISO C forbyder brug af sammensatte udtryk som venstrevrdier" + +#~ msgid "ISO C forbids use of cast expressions as lvalues" +#~ msgstr "ISO C forbyder brug af typeomtvingningsudtryk som venstrevrdier" + +# RETMIG: lettere klodset konstruktion +#~ msgid "%s of read-only member `%s'" +#~ msgstr "%s af medlemmet '%s' der kun m lses" + +#~ msgid "%s of read-only variable `%s'" +#~ msgstr "%s af variablen '%s' der kun m lses" + +#~ msgid "%s of read-only location" +#~ msgstr "%s af placering der kun m lses" + +#~ msgid "cannot take address of bit-field `%s'" +#~ msgstr "kan ikke finde adressen af bitfeltet '%s'" + +#~ msgid "global register variable `%s' used in nested function" +#~ msgstr "global registervariabel '%s' benyttet i indlejret funktion" + +#~ msgid "register variable `%s' used in nested function" +#~ msgstr "registervariabel '%s' benyttet i indlejret funktion" + +#~ msgid "address of global register variable `%s' requested" +#~ msgstr "foresprgsel efter adressen af den globale registervariabel '%s'" + +#~ msgid "cannot put object with volatile field into register" +#~ msgstr "kan ikke anbringe et objekt med et volatile-felt i et register" + +#~ msgid "address of register variable `%s' requested" +#~ msgstr "foresprgsel efter adressen af registervariablen '%s'" + +#~ msgid "signed and unsigned type in conditional expression" +#~ msgstr "signed og unsigned type i betinget udtryk" + +#~ msgid "ISO C forbids conditional expr with only one void side" +#~ msgstr "ISO C forbyder betingede udtryk med kun n tom side" + +#~ msgid "ISO C forbids conditional expr between `void *' and function pointer" +#~ msgstr "ISO C++ forbyder betinget udtryk mellem 'void *' og funktionshenvisning" + +#~ msgid "pointer type mismatch in conditional expression" +#~ msgstr "henvisningstyperne i betingelsesudtrykket passer ikke sammen" + +#~ msgid "pointer/integer type mismatch in conditional expression" +#~ msgstr "henvisnings- og heltalstype i betingelsesudtrykket passer ikke sammen" + +#~ msgid "type mismatch in conditional expression" +#~ msgstr "typerne i betingelsesudtrykket passer ikke sammen" + +#~ msgid "left-hand operand of comma expression has no effect" +#~ msgstr "venstreoperanden til kommaudtrykket har ingen virkning" + +#~ msgid "cast specifies array type" +#~ msgstr "typetildelingen angiver en tabeltype" + +#~ msgid "cast specifies function type" +#~ msgstr "typetildelingen angiver en funktionstype" + +#~ msgid "ISO C forbids casting nonscalar to the same type" +#~ msgstr "ISO C forbyder omtvingelse af ikke-skalar til den samme type" + +#~ msgid "ISO C forbids casts to union type" +#~ msgstr "ISO C forbyder omtvingelse til uniontype" + +#~ msgid "cast to union type from type not present in union" +#~ msgstr "typetildeling til en uniontype fra en type der ikke findes i union'en" + +#~ msgid "cast adds new qualifiers to function type" +#~ msgstr "typeomtvingning tilfjer modifikationer til en funktionstype" + +#~ msgid "cast discards qualifiers from pointer target type" +#~ msgstr "typeomtvingelse kasserer modifikationer p henvisningsmlets type" + +#~ msgid "cast increases required alignment of target type" +#~ msgstr "typeomtvingelse forger den pkrvne justering af mltypen" + +#~ msgid "cast from pointer to integer of different size" +#~ msgstr "typeomtvingelse fra henvisning til heltal af en anden strrelse" + +#~ msgid "cast does not match function type" +#~ msgstr "typeomtvingelse passer ikke til funktionstype" + +#~ msgid "cast to pointer from integer of different size" +#~ msgstr "typeomtvingelse fra heltal til henvisning af en anden strrelse" + +#~ msgid "type-punning to incomplete type might break strict-aliasing rules" +#~ msgstr "typeomtvingning af ufuldstndig type bryder muligvis strenge aliasregler" + +#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules" +#~ msgstr "flgning af en typeomtvunget henvisning vil bryde strenge aliasregler" + +#~ msgid "invalid lvalue in assignment" +#~ msgstr "ugyldig venstrevrdi i tildeling" + +#~ msgid "assignment" +#~ msgstr "tildeling" + +#~ msgid "cannot pass rvalue to reference parameter" +#~ msgstr "kan ikke videregive hjrevrdi til referenceparameter" + +#~ msgid "%s makes qualified function pointer from unqualified" +#~ msgstr "%s opretter en funktionshenvisning med modifikationer fra n uden" + +#~ msgid "%s discards qualifiers from pointer target type" +#~ msgstr "%s kasserer modifikationer p henvisningsmlets type" + +#~ msgid "ISO C prohibits argument conversion to union type" +#~ msgstr "ISO C forbyder parameterkonvertering til uniontype" + +#~ msgid "ISO C forbids %s between function pointer and `void *'" +#~ msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'" + +#~ msgid "pointer targets in %s differ in signedness" +#~ msgstr "fortegnene i henvisningsml i %s er forskellige" + +#~ msgid "%s from incompatible pointer type" +#~ msgstr "%s fra en henvisningstype der ikke er forenelig med mlets" + +#~ msgid "%s makes pointer from integer without a cast" +#~ msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning" + +#~ msgid "%s makes integer from pointer without a cast" +#~ msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning" + +#~ msgid "incompatible type for argument %d of `%s'" +#~ msgstr "typen af den %d. parameter i '%s' passer ikke" + +#~ msgid "incompatible type for argument %d of indirect function call" +#~ msgstr "typen af den %d. parameter i det indirekte funktionskald passer ikke" + +#~ msgid "incompatible types in %s" +#~ msgstr "uforenelige typer i %s" + +#~ msgid "passing arg of `%s'" +#~ msgstr "videregiver parameter til '%s'" + +#~ msgid "passing arg of pointer to function" +#~ msgstr "videregiver parameter af henvisning til funktion" + +#~ msgid "passing arg %d of `%s'" +#~ msgstr "videregiver den %d. parameter til '%s'" + +#~ msgid "passing arg %d of pointer to function" +#~ msgstr "videregiver den %d. parameter af henvisning til funktion" + +#~ msgid "initializer for static variable is not constant" +#~ msgstr "startvrdien for den statiske variabel er ikke en konstant" + +#~ msgid "initializer for static variable uses complicated arithmetic" +#~ msgstr "startvrdien for den statiske variabel benytter komplicerede beregninger" + +#~ msgid "aggregate initializer is not constant" +#~ msgstr "startvrdi til variabel af en sammensat type er ikke en konstant" + +#~ msgid "aggregate initializer uses complicated arithmetic" +#~ msgstr "startvrdien til variabel af en sammensat type benytter komplicerede beregninger" + +# 'automatic aggregate' betyder automatisk allokerede variabler, dvs. +# ganske almindelige lokale variabler (kan evt. erklres med 'auto') +#~ msgid "traditional C rejects automatic aggregate initialization" +#~ msgstr "traditionel C forbyder klargring af auto-variabler af sammensatte typer" + +#~ msgid "(near initialization for `%s')" +#~ msgstr "(i nrheden af klargringen af '%s')" + +#~ msgid "char-array initialized from wide string" +#~ msgstr "char-tabel fr tildelt startvrdi fra en bred streng" + +#~ msgid "int-array initialized from non-wide string" +#~ msgstr "int-tabel fr tildelt startvrdi fra en ikke-bred streng" + +#~ msgid "initializer-string for array of chars is too long" +#~ msgstr "startvrdistrengen til char-tabellen er for lang" + +#~ msgid "array initialized from non-constant array expression" +#~ msgstr "tabel fr tildelt en startvrdi fra et tabeludtryk der ikke er konstant" + +#~ msgid "initializer element is not constant" +#~ msgstr "startvrdielement er ikke en konstant" + +#~ msgid "initialization" +#~ msgstr "klargring" + +#~ msgid "initializer element is not computable at load time" +#~ msgstr "startvrdielement kan ikke beregnes ved indlsningstidspunktet" + +#~ msgid "invalid initializer" +#~ msgstr "ugyldig startvrdi" + +#~ msgid "extra brace group at end of initializer" +#~ msgstr "overskydende krllede paranteser ved slutningen af startvrdien" + +#~ msgid "missing braces around initializer" +#~ msgstr "krllede paranteser mangler omkring startvrdien" + +#~ msgid "braces around scalar initializer" +#~ msgstr "krllede paranteser omkring skalarstartvrdi" + +# RETMIG: eller er det fleksibel tabel-medlem +#~ msgid "initialization of flexible array member in a nested context" +#~ msgstr "klargring af fleksibelt tabelmedlem i en indlejret kontekst" + +#~ msgid "initialization of a flexible array member" +#~ msgstr "klargring af fleksibelt tabelmedlem" + +#~ msgid "missing initializer" +#~ msgstr "manglende startvrdi" + +#~ msgid "empty scalar initializer" +#~ msgstr "tom skalarstartvrdi" + +#~ msgid "extra elements in scalar initializer" +#~ msgstr "overskydende elementer i skalarstarvrdi" + +#~ msgid "initialization designators may not nest" +#~ msgstr "klargringstegn m ikke indlejres" + +#~ msgid "array index in non-array initializer" +#~ msgstr "tabelindeks i en startvrdi der ikke er en tabel" + +# RETMIG: record? +#~ msgid "field name not in record or union initializer" +#~ msgstr "feltnavn ikke i struktur- eller union-startvrdi" + +#~ msgid "nonconstant array index in initializer" +#~ msgstr "tabelindekset i startvrdien er ikke en konstant" + +#~ msgid "array index in initializer exceeds array bounds" +#~ msgstr "tabelindeks i startvrdi overskrider tabelgrnser" + +#~ msgid "empty index range in initializer" +#~ msgstr "tomt indeksinterval i startvrdi" + +#~ msgid "array index range in initializer exceeds array bounds" +#~ msgstr "tabelindeksinterval i startvrdi overskrider tabelgrnser" + +#~ msgid "unknown field `%s' specified in initializer" +#~ msgstr "ukendt felt '%s' angivet i startvrdi" + +#~ msgid "initialized field with side-effects overwritten" +#~ msgstr "klargjort felt med bivirkninger overskrevet" + +#~ msgid "excess elements in char array initializer" +#~ msgstr "for mange elementer i char-tabelstartvrdien" + +#~ msgid "excess elements in struct initializer" +#~ msgstr "for mange elementer i struct-startvrdi" + +#~ msgid "non-static initialization of a flexible array member" +#~ msgstr "ikke-statisk klargring af fleksibelt tabelmedlem" + +#~ msgid "excess elements in union initializer" +#~ msgstr "for mange elementer i union-startvrdi" + +#~ msgid "traditional C rejects initialization of unions" +#~ msgstr "traditionel C forbyder tildeling af startvrdi til unioner" + +#~ msgid "excess elements in array initializer" +#~ msgstr "for mange elementer i tabelstartvrdi" + +#~ msgid "excess elements in vector initializer" +#~ msgstr "for mange elementer i vektorstartvrdi" + +#~ msgid "excess elements in scalar initializer" +#~ msgstr "for mange elementer i skalarstartvrdi" + +#~ msgid "asm template is not a string constant" +#~ msgstr "asm-stning er ikke en strengkonstant" + +#~ msgid "invalid lvalue in asm statement" +#~ msgstr "ugyldig venstrevrdi i asm-stning" + +#~ msgid "modification by `asm'" +#~ msgstr "ndring af 'asm'" + +#~ msgid "function declared `noreturn' has a `return' statement" +#~ msgstr "funktion der er erklret 'noreturn' har en 'return'-stning" + +#~ msgid "`return' with no value, in function returning non-void" +#~ msgstr "'return' uden nogen vrdi i en funktion der ikke returnerer void" + +#~ msgid "`return' with a value, in function returning void" +#~ msgstr "'return' med en vrdi i en funktion der returnerer void" + +#~ msgid "return" +#~ msgstr "returnering" + +#~ msgid "function returns address of local variable" +#~ msgstr "funktion returnerer adressen p en lokal variabel" + +#~ msgid "switch quantity not an integer" +#~ msgstr "switch-strrelsen er ikke et heltal" + +#~ msgid "`long' switch expression not converted to `int' in ISO C" +#~ msgstr "'long'-udtryk i switch konverteres ikke til 'int' i ISO C" + +#~ msgid "case label not within a switch statement" +#~ msgstr "case-etiket befinder sig ikke inden i en switch-stning" + +#~ msgid "`default' label not within a switch statement" +#~ msgstr "'default'-etiket befinder sig ikke inden i en switch-stning" + +#~ msgid "inlining failed in call to `%s'" +#~ msgstr "indlejring mislykkedes i kald til '%s'" + +#~ msgid "called from here" +#~ msgstr "kaldt herfra" + +#~ msgid "can't inline call to `%s'" +#~ msgstr "kan ikke indlejre kald til '%s'" + +#~ msgid "function call has aggregate value" +#~ msgstr "funktionskald har en sammensat vrdi" + +#~ msgid "Size of loop %d should be %d, not %d." +#~ msgstr "Strrelsen af lkke %d burde vre %d, ikke %d." + +#~ msgid "Bb %d do not belong to loop %d." +#~ msgstr "Basisblok %d hrer ikke til lkke %d." + +#~ msgid "Loop %d's header does not have exactly 2 entries." +#~ msgstr "Lkke %d's hoved har ikke prcis 2 elementer." + +#~ msgid "Loop %d's latch does not have exactly 1 successor." +#~ msgstr "Lkke %d's ende har ikke prcis 1 efterflger." + +#~ msgid "Loop %d's latch does not have header as successor." +#~ msgstr "Lkke %d's ende har ikke hoved som efterflger." + +#~ msgid "Loop %d's latch does not belong directly to it." +#~ msgstr "Lkke %d's ende tilhrer ikke direkte lkken." + +#~ msgid "Loop %d's header does not belong directly to it." +#~ msgstr "Lkke %d's hoved tilhrer ikke direkte lkken." + +#~ msgid "bb %d on wrong place" +#~ msgstr "basisblok %d ved et forkerte sted" + +#~ msgid "prev_bb of %d should be %d, not %d" +#~ msgstr "prev_bb for %d br vre %d, ikke %d" + +#~ msgid "end insn %d for block %d not found in the insn stream" +#~ msgstr "slutinstruktion %d for blok %d ikke fundet i instruktionsstrmmen" + +#~ msgid "insn %d is in multiple basic blocks (%d and %d)" +#~ msgstr "instruktion %d er i flere basisblokke (%d og %d)" + +#~ msgid "head insn %d for block %d not found in the insn stream" +#~ msgstr "hovedinstruktion %d for blok %d ikke fundet i instruktionsstrmmen" + +#~ msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i" +#~ msgstr "verify_flow_info: REG_BR_PROB passer ikke til konf. %i %i" + +#~ msgid "verify_flow_info: Wrong count of block %i %i" +#~ msgstr "verify_flow_info: Ukorrekt antal af blok %i %i" + +#~ msgid "verify_flow_info: Wrong frequency of block %i %i" +#~ msgstr "verify_flow_info: Ukorrekt frekvens af blok %i %i" + +#~ msgid "verify_flow_info: Duplicate edge %i->%i" +#~ msgstr "verify_flow_info: Dobbelt kant %i->%i" + +#~ msgid "verify_flow_info: Wrong probability of edge %i->%i %i" +#~ msgstr "verify_flow_info: Ukorrekt sandsynlighed for kant %i->%i %i" + +#~ msgid "verify_flow_info: Wrong count of edge %i->%i %i" +#~ msgstr "verify_flow_info: Ukorrekt antal for kant %i->%i %i" + +#~ msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" +#~ msgstr "verify_flow_info: Ukorrekte blokke til fald-gennem %i->%i" + +#~ msgid "verify_flow_info: Incorrect fallthru %i->%i" +#~ msgstr "verify_flow_info: Ukorrekt fald-gennem %i->%i" + +#~ msgid "wrong insn in the fallthru edge" +#~ msgstr "forkert instruktion i fald-gennem-kant" + +#~ msgid "verify_flow_info: Basic block %d succ edge is corrupted" +#~ msgstr "verify_flow_info: Efterflgende kant til basisblok %d er delagt" + +#~ msgid "Missing REG_EH_REGION note in the end of bb %i" +#~ msgstr "Mangler REG_EH_REGION-note i slutningen af basisblok %i" + +#~ msgid "Too many outgoing branch edges from bb %i" +#~ msgstr "For mange udgende forgreningskanter fra basisblok %i" + +#~ msgid "Fallthru edge after unconditional jump %i" +#~ msgstr "Fald gennem-kant efter ubetinget spring %i" + +#~ msgid "Wrong amount of branch edges after unconditional jump %i" +#~ msgstr "Forkert antal forgreningskanter efter ubetinget spring %i" + +#~ msgid "Wrong amount of branch edges after conditional jump %i" +#~ msgstr "Forkert antal forgreningskanter efter betinget spring %i" + +#~ msgid "Call edges for non-call insn in bb %i" +#~ msgstr "Kaldekanter for ikke-kaldsinstruktion i basisblok %i" + +#~ msgid "Abnormal edges for no purpose in bb %i" +#~ msgstr "Unormale kanter uden noget forml i basisblok %i" + +#~ msgid "missing barrier after block %i" +#~ msgstr "manglende barriere efter blok %i" + +#~ msgid "basic block %d pred edge is corrupted" +#~ msgstr "foregende kant til basisblok %d er delagt" + +#~ msgid "insn %d inside basic block %d but block_for_insn is NULL" +#~ msgstr "instruktion %d inden i basisblok %d, men block_for_insn er NULL" + +#~ msgid "insn %d inside basic block %d but block_for_insn is %i" +#~ msgstr "instruktion %d inden i basisblok %d, men block_for_insn er %i" + +#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" +#~ msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d" + +#~ msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" +#~ msgstr "NOTE_INSN_BASIC_BLOCK %d i midten af basisblok %d" + +#~ msgid "in basic block %d:" +#~ msgstr "i basisblok %d:" + +#~ msgid "flow control insn inside a basic block" +#~ msgstr "strmkontrolinstruktion inden i en basisblok" + +#~ msgid "basic block %i edge lists are corrupted" +#~ msgstr "kantlister til basisblok %i er delagt" + +#~ msgid "basic blocks not numbered consecutively" +#~ msgstr "basisblokkene er ikke nummeret i rkkeflge" + +#~ msgid "insn outside basic block" +#~ msgstr "instruktion uden for basisblok" + +#~ msgid "return not followed by barrier" +#~ msgstr "returnering flges ikke af barriere" + +#~ msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" +#~ msgstr "antallet af basisbloknoter i instruktionskden (%d) != n_basic_blocks (%d)" + +#~ msgid "verify_flow_info failed" +#~ msgstr "verify_flow_info mislykkedes" + +#~ msgid "internal error" +#~ msgstr "intern fejl" + +#~ msgid "no arguments" +#~ msgstr "ingen parametre" + +#~ msgid "fopen %s" +#~ msgstr "fopen %s" + +#~ msgid "fclose %s" +#~ msgstr "fclose %s" + +#~ msgid "collect2 version %s" +#~ msgstr "collect2 version %s" + +#~ msgid "%d constructor(s) found\n" +#~ msgstr "%d konstruktionsfunktion(er) fundet\n" + +#~ msgid "%d destructor(s) found\n" +#~ msgstr "%d destruktionsfunktion(er) fundet\n" + +#~ msgid "%d frame table(s) found\n" +#~ msgstr "%d rammetabel(ler) fundet\n" + +#~ msgid "%s terminated with signal %d [%s]%s" +#~ msgstr "%s afsluttet af signal %d [%s]%s" + +#~ msgid "%s returned %d exit status" +#~ msgstr "%s returnerede afslutningskoden %d" + +#~ msgid "[cannot find %s]" +#~ msgstr "[kan ikke finde %s]" + +#~ msgid "cannot find `%s'" +#~ msgstr "kan ikke finde '%s'" + +#~ msgid "redirecting stdout: %s" +#~ msgstr "omdirigerer standard-ud: %s" + +#~ msgid "[Leaving %s]\n" +#~ msgstr "[Efterlader %s]\n" + +#~ msgid "" +#~ "\n" +#~ "write_c_file - output name is %s, prefix is %s\n" +#~ msgstr "" +#~ "\n" +#~ "write_c_file - uddatanavnet er %s, prfikset er %s\n" + +#~ msgid "cannot find `nm'" +#~ msgstr "kan ikke finde 'nm'" + +#~ msgid "pipe" +#~ msgstr "pipe" + +#~ msgid "fdopen" +#~ msgstr "fdopen" + +#~ msgid "dup2 %d 1" +#~ msgstr "dup2 %d 1" + +#~ msgid "close %d" +#~ msgstr "close %d" + +#~ msgid "execv %s" +#~ msgstr "fejl under krsel (vha. execv) af %s" + +#~ msgid "init function found in object %s" +#~ msgstr "klargringsfunktion fundet i objekt %s" + +#~ msgid "fini function found in object %s" +#~ msgstr "afslutningsfunktion fundet i objekt %s" + +#~ msgid "fclose" +#~ msgstr "fclose" + +#~ msgid "unable to open file '%s'" +#~ msgstr "kunne ikke bne filen '%s'" + +#~ msgid "unable to stat file '%s'" +#~ msgstr "kunne ikke f fat i oplysninger om filen '%s'" + +#~ msgid "unable to mmap file '%s'" +#~ msgstr "kunne ikke indlse filen '%s'" + +#~ msgid "not found\n" +#~ msgstr "ikke fundet\n" + +#~ msgid "dynamic dependency %s not found" +#~ msgstr "dynamisk afhngighed %s ikke fundet" + +#~ msgid "bad magic number in file '%s'" +#~ msgstr "ugyldigt magisk tal i filen '%s'" + +#~ msgid "dynamic dependencies.\n" +#~ msgstr "dynamiske afhngigheder.\n" + +#~ msgid "cannot find `ldd'" +#~ msgstr "kan ikke finde 'ldd'" + +#~ msgid "" +#~ "\n" +#~ "ldd output with constructors/destructors.\n" +#~ msgstr "" +#~ "\n" +#~ "ldd-uddata med konstruktions-/destruktionsfunktioner.\n" + +#~ msgid "unable to open dynamic dependency '%s'" +#~ msgstr "kan ikke bne den dynamiske afhngighed '%s'" + +#~ msgid "%s: not a COFF file" +#~ msgstr "%s: ikke en COFF-fil" + +#~ msgid "%s: cannot open as COFF file" +#~ msgstr "%s: kan ikke bnes som en COFF-fil" + +#~ msgid "library lib%s not found" +#~ msgstr "biblioteket lib%s ikke fundet" + +#~ msgid "open %s" +#~ msgstr "fejl ved bning af %s" + +#~ msgid "incompatibilities between object file & expected values" +#~ msgstr "uoverensstemmelser mellem objektfil og forventede vrdier" + +#~ msgid "" +#~ "\n" +#~ "Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n" +#~ msgstr "" +#~ "\n" +#~ "Behandler symboltabel nr. %d, forskydning = 0x%.8lx, form = %s\n" + +#~ msgid "string section missing" +#~ msgstr "strengsektion mangler" + +#~ msgid "section pointer missing" +#~ msgstr "sektionshenvisning mangler" + +#~ msgid "no symbol table found" +#~ msgstr "ingen symboltabel fundet" + +#~ msgid "no cmd_strings found" +#~ msgstr "ingen cmd_strings fundet" + +#~ msgid "" +#~ "\n" +#~ "Updating header and load commands.\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "Opdaterer hoved- og indlsningskommandoer.\n" +#~ "\n" + +#~ msgid "load command map, %d cmds, new size %ld.\n" +#~ msgstr "indlser kommandooversigt, %d kommandoer, ny strrelse %ld.\n" + +#~ msgid "" +#~ "writing load commands.\n" +#~ "\n" +#~ msgstr "" +#~ "skriver indlsningskommandoer.\n" +#~ "\n" + +#~ msgid "close %s" +#~ msgstr "fejl ved lukning af %s" + +#~ msgid "could not convert 0x%l.8x into a region" +#~ msgstr "kunne ikke konvertere 0x%l.8x til en region" + +#~ msgid "%s function, region %d, offset = %ld (0x%.8lx)\n" +#~ msgstr "%s-funktion, region %d, forskydning = %ld (0x%.8lx)\n" + +#~ msgid "bad magic number" +#~ msgstr "ugyldigt magisk tal" + +#~ msgid "bad header version" +#~ msgstr "ugyldig version af hovedet" + +#~ msgid "bad raw header version" +#~ msgstr "ugyldig version af rhovedet" + +#~ msgid "raw header buffer too small" +#~ msgstr "rhoved-mellemlager for smt" + +#~ msgid "old raw header file" +#~ msgstr "gammel rhovedfil" + +#~ msgid "unsupported version" +#~ msgstr "versionen er ikke understttet" + +#~ msgid "unknown {de,en}code_mach_o_hdr return value %d" +#~ msgstr "ukendt {de,en}code_mach_o_hdr returneringsvrdi %d" + +#~ msgid "fstat %s" +#~ msgstr "fejl ved egenskabsundersgelse af filen %s" + +#~ msgid "lseek %s 0" +#~ msgstr "fejl ved sgning til begyndelsen i filen %s" + +#~ msgid "read %s" +#~ msgstr "fejl ved lsning af %s" + +#~ msgid "read %ld bytes, expected %ld, from %s" +#~ msgstr "lste %ld byte, forventede %ld, fra %s" + +#~ msgid "msync %s" +#~ msgstr "fejl ved synkronisering mellem hukommelse og disk af %s" + +#~ msgid "munmap %s" +#~ msgstr "fejl ved fjernelse af %s fra hukommelsen" + +#~ msgid "write %s" +#~ msgstr "fejl ved skrivning til %s" + +#~ msgid "wrote %ld bytes, expected %ld, to %s" +#~ msgstr "skrev %ld byte, forventede %ld, til %s" + +#~ msgid "" +#~ ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +#~ ";; %d successes.\n" +#~ "\n" +#~ msgstr "" +#~ ";; kombineringsstatistik: %d forsg, %d udskiftninger (%d krver ny plads),\n" +#~ ";; %d vellykkede.\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ ";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n" +#~ ";; %d successes.\n" +#~ msgstr "" +#~ "\n" +#~ ";; kombineringstotal: %d forsg, %d udskiftninger (%d krver ny plads),\n" +#~ ";; %d succeser.\n" + +#~ msgid "cannot convert to a pointer type" +#~ msgstr "kan ikke konverteres til en henvisningstype" + +#~ msgid "pointer value used where a floating point value was expected" +#~ msgstr "en henvisningsvrdi er angivet hvor der forventedes en kommatalsvrdi" + +#~ msgid "aggregate value used where a float was expected" +#~ msgstr "en vrdi af en sammensat type er angivet hvor der forventedes et kommatal" + +#~ msgid "conversion to incomplete type" +#~ msgstr "konvertering til en ufuldstndig type" + +#~ msgid "can't convert between vector values of different size" +#~ msgstr "kan ikke konvertere vektorvrdier af forskellige strrelser" + +#~ msgid "aggregate value used where an integer was expected" +#~ msgstr "en vrdi af en sammensat type er angivet hvor der forventedes et heltal" + +#~ msgid "pointer value used where a complex was expected" +#~ msgstr "en henvisningsvrdi er angivet hvor der forventedes et komplekst tal" + +#~ msgid "aggregate value used where a complex was expected" +#~ msgstr "en vrdi af en sammensat type er angivet hvor der forventedes et komplekst tal" + +#~ msgid "can't convert value to a vector" +#~ msgstr "kan ikke konvertere vrdi til en vektor" + +#~ msgid "warning: " +#~ msgstr "advarsel: " + +#~ msgid "internal error: " +#~ msgstr "intern fejl: " + +#~ msgid "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 \"...\"-sgning begynder her:\n" + +#~ msgid "#include <...> search starts here:\n" +#~ msgstr "#include <...>-sgning begynder her:\n" + +#~ msgid "End of search list.\n" +#~ msgstr "Slut p sgningslisten.\n" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "assertion missing after %s" +#~ msgstr "et postulat mangler efter %s" + +#~ msgid "directory name missing after %s" +#~ msgstr "et katalognavn mangler efter %s" + +#~ msgid "file name missing after %s" +#~ msgstr "et filnavn mangler efter %s" + +#~ msgid "macro name missing after %s" +#~ msgstr "et makronavn mangler efter %s" + +#~ msgid "path name missing after %s" +#~ msgstr "navnet p en sti mangler efter %s" + +#~ msgid "-I- specified twice" +#~ msgstr "-I- er angivet to gange" + +#~ msgid "no newline at end of file" +#~ msgstr "ingen linjeskift ved slutningen af filen" + +#~ msgid "unknown string token %s\n" +#~ msgstr "ukendt strengsymbol %s\n" + +#~ msgid "non-hex digit '%c' in universal-character-name" +#~ msgstr "'%c' der ikke er et hexadecimalt ciffer, optrder i universelt tegnnavn" + +#~ msgid "universal-character-name on EBCDIC target" +#~ msgstr "universelt tegnnavn p EBCDIC-ml" + +#~ msgid "universal-character-name out of range" +#~ msgstr "universelt tegnnavn uden for det gyldige interval" + +#~ msgid "unknown escape sequence: '\\%03o'" +#~ msgstr "ukendt undvigesekvensen '\\%03o'" + +#~ msgid "escape sequence out of range for its type" +#~ msgstr "undvigesekvensen er uden for det gyldig interval for dens type" + +#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file" +#~ msgstr "#import er forldet, brug en #ifndef-indpakning i inkluderingsfilen" + +#~ msgid "#pragma once is obsolete" +#~ msgstr "'#pragma once' er forldet" + +#~ msgid "\"%s\" is not a valid option to the preprocessor" +#~ msgstr "\"%s\" er ikke et gyldigt tilvalg til prprocessoren" + +#~ msgid "too many input files" +#~ msgstr "for mange inddatafiler" + +#~ msgid ";; Processing block from %d to %d, %d sets.\n" +#~ msgstr ";; Behandler blok fra %d til %d, %d mngder.\n" + +#~ msgid "((anonymous))" +#~ msgstr "((anonym))" + +#~ msgid "%s: warnings being treated as errors\n" +#~ msgstr "%s: advarsler bliver opfattet som fejl\n" + +#~ msgid "%s: %s: " +#~ msgstr "%s: %s: " + +#~ msgid "%s " +#~ msgstr "%s " + +#~ msgid " %s" +#~ msgstr " %s" + +#~ msgid "At top level:" +#~ msgstr "Ved verste niveau:" + +#~ msgid "In member function `%s':" +#~ msgstr "I medlemsfunktionen '%s':" + +#~ msgid "In function `%s':" +#~ msgstr "I funktionen '%s':" + +#~ msgid "compilation terminated.\n" +#~ msgstr "oversttelse afsluttede.\n" + +#~ msgid "%s:%d: confused by earlier errors, bailing out\n" +#~ msgstr "%s:%d: forvirret af tidligere fejl, opgiver vred\n" + +#~ msgid "" +#~ "Please submit a full bug report,\n" +#~ "with preprocessed source if appropriate.\n" +#~ "See %s for instructions.\n" +#~ msgstr "" +#~ "Indsend venligst en komplet fejlrapport med\n" +#~ "prprocesseret kildekode om ndvendigt.\n" +#~ "Se %s for instruktioner.\n" + +#~ msgid "Internal compiler error: Error reporting routines re-entered.\n" +#~ msgstr "Intern overstterfejl: fejlrapporteringsrutiner blev kaldt igen.\n" + +#~ msgid "in %s, at %s:%d" +#~ msgstr "i %s, ved %s:%d" + +#~ msgid "In file included from %s:%d" +#~ msgstr "I filen inkluderet af %s:%d" + +# kommer til at st neden under ovenstende, derfor "af" +#~ msgid "" +#~ ",\n" +#~ " from %s:%d" +#~ msgstr "" +#~ ",\n" +#~ " af %s:%d" + +#~ msgid ":\n" +#~ msgstr ":\n" + +#~ msgid "`%s' is deprecated (declared at %s:%d)" +#~ msgstr "'%s' er forldet (erklret ved %s:%d)" + +#~ msgid "`%s' is deprecated" +#~ msgstr "'%s' er forldet" + +#~ msgid "type is deprecated (declared at %s:%d)" +#~ msgstr "type er forldet (erklret ved %s:%d)" + +#~ msgid "type is deprecated" +#~ msgstr "type er forldet" + +#~ msgid "dominator of %d should be %d, not %d" +#~ msgstr "dominator for %d burde vre %d, ikke %d" + +#~ msgid "DW_LOC_OP %s not implemented\n" +#~ msgstr "DW_LOC_OP %s understttes ikke\n" + +#~ msgid "internal regno botch: `%s' has regno = %d\n" +#~ msgstr "internt reg.nr.-problem: '%s' har reg.nr. = %d\n" + +#~ msgid "support for the DWARF1 debugging format is deprecated" +#~ msgstr "understttelse for DWARF1-fejlanalyseringsformatet er forldet" + +#~ msgid "can't get current directory" +#~ msgstr "kan ikke f fat i det aktuelle katalog" + +#~ msgid "can't access real part of complex value in hard register" +#~ msgstr "kan ikke tilg den reelle del af komplekst tal i et hardwareregister" + +#~ msgid "can't access imaginary part of complex value in hard register" +#~ msgstr "kan ikke tilg den imaginre del af komplekst tal i et hardwareregister" + +#~ msgid "ICE: emit_insn used where emit_jump_insn needed:\n" +#~ msgstr "ICE: emit_insn brugt hvor emit_jump_insn behves:\n" + +#~ msgid "abort in %s, at %s:%d" +#~ msgstr "afbrudt i %s ved %s:%d" + +#~ msgid "exception handling disabled, use -fexceptions to enable" +#~ msgstr "hndtering af undtagelser er slet fra, angiv -fexceptions for at sl dem til" + +#~ msgid "argument of `__builtin_eh_return_regno' must be constant" +#~ msgstr "parameteren til '__builtin_eh_return_regno' skal vre konstant" + +#~ msgid "__builtin_eh_return not supported on this target" +#~ msgstr "__builtin_eh_return understttes ikke p mlarkitekturen" + +#~ msgid "stack limits not supported on this target" +#~ msgstr "stakgrnser understttes ikke p mlarkitekturen" + +#~ msgid "function using short complex types cannot be inline" +#~ msgstr "funktioner der benytter short complex-typer, kan ikke indbygges" + +#~ msgid "unsupported wide integer operation" +#~ msgstr "bred heltalsoperation understttes ikke" + +#~ msgid "prior parameter's size depends on `%s'" +#~ msgstr "foregende parameters strrelse afhnger af '%s'" + +#~ msgid "returned value in block_exit_expr" +#~ msgstr "returnerede vrdi i block_exit_expr" + +#~ msgid "cannot take the address of an unaligned member" +#~ msgstr "kan ikke tage adressen af et ikke-justeret medlem" + +#~ msgid "negative insn length" +#~ msgstr "negativ instruktionslngde" + +#~ msgid "could not split insn" +#~ msgstr "kunne ikke dele instruktion" + +#~ msgid "invalid `asm': " +#~ msgstr "ugyldig 'asm': " + +#~ msgid "nested assembly dialect alternatives" +#~ msgstr "indlejrede alternativer for maskinkodedialekter" + +#~ msgid "unterminated assembly dialect alternative" +#~ msgstr "uafsluttet alternativ for maskinkodedialekt" + +#~ msgid "operand number missing after %%-letter" +#~ msgstr "operandtal mangler efter %%-letter" + +#~ msgid "operand number out of range" +#~ msgstr "operandtal er uden for det gyldige interval" + +#~ msgid "invalid %%-code" +#~ msgstr "ugyldig %%-kode" + +#~ msgid "`%%l' operand isn't a label" +#~ msgstr "'%%l'-operand er ikke en etiket" + +#~ msgid "floating constant misused" +#~ msgstr "kommatalskonstant misbrugt" + +#~ msgid "invalid expression as operand" +#~ msgstr "ugyldigt udtryk som operand" + +#~ msgid "function might be possible candidate for attribute `noreturn'" +#~ msgstr "funktion er muligvis en kandidat til egenskaben 'noreturn'" + +#~ msgid "`noreturn' function does return" +#~ msgstr "funktion med egenskaben 'noreturn' returnerer" + +# RETMIG: dette m kunne gres bedre +#~ msgid "control reaches end of non-void function" +#~ msgstr "kontrol nr til slutningen af ikke-void funktion" + +#~ msgid "Attempt to delete prologue/epilogue insn:" +#~ msgstr "forsg p at slette indledende/afsluttende instruktion:" + +#~ msgid "comparison is always %d due to width of bit-field" +#~ msgstr "sammenligning er altid %d p grund af den begrnsede rkkevidde af bitfeltet" + +#~ msgid "comparison is always %d" +#~ msgstr "sammenligning er altid %d" + +# RETMIG: det giver ikke mening +#~ msgid "`or' of unmatched not-equal tests is always 1" +#~ msgstr "'or' af uafbalancerede sammenligninger med forskellig fra er altid 1" + +#~ msgid "`and' of mutually exclusive equal-tests is always 0" +#~ msgstr "'and' af udtryk der hver for sig udelukker hinanden, er altid 0" + +#~ msgid "size of variable `%s' is too large" +#~ msgstr "strrelsen af variablen '%s' er for stor" + +#~ msgid "impossible constraint in `asm'" +#~ msgstr "umulig begrnsing i 'asm'" + +#~ msgid "`%s' might be used uninitialized in this function" +#~ msgstr "'%s' bliver mske brugt uden at have en startvrdi i denne funktion" + +#~ msgid "variable `%s' might be clobbered by `longjmp' or `vfork'" +#~ msgstr "variablen '%s' bliver mske overskrevet af 'longjmp' eller 'vfork'" + +#~ msgid "argument `%s' might be clobbered by `longjmp' or `vfork'" +#~ msgstr "parameteren '%s' bliver mske overskrevet af 'longjmp' eller 'vfork'" + +#~ msgid "function returns an aggregate" +#~ msgstr "funktion returnerer en vrdi af en sammensat type" + +#~ msgid "unused parameter `%s'" +#~ msgstr "ubenyttet parameter '%s'" + +#~ msgid "ambiguous abbreviation %s" +#~ msgstr "tvetydig forkortelse %s" + +#~ msgid "incomplete `%s' option" +#~ msgstr "ufuldstndigt tilvalg '%s'" + +#~ msgid "missing argument to `%s' option" +#~ msgstr "der mangler en parameter til tilvalget '%s'" + +#~ msgid "extraneous argument to `%s' option" +#~ msgstr "der er en parameter for meget til tilvalget '%s'" + +#~ msgid "Using built-in specs.\n" +#~ msgstr "Benytter indbyggede specifikationer.\n" + +#~ msgid "" +#~ "Setting spec %s to '%s'\n" +#~ "\n" +#~ msgstr "" +#~ "Stter specifikation %s til '%s'\n" +#~ "\n" + +#~ msgid "Reading specs from %s\n" +#~ msgstr "Lser specifikationer fra %s\n" + +#~ msgid "specs %%include syntax malformed after %ld characters" +#~ msgstr "%%include-syntaks i specifikationer misdannet efter %ld tegn" + +#~ msgid "could not find specs file %s\n" +#~ msgstr "kunne ikke finde specifikationsfilen %s\n" + +#~ msgid "specs %%rename syntax malformed after %ld characters" +#~ msgstr "%%rename-syntaks i specifikationer misdannet efter %ld tegn" + +#~ msgid "specs %s spec was not found to be renamed" +#~ msgstr "%s-specifikation i specifikationer kunne ikke findes til omdbelse" + +#~ msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" +#~ msgstr "%s: forsg p at omdbe specifikation '%s' til allerede defineret specifikation '%s'" + +#~ msgid "rename spec %s to %s\n" +#~ msgstr "omdb specifikation %s til %s\n" + +#~ msgid "" +#~ "spec is '%s'\n" +#~ "\n" +#~ msgstr "" +#~ "specifikation er '%s'\n" +#~ "\n" + +#~ msgid "specs unknown %% command after %ld characters" +#~ msgstr "ukendt %%-kommando i specifikationer efter %ld tegn" + +#~ msgid "specs file malformed after %ld characters" +#~ msgstr "specifikationsfil misdannet efter %ld tegn" + +#~ msgid "spec file has no spec for linking" +#~ msgstr "specifikationsfil har ingen specifikation til sammenkdning" + +#~ msgid "-pipe not supported" +#~ msgstr "-pipe understttes ikke" + +#~ msgid "" +#~ "\n" +#~ "Go ahead? (y or n) " +#~ msgstr "" +#~ "\n" +#~ "Fortst, ja (y) eller nej (n)?" + +#~ msgid "" +#~ "Internal error: %s (program %s)\n" +#~ "Please submit a full bug report.\n" +#~ "See %s for instructions." +#~ msgstr "" +#~ "Intern fejl: %s (programmet %s)\n" +#~ "Indsend venligst en komplet fejlrapport.\n" +#~ "Se %s for instruktioner." + +#~ msgid "# %s %.2f %.2f\n" +#~ msgstr "# %s %.2f %.2f\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Brug: %s [tilvalg] fil...\n" + +#~ msgid "Options:\n" +#~ msgstr "Tilvalg:\n" + +#~ msgid " -pass-exit-codes Exit with highest error code from a phase\n" +#~ msgstr " -pass-exit-codes Afslut med den hjeste fejlkode fra en fase\n" + +#~ msgid " --help Display this information\n" +#~ msgstr " --help Vis disse oplysninger\n" + +#~ msgid " --target-help Display target specific command line options\n" +#~ msgstr " --target-help Vis mlspecifikke kommandolinjetilvalg\n" + +#~ msgid " (Use '-v --help' to display command line options of sub-processes)\n" +#~ msgstr " (benyt '-v --help' for at vise kommandolinjetilvalg for underprocesser)\n" + +#~ msgid " -dumpspecs Display all of the built in spec strings\n" +#~ msgstr " -dumpspecs Vis alle de indbyggede specifikationsstrenge\n" + +#~ msgid " -dumpversion Display the version of the compiler\n" +#~ msgstr " -dumpversion Vis versionsnummeret af overstteren\n" + +#~ msgid " -dumpmachine Display the compiler's target processor\n" +#~ msgstr " -dumpmachine Vis overstterens mlprocessor\n" + +#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n" +#~ msgstr " -print-search-dirs Vis katalogerne i overstterens sgesti\n" + +#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" +#~ msgstr " -print-libgcc-file-name Vis navnet p overstterens tilhrende bibliotek\n" + +#~ msgid " -print-file-name= Display the full path to library \n" +#~ msgstr " -print-file-name= Vis den komplette sti til biblioteket \n" + +#~ msgid " -print-prog-name= Display the full path to compiler component \n" +#~ msgstr " -print-prog-name= Vis den komplette sti til overstterkomponenten \n" + +#~ msgid " -print-multi-directory Display the root directory for versions of libgcc\n" +#~ msgstr " -print-multi-directory Vis rodkataloget for versioner af libgcc\n" + +#~ msgid "" +#~ " -print-multi-lib Display the mapping between command line options and\n" +#~ " multiple library search directories\n" +#~ msgstr "" +#~ " -print-multi-lib Vis afbildningen mellem kommandolinjetilvalg og\n" +#~ " flere bibliotekssgekataloger\n" + +#~ msgid " -print-multi-os-directory Display the relative path to OS libraries\n" +#~ msgstr " -print-multi-os-directory Vis den relative sti for OS-biblioteker\n" + +#~ msgid " -Wa, Pass comma-separated on to the assembler\n" +#~ msgstr " -Wa, Videregiv komma-adskilte til maskinkodeoverstteren\n" + +#~ msgid " -Wp, Pass comma-separated on to the preprocessor\n" +#~ msgstr " -Wp, Videregiv komma-adskilte til prprocessoren\n" + +#~ msgid " -Wl, Pass comma-separated on to the linker\n" +#~ msgstr " -Wl, Videregiv komma-adskilte til sammenkderen\n" + +#~ msgid " -Xlinker Pass on to the linker\n" +#~ msgstr " -Xlinker Videregiv til sammenkderen\n" + +#~ msgid " -save-temps Do not delete intermediate files\n" +#~ msgstr " -save-temps Slet ikke midlertidige filer\n" + +#~ msgid " -pipe Use pipes rather than intermediate files\n" +#~ msgstr " -pipe Brug datakanaler i stedet for midlertidige filer\n" + +#~ msgid " -time Time the execution of each subprocess\n" +#~ msgstr " -time Tag tid p udfrslen af hver underproces\n" + +#~ msgid " -specs= Override built-in specs with the contents of \n" +#~ msgstr " -specs= Overskriv indbyggede specifikationer med indholdet af \n" + +#~ msgid " -std= Assume that the input sources are for \n" +#~ msgstr " -std= Antag at inddatakildekoden er skrevet til \n" + +#~ msgid " -B Add to the compiler's search paths\n" +#~ msgstr " -B Tilfj katalog til overstterens sgestier\n" + +#~ msgid " -b Run gcc for target , if installed\n" +#~ msgstr " -b Kr GCC til mlet , hvis installeret\n" + +#~ msgid " -V Run gcc version number , if installed\n" +#~ msgstr " -V Kr GCC med versionsnummeret , hvis installeret\n" + +#~ msgid " -v Display the programs invoked by the compiler\n" +#~ msgstr " -v Vis de programmer der startes af overstteren\n" + +#~ msgid " -### Like -v but options quoted and commands not executed\n" +#~ msgstr "" +#~ " -### Som '-v', men tilvalg anbringes i anfrselstegn\n" +#~ " og kommandoerne udfres ikke\n" + +#~ msgid " -E Preprocess only; do not compile, assemble or link\n" +#~ msgstr " -E Forbehandl kun; overst og sammenkd ikke\n" + +#~ msgid " -S Compile only; do not assemble or link\n" +#~ msgstr " -S Overst kun; maskinekodeoverst og sammenkd ikke\n" + +#~ msgid " -c Compile and assemble, but do not link\n" +#~ msgstr " -c Overst, ogs til maskinkode, men sammenkd ikke\n" + +#~ msgid " -o Place the output into \n" +#~ msgstr " -o Anbring uddataene i \n" + +#~ msgid "" +#~ " -x 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 Angiv sproget for de flgende inddatafiler.\n" +#~ " Tilladte sprog inkluderer: c c++ assembler none\n" +#~ " 'none' betyder at standardopfrslen med at gtte\n" +#~ " sproget p filendelsen udfres\n" + +#~ msgid "" +#~ "\n" +#~ "Options starting with -g, -f, -m, -O, -W, or --param are automatically\n" +#~ " passed on to the various sub-processes invoked by %s. In order to pass\n" +#~ " other options on to these processes the -W 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' bruges.\n" + +#~ msgid "`-%c' option must have argument" +#~ msgstr "tilvalget '-%c' skal have en parameter" + +#~ msgid "couldn't run `%s': %s" +#~ msgstr "kunne ikke kre '%s': %s" + +#~ msgid "%s (GCC) %s\n" +#~ msgstr "%s (GCC) %s\n" + +#~ msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n" +#~ msgstr "Copyright 2003 Free Software Foundation, Inc.\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +#~ "\n" +#~ msgstr "" +#~ "Dette er et frit program; se kildekoden for kopieringsbetingelser. Der er\n" +#~ "INGEN garanti; ikke engang for SALGBARHED eller BRUGBARHED TIL NOGET FORML.\n" + +#~ msgid "argument to `-Xlinker' is missing" +#~ msgstr "der mangler en parameter til '-Xlinker'" + +#~ msgid "argument to `-l' is missing" +#~ msgstr "der mangler en parameter til '-l'" + +#~ msgid "argument to `-specs' is missing" +#~ msgstr "der mangler en parameter til '-specs'" + +#~ msgid "argument to `-specs=' is missing" +#~ msgstr "der mangler en parameter til '-specs='" + +#~ msgid "`-%c' must come at the start of the command line" +#~ msgstr "'-%c' skal vre i begyndelsen af kommandolinjen" + +#~ msgid "argument to `-B' is missing" +#~ msgstr "der mangler en parameter til '-B'" + +#~ msgid "cannot specify -o with -c or -S and multiple compilations" +#~ msgstr "kan ikke angive -o med -c eller -S og flere oversttelser" + +#~ msgid "warning: -pipe ignored because -save-temps specified" +#~ msgstr "advarsel: -pipe ignoreret fordi -save-temps er angivet" + +#~ msgid "warning: -pipe ignored because -time specified" +#~ msgstr "advarsel: -pipe ignoreret fordi -time er angivet" + +#~ msgid "argument to `-x' is missing" +#~ msgstr "der mangler en parameter til '-x'" + +#~ msgid "argument to `-%s' is missing" +#~ msgstr "der mangler en parameter til '-%s'" + +#~ msgid "warning: `-x %s' after last input file has no effect" +#~ msgstr "advarsel: '-x %s' efter den sidste inddatafil har ingen effekt" + +#~ msgid "invalid specification! Bug in cc" +#~ msgstr "ugyldig specifikation! Fejl i cc." + +#~ msgid "%s\n" +#~ msgstr "%s\n" + +#~ msgid "spec failure: '%%*' has not been initialized by pattern match" +#~ msgstr "specifikationsfejl: '%%*' er ikke blevet klargjort af mnstersgning" + +#~ msgid "warning: use of obsolete %%[ operator in specs" +#~ msgstr "advarsel: forldet '%%['-operator benyttet i specifikationer" + +#~ msgid "Processing spec %c%s%c, which is '%s'\n" +#~ msgstr "Behandler specifikation %c%s%c, som er '%s'\n" + +#~ msgid "spec failure: unrecognized spec option '%c'" +#~ msgstr "specifikationsfejl: ukendt specifikationstilvalg '%c'" + +#~ msgid "unknown spec function `%s'" +#~ msgstr "ukendt specifikationsfunktion '%s'" + +#~ msgid "error in args to spec function `%s'" +#~ msgstr "fejl i parametre til specifikationsfunktion '%s'" + +#~ msgid "malformed spec function name" +#~ msgstr "forkert udformet specifikationsfunktionsnavn" + +#~ msgid "no arguments for spec function" +#~ msgstr "ingen parametre til specifikationsfunktion" + +#~ msgid "malformed spec function arguments" +#~ msgstr "forkert udformede specifikationsfunktionsparametre" + +#~ msgid "mismatched braces in specs" +#~ msgstr "uafbalancerede krllede paranteser i specifikationer" + +#~ msgid "unrecognized option `-%s'" +#~ msgstr "ukendt tilvalg '-%s'" + +#~ msgid "install: %s%s\n" +#~ msgstr "installering: %s%s\n" + +#~ msgid "programs: %s\n" +#~ msgstr "programmer: %s\n" + +#~ msgid "libraries: %s\n" +#~ msgstr "biblioteker: %s\n" + +#~ msgid "" +#~ "\n" +#~ "For bug reporting instructions, please see:\n" +#~ msgstr "" +#~ "\n" +#~ "For fejlrapporteringsinstruktioner, se:\n" + +#~ msgid "Configured with: %s\n" +#~ msgstr "Konfigureret med: %s\n" + +#~ msgid "Thread model: %s\n" +#~ msgstr "Trdmodel: %s\n" + +#~ msgid "gcc version %s\n" +#~ msgstr "GCC version %s\n" + +#~ msgid "gcc driver version %s executing gcc version %s\n" +#~ msgstr "GCC-styringsprogram version %s krer GCCc version %s\n" + +#~ msgid "no input files" +#~ msgstr "ingen inddatafiler" + +#~ msgid "%s: %s compiler not installed on this system" +#~ msgstr "%s: %s-overstter ikke installeret p dette system" + +#~ msgid "%s: linker input file unused because linking not done" +#~ msgstr "%s: sammenkderinddatafil ikke benyttet eftersom sammenkdning ikke blev foretaget" + +#~ msgid "language %s not recognized" +#~ msgstr "sproget %s ikke genkendt" + +#~ msgid "internal gcc abort" +#~ msgstr "intern GCC-afbrydelse" + +#~ msgid "Internal gcov abort.\n" +#~ msgstr "Intern gcov afbrydelse.\n" + +#~ msgid "" +#~ "Usage: gcov [OPTION]... SOURCEFILE\n" +#~ "\n" +#~ msgstr "" +#~ "Brug: gcov [TILVALG]... KILDEFIL\n" +#~ "\n" + +#~ msgid "" +#~ "Print code coverage information.\n" +#~ "\n" +#~ msgstr "" +#~ "Udskriv kodedkningsoplysninger.\n" +#~ "\n" + +#~ msgid " -h, --help Print this help, then exit\n" +#~ msgstr " -h, --help Udskriv denne hjlp og afslut\n" + +#~ msgid " -v, --version Print version number, then exit\n" +#~ msgstr " -v, --version Udskriv versionsnummeret og afslut\n" + +#~ msgid " -b, --branch-probabilities Include branch probabilities in output\n" +#~ msgstr " -b, --branch-probabilities Medtag forgreningssandsynligheder i uddata\n" + +#~ msgid "" +#~ " -c, --branch-counts Given counts of branches taken\n" +#~ " rather than percentages\n" +#~ msgstr " -c, --branch-counts Antal forgreninger taget i stedet for procenter\n" + +#~ msgid " -n, --no-output Do not create an output file\n" +#~ msgstr " -n, --no-output Opret ikke en uddatafil\n" + +#~ msgid "" +#~ " -l, --long-file-names Use long output file names for included\n" +#~ " source files\n" +#~ msgstr " -l, --long-file-names Brug lange filnavne til inkluderede kildefiler\n" + +#~ msgid " -f, --function-summaries Output summaries for each function\n" +#~ msgstr " -f, --function-summaries Udskriv sammendrag for hver funktion\n" + +#~ msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n" +#~ msgstr " -o, --object-directory KAT|FIL Sg efter objektfiler i KAT eller kaldt FIL\n" + +#~ msgid " -p, --preserve-paths Preserve all pathname components\n" +#~ msgstr " -p, --preserve-paths Bevar alle stinavnskomponenter\n" + +#~ msgid "" +#~ "\n" +#~ "For bug reporting instructions, please see:\n" +#~ "%s.\n" +#~ msgstr "" +#~ "\n" +#~ "For fejlrapporteringsinstruktioner, se:\n" +#~ "%s.\n" + +#~ msgid "gcov (GCC) %s\n" +#~ msgstr "gcov (GCC) %s\n" + +#~ msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n" +#~ msgstr "Copyright 2001 Free Software Foundation, Inc.\n" + +#~ msgid "Could not open basic block file %s.\n" +#~ msgstr "Kunne ikke bne basisblokfilen %s.\n" + +#~ msgid "Could not open program flow graph file %s.\n" +#~ msgstr "Kunne ikke bne programstrmsgraffilen %s.\n" + +#~ msgid "Could not open data file %s.\n" +#~ msgstr "Kunne ikke bne datafilen %s.\n" + +#~ msgid "Assuming that all execution counts are zero.\n" +#~ msgstr "Antager at alle krselstllere er nul.\n" + +#~ msgid "No executable code associated with file %s.\n" +#~ msgstr "Ingen krbar kode associeret med filen %s.\n" + +#~ msgid "%s of %d lines executed in %s %s\n" +#~ msgstr "%s af %d linjer udfrt i %s %s\n" + +#~ msgid "No executable lines in %s %s\n" +#~ msgstr "Ingen krbare linjer i %s %s\n" + +#~ msgid "%s of %d branches executed in %s %s\n" +#~ msgstr "%s af %d forgreninger udfrt i %s %s\n" + +#~ msgid "%s of %d branches taken at least once in %s %s\n" +#~ msgstr "%s af %d forgreninger valgt mindst n gang i %s %s\n" + +#~ msgid "No branches in %s %s\n" +#~ msgstr "Ingen forgreninger i %s %s\n" + +#~ msgid "%s of %d calls executed in %s %s\n" +#~ msgstr "%s af %d kald udfrt i %s %s\n" + +#~ msgid "No calls in %s %s\n" +#~ msgstr "Ingen kald i %s %s\n" + +#~ msgid "didn't use all bb entries of graph, function %s\n" +#~ msgstr "brugte ikke alle grafens basisblokelementer, funktion %s\n" + +#~ msgid "block_num = %ld, num_blocks = %d\n" +#~ msgstr "block_num = %ld, num_blocks = %d\n" + +#~ msgid "ERROR: unexpected line number %ld\n" +#~ msgstr "Fejl: uventet linjenummer %ld\n" + +#~ msgid "ERROR: too many basic blocks in function %s\n" +#~ msgstr "Fejl: for mange basisblokke i funktionen %s\n" + +#~ msgid "ERROR: out of range line number in function %s\n" +#~ msgstr "Fejl: linjenummer uden for det gyldige interval i funktionen %s\n" + +#~ msgid "Could not open source file %s.\n" +#~ msgstr "Kunne ikke bne kildefilen %s.\n" + +#~ msgid "Warning: source file %s is newer than %s\n" +#~ msgstr "Advarsel: kildefil %s er nyere end %s\n" + +#~ msgid "Unexpected EOF while reading source file %s.\n" +#~ msgstr "Stdt p slutningen af kildefilen %s tidligere end forventet.\n" + +#~ msgid "call %2d never executed\n" +#~ msgstr "kald %2d aldrig udfrt\n" + +#~ msgid "call %2d returns %s\n" +#~ msgstr "kald %2d returnerer %s\n" + +#~ msgid "branch %2d never executed\n" +#~ msgstr "forgrening %2d aldrig udfrt\n" + +#~ msgid "branch %2d taken %s\n" +#~ msgstr "forgrening %2d valgt %s\n" + +#~ msgid "Creating %s.\n" +#~ msgstr "Opretter %s.\n" + +#~ msgid "Error writing output file %s.\n" +#~ msgstr "Fejl ved skrivning af uddatafilen %s.\n" + +#~ msgid "Could not open output file %s.\n" +#~ msgstr "Kunne ikke bne uddatafilen %s.\n" + +#~ msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block" +#~ msgstr "GCSE deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok" + +#~ msgid "GCSE disabled: %d basic blocks and %d registers" +#~ msgstr "GCSE deaktiveret: %d basisblokke og %d registre" + +#~ msgid "Name `%s' contains quotes" +#~ msgstr "Navnet '%s' indeholder citationstegn" + +#~ msgid "invalid string `%s' in define_cpu_unit" +#~ msgstr "ugyldig streng '%s' i define_cpu_unit" + +#~ msgid "invalid string `%s' in define_query_cpu_unit" +#~ msgstr "ugyldig streng '%s' i define_query_cpu_unit" + +#~ msgid "invalid string `%s' in define_bypass" +#~ msgstr "ugyldig streng '%s' i define_bypass" + +#~ msgid "invalid first string `%s' in exclusion_set" +#~ msgstr "ugyldig frste streng '%s' i exclusion_set" + +#~ msgid "invalid second string `%s' in exclusion_set" +#~ msgstr "ugyldig anden streng '%s' i exclusion_set" + +#~ msgid "invalid first string `%s' in presence_set" +#~ msgstr "ugyldig frste streng '%s' i presence_set" + +#~ msgid "invalid second string `%s' in presence_set" +#~ msgstr "ugyldig anden streng '%s' i presence_set" + +#~ msgid "invalid first string `%s' in absence_set" +#~ msgstr "ugyldig frste streng '%s' i absence_set" + +#~ msgid "invalid second string `%s' in absence_set" +#~ msgstr "ugyldig anden streng '%s' i absence_set" + +#~ msgid "invalid string `%s' in define_automaton" +#~ msgstr "ugyldig streng '%s' i define_automaton" + +#~ msgid "invalid option `%s' in automata_option" +#~ msgstr "ugyldigt tilvalg '%s' i automata_option" + +#~ msgid "garbage after ) in reservation `%s'" +#~ msgstr "ragelse efter ) i reservering '%s'" + +#~ msgid "invalid `%s' in reservation `%s'" +#~ msgstr "ugyldig '%s' i reservering '%s'" + +#~ msgid "repetition `%s' <= 1 in reservation `%s'" +#~ msgstr "gentagelse '%s' <= 1 i reservering '%s'" + +#~ msgid "unit `%s' in exclusion is not declared" +#~ msgstr "enhed '%s' i ekskludering er ikke erklret" + +#~ msgid "`%s' in exclusion is not unit" +#~ msgstr "'%s' i ekskludering er ikke enhed" + +#~ msgid "unit `%s' excludes itself" +#~ msgstr "enheden '%s' ekskluderer sig selv" + +#~ msgid "units `%s' and `%s' in exclusion set belong to different automata" +#~ msgstr "enhederne '%s' og '%s' i ekskluderingsmngde tilhrer forskellige automater" + +#~ msgid "unit `%s' excludes and requires presence of `%s'" +#~ msgstr "enheden '%s' ekskluderer og krver tilstedevrelse af '%s'" + +#~ msgid "unit `%s' requires absence and presence of `%s'" +#~ msgstr "enheden '%s' krver tilstedevrelse og fravr af '%s'" + +#~ msgid "repeated declaration of automaton `%s'" +#~ msgstr "gentaget erklring af automaten '%s'" + +#~ msgid "define_insn_reservation `%s' has negative latency time" +#~ msgstr "define_insn_reservation '%s' har negativ ventetid" + +#~ msgid "`%s' is already used as insn reservation name" +#~ msgstr "`%s' bliver allerede benyttet som instruktionsreserveringsnavn" + +#~ msgid "define_bypass `%s - %s' has negative latency time" +#~ msgstr "define_bypass '%s - %s' har negativ ventetid" + +#~ msgid "automaton `%s' is not declared" +#~ msgstr "automaten '%s' er ikke erklret" + +#~ msgid "define_unit `%s' without automaton when one defined" +#~ msgstr "define_unit '%s' uden automat nr en er defineret" + +#~ msgid "`%s' is declared as cpu unit" +#~ msgstr "'%s' er erklret som CPU-enhed" + +#~ msgid "`%s' is declared as cpu reservation" +#~ msgstr "'%s' er erklret som CPU-reservering" + +#~ msgid "repeated declaration of unit `%s'" +#~ msgstr "gentaget erklring af enheden '%s'" + +#~ msgid "repeated declaration of reservation `%s'" +#~ msgstr "gentaget erklring af reserveringen '%s'" + +#~ msgid "there is no insn reservation `%s'" +#~ msgstr "der er ingen instruktionsreservering '%s'" + +#~ msgid "the same bypass `%s - %s' is already defined" +#~ msgstr "den samme videreledning '%s - %s' er allerede defineret" + +#~ msgid "bypass `%s - %s' is already defined" +#~ msgstr "videreledning '%s - %s' er allerede defineret" + +#~ msgid "automaton `%s' is not used" +#~ msgstr "automat '%s' bliver ikke benyttet" + +#~ msgid "undeclared unit or reservation `%s'" +#~ msgstr "ikke-erklret enhed eller reservering '%s'" + +#~ msgid "unit `%s' is not used" +#~ msgstr "enhed '%s' bliver ikke benyttet" + +#~ msgid "reservation `%s' is not used" +#~ msgstr "reservering '%s' bliver ikke benyttet" + +#~ msgid "cycle in definition of reservation `%s'" +#~ msgstr "cyklus i definering af reservering '%s'" + +#~ msgid "Units `%s' and `%s' should be in the same automaton" +#~ msgstr "Enhederne '%s' og '%s' skal vre i den samme automat" + +#~ msgid "-split has no argument." +#~ msgstr "-split uden parametre" + +#~ msgid "option `-split' has not been implemented yet\n" +#~ msgstr "tilvalget '-split' understttes ikke endnu\n" + +#~ msgid "Automaton `%s': Insn `%s' will never be issued" +#~ msgstr "Automat '%s': instruktion '%s' vil aldrig blive udfrt" + +#~ msgid "Insn `%s' will never be issued" +#~ msgstr "Instruktion '%s' vil aldrig blive udfrt" + +#~ msgid "Errors in DFA description" +#~ msgstr "Fejl i DFA-beskrivelse" + +#~ msgid "Error in writing DFA description file %s" +#~ msgstr "Fejl ved skrivning af DFA-beskrivelsesfil %s" + +#~ msgid "No input file name." +#~ msgstr "Intet inddatafilnavn." + +#~ msgid "can't open %s" +#~ msgstr "kan ikke bne %s" + +#~ msgid "fix_sched_param: unknown param: %s" +#~ msgstr "fix_sched_param: ukendt parameter: %s" + +#~ msgid "function cannot be inline" +#~ msgstr "funktion kan ikke indbygges" + +#~ msgid "varargs function cannot be inline" +#~ msgstr "funktion med variabel parameterliste kan ikke indbygges" + +#~ msgid "function using alloca cannot be inline" +#~ msgstr "funktion der bruger alloca, kan ikke indbygges" + +#~ msgid "function using setjmp cannot be inline" +#~ msgstr "funktion der bruger setjmp, kan ikke indbygges" + +#~ msgid "function uses __builtin_eh_return" +#~ msgstr "funktionen bruger __builtin_eh_return" + +#~ msgid "function with nested functions cannot be inline" +#~ msgstr "funktion med indlejrede funktioner kan ikke indbygges" + +#~ msgid "function with label addresses used in initializers cannot inline" +#~ msgstr "funktion hvor etiketadresser benyttes i klargringer, kan ikke indbygges" + +#~ msgid "function too large to be inline" +#~ msgstr "funktionen er for stor til at blive indbygget" + +#~ msgid "no prototype, and parameter address used; cannot be inline" +#~ msgstr "ingen prototype, og parameteradressen benyttes; kan ikke indbygges" + +#~ msgid "inline functions not supported for this return value type" +#~ msgstr "integrerede funktioner understttes ikke for denne returvrditype" + +#~ msgid "function with varying-size return value cannot be inline" +#~ msgstr "funktioner med returvrdier af varierende strrelse kan ikke indbygges" + +#~ msgid "function with varying-size parameter cannot be inline" +#~ msgstr "funktioner med parametre af varierende strrelse kan ikke indbygges" + +#~ msgid "function with transparent unit parameter cannot be inline" +#~ msgstr "funktioner med gennemsigtig union-parameter kan ikke indbygges" + +#~ msgid "function with computed jump cannot inline" +#~ msgstr "funktioner med beregnede spring kan ikke indbygges" + +#~ msgid "function with nonlocal goto cannot be inline" +#~ msgstr "funktioner med ikke-lokale goto'er kan ikke indbygges" + +#~ msgid "function with target specific attribute(s) cannot be inlined" +#~ msgstr "funktioner med mlspecifikke egenskaber kan ikke indbygges" + +#~ msgid "In file included from %s:%u" +#~ msgstr "I filen inkluderet af %s:%u" + +#~ msgid "" +#~ ",\n" +#~ " from %s:%u" +#~ msgstr "" +#~ ",\n" +#~ " af %s:%u" + +#~ msgid "invalid parameter `%s'" +#~ msgstr "ugyldig parameter '%s'" + +#~ msgid "Profile does not match flowgraph of function %s (out of date?)" +#~ msgstr "Profil passer ikke til flowgraph af funktionen %s (forldet?)" + +#~ msgid ".da file corrupted" +#~ msgstr ".da-fil delagt" + +# 'prob' str for sandsynlighed +#~ msgid "corrupted profile info: prob for %d-%d thought to be %d" +#~ msgstr "delagte profilinfo: sandsynlighed for %d-%d menes at vre %d" + +#~ msgid "file %s not found, execution counts assumed to be zero" +#~ msgstr "filen %s ikke fundet, antager at krselstllere er nul" + +#~ msgid "%s: internal abort\n" +#~ msgstr "%s: intern afbrydelse\n" + +#~ msgid "%s: error writing file `%s': %s\n" +#~ msgstr "%s: fejl ved skrivning til filen '%s': %s\n" + +#~ msgid "%s: usage '%s [ -VqfnkN ] [ -i ] [ filename ... ]'\n" +#~ msgstr "%s: brug '%s [ -VqfnkN ] [ -i ] [ filenavn ... ]'\n" + +#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B ] [ filename ... ]'\n" +#~ msgstr "%s: brug '%s [ -VqfnkNlgC ] [ -B ] [ filnavn ... ]'\n" + +#~ msgid "%s: warning: no read access for file `%s'\n" +#~ msgstr "%s: advarsel: ingen lseadgang til filen '%s'\n" + +#~ msgid "%s: warning: no write access for file `%s'\n" +#~ msgstr "%s: advarsel: ingen skriveadgang til filen '%s'\n" + +#~ msgid "%s: warning: no write access for dir containing `%s'\n" +#~ msgstr "%s: advarsel: ingen skriveadgang til kataloget der indeholder '%s'\n" + +#~ msgid "%s: invalid file name: %s\n" +#~ msgstr "%s: ugyldigt filnavn: %s\n" + +#~ msgid "%s: %s: can't get status: %s\n" +#~ msgstr "%s: %s: kan ikke finde ud af filens status: %s\n" + +#~ msgid "" +#~ "\n" +#~ "%s: fatal error: aux info file corrupted at line %d\n" +#~ msgstr "" +#~ "\n" +#~ "%s: fatal fejl: hjlpeinformationsfilen er beskadiget ved linje %d\n" + +#~ msgid "%s:%d: declaration of function `%s' takes different forms\n" +#~ msgstr "%s:%d: erklringen af funktionen '%s' antager forskellige former\n" + +#~ msgid "%s: compiling `%s'\n" +#~ msgstr "%s: overstter '%s'\n" + +#~ msgid "%s: wait: %s\n" +#~ msgstr "%s: vent: %s\n" + +#~ msgid "%s: subprocess got fatal signal %d\n" +#~ msgstr "%s: underprocessen modtog fatalt signal %d\n" + +#~ msgid "%s: %s exited with status %d\n" +#~ msgstr "%s: %s afsluttede med status %d\n" + +#~ msgid "%s: warning: missing SYSCALLS file `%s'\n" +#~ msgstr "%s: advarsel: manglende SYSCALLS-fil '%s'\n" + +#~ msgid "%s: can't read aux info file `%s': %s\n" +#~ msgstr "%s: kan ikke lse hjlpeinformationsfilen '%s': %s\n" + +#~ msgid "%s: can't get status of aux info file `%s': %s\n" +#~ msgstr "%s: kan ikke f status for hjlpeinformationsfilen '%s': %s\n" + +#~ msgid "%s: can't open aux info file `%s' for reading: %s\n" +#~ msgstr "%s: kan ikke bne hjlpeinformationsfilen '%s' til at lse fra: %s\n" + +#~ msgid "%s: error reading aux info file `%s': %s\n" +#~ msgstr "%s: fejl ved lsning af hjlpeinformationsfilen '%s': %s\n" + +#~ msgid "%s: error closing aux info file `%s': %s\n" +#~ msgstr "%s: fejl ved lukning af hjlpeinformationsfilen '%s': %s\n" + +#~ msgid "%s: can't delete aux info file `%s': %s\n" +#~ msgstr "%s: kan ikke slette hjlpeinformationsfilen '%s': %s\n" + +#~ msgid "%s: can't delete file `%s': %s\n" +#~ msgstr "%s: kan ikke slette filen '%s': %s\n" + +#~ msgid "%s: warning: can't rename file `%s' to `%s': %s\n" +#~ msgstr "%s: advarsel: kan ikke omdbe filen '%s' til '%s': %s\n" + +#~ msgid "%s: conflicting extern definitions of '%s'\n" +#~ msgstr "%s: modstridende eksterne definitioner af '%s'\n" + +#~ msgid "%s: declarations of '%s' will not be converted\n" +#~ msgstr "%s: erklringer af '%s' vil ikke blive omdannet\n" + +#~ msgid "%s: conflict list for '%s' follows:\n" +#~ msgstr "%s: modstridene for '%s' flger:\n" + +#~ msgid "%s: warning: using formals list from %s(%d) for function `%s'\n" +#~ msgstr "%s: advarsel: bruger parameterlisten fra %s(%d) til funktionen '%s'\n" + +#~ msgid "%s: %d: `%s' used but missing from SYSCALLS\n" +#~ msgstr "%s: %d: '%s' benyttet, men mangler i SYSCALLS\n" + +#~ msgid "%s: %d: warning: no extern definition for `%s'\n" +#~ msgstr "%s: %d: advarsel: ingen ekstern definition af '%s'\n" + +#~ msgid "%s: warning: no static definition for `%s' in file `%s'\n" +#~ msgstr "%s: advarsel: ingen statisk definition af '%s' i filen '%s'\n" + +#~ msgid "%s: multiple static defs of `%s' in file `%s'\n" +#~ msgstr "%s: flere statiske definitioner af '%s' i filen '%s'\n" + +#~ msgid "%s: %d: warning: source too confusing\n" +#~ msgstr "%s: %d: advarsel: koden er for forvirrende\n" + +#~ msgid "%s: %d: warning: varargs function declaration not converted\n" +#~ msgstr "%s: %d: advarsel: funktionserklring med variabel parameterliste er ikke omdannet\n" + +#~ msgid "%s: declaration of function `%s' not converted\n" +#~ msgstr "%s: erklringen af funktionen '%s' er ikke omdannet\n" + +#~ msgid "%s: warning: too many parameter lists in declaration of `%s'\n" +#~ msgstr "%s: advarsel: for mange parameterlister i erklringen af '%s'\n" + +#~ msgid "" +#~ "\n" +#~ "%s: warning: too few parameter lists in declaration of `%s'\n" +#~ msgstr "" +#~ "\n" +#~ "%s: advarsel: for f parameterlister i erklringen af '%s'\n" + +#~ msgid "%s: %d: warning: found `%s' but expected `%s'\n" +#~ msgstr "%s: %d: advarsel: fandt '%s', men forventede '%s'\n" + +#~ msgid "%s: local declaration for function `%s' not inserted\n" +#~ msgstr "%s: den lokale erklring af funktionen '%s' er ikke indsat\n" + +#~ msgid "" +#~ "\n" +#~ "%s: %d: warning: can't add declaration of `%s' into macro call\n" +#~ msgstr "" +#~ "\n" +#~ "%s: %d: advarsel: kan ikke tilfje erklringen af '%s' i makrokald\n" + +#~ msgid "%s: global declarations for file `%s' not inserted\n" +#~ msgstr "%s: globale erklringer for filen '%s' er ikke indsat\n" + +#~ msgid "%s: definition of function `%s' not converted\n" +#~ msgstr "%s: definitionen af funktionen '%s' er ikke omdannet\n" + +#~ msgid "%s: %d: warning: definition of %s not converted\n" +#~ msgstr "%s: %d: advarsel: definitionen af '%s' er ikke omdannet\n" + +#~ msgid "%s: found definition of `%s' at %s(%d)\n" +#~ msgstr "%s: fandt definitionen af '%s' ved %s(%d)\n" + +#~ msgid "%s: %d: warning: `%s' excluded by preprocessing\n" +#~ msgstr "%s: %d: advarsel: '%s' ekskluderet af forbehandlingen\n" + +#~ msgid "%s: function definition not converted\n" +#~ msgstr "%s: funktionsdefinitionen er ikke omdannet\n" + +#~ msgid "%s: `%s' not converted\n" +#~ msgstr "%s: '%s' ikke omdannet\n" + +#~ msgid "%s: would convert file `%s'\n" +#~ msgstr "%s: ville omdanne filen '%s'\n" + +#~ msgid "%s: converting file `%s'\n" +#~ msgstr "%s: omdanner filen '%s'\n" + +#~ msgid "%s: can't get status for file `%s': %s\n" +#~ msgstr "%s: kan ikke f status for filen '%s': %s\n" + +#~ msgid "%s: can't open file `%s' for reading: %s\n" +#~ msgstr "%s: kan ikke bne filen '%s' til at lse fra: %s\n" + +#~ msgid "" +#~ "\n" +#~ "%s: error reading input file `%s': %s\n" +#~ msgstr "" +#~ "\n" +#~ "%s: fejl ved lsning af inddatafilen '%s': %s\n" + +#~ msgid "%s: can't create/open clean file `%s': %s\n" +#~ msgstr "%s: kan ikke oprette/bne oprydningsfilen '%s': %s\n" + +#~ msgid "%s: warning: file `%s' already saved in `%s'\n" +#~ msgstr "%s: advarsel: filen '%s' er allerede gemt i '%s'\n" + +#~ msgid "%s: can't link file `%s' to `%s': %s\n" +#~ msgstr "%s: kan ikke kde filen '%s' sammen med '%s': %s\n" + +#~ msgid "%s: can't create/open output file `%s': %s\n" +#~ msgstr "%s: kan ikke oprette/bne uddatafilen '%s': %s\n" + +#~ msgid "%s: can't change mode of file `%s': %s\n" +#~ msgstr "%s: kan ikke ndre tilstanden af filen '%s': '%s'\n" + +#~ msgid "%s: cannot get working directory: %s\n" +#~ msgstr "%s: kan ikke f fat i arbejdskataloget: %s\n" + +#~ msgid "%s: input file names must have .c suffixes: %s\n" +#~ msgstr "%s: inddatafilnavn skal have '.c'-endelser: %s\n" + +#~ msgid "Didn't find a coloring.\n" +#~ msgstr "Kunne ikke finde en farvning.\n" + +#~ msgid "output constraint %d must specify a single register" +#~ msgstr "uddatabegrnsning %d skal angive et enkelt register" + +#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber" +#~ msgstr "uddatabegrnsning %d kan ikke angives samtidig med overskrivning af \"%s\"" + +#~ msgid "output regs must be grouped at top of stack" +#~ msgstr "uddataregistre skal grupperes i toppen af stakken" + +#~ msgid "implicitly popped regs must be grouped at top of stack" +#~ msgstr "implicit aflste registre skal grupperes i toppen af stakken" + +#~ msgid "output operand %d must use `&' constraint" +#~ msgstr "uddataoperand %d skal bruge begrnsningen '&'" + +#~ msgid "can't use '%s' as a %s register" +#~ msgstr "kan ikke bruge '%s' som et %s-register" + +#~ msgid "unknown register name: %s" +#~ msgstr "ukendt registernavn: %s" + +#~ msgid "global register variable follows a function definition" +#~ msgstr "en global registervariabel flger en funktionsdefinition" + +#~ msgid "register used for two global register variables" +#~ msgstr "register brugt til to globale registervariabler" + +#~ msgid "call-clobbered register used for global register variable" +#~ msgstr "kaldeoverskrevet register brugt til global registervariabel" + +#~ msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)" +#~ msgstr "validate_value_data: [%u] Ugyldig next_regno til tom kde (%u)" + +#~ msgid "validate_value_data: Loop in regno chain (%u)" +#~ msgstr "validate_value_data: Lkke i registertalskde (%u)" + +#~ msgid "validate_value_data: [%u] Bad oldest_regno (%u)" +#~ msgstr "validate_value_data: [%u] Ugyldig oldest_regno (%u)" + +#~ msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)" +#~ msgstr "validate_value_data: [%u] Ikke-tomt register i kde (%s %u %i)" + +#~ msgid "cannot reload integer constant operand in `asm'" +#~ msgstr "kan ikke genindlse heltalskonstantoperand i 'asm'" + +#~ msgid "impossible register constraint in `asm'" +#~ msgstr "umulig registerbegrnsing i 'asm'" + +#~ msgid "`&' constraint used with no register class" +#~ msgstr "'&'-begrnsning brugt uden registerklasse" + +#~ msgid "unable to generate reloads for:" +#~ msgstr "kunne ikke generere genindlsninger for:" + +#~ msgid "inconsistent operand constraints in an `asm'" +#~ msgstr "inkonsistente operandbegrsninger i 'asm'" + +#~ msgid "frame size too large for reliable stack checking" +#~ msgstr "rammestrrelse for stor til plidelig stakkontrol" + +#~ msgid "try reducing the number of local variables" +#~ msgstr "forsg at reducere antallet af lokale variable" + +#~ msgid "can't find a register in class `%s' while reloading `asm'" +#~ msgstr "kan ikke finde et register i klassen '%s' ved genindlsning af 'asm'" + +#~ msgid "unable to find a register to spill in class `%s'" +#~ msgstr "kan ikke finde et register at bortdsle i klassen '%s'" + +#~ msgid "this is the insn:" +#~ msgstr "dette er instruktionen:" + +#~ msgid "`asm' operand requires impossible reload" +#~ msgstr "'asm'-operand krver umulig genindlsning" + +#~ msgid "could not find a spill register" +#~ msgstr "kunne ikke finde et register at bortdsle" + +#~ msgid "`asm' operand constraint incompatible with operand size" +#~ msgstr "'asm'-operandbegrnsning ikke forenelig med operandstrrelse" + +#~ msgid "VOIDmode on an output" +#~ msgstr "VOID-tilstand ved uddata" + +#~ msgid "output operand is constant in `asm'" +#~ msgstr "uddataoperand er konstant i 'asm'" + +#~ msgid "unrecognizable insn:" +#~ msgstr "ukendt instruktion:" + +#~ msgid "insn does not satisfy its constraints:" +#~ msgstr "instruktion tilfredsstiller ikke sine begrnsninger:" + +#~ msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d" +#~ msgstr "RTL-kontrol: tilgang til udtrykstr %d fra '%s' med sidste udtrykstr %d i %s, ved %s:%d" + +#~ msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d" +#~ msgstr "RTL-kontrol: forventede udtrykstr %d type '%c', har '%c' (registeroverfrselsudtryk %s) i %s, ved %s:%d" + +#~ msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d" +#~ msgstr "RTL-kontrol: forventede udtrykstr %d type '%c' eller '%c', har '%c' (registeroverfrselsudtryk %s) i %s, ved %s:%d" + +#~ msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d" +#~ msgstr "RTL-kontrol: forventede koden '%s', har '%s' i %s, ved %s:%d" + +#~ msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d" +#~ msgstr "RTL-kontrol: forventede koden '%s' eller '%s', har '%s' i %s, ved %s:%d" + +#~ msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d" +#~ msgstr "RTL-kontrol: tilgang til udtrykstr %d af vektor hvis sidste udtrykstr er %d i %s, ved %s:%d" + +#~ msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d" +#~ msgstr "RTL-flagskontrol: %s benyttet med uventet rtx-kode '%s' i %s, ved %s:%d" + +#~ msgid "jump to `%s' invalidly jumps into binding contour" +#~ msgstr "spring til '%s' rammer p ugyldig vis ind i bindingskontur" + +#~ msgid "label `%s' used before containing binding contour" +#~ msgstr "etiket '%s' brugt fr indholdende bindingskontur" + +#~ msgid "output operand constraint lacks `='" +#~ msgstr "uddataoperandbegrnsning mangler '='" + +#~ msgid "output constraint `%c' for operand %d is not at the beginning" +#~ msgstr "uddatabegrnsning '%c' for operanden %d er ikke ved begyndelsen" + +#~ msgid "operand constraint contains incorrectly positioned '+' or '='" +#~ msgstr "operandbegrnsning indeholder forkert placeret '+' eller '='" + +#~ msgid "`%%' constraint used with last operand" +#~ msgstr "'%%'-begrnsning brugt med sidste operand" + +#~ msgid "matching constraint not valid in output operand" +#~ msgstr "begrnsningen er ikke gyldig for uddataoperanden" + +#~ msgid "input operand constraint contains `%c'" +#~ msgstr "inddataoperandbegrnsningen indeholder '%c'" + +#~ msgid "matching constraint references invalid operand number" +#~ msgstr "begrnsning refererer til et ugyldigt operandtal" + +#~ msgid "invalid punctuation `%c' in constraint" +#~ msgstr "ugyldig punktuering '%c' i begrnsning" + +#~ msgid "asm-specifier for variable `%s' conflicts with asm clobber list" +#~ msgstr "asm-anvisning for variablen '%s' strider mod asm-overskrivelsesliste" + +#~ msgid "unknown register name `%s' in `asm'" +#~ msgstr "ukendt registernavn '%s' i 'asm'" + +#~ msgid "more than %d operands in `asm'" +#~ msgstr "mere end %d operander i 'asm'" + +#~ msgid "output number %d not directly addressable" +#~ msgstr "uddata nr. %d kan ikke adresseres direkte" + +#~ msgid "asm operand %d probably doesn't match constraints" +#~ msgstr "'asm'-operand %d passer sandsynligvis ikke til begrnsninger" + +#~ msgid "asm clobber conflict with output operand" +#~ msgstr "asm-overskrivelse er i modstrid med uddataoperander" + +#~ msgid "asm clobber conflict with input operand" +#~ msgstr "asm-overskrivelse er i modstrid med inddataoperander" + +#~ msgid "too many alternatives in `asm'" +#~ msgstr "for mange alternativer i 'asm'" + +#~ msgid "operand constraints for `asm' differ in number of alternatives" +#~ msgstr "operandbegrnsninger til 'asm' har forskellige antal alternativer" + +#~ msgid "duplicate asm operand name '%s'" +#~ msgstr "'asm'-operandnavnet '%s' optrder mere end n gang" + +#~ msgid "missing close brace for named operand" +#~ msgstr "manglende afsluttende krllet parantes til navngiven operand" + +#~ msgid "undefined named operand '%s'" +#~ msgstr "ikkedefineret navngiven operand '%s'" + +#~ msgid "unused variable `%s'" +#~ msgstr "ubrugt variabel '%s'" + +#~ msgid "enumeration value `%s' not handled in switch" +#~ msgstr "enum-vrdien '%s' hndteres ikke i switch-stning" + +#~ msgid "case value `%ld' not in enumerated type" +#~ msgstr "case-vrdien '%ld' eksisterer ikke i enum-type" + +#~ msgid "case value `%ld' not in enumerated type `%s'" +#~ msgstr "case-vrdien '%ld' eksisterer ikke i enum-typen '%s'" + +#~ msgid "switch missing default case" +#~ msgstr "switch-konstruktion mangler default" + +#~ msgid "type size can't be explicitly evaluated" +#~ msgstr "det er ikke muligt eksplicit at finde typens strrelse" + +#~ msgid "variable-size type declared outside of any function" +#~ msgstr "en type med en variabel strrelse er erklret uden for en funktion" + +#~ msgid "size of `%s' is %d bytes" +#~ msgstr "strrelsen af '%s' er %d byte" + +#~ msgid "size of `%s' is larger than %d bytes" +#~ msgstr "strrelsen af '%s' er strre end %d byte" + +#~ msgid "packed attribute causes inefficient alignment for `%s'" +#~ msgstr "packed-egenskab forrsager ineffektiv justering af '%s'" + +#~ msgid "packed attribute is unnecessary for `%s'" +#~ msgstr "packed-egenskab er undvendig for '%s'" + +#~ msgid "padding struct to align `%s'" +#~ msgstr "udfylder struct for at justere '%s'" + +#~ msgid "padding struct size to alignment boundary" +#~ msgstr "udfylder struct-strrelse til justeringskant" + +#~ msgid "packed attribute causes inefficient alignment" +#~ msgstr "packed-egenskab forrsager ineffektiv justering" + +#~ msgid "packed attribute is unnecessary" +#~ msgstr "packed-egenskab er undvendig" + +#~ msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'" +#~ msgstr "kan ikke udfre timevar_pop '%s' nr toppen af timevars-stakken er '%s'" + +#~ msgid "" +#~ "\n" +#~ "Execution times (seconds)\n" +#~ msgstr "" +#~ "\n" +#~ "Udfrselstid (sekunder)\n" + +#~ msgid " TOTAL :" +#~ msgstr " TOTAL :" + +#~ msgid "time in %s: %ld.%06ld (%ld%%)\n" +#~ msgstr "tid i %s: %ld.%06ld (%ld%%)\n" + +#~ msgid "collect: reading %s\n" +#~ msgstr "collect: lser %s\n" + +#~ msgid "collect: recompiling %s\n" +#~ msgstr "collect: genoverstter '%s'\n" + +# RETMIG: rigtigt? +#~ msgid "collect: tweaking %s in %s\n" +#~ msgstr "collect: presser %s i %s\n" + +#~ msgid "collect: relinking\n" +#~ msgstr "collect: kder sammen igen\n" + +#~ msgid "ld returned %d exit status" +#~ msgstr "ld returnerede afslutningskoden %d" + +#~ msgid "Generate debugging info in default format" +#~ msgstr "Generr fejlfindingsinfo i standardformat" + +#~ msgid "Generate debugging info in default extended format" +#~ msgstr "Generr fejlfindingsinfo i udvidet standardformat" + +#~ msgid "Generate STABS format debug info" +#~ msgstr "Generr fejlfindingsinfo i STABS-format" + +#~ msgid "Generate extended STABS format debug info" +#~ msgstr "Generr fejlfindingsinfo i udvidet STABS-format" + +#~ msgid "Generate DWARF-1 format debug info" +#~ msgstr "Generr fejlfindingsinfo i DWARF-1-format" + +#~ msgid "Generate extended DWARF-1 format debug info" +#~ msgstr "Generr fejlfindingsinfo i udvidet DWARF-1-format" + +#~ msgid "Generate DWARF-2 debug info" +#~ msgstr "Generr fejlfindingsinfo i DWARF-2-format" + +#~ msgid "Generate XCOFF format debug info" +#~ msgstr "Generr fejlfindingsinfo i XCOFF-format" + +#~ msgid "Generate extended XCOFF format debug info" +#~ msgstr "Generr fejlfindingsinfo i udvidet XCOFF-format" + +#~ msgid "Generate COFF format debug info" +#~ msgstr "Generr fejlfindingsinfo i COFF-format" + +#~ msgid "Generate VMS format debug info" +#~ msgstr "Generr fejlfindingsinfo i VMS-format" + +#~ msgid "Perform DWARF2 duplicate elimination" +#~ msgstr "Udfr DWARF2-eliminering af dubletter" + +#~ msgid "Do not store floats in registers" +#~ msgstr "Lagr ikke kommatal i registre" + +#~ msgid "Consider all mem refs through pointers as volatile" +#~ msgstr "Betragt alle hukommelsesferencer gennem henvisninger som volatile" + +#~ msgid "Consider all mem refs to global data to be volatile" +#~ msgstr "Betragt alle hukommelsesferencer til globale data som volatile" + +#~ msgid "Consider all mem refs to static data to be volatile" +#~ msgstr "Betragt alle hukommelsesferencer til statiske data som volatile" + +#~ msgid "Defer popping functions args from stack until later" +#~ msgstr "Vent med fjernelse af funktionsparametre fra stakken til senere" + +#~ msgid "When possible do not generate stack frames" +#~ msgstr "Generr ikke stakrammer nr det kan undgs" + +#~ msgid "Optimize sibling and tail recursive calls" +#~ msgstr "Optimr sskende- og halerekursive kald" + +#~ msgid "Perform superblock formation via tail duplication" +#~ msgstr "Udfr superbloksformering vha. haleduplikering" + +# RETMIG: hvad er CSE? +#~ msgid "When running CSE, follow jumps to their targets" +#~ msgstr "Ved krsel af CSE flg spring til deres ml" + +#~ msgid "When running CSE, follow conditional jumps" +#~ msgstr "Ved krsel af CSE flg betingede spring" + +#~ msgid "Perform a number of minor, expensive optimizations" +#~ msgstr "Udfr et antal mindre, dyre optimeringer" + +#~ msgid "Perform jump threading optimizations" +#~ msgstr "Udfr springtrdningsoptimeringer" + +#~ msgid "Perform strength reduction optimizations" +#~ msgstr "Udfr styrkereduceringsoptimeringer" + +#~ msgid "Perform loop unrolling when iteration count is known" +#~ msgstr "Udfr lkkeudrulning nr iterationsantallet er kendt" + +#~ msgid "Perform loop unrolling for all loops" +#~ msgstr "Udfr lkkeudrulning for alle lkker" + +#~ msgid "Generate prefetch instructions, if available, for arrays in loops" +#~ msgstr "Generr prhentningsinstruktioner, hvis tilgngelige, for tabeller i lkker" + +#~ msgid "Force all loop invariant computations out of loops" +#~ msgstr "Tving alle lkkeinvariansberegninger ud af lkker" + +#~ msgid "Strength reduce all loop general induction variables" +#~ msgstr "Styrkereducr alle generelle lkkeinduktionsvariabler" + +#~ msgid "Store strings in writable data section" +#~ msgstr "Gem strenge i en skrivbar datasektion" + +#~ msgid "Enable machine specific peephole optimizations" +#~ msgstr "Aktivr maskinspecifikke kighulsoptimeringer" + +#~ msgid "Copy memory operands into registers before using" +#~ msgstr "Kopir hukommelsesoperander ind i registre fr brug" + +#~ msgid "Copy memory address constants into regs before using" +#~ msgstr "Kopir hukommelsesadressekonstanter ind i registre fr brug" + +#~ msgid "Allow function addresses to be held in registers" +#~ msgstr "Tillad funktionsadresser at blive opbevaret i registre" + +#~ msgid "Integrate simple functions into their callers" +#~ msgstr "Integrr simple funktioner i deres kaldere" + +#~ msgid "Generate code for funcs even if they are fully inlined" +#~ msgstr "Generr kode for funktioner selv hvis de indlejres helt" + +#~ msgid "Pay attention to the 'inline' keyword" +#~ msgstr "Lg mrke til 'inline'-ngleordet" + +#~ msgid "Emit static const variables even if they are not used" +#~ msgstr "Konstrur statiske, konstante variabler selv hvis de ikke bruges" + +#~ msgid "Check for syntax errors, then stop" +#~ msgstr "Kontrollr syntaks og stop derefter" + +#~ msgid "Mark data as shared rather than private" +#~ msgstr "Markr data som delt snarere end privat" + +#~ msgid "Enable saving registers around function calls" +#~ msgstr "Aktivr gemning af registrer omkring funktionskald" + +#~ msgid "Return 'short' aggregates in memory, not registers" +#~ msgstr "Returnr sm sammensatte vrdier i hukommelsen, ikke i registre" + +#~ msgid "Return 'short' aggregates in registers" +#~ msgstr "Returnr sm sammensatte vrdier i registre" + +#~ msgid "Attempt to fill delay slots of branch instructions" +#~ msgstr "Forsg at udfylde ventepladser med forgreningsinstruktioner" + +#~ msgid "Perform the global common subexpression elimination" +#~ msgstr "Udfr global eliminering af flles underudtryk" + +#~ msgid "Perform enhanced load motion during global subexpression elimination" +#~ msgstr "Udfr forbedret indlsningsbevgelse under eliminering af flles underudtryk" + +#~ msgid "Perform store motion after global subexpression elimination" +#~ msgstr "Udfr lagringsbevgelse efter eliminering af flles underudtryk" + +#~ msgid "Perform the loop optimizations" +#~ msgstr "Udfr lkkeoptimeringerne" + +#~ msgid "Perform cross-jumping optimization" +#~ msgstr "Udfr krydsspringsoptimering" + +#~ msgid "Perform conversion of conditional jumps to branchless equivalents" +#~ msgstr "Udfr konvertering af betingede spring til forgreningslse kvivalenter" + +#~ msgid "Perform conversion of conditional jumps to conditional execution" +#~ msgstr "Udfr konvertering af betingede spring til betinget udfrsel" + +#~ msgid "Run CSE pass after loop optimizations" +#~ msgstr "Kr CSE-fase efter lkkeoptimeringer" + +#~ msgid "Run the loop optimizer twice" +#~ msgstr "Kr lkkeoptimeringen to gange" + +#~ msgid "Delete useless null pointer checks" +#~ msgstr "Fjern ubrugelige nul-henvisningstjek" + +#~ msgid "Reschedule instructions before register allocation" +#~ msgstr "Omplanlg instruktioner fr registerallokering" + +#~ msgid "Reschedule instructions after register allocation" +#~ msgstr "Omplanlg instruktioner efter registerallokering" + +#~ msgid "Enable scheduling across basic blocks" +#~ msgstr "Aktivr planlgning over basisblokke" + +#~ msgid "Allow speculative motion of non-loads" +#~ msgstr "Tillad spekulativ bevgelse af ikke-indlsninger" + +#~ msgid "Allow speculative motion of some loads" +#~ msgstr "Tillad spekulativ bevgelse af nogle indlsninger" + +#~ msgid "Allow speculative motion of more loads" +#~ msgstr "Tillad spekulativ bevgelse af flere indlsninger" + +# RETMIG: rigtig? +#~ msgid "Replace add,compare,branch with branch on count reg" +#~ msgstr "Erstat tilfj,sammenlign,forgrening med forgrening p tlleregister" + +#~ msgid "Generate position independent code, if possible" +#~ msgstr "Generr placeringsuafhngig kode, om muligt" + +#~ msgid "Enable exception handling" +#~ msgstr "Aktivr undtagelseshndtering" + +#~ msgid "Just generate unwind tables for exception handling" +#~ msgstr "Generr blot afvindingstabeller for undtagelseshndtering" + +#~ msgid "Generate unwind tables exact at each instruction boundary" +#~ msgstr "Generr afvindingstabeller eksakt for hver instruktionsgrnse" + +#~ msgid "Support synchronous non-call exceptions" +#~ msgstr "Understt synkrone ikke-kaldende undtagelser" + +#~ msgid "Insert arc based program profiling code" +#~ msgstr "Indst buebaseret programprofileringskode" + +#~ msgid "Create data files needed by gcov" +#~ msgstr "Opret datafiler som gcov har brug for" + +#~ msgid "Use profiling information for branch probabilities" +#~ msgstr "Benyt profileringsoplysninger til forgreningssandsynligheder" + +#~ msgid "Enable basic program profiling code" +#~ msgstr "Aktivr basal programprofileringskode" + +#~ msgid "Reorder basic blocks to improve code placement" +#~ msgstr "Omordn basisblokke for at forbedre kodeplacering" + +#~ msgid "Reorder functions to improve code placement" +#~ msgstr "Omordn funktioner for at forbedre kodeplacering" + +#~ msgid "Do the register renaming optimization pass" +#~ msgstr "Foretag registeromdbningsoptimering" + +#~ msgid "Do the register copy-propagation optimization pass" +#~ msgstr "Foretag registerkopipropageringsoptimering" + +#~ msgid "Do not put uninitialized globals in the common section" +#~ msgstr "Anbring ikke uklargjorte globale variabler i den flles sektion" + +#~ msgid "Do not generate .size directives" +#~ msgstr "Generr ikke .size-direktiver" + +#~ msgid "place each function into its own section" +#~ msgstr "placr hver funktion i dens egen sektion" + +#~ msgid "place data items into their own section" +#~ msgstr "placr dataelementer i deres egen sektion" + +#~ msgid "Add extra commentary to assembler output" +#~ msgstr "Tilfj ekstra kommentarer til menneskeligt lsbar maskinkodeuddata" + +#~ msgid "Output GNU ld formatted global initializers" +#~ msgstr "Udskriv GNU ld-formaterede globale startvrdier" + +#~ msgid "Enables a register move optimization" +#~ msgstr "Aktivr en registerflytningsoptimering" + +#~ msgid "Do the full regmove optimization pass" +#~ msgstr "Foretag en komplet registerflytningsoptimering" + +#~ msgid "Pack structure members together without holes" +#~ msgstr "Pak strukturmedlemmer sammen uden mellemrum" + +#~ msgid "Insert stack checking code into the program" +#~ msgstr "Indst stakkontrolleringskode i programmet" + +#~ msgid "Specify that arguments may alias each other & globals" +#~ msgstr "Angiv at parametre kan vre aliaser for hinanden og for globale variable" + +#~ msgid "Assume arguments may alias globals but not each other" +#~ msgstr "Antag at parametre kan vre aliaser for globale variable, men ikke for hinanden" + +#~ msgid "Assume arguments do not alias each other or globals" +#~ msgstr "Antag at parametre ikke er aliaser for hinanden eller for globale variable" + +#~ msgid "Assume strict aliasing rules apply" +#~ msgstr "Antag at strenge aliasregler skal anvendes" + +#~ msgid "Align the start of loops" +#~ msgstr "Justr begyndelsen af lkker" + +#~ msgid "Align labels which are only reached by jumping" +#~ msgstr "Justr etiketter som kun ns ved spring" + +#~ msgid "Align all labels" +#~ msgstr "Justr alle etiketter" + +#~ msgid "Align the start of functions" +#~ msgstr "Justr begyndelsen af funktioner" + +#~ msgid "Attempt to merge identical constants across compilation units" +#~ msgstr "Forsg at forene identiske konstanter over forskellige oversttelsesenheder" + +#~ msgid "Attempt to merge identical constants and constant variables" +#~ msgstr "Forsg at forene identiske konstanter og konstante variabler" + +#~ msgid "Suppress output of instruction numbers and line number notes in debugging dumps" +#~ msgstr "Undtryk udskrift af instruktionstal og linjenummernoter i fejlfindingsdump" + +#~ msgid "Instrument function entry/exit with profiling calls" +#~ msgstr "Instrumentr funktionsindgange/-afslutninger med profileringskald" + +#~ msgid "Put zero initialized data in the bss section" +#~ msgstr "Anbring nul-klargjorte data i bss-sektionen" + +#~ msgid "Enable SSA optimizations" +#~ msgstr "Aktivr SSA-optimeringer" + +#~ msgid "Enable SSA conditional constant propagation" +#~ msgstr "Aktivr betinget konstant SSA-propagering" + +#~ msgid "Enable aggressive SSA dead code elimination" +#~ msgstr "Aktivr aggressiv SSA-eliminering af ubrugt kode" + +#~ msgid "External symbols have a leading underscore" +#~ msgstr "Eksterne symboler har indledende understreg" + +#~ msgid "Process #ident directives" +#~ msgstr "Behandl #ident-direktiver" + +#~ msgid "Enables an rtl peephole pass run before sched2" +#~ msgstr "Aktivr en RTL-kikhulsfase fr sched2" + +#~ msgid "Assume no NaNs or +-Infs are generated" +#~ msgstr "Antag at ingen NaN eller +-Inf bliver genereret" + +#~ msgid "Enables guessing of branch probabilities" +#~ msgstr "Aktivr gt af forgreningssandsynligheder" + +#~ msgid "Set errno after built-in math functions" +#~ msgstr "St errno efter indbyggede matematikfunktioner" + +#~ msgid "Floating-point operations can trap" +#~ msgstr "Kommatalsoperationer kan fange" + +#~ msgid "Allow math optimizations that may violate IEEE or ANSI standards" +#~ msgstr "Tillad matematikoptimeringer der kan overtrde IEEE- eller ANSI-standarderne" + +#~ msgid "Disable optimizations observable by IEEE signaling NaNs" +#~ msgstr "Deaktivr optimeringer som kan opdages ved IEEE-signalerende NaN'er" + +#~ msgid "Generate code to check bounds before indexing arrays" +#~ msgstr "Generr kode til at kontrollere grnserne fr tabeller indekseres" + +#~ msgid "Convert floating point constant to single precision constant" +#~ msgstr "Konvertr kommatalskonstanter til enkeltprcisionskonstanter" + +#~ msgid "Report time taken by each compiler pass at end of run" +#~ msgstr "Rapportr den tid det tager for hver oversttelsesfase ved afslutningen af krslen" + +#~ msgid "Report on permanent memory allocation at end of run" +#~ msgstr "Rapportr om permanente hukommelsesallokering ved afslutningen af krslen" + +#~ msgid "Trap for signed overflow in addition / subtraction / multiplication" +#~ msgstr "Opst flde for overlb med fortegn i addition/subtraktion/multiplikation" + +#~ msgid "Use graph coloring register allocation." +#~ msgstr "Allokr registre vha. graffarvning" + +#~ msgid "Compile just for ISO C90" +#~ msgstr "Overst kun til ISO C90" + +#~ msgid "Determine language standard" +#~ msgstr "Bestem sprogstandarden" + +#~ msgid "Make bit-fields by unsigned by default" +#~ msgstr "Lad bitfelter vre uden fortegn som standard" + +#~ msgid "Make 'char' be signed by default" +#~ msgstr "Lad 'char' vre med fortegn som standard" + +#~ msgid "Make 'char' be unsigned by default" +#~ msgstr "Lad 'char' vre uden fortegn som standard" + +#~ msgid "Do not recognize the 'asm' keyword" +#~ msgstr "Genkend ikke det reserverede ord 'asm'" + +#~ msgid "Do not recognize any built in functions" +#~ msgstr "Genkend ikke nogen indbyggede funktioner" + +#~ msgid "Assume normal C execution environment" +#~ msgstr "Antag normalt C-krselsmilj" + +#~ msgid "Assume that standard libraries & main might not exist" +#~ msgstr "Antag at standardbibliotekerne og main mske ikke eksisterer" + +#~ msgid "Allow different types as args of ? operator" +#~ msgstr "Tillad forskellige typer som parametre til ?-operatoren" + +#~ msgid "Allow the use of $ inside identifiers" +#~ msgstr "Tillad brug af $ inden i kaldenavne" + +#~ msgid "Use the same size for double as for float" +#~ msgstr "Benyt den samme strrelse til double som til float" + +#~ msgid "Use the smallest fitting integer to hold enums" +#~ msgstr "Benyt den mindst mulige strrelse heltal til enum-vrdier" + +#~ msgid "Override the underlying type for wchar_t to `unsigned short'" +#~ msgstr "Overskriv den underliggende type af wchar_t til 'unsigned short'" + +#~ msgid "Enable most warning messages" +#~ msgstr "Aktivr de fleste advarselsbeskeder" + +#~ msgid "Warn about casting functions to incompatible types" +#~ msgstr "Advar om omtvingning af funktioner til ikke-kompatible typer" + +#~ msgid "Warn about functions which might be candidates for format attributes" +#~ msgstr "Advar om funktioner som kan vre kandidater til formateringsegenskaber" + +#~ msgid "Warn about casts which discard qualifiers" +#~ msgstr "Advar om typeomtvingninger som forkaster modifikationer" + +#~ msgid "Warn about subscripts whose type is 'char'" +#~ msgstr "Advar som tabelindeksering hvis type er 'char'" + +#~ msgid "Warn if nested comments are detected" +#~ msgstr "Advar hvis indlejrede kommentarer mdes" + +#~ msgid "Warn about possibly confusing type conversions" +#~ msgstr "Advar om typekonverteringer der kan vre forvirrende" + +#~ msgid "Do not warn about compile-time integer division by zero" +#~ msgstr "Advar ikke om heltalsdivision p oversttelsestidspunktet med nul" + +#~ msgid "Warn about testing equality of floating point numbers" +#~ msgstr "Advar om lighedssammenligninger mellem kommatal" + +#~ msgid "Warn about printf/scanf/strftime/strfmon format anomalies" +#~ msgstr "Advar om printf/scanf/strftime/strfmon-formateringsanormaliteter" + +#~ msgid "Don't warn about too many arguments to format functions" +#~ msgstr "Advar ikke om for mange parametre til formateringsfunktioner" + +#~ msgid "Warn about non-string-literal format strings" +#~ msgstr "Advar om formateringsstrenge der ikke er strengkonstanter" + +#~ msgid "Warn about possible security problems with format functions" +#~ msgstr "Advar om mulige sikkerhedsproblemer i forbindelse med formateringsfunktioner" + +#~ msgid "Don't warn about strftime formats yielding 2 digit years" +#~ msgstr "Advar ikke om strftime-formateringer med 2-cifres r" + +#~ msgid "Warn about implicit function declarations" +#~ msgstr "Advar om underforstede funktionserklringer" + +#~ msgid "Warn when a declaration does not specify a type" +#~ msgstr "Advar nr en erklring ikke angiver en type" + +#~ msgid "Warn about the use of the #import directive" +#~ msgstr "Advar om brug af #import-direktivet" + +#~ msgid "Do not warn about using 'long long' when -pedantic" +#~ msgstr "Advar ikke om brug af 'long long' nr -pedantic benyttes" + +#~ msgid "Warn about suspicious declarations of main" +#~ msgstr "Advar om mistnkelige erklringer af main" + +#~ msgid "Warn about possibly missing braces around initializers" +#~ msgstr "Advar om mulige manglende krllede paranteser omkring startvrdier" + +#~ msgid "Warn about global funcs without previous declarations" +#~ msgstr "Advar om globale funktioner uden tidligere erklringer" + +#~ msgid "Warn about global funcs without prototypes" +#~ msgstr "Advar om globale funktioner uden prototyper" + +#~ msgid "Warn about use of multicharacter literals" +#~ msgstr "Advar om brug af multitegnskonstanter" + +#~ msgid "Warn about externs not at file scope level" +#~ msgstr "Advar om extern-erklringer som ikke er ved filvirkefeltsniveauet" + +#~ msgid "Warn about possible missing parentheses" +#~ msgstr "Advar om mulige manglende paranteser" + +#~ msgid "Warn about function pointer arithmetic" +#~ msgstr "Advar om beregninger p funktionshenvisninger" + +#~ msgid "Warn about multiple declarations of the same object" +#~ msgstr "Advar om flere erklring af det samme objekt" + +#~ msgid "Warn whenever a function's return-type defaults to int" +#~ msgstr "Advar nr en funktions returtype antages at vre int" + +#~ msgid "Warn about possible violations of sequence point rules" +#~ msgstr "Advar om mulige brud p sekvenspunktreglerne" + +#~ msgid "Warn about signed/unsigned comparisons" +#~ msgstr "Advar om sammenligninger mellem typer med og uden fortegn" + +#~ msgid "Warn about non-prototyped function decls" +#~ msgstr "Advar om funktionserklringer uden prototype" + +#~ msgid "Warn about constructs whose meanings change in ISO C" +#~ msgstr "Advar om konstruktioner hvis betydning er ndret i ISO C" + +#~ msgid "Warn when trigraphs are encountered" +#~ msgstr "Advar nr trigrafer mdes" + +#~ msgid "Warn about unrecognized pragmas" +#~ msgstr "Advar om ukendte pragmaer" + +#~ msgid "Mark strings as 'const char *'" +#~ msgstr "Markr strenge som 'const char *'" + +#~ msgid "Warn when a function is unused" +#~ msgstr "Advar nr en funktion ikke benyttes" + +#~ msgid "Warn when a label is unused" +#~ msgstr "Advar nr en etiket ikke benyttes" + +#~ msgid "Warn when a function parameter is unused" +#~ msgstr "Advar nr en funktionsparameter ikke benyttes" + +#~ msgid "Warn when a variable is unused" +#~ msgstr "Advar nr en variabel ikke benyttes" + +#~ msgid "Warn when an expression value is unused" +#~ msgstr "Advar nr vrdien af et udtryk ikke benyttes" + +#~ msgid "Do not suppress warnings from system headers" +#~ msgstr "Undertryk ikke advarsler fra systeminkluderingsfiler" + +#~ msgid "Treat all warnings as errors" +#~ msgstr "Behandl alle advarsler som fejl" + +#~ msgid "Warn when one local variable shadows another" +#~ msgstr "Advar nr en lokal variabel skygger for en anden" + +#~ msgid "Warn about enumerated switches, with no default, missing a case" +#~ msgstr "Advar om switch-stninger over enum-typer som mangler et tilflde og ikke har default" + +#~ msgid "Warn about enumerated switches missing a default case" +#~ msgstr "Advar om switch-stninger over enum-typer som mangler default" + +#~ msgid "Warn about all enumerated switches missing a specific case" +#~ msgstr "Advar om alle switch-stninger over enum-typer som mangler et bestemt tilflde" + +#~ msgid "Warn about returning structures, unions or arrays" +#~ msgstr "Advar om returnering af struct, union og tabeller" + +#~ msgid "Warn about pointer casts which increase alignment" +#~ msgstr "Advar om typeomtvingning af henvisninger som forger justeringen" + +#~ msgid "Warn about code that will never be executed" +#~ msgstr "Advar om kode som aldrig bliver udfrt" + +#~ msgid "Warn about uninitialized automatic variables" +#~ msgstr "Advar om ikke-klargjorte automatiske variabler" + +#~ msgid "Warn when an inlined function cannot be inlined" +#~ msgstr "Advar nr en inline funktion ikke kan indbygges" + +#~ msgid "Warn when the packed attribute has no effect on struct layout" +#~ msgstr "Advar nr packed-egenskaben ikke har nogen effekt p struct-layoutet" + +#~ msgid "Warn when padding is required to align struct members" +#~ msgstr "Advar nr udfyldning er pkrvet for at justere struct-medlemmer" + +#~ msgid "Warn when an optimization pass is disabled" +#~ msgstr "Advar nr en optimeringsfase deaktiveres" + +#~ msgid "Warn about uses of __attribute__((deprecated)) declarations" +#~ msgstr "Advar om brug af __attribute__((deprecated))-erklringer" + +#~ msgid "Warn about functions which might be candidates for attribute noreturn" +#~ msgstr "Advar om funktioner som kan vre kandidater til egenskaben noreturn" + +#~ msgid "Warn about code which might break the strict aliasing rules" +#~ msgstr "Advar om kode som kan bryde strenge aliasregler" + +#~ msgid "invalid option `%s'" +#~ msgstr "ugyldigt tilvalg '%s'" + +#~ msgid "`%s' declared `static' but never defined" +#~ msgstr "'%s' erklret 'static', men aldrig defineret" + +#~ msgid "`%s' defined but not used" +#~ msgstr "'%s' defineret, men aldrig brugt" + +#~ msgid "invalid register name `%s' for register variable" +#~ msgstr "ugyldigt registernavn '%s' for registervariabel" + +#~ msgid " -ffixed- Mark as being unavailable to the compiler\n" +#~ msgstr " -ffixed- Markr som vrende utilgngeligt for overstteren\n" + +#~ msgid " -fcall-used- Mark as being corrupted by function calls\n" +#~ msgstr " -fcall-used- Markr som vrende benyttet af funktionskald\n" + +#~ msgid " -fcall-saved- Mark as being preserved across functions\n" +#~ msgstr " -fcall-saved- Markr som vrende bevaret over funktioner\n" + +#~ msgid " -finline-limit= Limits the size of inlined functions to \n" +#~ msgstr " -finline-limit= Begrns strrelsen af inlie funktion til \n" + +#~ msgid " -fmessage-length= Limits diagnostics messages lengths to characters per line. 0 suppresses line-wrapping\n" +#~ msgstr " -fmessage-length= Begrns lngden af diagnosticeringmeddelelser til lngden tegn/linje. 0 undertrykker linjeombrydning\n" + +#~ msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n" +#~ msgstr " -fdiagnostics-show-location=[once | every-line] Indikerer hvor ofte kildeplaceringsoplysninger skal udsendes som prfiks til begyndelsen af meddelelserne ved linjeombrydning\n" + +#~ msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n" +#~ msgstr " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indikerer den forvalgte trd-lokale lagringsmodel for kodegenerering\n" + +#~ msgid " -O[number] Set optimization level to [number]\n" +#~ msgstr " -O[tal] St optimeringsniveauet til [tal]\n" + +#~ msgid " -Os Optimize for space rather than speed\n" +#~ msgstr " -Os Optimr mht. plads i stedet for hastighed\n" + +#~ msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n" +#~ msgstr " -pedantic Udsend advarsler som er ndvendige for streng overholdelse af ISO C\n" + +#~ msgid " -pedantic-errors Like -pedantic except that errors are produced\n" +#~ msgstr " -pedantic-errors Som -pedantic bortset fra at problemer bliver til fejl\n" + +#~ msgid " -w Suppress warnings\n" +#~ msgstr " -w Undertryk advarsler\n" + +#~ msgid " -W Enable extra warnings\n" +#~ msgstr " -W Aktivr ekstra advarsler\n" + +#~ msgid " -Wunused Enable unused warnings\n" +#~ msgstr " -Wunused Aktivr ubrugthedsadvarsler\n" + +#~ msgid " -Wlarger-than- Warn if an object is larger than bytes\n" +#~ msgstr " -Wlarger-than- Advar hvis et objekt er strre end byte\n" + +#~ msgid " -p Enable function profiling\n" +#~ msgstr " -p Aktivr funktionsprofilering\n" + +#~ msgid " -o Place output into \n" +#~ msgstr " -o Anbring uddata i \n" + +#~ msgid "" +#~ " -G Put global and static data smaller than \n" +#~ " bytes into a special section (on some targets)\n" +#~ msgstr " -G Anbring globale og statiske data mindre end byte i en specialsektion (p nogle mlarkitekturer)\n" + +#~ msgid " -aux-info Emit declaration info into \n" +#~ msgstr " -aux-info Udskriv erklringsoplysninger til \n" + +#~ msgid " -quiet Do not display functions compiled or elapsed time\n" +#~ msgstr " -quiet Vis ikke funktioner der oversttes eller forlbet tid\n" + +#~ msgid " -version Display the compiler's version\n" +#~ msgstr " -version Udskriv overstterens version\n" + +#~ msgid " -d[letters] Enable dumps from specific passes of the compiler\n" +#~ msgstr " -d[bogstaver] Aktivr dump fra specifikke faser i overstteren\n" + +#~ msgid " -dumpbase Base name to be used for dumps from specific passes\n" +#~ msgstr " -dumpbase Basisnavn til brug for dump fra specifikke faser\n" + +#~ msgid " -fsched-verbose= Set the verbosity level of the scheduler\n" +#~ msgstr " -fsched-verbose= Angiv hvor meget planlggeren skal fortlle\n" + +#~ msgid " --help Display this information\n" +#~ msgstr " --help Vis disse oplysninger\n" + +#~ msgid "" +#~ "\n" +#~ "Language specific options:\n" +#~ msgstr "" +#~ "\n" +#~ "Sprogspecifikke tilvalg:\n" + +#~ msgid " %-23.23s [undocumented]\n" +#~ msgstr " %-23.23s [ikke dokumenteret]\n" + +# %s er et sprog +#~ msgid "" +#~ "\n" +#~ "There are undocumented %s specific options as well.\n" +#~ msgstr "" +#~ "\n" +#~ "Der er ogs ikke-dokumenterede specifikke tilvalg til %s.\n" + +#~ msgid "" +#~ "\n" +#~ " Options for %s:\n" +#~ msgstr "" +#~ "\n" +#~ " Tilvalg til %s:\n" + +#~ msgid "" +#~ "\n" +#~ "Target specific options:\n" +#~ msgstr "" +#~ "\n" +#~ "Mlspecifikke tilvalg:\n" + +#~ msgid " -m%-23.23s [undocumented]\n" +#~ msgstr " -m%-23.23s [ikke dokumenteret]\n" + +#~ msgid "" +#~ "\n" +#~ "There are undocumented target specific options as well.\n" +#~ msgstr "" +#~ "\n" +#~ "Der er ogs ikke-dokumenterede mlspecifikke tilvalg.\n" + +#~ msgid " They exist, but they are not documented.\n" +#~ msgstr " De eksisterer, men er ikke dokumenteret.\n" + +#~ msgid "unrecognized gcc debugging option: %c" +#~ msgstr "ukendt GCC-fejlfindingstilvalg: %c" + +#~ msgid "`%s': unknown tls-model option" +#~ msgstr "'%s': ukendt tls-model-tilvalg" + +#~ msgid "unrecognized register name `%s'" +#~ msgstr "ukendt registernavn '%s'" + +#~ msgid "unrecognized option `%s'" +#~ msgstr "ukendt tilvalg '%s'" + +#~ msgid "-Wid-clash-LEN is no longer supported" +#~ msgstr "-Wid-clash-LEN understttes ikke lngere" + +#~ msgid "use -gdwarf -g%d for DWARF v1, level %d" +#~ msgstr "benyt - gdwarf -g%d til DWARF v1, niveau %d" + +#~ msgid "use -gdwarf-2 for DWARF v2" +#~ msgstr "benyt -gdwarf-2 til DWARF v2" + +#~ msgid "ignoring option `%s' due to invalid debug level specification" +#~ msgstr "ignorerer tilvalget '%s' p grund af ugyldig specifikation af fejlfindingsniveau" + +#~ msgid "`%s': unknown or unsupported -g option" +#~ msgstr "'%s': ukendt eller ikke-understttet '-g'-tilvalg" + +#~ msgid "`%s' ignored, conflicts with `-g%s'" +#~ msgstr "'%s' ignoreret, er i konflikt med '-g%s'" + +#~ msgid "-param option missing argument" +#~ msgstr "'-param'-tilvalg mangler parameter" + +#~ msgid "invalid --param option: %s" +#~ msgstr "ugyldigt '--param'-tilvalg: %s" + +#~ msgid "invalid parameter value `%s'" +#~ msgstr "ugyldig parametervrdi '%s'" + +#~ msgid "" +#~ "%s%s%s version %s (%s)\n" +#~ "%s\tcompiled by GNU C version %s.\n" +#~ "%s%s%s version %s (%s) compiled by CC.\n" +#~ msgstr "" +#~ "%s%s%s version %s (%s)\n" +#~ "%s\toversat af GNU C version %s.\n" +#~ "%s%s%s version %s (%s) oversat af CC.\n" + +#~ msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" +#~ msgstr "%s%sGGC-heuristikker: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +#~ msgid "options passed: " +#~ msgstr "tilvalg overbragt: " + +#~ msgid "options enabled: " +#~ msgstr "tilvalg slet til: " + +#~ msgid "can't open %s for writing" +#~ msgstr "kan ikke bne '%s' til skrivning" + +#~ msgid "ignoring command line option '%s'" +#~ msgstr "ignorerer kommandolinjetilvalget '%s'" + +#~ msgid "(it is valid for %s but not the selected language)" +#~ msgstr "(det er gyldigt for %s, men ikke for det valgte sprog)" + +#~ msgid "-Wuninitialized is not supported without -O" +#~ msgstr "-Wuninitialized understttes ikke uden -O" + +#~ msgid "instruction scheduling not supported on this target machine" +#~ msgstr "instruktionsplanlgning understttes ikke p mlarkitekturen" + +#~ msgid "this target machine does not have delayed branches" +#~ msgstr "mlarkitekturen har ikke forsinkede forgreninger" + +#~ msgid "-f%sleading-underscore not supported on this target machine" +#~ msgstr "-f%sleading-underscore understttes ikke p mlarkitekturen" + +#~ msgid "-ffunction-sections not supported for this target" +#~ msgstr "-ffunction-sections understttes ikke p mlarkitekturen" + +#~ msgid "-fdata-sections not supported for this target" +#~ msgstr "-fdata-sections understttes ikke p mlarkitekturen" + +#~ msgid "-ffunction-sections disabled; it makes profiling impossible" +#~ msgstr "-ffunction-sections deaktiveret; dette gr profilering umulig" + +#~ msgid "-fprefetch-loop-arrays not supported for this target" +#~ msgstr "-fprefetch-loop-arrays understttes ikke p mlarkitekturen" + +#~ msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" +#~ msgstr "-fprefetch-loop-arrays understttes ikke p mlarkitekturen (prv '-march'-tilvalgene)" + +#~ msgid "-fprefetch-loop-arrays is not supported with -Os" +#~ msgstr "-fprefetch-loop-arrays understttes ikke med -Os" + +#~ msgid "-ffunction-sections may affect debugging on some targets" +#~ msgstr "-ffunction-sections kan have indflydelse p fejlfinding p nogle mlarkitekturer" + +#~ msgid "error writing to %s" +#~ msgstr "fejl ved skrivning til %s" + +#~ msgid "error closing %s" +#~ msgstr "fejl ved lukning af %s" + +#~ msgid "could not open dump file `%s'" +#~ msgstr "kunne ikke bne dumpningsfilen '%s'" + +#~ msgid "ignoring unknown option `%.*s' in `-f%s'" +#~ msgstr "ignorerer ukendt tilvalg '%.*s' i '-f%s'" + +#~ msgid "arrays of functions are not meaningful" +#~ msgstr "en tabel af funktioner giver ikke mening" + +#~ msgid "function return type cannot be function" +#~ msgstr "en funktions returtype kan ikke vre en funktion" + +#~ msgid "invalid initializer for bit string" +#~ msgstr "ugyldig startvrdi til bitstreng" + +#~ msgid "tree check: expected %s, have %s in %s, at %s:%d" +#~ msgstr "tr-kontrol: forventede %s, har %s i %s, ved %s:%d" + +#~ msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" +#~ msgstr "tr-kontrol: forventede klasse '%c', har '%c' (%s) i %s, ved %s:%d" + +#~ msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" +#~ msgstr "RTL-kontrol: tilgik udtrykstr %d af tree_vec med %d udtrykstrer i %s, ved %s:%d" + +#~ msgid "%s causes a section type conflict" +#~ msgstr "%s forrsager en sektionstypekonflikt" + +#~ msgid "register name not specified for `%s'" +#~ msgstr "registernavn ikke angivet for '%s'" + +#~ msgid "invalid register name for `%s'" +#~ msgstr "ugyldigt registernavn for '%s'" + +#~ msgid "data type of `%s' isn't suitable for a register" +#~ msgstr "datatypen for '%s' passer ikke med et register" + +#~ msgid "register specified for `%s' isn't suitable for data type" +#~ msgstr "registeret som er angivet for '%s' passer ikke med datatypen" + +#~ msgid "global register variable has initial value" +#~ msgstr "global registervariabel har en startvrdi" + +#~ msgid "volatile register variables don't work as you might wish" +#~ msgstr "registervariable erklret volatile virker ikke som du mske nsker" + +#~ msgid "register name given for non-register variable `%s'" +#~ msgstr "registernavn givet for ikke-registervariablen '%s'" + +#~ msgid "alignment of `%s' is greater than maximum object file alignment. Using %d" +#~ msgstr "justering af '%s' er strre end den maksimale objektfilsjustering - bruger %d" + +#~ msgid "thread-local COMMON data not implemented" +#~ msgstr "trd-lokal COMMON-data er ikke implementeret" + +#~ msgid "requested alignment for %s is greater than implemented alignment of %d" +#~ msgstr "forespurgt justering for %s er strre end den implementerede justering af %d" + +#~ msgid "initializer for integer value is too complicated" +#~ msgstr "startvrdien for heltallet er for kompliceret" + +#~ msgid "initializer for floating value is not a floating constant" +#~ msgstr "startvrdien for kommatal er ikke en kommatalskonstant" + +#~ msgid "unknown set constructor type" +#~ msgstr "ukendt mngdekonstruktionstype" + +#~ msgid "invalid initial value for member `%s'" +#~ msgstr "ugyldig startvrdi for medlemmet '%s'" + +#~ msgid "weak declaration of `%s' must precede definition" +#~ msgstr "svag erklring af '%s' skal komme fr definitionen" + +#~ msgid "weak declaration of `%s' after first use results in unspecified behavior" +#~ msgstr "svag erklring af '%s' efter frste brug resulterer i ikke-defineret opfrsel" + +#~ msgid "weak declaration of `%s' must be public" +#~ msgstr "svag erklring af '%s' skal vre public" + +#~ msgid "weak declaration of `%s' not supported" +#~ msgstr "svag erklring af '%s' ikke understttet" + +#~ msgid "only weak aliases are supported in this configuration" +#~ msgstr "kun svage aliaser understttes i denne konfiguration" + +#~ msgid "alias definitions not supported in this configuration; ignored" +#~ msgstr "aliasdefinitioner er ikke understttet i denne konfiguration; ignoreret" + +#~ msgid "visibility attribute not supported in this configuration; ignored" +#~ msgstr "synlighedsegenskab er ikke understttet i denne konfiguration; ignoreret" + +#~ msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d" +#~ msgstr "virtuel tabel %s[%lu]: element %lu ude over grnserne i %s, ved %s:%d" + +#~ msgid "no sclass for %s stab (0x%x)\n" +#~ msgstr "ingen sclass for %s stab (0x%x)\n" + +#~ msgid "#`%s' not supported by %s#" +#~ msgstr "#'%s' ikke understttet af %s#" + +#~ msgid "The maximum number of instructions in a single function eligible for inlining" +#~ msgstr "Det maksimale antal instruktioner i en enkelt funktion der m indbygges" + +#~ msgid "The maximum number of instructions when automatically inlining" +#~ msgstr "Det maksimale antal instruktioner ved automatisk indbygning" + +#~ msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining" +#~ msgstr "Det maksimale antal instruktioner ved gentagen indbygning fr GCC dmper indbygningen" + +#~ msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter" +#~ msgstr "Hldningen af den linere funktion der dmper indbygning efter at den rekursive indbygningsgrnse er net, er givet ved den negative, reciprokke vrdi af denne parameter" + +#~ msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining" +#~ msgstr "Antallet af instruktioner i en enkelt funktion der stadig indbygges efter megen rekursiv indbygning" + +#~ msgid "The maximum number of instructions for the RTL inliner" +#~ msgstr "Det maksimale antal instruktioner til RTL-indbyggeren" + +#~ msgid "The maximum number of instructions to consider to fill a delay slot" +#~ msgstr "Det maksimale antal instruktioner det overvejes at udfylde ventepladser med" + +#~ msgid "The maximum number of instructions to consider to find accurate live register information" +#~ msgstr "Det maksimale antal instruktioner der overvejes under sgning efter prcis registerinfo" + +#~ msgid "The maximum length of scheduling's pending operations list" +#~ msgstr "Den maksimale lngde af planlggerens liste over ventende operationer" + +#~ msgid "The maximum amount of memory to be allocated by GCSE" +#~ msgstr "Den maksimale mngde hukommelse som skal allokeres af GCSE" + +#~ msgid "The maximum number of passes to make when doing GCSE" +#~ msgstr "Det maksimale antal faser der skal gennemgs ved udfrsel af GCSE" + +#~ msgid "The maximum number of instructions to consider to unroll in a loop" +#~ msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en lkke" + +#~ msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot" +#~ msgstr "Vlg den andel af det maksimale antal gentagelser af basisblokke i et program en given basisblok skal have for at blive betragtet som \"varm\"" + +#~ msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot" +#~ msgstr "Vlg den andel af den maksimale frekvens af udfrsler af basisblokke i et program en given basisblok skal have for at blive betragtet som \"varm\"" + +#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available" +#~ msgstr "Den procendel af funktioner vgtet efter udfrselsfrekvens som skal dkkes af sporingsformering; benyttes nr profileringsfeedback er tilgngeligt" + +#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available" +#~ msgstr "Den procendel af funktioner vgtet efter udfrselsfrekvens som skal dkkes af sporingsformering; benyttes nr profileringsfeedback ikke er tilgngeligt" + +#~ msgid "Maximal code growth caused by tail duplication (in percents)" +#~ msgstr "Maksimal kodevkst forrsaget af haleduplikering (i procent)" + +#~ msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)" +#~ msgstr "Stop omvendt vkst hvis den omvendte sandsynlighed for den bedste kant er mindre end denne trskel (i procent)" + +#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available" +#~ msgstr "Stop fremadrettet vkst hvis sandsynligheden for den bedste kant er mindre end denne trskel (i procent); benyttes nr profileringsfeedback er tilgngeligt" + +#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available" +#~ msgstr "Stop fremadrettet vkst hvis sandsynligheden for den bedste kant er mindre end denne trskel (i procent); benyttes nr profileringsfeedback ikke er tilgngeligt" + +#~ msgid "The maximum number of incoming edges to consider for crossjumping" +#~ msgstr "Det maksimale antal indadgende kanter der overvejes til krydsspring" + +#~ msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap." +#~ msgstr "Minimal heap-udvidelse for at udlse garbage collection, som en procentdel af den totale heap" + +#~ msgid "Minimum heap size before we start collecting garbage, in kilobytes." +#~ msgstr "Minimal heap-strrelse fr garbage collection startes, i kilobyte." + +#~ msgid "too many #pragma options align=reset" +#~ msgstr "for mange '#pragma options align=reset'" + +#~ msgid "malformed '#pragma options', ignoring" +#~ msgstr "forkert udformet '#pragma options', ignorerer" + +#~ msgid "junk at end of '#pragma options'" +#~ msgstr "ragelse i slutningen af '#pragma options'" + +#~ msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring" +#~ msgstr "forkert udformet '#pragma options align={mac68k|power|reset}', ignorerer" + +#~ msgid "missing '(' after '#pragma unused', ignoring" +#~ msgstr "manglende '(' efter '#pragma unused', ignorerer" + +#~ msgid "missing ')' after '#pragma unused', ignoring" +#~ msgstr "manglende ')' efter '#pragma unused', ignorerer" + +#~ msgid "junk at end of '#pragma unused'" +#~ msgstr "ragelse i slutningen af '#pragma unused'" + +#~ msgid "-msystem-v and -p are incompatible" +#~ msgstr "-msystem-v og -p er indbyrdes uforenelige" + +#~ msgid "-msystem-v and -mthreads are incompatible" +#~ msgstr "-msystem-v og -mthreads er indbyrdes uforenelige" + +#~ msgid "-f%s ignored for Unicos/Mk (not supported)" +#~ msgstr "-f%s ignoreret for Unicos/Mk (ikke understttet)" + +#~ msgid "-mieee not supported on Unicos/Mk" +#~ msgstr "-mieee understttes ikke p Unicos/Mk" + +#~ msgid "-mieee-with-inexact not supported on Unicos/Mk" +#~ msgstr "-mieee-with-inexact understttes ikke p Unicos/Mk" + +#~ msgid "bad value `%s' for -mtrap-precision switch" +#~ msgstr "ugyldig vrdi '%s' til tilvalget -mtrap-precision" + +#~ msgid "bad value `%s' for -mfp-rounding-mode switch" +#~ msgstr "ugyldig vrdi '%s' til tilvalget -mfp-rounding-mode" + +#~ msgid "bad value `%s' for -mfp-trap-mode switch" +#~ msgstr "ugyldig vrdi '%s' til tilvalget -mfp-trap-mode" + +#~ msgid "bad value `%s' for -mtls-size switch" +#~ msgstr "ugyldig vrdi '%s' til tilvalget -mtls-size" + +#~ msgid "bad value `%s' for -mcpu switch" +#~ msgstr "ugyldig vrdi '%s' til tilvalget -mcpu" + +#~ msgid "trap mode not supported on Unicos/Mk" +#~ msgstr "fldetilstand understttes ikke p Unicos/Mk" + +#~ msgid "fp software completion requires -mtrap-precision=i" +#~ msgstr "kommatalssoftwarefuldfrelse krver -mtrap-precision=i" + +#~ msgid "rounding mode not supported for VAX floats" +#~ msgstr "afrundingstilstand er ikke understttet for VAX-kommatal" + +#~ msgid "trap mode not supported for VAX floats" +#~ msgstr "fldetilstand er ikke understttet for VAX-kommatal" + +#~ msgid "L%d cache latency unknown for %s" +#~ msgstr "L%d-mellemlagersventetid ukendt for %s" + +#~ msgid "bad value `%s' for -mmemory-latency" +#~ msgstr "ugyldig vrdi '%s' for -mmemory-latency" + +#~ msgid "invalid %%H value" +#~ msgstr "ugyldig %%H-vrdi" + +#~ msgid "invalid %%J value" +#~ msgstr "ugyldig %%J-vrdi" + +#~ msgid "invalid %%r value" +#~ msgstr "ugyldig %%r-vrdi" + +#~ msgid "invalid %%R value" +#~ msgstr "ugyldig %%R-vrdi" + +#~ msgid "invalid %%N value" +#~ msgstr "ugyldig %%N-vrdi" + +#~ msgid "invalid %%P value" +#~ msgstr "ugyldig %%P-vrdi" + +#~ msgid "invalid %%h value" +#~ msgstr "ugyldig %%h-vrdi" + +#~ msgid "invalid %%L value" +#~ msgstr "ugyldig %%L-vrdi" + +#~ msgid "invalid %%m value" +#~ msgstr "ugyldig %%m-vrdi" + +#~ msgid "invalid %%M value" +#~ msgstr "ugyldig %%M-vrdi" + +#~ msgid "invalid %%U value" +#~ msgstr "ugyldig %%U-vrdi" + +#~ msgid "invalid %%s value" +#~ msgstr "ugyldig %%s-vrdi" + +#~ msgid "invalid %%C value" +#~ msgstr "ugyldig %%C-vrdi" + +#~ msgid "invalid %%E value" +#~ msgstr "ugyldig %%E-vrdi" + +#~ msgid "unknown relocation unspec" +#~ msgstr "ukendt relokaliserings-unspec" + +#~ msgid "invalid %%xn code" +#~ msgstr "ugyldig %%xn-kode" + +#~ msgid "bad builtin fcode" +#~ msgstr "ugyldig indbygget fcode" + +#~ msgid "Use hardware fp" +#~ msgstr "Brug hardwarekommatal" + +#~ msgid "Do not use hardware fp" +#~ msgstr "Brug ikke hardwarekommatal" + +#~ msgid "Use fp registers" +#~ msgstr "Brug kommatalsregistre" + +#~ msgid "Do not use fp registers" +#~ msgstr "Brug ikke kommatalsregistre" + +#~ msgid "Do not assume GAS" +#~ msgstr "Antag ikke GAS" + +#~ msgid "Assume GAS" +#~ msgstr "Antag GAS" + +#~ msgid "Request IEEE-conformant math library routines (OSF/1)" +#~ msgstr "Pkrv at matematiksbibliotekrutiner opfylder IEEE-standarden (OSF/1)" + +#~ msgid "Emit IEEE-conformant code, without inexact exceptions" +#~ msgstr "Udsend kode der opfylder IEEE-standarden, uden ineksakte undtagelser" + +#~ msgid "Emit IEEE-conformant code, with inexact exceptions" +#~ msgstr "Udsend kode der opfylder IEEE-standarden, med ineksakte undtagelser" + +#~ msgid "Do not emit complex integer constants to read-only memory" +#~ msgstr "Udsend ikke komplekse heltalskonstanter til skrivebeskyttet hukommelse" + +#~ msgid "Use VAX fp" +#~ msgstr "Benyt VAX-kommatal" + +#~ msgid "Do not use VAX fp" +#~ msgstr "Benyt ikke VAX-kommatal" + +#~ msgid "Emit code for the byte/word ISA extension" +#~ msgstr "Udsend kode for byte/word-ISA-udvidelsen" + +#~ msgid "Emit code for the motion video ISA extension" +#~ msgstr "Udsend kode for video-ISA-udvidelsen" + +#~ msgid "Emit code for the fp move and sqrt ISA extension" +#~ msgstr "Udsend kode for kommatalsflytning og kvadratrod-ISA-udvidelsen" + +#~ msgid "Emit code for the counting ISA extension" +#~ msgstr "Udsend kode for tller-ISA-udvidelsen" + +#~ msgid "Emit code using explicit relocation directives" +#~ msgstr "Udsend kode der bruger eksplicitte relokaliseringsdirektiver" + +#~ msgid "Emit 16-bit relocations to the small data areas" +#~ msgstr "Udsend 16-bit relokalisering til det lille dataomrde" + +#~ msgid "Emit 32-bit relocations to the small data areas" +#~ msgstr "Udsend 32-bit relokalisering til det lille dataomrde" + +#~ msgid "Emit rdval instead of rduniq for thread pointer" +#~ msgstr "Udsend rdval i stedet for rduniq for trdhenvisning" + +#~ msgid "Use features of and schedule given CPU" +#~ msgstr "Brug faciliteter fra og planlg mht. den givne processor" + +#~ msgid "Schedule given CPU" +#~ msgstr "Planlg til en given processor" + +#~ msgid "Control the generated fp rounding mode" +#~ msgstr "Kontrollr den genererede kommatalsafrundingstilstand" + +#~ msgid "Control the IEEE trap mode" +#~ msgstr "Kontrollr IEEE-fldetilstanden" + +#~ msgid "Control the precision given to fp exceptions" +#~ msgstr "Kontrollr den prcision der gives til kommatalsundtagelser" + +#~ msgid "Specify bit size of immediate TLS offsets" +#~ msgstr "Angiv bitstrrelse for umiddelbar TLS-afst" + +#~ msgid "bad value (%s) for -mcpu switch" +#~ msgstr "ugyldig vrdi '%s' til tilvalget -mcpu" + +#~ msgid "argument of `%s' attribute is not a string constant" +#~ msgstr "parameteren til egenskaben '%s er ikke en strengkonstant" + +#~ msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" +#~ msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\"" + +#~ msgid "invalid operand to %%R code" +#~ msgstr "ugyldig operand til %%R-koden" + +#~ msgid "invalid operand to %%H/%%L code" +#~ msgstr "ugyldig operand til %%H/%%L-koden" + +#~ msgid "invalid operand to %%U code" +#~ msgstr "ugyldig operand til %%U-koden" + +#~ msgid "invalid operand to %%V code" +#~ msgstr "ugyldig operand til %%V-koden" + +#~ msgid "invalid operand output code" +#~ msgstr "ugyldig operand-uddatakode" + +#~ msgid "switch -mcpu=%s conflicts with -march= switch" +#~ msgstr "tilvalget -mcpu=%s er i konflikt med tilvalget -march=" + +#~ msgid "bad value (%s) for %s switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget %s" + +#~ msgid "target CPU does not support APCS-32" +#~ msgstr "mlprocessoren understtter ikke APCS-32" + +#~ msgid "target CPU does not support APCS-26" +#~ msgstr "mlprocessoren understtter ikke APCS-26" + +#~ msgid "target CPU does not support interworking" +#~ msgstr "mlprocessoren understtter ikke interarbejde" + +#~ msgid "target CPU does not support THUMB instructions" +#~ msgstr "mlprocessoren understtter ikke THUMB-instruktioner" + +#~ msgid "enabling backtrace support is only meaningful when compiling for the Thumb" +#~ msgstr "aktivering af tilbagesporingsunderstttelse giver kun mening ved oversttelse for en Thumb" + +#~ msgid "enabling callee interworking support is only meaningful when compiling for the Thumb" +#~ msgstr "aktivering af interarbejdeunderstttelse for kaldte objekter giver kun mening ved oversttelse for en Thumb" + +#~ msgid "enabling caller interworking support is only meaningful when compiling for the Thumb" +#~ msgstr "aktivering af interarbejdeunderstttelse for kaldere giver kun mening ved oversttelse for en Thumb" + +#~ msgid "interworking forces APCS-32 to be used" +#~ msgstr "interarbejde tvinger APCS-32 til at blive brugt" + +#~ msgid "-mapcs-stack-check incompatible with -mno-apcs-frame" +#~ msgstr "-mapcs-stack-check og -mno-apcs-frame er indbyrdes uforenelige" + +#~ msgid "-fpic and -mapcs-reent are incompatible" +#~ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige" + +#~ msgid "APCS reentrant code not supported. Ignored" +#~ msgstr "APCS-genindtrdelig kode er ikke understttet - ignoreret" + +#~ msgid "-g with -mno-apcs-frame may not give sensible debugging" +#~ msgstr "-g med -mno-apcs-frame giver mske ikke fornuftig fejlanalysering" + +#~ msgid "passing floating point arguments in fp regs not yet supported" +#~ msgstr "overbringelse af kommatalsparametre i kommatalsregistre er ikke understttet endnu" + +#~ msgid "invalid floating point emulation option: -mfpe-%s" +#~ msgstr "ugyldigt tilvalg til kommatalsemulering: -mfpe-%s" + +#~ msgid "structure size boundary can only be set to 8 or 32" +#~ msgstr "strukturstrrelsesgrnse kan kun sttes til 8 eller 32" + +#~ msgid "-mpic-register= is useless without -fpic" +#~ msgstr "-mpic-register= er ubrugelig uden -fpic" + +#~ msgid "unable to use '%s' for PIC register" +#~ msgstr "kan ikke bruge '%s' til PIC-register" + +#~ msgid "`%s' attribute only applies to functions" +#~ msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner" + +#~ msgid "unable to compute real location of stacked parameter" +#~ msgstr "kan ikke beregne virkelig placering af stakkede parametre" + +#~ msgid "no low registers available for popping high registers" +#~ msgstr "ingen lave registre er tilgngelige til at modtage vrdier fra hje registre" + +#~ msgid "interrupt Service Routines cannot be coded in Thumb mode" +#~ msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand" + +#~ msgid "initialized variable `%s' is marked dllimport" +#~ msgstr "variablen '%s' med startvrdi er markeret dllimport" + +#~ msgid "static variable `%s' is marked dllimport" +#~ msgstr "statisk variabel '%s' er markeret dllimport" + +#~ msgid "Generate APCS conformant stack frames" +#~ msgstr "Generr APCS-overholdende stakrammer" + +#~ msgid "Store function names in object code" +#~ msgstr "Gem funktionsnavne i objektkode" + +#~ msgid "Use the 32-bit version of the APCS" +#~ msgstr "Benyt 32 bit-udgaven af APCS" + +#~ msgid "Use the 26-bit version of the APCS" +#~ msgstr "Benyt 26 bit-udgaven af APCS" + +#~ msgid "Pass FP arguments in FP registers" +#~ msgstr "Videregiv kommatalsparametre i kommatalsregistre" + +#~ msgid "Generate re-entrant, PIC code" +#~ msgstr "Generr genindtrdelig PIC-kode" + +#~ msgid "The MMU will trap on unaligned accesses" +#~ msgstr "MMU'en vil aktiveres ved ikke-justerede tilgange" + +#~ msgid "Use library calls to perform FP operations" +#~ msgstr "Benyt bibliotekskald til at udfre kommatalsoperationer" + +#~ msgid "Use hardware floating point instructions" +#~ msgstr "Benyt hardware-kommatalsinstruktioner" + +#~ msgid "Assume target CPU is configured as big endian" +#~ msgstr "Antag at mlprocessoren er konfigureret som storendet" + +#~ msgid "Assume target CPU is configured as little endian" +#~ msgstr "Antag at mlprocessoren er konfigureret som lilleendet" + +#~ msgid "Assume big endian bytes, little endian words" +#~ msgstr "Antag storendede byte og lilleendede word" + +#~ msgid "Support calls between Thumb and ARM instruction sets" +#~ msgstr "Understt kald mellem Thumb- og ARM-instruktionssttene" + +#~ msgid "Generate a call to abort if a noreturn function returns" +#~ msgstr "Generr et kald til abort hvis en noreturn-funktion returnerer" + +#~ msgid "Do not move instructions into a function's prologue" +#~ msgstr "Flyt ikke instruktioner til en funktions begyndelse" + +#~ msgid "Do not load the PIC register in function prologues" +#~ msgstr "Indls ikke PIC-registeret i funktionsbegyndelser" + +#~ msgid "Generate call insns as indirect calls, if necessary" +#~ msgstr "Generr kaldeinstruktioner som indirekte kald, om ndvendigt" + +#~ msgid "Compile for the Thumb not the ARM" +#~ msgstr "Overst til Thymb, ikke til ARM" + +#~ msgid "Thumb: Generate (non-leaf) stack frames even if not needed" +#~ msgstr "Thumb: Generr (ikke-yderste) stakrammer selv hvis det ikke er ndvendigt" + +#~ msgid "Thumb: Generate (leaf) stack frames even if not needed" +#~ msgstr "Thumb: Generr (yderste) stakrammer selv hvis det ikke er ndvendigt" + +#~ msgid "Thumb: Assume non-static functions may be called from ARM code" +#~ msgstr "Thumb: Antag at ikke-statiske funktioner kan kaldes fra ARM-kode" + +#~ msgid "Thumb: Assume function pointers may go to non-Thumb aware code" +#~ msgstr "Thumb: Antag at funktionshenvisninger kan g til kode der ikke er opmrksom p Thumb" + +#~ msgid "Specify the name of the target CPU" +#~ msgstr "Angiv navnet p mlprocessoren" + +#~ msgid "Specify the name of the target architecture" +#~ msgstr "Angiv navnet p mlarkitekturen" + +#~ msgid "Specify the version of the floating point emulator" +#~ msgstr "Angiv versionen af kommatalsemulatoren" + +#~ msgid "Specify the minimum bit alignment of structures" +#~ msgstr "Angiv den mindste bitjustering af strukturer" + +#~ msgid "Specify the register to be used for PIC addressing" +#~ msgstr "Angiv det register der skal bruges til PIC-adressering" + +#~ msgid "Ignore dllimport attribute for functions" +#~ msgstr "Ignorr dllimport-egenskaben for funktioner" + +#~ msgid "large frame pointer change (%d) with -mtiny-stack" +#~ msgstr "stor rammehenvisningsndring (%d) med -mtiny-stack" + +#~ msgid "bad address, not (reg+disp):" +#~ msgstr "ugyldig adresse, ikke (reg+disp):" + +#~ msgid "internal compiler error. Bad address:" +#~ msgstr "intern overstterfejl - ugyldig adresse:" + +#~ msgid "internal compiler error. Unknown mode:" +#~ msgstr "intern overstterfejl - ugyldig tilstand:" + +#~ msgid "invalid insn:" +#~ msgstr "ugyldig instruktion:" + +#~ msgid "incorrect insn:" +#~ msgstr "ukorrekt instruktion:" + +#~ msgid "unknown move insn:" +#~ msgstr "ukendt flytteinstruktion:" + +#~ msgid "bad shift insn:" +#~ msgstr "ugyldig skifteinstruktion:" + +#~ msgid "internal compiler error. Incorrect shift:" +#~ msgstr "intern overstterfejl - ukorrekt skift:" + +#~ msgid "only initialized variables can be placed into program memory area" +#~ msgstr "kun variabler med startvrdi kan placeres i programhukommelsesomrdet" + +#~ msgid "only uninitialized variables can be placed in the .noinit section" +#~ msgstr "kun variabler uden startvrdi kan placeres i .noinit-sektionen" + +#~ msgid "MCU `%s' supported for assembler only" +#~ msgstr "MCU '%s' understttes kun for maskinkode" + +#~ msgid "Assume int to be 8 bit integer" +#~ msgstr "Antag at int er 8 bit-heltal" + +#~ msgid "Change the stack pointer without disabling interrupts" +#~ msgstr "ndr stakhenvisningen uden at deaktivere afbrydelser" + +#~ msgid "Use subroutines for function prologue/epilogue" +#~ msgstr "Benyt subrutiner for funktionsindledning/-afslutninger" + +#~ msgid "Change only the low 8 bits of the stack pointer" +#~ msgstr "ndr kun de laveste 8 bit af stakhenvisningen" + +#~ msgid "Do not generate tablejump insns" +#~ msgstr "Generr ikke tabelspringsinstruktioner" + +#~ msgid "Use rjmp/rcall (limited range) on >8K devices" +#~ msgstr "Benyt rjmp/rcall (begrnset omfang) p >8K-enheder" + +#~ msgid "Output instruction sizes to the asm file" +#~ msgstr "Anbring instruktionsstrrelser i asm-filen" + +#~ msgid "Specify the initial stack address" +#~ msgstr "Angiv den frste stakadresse" + +#~ msgid "Specify the MCU name" +#~ msgstr "Angiv MCU-navnet" + +#~ msgid "trampolines not supported" +#~ msgstr "trampoliner understttes ikke" + +#~ msgid "missing '(' after '#pragma %s' - ignored" +#~ msgstr "manglende '(' efter '#pragma %s' - ignoreret" + +#~ msgid "missing function name in '#pragma %s' - ignored" +#~ msgstr "manglende funktionsnavn i '#pragma %s' - ignoreret" + +#~ msgid "malformed '#pragma %s' - ignored" +#~ msgstr "forkert udformet '#pragma %s' - ignoreret" + +#~ msgid "missing section name in '#pragma %s' - ignored" +#~ msgstr "manglende sektionsnavn i '#pragma %s' - ignoreret" + +#~ msgid "missing ')' for '#pragma %s' - ignored" +#~ msgstr "manglende '(' for '#pragma %s' - ignoreret" + +#~ msgid "junk at end of '#pragma %s'" +#~ msgstr "ragelse i slutningen af '#pragma %s'" + +#~ msgid "unknown CPU version %d, using 40.\n" +#~ msgstr "ukendt processorversion %d, bruger 40.\n" + +#~ msgid "ISR %s requires %d words of local vars, max is 32767" +#~ msgstr "ISR %s krver %d ord af lokale variable, maks. er 32767" + +#~ msgid "using CONST_DOUBLE for address" +#~ msgstr "bruger CONST_DOUBLE til adresse" + +#~ msgid "c4x_address_cost: Invalid addressing mode" +#~ msgstr "c4x_address_cost: Ugyldig adresseringstilstand" + +#~ msgid "c4x_print_operand: %%L inconsistency" +#~ msgstr "c4x_print_operand: %%L-inkonsistens" + +#~ msgid "c4x_print_operand: %%N inconsistency" +#~ msgstr "c4x_print_operand: %%N-inkonsistens" + +#~ msgid "c4x_print_operand: %%O inconsistency" +#~ msgstr "c4x_print_operand: %%O-inkonsistens" + +#~ msgid "c4x_print_operand: Bad operand case" +#~ msgstr "c4x_print_operand: Ugyldig operand-case" + +#~ msgid "c4x_print_operand_address: Bad post_modify" +#~ msgstr "c4x_print_operand_address: Ugyldig post_modify" + +#~ msgid "c4x_print_operand_address: Bad pre_modify" +#~ msgstr "c4x_print_operand_address: Ugyldig pre_modify" + +#~ msgid "c4x_print_operand_address: Bad operand case" +#~ msgstr "c4x_print_operand_address: Ugyldig operand-case" + +#~ msgid "c4x_rptb_insert: Cannot find start label" +#~ msgstr "c4x_rptb_insert: Kan ikke finde startetiket" + +#~ msgid "mode not QImode" +#~ msgstr "tilstand ikke QImode" + +#~ msgid "invalid indirect memory address" +#~ msgstr "ugyldig indirekte hukommelsesadresse" + +#~ msgid "invalid indirect (S) memory address" +#~ msgstr "ugyldig indirekte (S) hukommelsesadresse" + +#~ msgid "c4x_valid_operands: Internal error" +#~ msgstr "c4x_valid_operands: Intern fejl" + +#~ msgid "c4x_operand_subword: invalid mode" +#~ msgstr "c4x_operand_subword: ugyldig tilstand" + +#~ msgid "c4x_operand_subword: invalid operand" +#~ msgstr "c4x_operand_subword: ugyldig operand" + +#~ msgid "c4x_operand_subword: invalid autoincrement" +#~ msgstr "c4x_operand_subword: ugyldig selvforgelse" + +#~ msgid "c4x_operand_subword: invalid address" +#~ msgstr "c4x_operand_subword: ugyldig adresse" + +#~ msgid "c4x_operand_subword: address not offsettable" +#~ msgstr "c4x_operand_subword: adresse kan ikke tilfjes et offset" + +#~ msgid "c4x_rptb_rpts_p: Repeat block top label moved\n" +#~ msgstr "c4x_rptb_rpts_p: Topetiket til gentagelsesblok flyttet\n" + +#~ msgid "Small memory model" +#~ msgstr "Lille hukommelsesmodel" + +#~ msgid "Big memory model" +#~ msgstr "Stor hukommelsesmodel" + +#~ msgid "Use MPYI instruction for C3x" +#~ msgstr "Benyt MPYI-instruktionen til C3x" + +#~ msgid "Do not use MPYI instruction for C3x" +#~ msgstr "Benyt ikke MPYI-instruktionen til C3x" + +#~ msgid "Use fast but approximate float to integer conversion" +#~ msgstr "Benyt hurtig, men approksimativ konvertering fra komma- til heltal" + +#~ msgid "Use slow but accurate float to integer conversion" +#~ msgstr "Benyt langsom, men njagtig konvertering fra komma- til heltal" + +#~ msgid "Enable use of RTPS instruction" +#~ msgstr "Aktivr brug af RTPS-instruktionen" + +#~ msgid "Disable use of RTPS instruction" +#~ msgstr "Deaktivr brug af RTPS-instruktionen" + +#~ msgid "Enable use of RTPB instruction" +#~ msgstr "Aktivr brug af RTPB-instruktionen" + +#~ msgid "Disable use of RTPB instruction" +#~ msgstr "Deaktivr brug af RTPB-instruktionen" + +#~ msgid "Generate code for C30 CPU" +#~ msgstr "Generr kode til en C30-processor" + +#~ msgid "Generate code for C31 CPU" +#~ msgstr "Generr kode til en C31-processor" + +#~ msgid "Generate code for C32 CPU" +#~ msgstr "Generr kode til en C32-processor" + +#~ msgid "Generate code for C33 CPU" +#~ msgstr "Generr kode til en C33-processor" + +#~ msgid "Generate code for C40 CPU" +#~ msgstr "Generr kode til en C40-processor" + +#~ msgid "Generate code for C44 CPU" +#~ msgstr "Generr kode til en C44-processor" + +#~ msgid "Emit code compatible with TI tools" +#~ msgstr "Udsend kode der er kompatibel med TI-vrktjer" + +#~ msgid "Emit code to use GAS extensions" +#~ msgstr "Udsend kode der bruger GAS-udvidelser" + +# RETMIG: hvad str ISR for? +#~ msgid "Save DP across ISR in small memory model" +#~ msgstr "Gem DP over ISR i lille hukommelsesmodel" + +#~ msgid "Don't save DP across ISR in small memory model" +#~ msgstr "Gem ikke DP over ISR i lille hukommelsesmodel" + +#~ msgid "Pass arguments on the stack" +#~ msgstr "Overbring parametre p stakken" + +#~ msgid "Pass arguments in registers" +#~ msgstr "Overbring parametre i registre" + +#~ msgid "Enable new features under development" +#~ msgstr "Aktivr nye faciliteter under udvikling" + +#~ msgid "Disable new features under development" +#~ msgstr "Deaktivr nye faciliteter under udvikling" + +#~ msgid "Use the BK register as a general purpose register" +#~ msgstr "Benyt BK-registeret som et alment register" + +#~ msgid "Do not allocate BK register" +#~ msgstr "Allokr ikke BK-registeret" + +#~ msgid "Enable use of DB instruction" +#~ msgstr "Aktivr brug af DB-instruktioner" + +#~ msgid "Disable use of DB instruction" +#~ msgstr "Deaktivr brug af DB-instruktioner" + +#~ msgid "Enable debugging" +#~ msgstr "Aktivr fejlanalyseringsinfo" + +#~ msgid "Disable debugging" +#~ msgstr "Deaktivr fejlanalyseringsinfo" + +# RETMIG: hvad betyder hoisting? (det har noget med jage indlsning af dem ud af registre) +#~ msgid "Force constants into registers to improve hoisting" +#~ msgstr "Tving konstanter ind i registre for at forbedre hoisting" + +#~ msgid "Don't force constants into registers" +#~ msgstr "Tving ikke konstanter ind i registre" + +#~ msgid "Force RTL generation to emit valid 3 operand insns" +#~ msgstr "Tving RTL-generering til at udsende gyldig 3-operandinstruktioner" + +#~ msgid "Allow RTL generation to emit invalid 3 operand insns" +#~ msgstr "Tillad RTL-generering at udsende ugyldig 3-operandinstruktioner" + +#~ msgid "Allow unsigned iteration counts for RPTB/DB" +#~ msgstr "Tillad iterationstllere uden fortegn for RPTB/DB" + +#~ msgid "Disallow unsigned iteration counts for RPTB/DB" +#~ msgstr "Tillad ikke iterationstllere uden fortegn for RPTB/DB" + +#~ msgid "Preserve all 40 bits of FP reg across call" +#~ msgstr "Bevar alle 40 bit af kommatalsregisteret p tvrs af kald" + +#~ msgid "Only preserve 32 bits of FP reg across call" +#~ msgstr "Bevar kun 32 bit af kommatalsregisteret p tvrs af kald" + +#~ msgid "Enable parallel instructions" +#~ msgstr "Aktivr parallelle instruktioner" + +#~ msgid "Disable parallel instructions" +#~ msgstr "Deaktivr parallelle instruktioner" + +#~ msgid "Enable MPY||ADD and MPY||SUB instructions" +#~ msgstr "Aktivr instruktionerne MPY||ADD og MPY||SUB" + +#~ msgid "Disable MPY||ADD and MPY||SUB instructions" +#~ msgstr "Deaktivr instruktionerne MPY||ADD og MPY||SUB" + +#~ msgid "Assume that pointers may be aliased" +#~ msgstr "Antag at henvisninger kan vre aliaser" + +#~ msgid "Assume that pointers not aliased" +#~ msgstr "Antag at henvisninger ikke kan vre aliaser" + +#~ msgid "Specify maximum number of iterations for RPTS" +#~ msgstr "Angiv maksimalt antal iterationer for RPTS" + +#~ msgid "Select CPU to generate code for" +#~ msgstr "Vlg den processor der skal genereres kode til" + +#~ msgid "unexpected index-type in cris_print_index" +#~ msgstr "uventet indekstype i cris_print_index" + +#~ msgid "unexpected base-type in cris_print_base" +#~ msgstr "uventet grundtype in cris_print_base" + +#~ msgid "stackframe too big: %d bytes" +#~ msgstr "stakramme for stor: %d byte" + +#~ msgid "allocated but unused delay list in epilogue" +#~ msgstr "allokeret, men ubenyttet venteliste i afslutning" + +#~ msgid "unexpected function type needing stack adjustment for __builtin_eh_return" +#~ msgstr "uventet funktionstype behver stak justering for __builtin_eh_return" + +#~ msgid "invalid operand for 'b' modifier" +#~ msgstr "ugyldig operand til 'b'-ndring" + +#~ msgid "invalid operand for 'v' modifier" +#~ msgstr "ugyldig operand til 'v'-ndring" + +#~ msgid "invalid operand for 'P' modifier" +#~ msgstr "ugyldig operand til 'P'-ndring" + +#~ msgid "invalid operand for 'p' modifier" +#~ msgstr "ugyldig operand til 'p'-ndring" + +#~ msgid "invalid operand for 'z' modifier" +#~ msgstr "ugyldig operand til 'z'-ndring" + +#~ msgid "invalid operand for 'H' modifier" +#~ msgstr "ugyldig operand til 'H'-ndring" + +#~ msgid "bad register" +#~ msgstr "ugyldigt register" + +#~ msgid "invalid operand for 'e' modifier" +#~ msgstr "ugyldig operand til 'e'-ndring" + +#~ msgid "invalid operand for 'm' modifier" +#~ msgstr "ugyldig operand til 'm'-ndring" + +#~ msgid "invalid operand for 'A' modifier" +#~ msgstr "ugyldig operand til 'A'-ndring" + +#~ msgid "invalid operand for 'D' modifier" +#~ msgstr "ugyldig operand til 'D'-ndring" + +#~ msgid "invalid operand for 'T' modifier" +#~ msgstr "ugyldig operand til 'T'-ndring" + +#~ msgid "invalid operand modifier letter" +#~ msgstr "ugyldigt operandndringsbogstav" + +#~ msgid "internal error: bad register: %d" +#~ msgstr "intern fejl: ugyldigt register: %d" + +#~ msgid "unexpected multiplicative operand" +#~ msgstr "uventet multiplikativ operand" + +#~ msgid "unexpected operand" +#~ msgstr "uventet operand" + +#~ msgid "unrecognized address" +#~ msgstr "ukendt adresse" + +#~ msgid "internal error: sideeffect-insn affecting main effect" +#~ msgstr "intern fejl: bivirkningsinstruktion pvirker hovedvirkning" + +#~ msgid "internal error: cris_side_effect_mode_ok with bad operands" +#~ msgstr "intern fejl: cris_side_effect_mode_ok med ugyldige operander" + +#~ msgid "unrecognized supposed constant" +#~ msgstr "ukendt formodet konstant" + +#~ msgid "unrecognized supposed constant in cris_global_pic_symbol" +#~ msgstr "ukendt formodet konstant i cris_global_pic_symbol" + +#~ msgid "-max-stackframe=%d is not usable, not between 0 and %d" +#~ msgstr "-max-stackframe=%d er ikke brugbar mellem 0 og %d" + +#~ msgid "unknown CRIS version specification in -march= or -mcpu= : %s" +#~ msgstr "ukendt CRIS-versionsspecifikation i -march= eller -mcpu=: %s" + +#~ msgid "unknown CRIS cpu version specification in -mtune= : %s" +#~ msgstr "ukendt CRIS-versionsspecifikation i -mtune=: %s" + +#~ msgid "-fPIC and -fpic are not supported in this configuration" +#~ msgstr "-fPIC og -fpic understttes ikke af denne konfiguration" + +#~ msgid "that particular -g option is invalid with -maout and -melinux" +#~ msgstr "det bestemte '-g'-tilvalg er ugyldigt med -maout og -melinux" + +#~ msgid "unexpected side-effects in address" +#~ msgstr "uventede bivirkninger i adresse" + +#~ msgid "unexpected PIC symbol" +#~ msgstr "uventet PIC-symbol" + +#~ msgid "PIC register isn't set up" +#~ msgstr "PIC-register er ikke sat op" + +#~ msgid "unexpected address expression" +#~ msgstr "uventet adresseudtryk" + +#~ msgid "emitting PIC operand, but PIC register isn't set up" +#~ msgstr "udsender PIC-operand, men PIC-register er ikke sat op" + +#~ msgid "unexpected NOTE as addr_const:" +#~ msgstr "uventet NOTE som addr_const:" + +#~ msgid "Compile for the MMU-less Etrax 100-based elinux system" +#~ msgstr "Overst for det Etrax 100-baserede elinux-system uden MMU" + +#~ msgid "For elinux, request a specified stack-size for this program" +#~ msgstr "For elinux; foresprg en angivet stakstrrelse for dette program" + +#~ msgid "Compile for ETRAX 4 (CRIS v3)" +#~ msgstr "Overst for ETRAX 4 (CRIS v3)" + +#~ msgid "Compile for ETRAX 100 (CRIS v8)" +#~ msgstr "Overst for ETRAX 100 (CRIS v8)" + +#~ msgid "Emit verbose debug information in assembly code" +#~ msgstr "Udsend fejlanalyseringsinfo i maskinkode" + +#~ msgid "Do not use condition codes from normal instructions" +#~ msgstr "Benyt ikke betingelseskoder fra normale instruktioner" + +#~ msgid "Do not emit addressing modes with side-effect assignment" +#~ msgstr "Udsend ikke adresseringstilstande med bivirkningstildeling" + +#~ msgid "Do not tune stack alignment" +#~ msgstr "Finjustr ikke stakjustering" + +#~ msgid "Do not tune writable data alignment" +#~ msgstr "Finjustr ikke justering af skrivbare data" + +#~ msgid "Do not tune code and read-only data alignment" +#~ msgstr "Finjustr ikke justering af kode og skrivebeskyttet data" + +#~ msgid "Align code and data to 32 bits" +#~ msgstr "Justr kode og data til 32 bit" + +#~ msgid "Don't align items in code or data" +#~ msgstr "Justr ikke elementer i kode eller data" + +#~ msgid "Do not emit function prologue or epilogue" +#~ msgstr "Udsend ikke funktionsindledning eller -afslutning" + +#~ msgid "Use the most feature-enabling options allowed by other options" +#~ msgstr "Benyt de tilvalg der giver de fleste faciliteter tilladt af andre tilvalg" + +#~ msgid "Override -mbest-lib-options" +#~ msgstr "Overskriv -mbest-lib-options" + +#~ msgid "Generate code for the specified chip or CPU version" +#~ msgstr "Generr kode til en given chip- eller processorversion" + +#~ msgid "Tune alignment for the specified chip or CPU version" +#~ msgstr "Finjustr justering til en given chip- eller processorversion" + +#~ msgid "Warn when a stackframe is larger than the specified size" +#~ msgstr "Advar nr en stakramme er strre end den angivne strrelse" + +#~ msgid "no FUNCTION_PROFILER for CRIS" +#~ msgstr "ingen FUNCTION_PROFILER for CRIS" + +#~ msgid "Together with -fpic and -fPIC, do not use GOTPLT references" +#~ msgstr "Benyt ikke GOTPLT-referencer sammen med -fpic og -fPIC" + +#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s" +#~ msgstr "ugyldig modes_tieable_p for register %s, mode1 %s, mode2 %s" + +#~ msgid "bad insn to d30v_print_operand_address:" +#~ msgstr "ugyldig instruktion til d30v_print_operand_address:" + +#~ msgid "bad insn to d30v_print_operand_memory_reference:" +#~ msgstr "ugyldig instruktion til d30v_print_operand_memory_reference:" + +#~ msgid "bad insn to d30v_print_operand, 'f' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'f'-ndring:" + +#~ msgid "bad insn to d30v_print_operand, 'A' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'A'-ndring:" + +#~ msgid "bad insn to d30v_print_operand, 'M' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'M'-ndring:" + +#~ msgid "bad insn to print_operand, 'F' or 'T' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'F'- eller 'T'-ndring:" + +#~ msgid "bad insn to print_operand, 'B' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'B'-ndring:" + +#~ msgid "bad insn to print_operand, 'E' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'E'-ndring:" + +#~ msgid "bad insn to print_operand, 'R' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 'R'-ndring:" + +#~ msgid "bad insn to print_operand, 's' modifier:" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 's'-ndring:" + +#~ msgid "bad insn in d30v_print_operand, 0 case" +#~ msgstr "ugyldig instruktion til d30v_print_operand, 0 case" + +#~ msgid "d30v_emit_comparison" +#~ msgstr "d30v_emit_comparison" + +#~ msgid "bad call to d30v_move_2words" +#~ msgstr "ugyldigt kald af d30v_move_2words" + +#~ msgid "Enable use of conditional move instructions" +#~ msgstr "Aktivr brug af betingede flytteinstruktioner" + +#~ msgid "Disable use of conditional move instructions" +#~ msgstr "Deaktivr brug af betingede flytteinstruktioner" + +#~ msgid "Debug argument support in compiler" +#~ msgstr "Fejlanalyser parameterunderstttelse i overstteren" + +#~ msgid "Debug stack support in compiler" +#~ msgstr "Fejlanalyser stakunderstttelse i overstteren" + +#~ msgid "Debug memory address support in compiler" +#~ msgstr "Fejlanalyser hukommelsesadresseunderstttelse i overstteren" + +#~ msgid "Make adjacent short instructions parallel if possible" +#~ msgstr "Gr nrliggende korte instruktioner parallelle om muligt" + +#~ msgid "Do not make adjacent short instructions parallel" +#~ msgstr "Gr ikke nrliggende korte instruktioner parallelle" + +#~ msgid "Link programs/data to be in external memory by default" +#~ msgstr "Sammenkd program/data til at vre i ekstern hukommelse som standard" + +#~ msgid "Link programs/data to be in onchip memory by default" +#~ msgstr "Sammenkd program/data til at vre i hukommelsen p chippen som standard" + +#~ msgid "Change the branch costs within the compiler" +#~ msgstr "Skift forgreningsomkostningen i overstteren" + +#~ msgid "Change the threshold for conversion to conditional execution" +#~ msgstr "Skift trsklen for konvertering til betinget udfrelse" + +#~ msgid "stack size > 32k" +#~ msgstr "stakstrrelse > 32k" + +#~ msgid "invalid addressing mode" +#~ msgstr "ugyldig adresseringstilstand" + +#~ msgid "bad register extension code" +#~ msgstr "ugyldig registerudvidelseskode" + +#~ msgid "invalid offset in ybase addressing" +#~ msgstr "ugyldigt afst i ybase-adressering" + +#~ msgid "invalid register in ybase addressing" +#~ msgstr "ugyldigt register i ybase-adressering" + +#~ msgid "invalid shift operator in emit_1600_core_shift" +#~ msgstr "ugyldig skifteoperator i emit_1600_core_shift" + +#~ msgid "invalid mode for gen_tst_reg" +#~ msgstr "ugyldig tilstand for gen_tst_reg" + +#~ msgid "invalid mode for integer comparison in gen_compare_reg" +#~ msgstr "ugyldig tilstand for heltalssammenligning i gen_compare_reg" + +#~ msgid "Pass parameters in registers (default)" +#~ msgstr "Overbring parametre i registre (standard)" + +#~ msgid "Don't pass parameters in registers" +#~ msgstr "Overbring ikke parametre i registre" + +#~ msgid "Generate code for near calls" +#~ msgstr "Generr kode til nre kald" + +#~ msgid "Don't generate code for near calls" +#~ msgstr "Generr ikke kode til nre kald" + +#~ msgid "Generate code for near jumps" +#~ msgstr "Generr kode til nre spring" + +#~ msgid "Don't generate code for near jumps" +#~ msgstr "Generr ikke kode til nre spring" + +#~ msgid "Generate code for a bit-manipulation unit" +#~ msgstr "Generr kode til en bit-manipuleringsenhed" + +#~ msgid "Don't generate code for a bit-manipulation unit" +#~ msgstr "Generr ikke kode til en bit-manipuleringsenhed" + +#~ msgid "Generate code for memory map1" +#~ msgstr "Generr kode til memory map1" + +#~ msgid "Generate code for memory map2" +#~ msgstr "Generr kode til memory map2" + +#~ msgid "Generate code for memory map3" +#~ msgstr "Generr kode til memory map3" + +#~ msgid "Generate code for memory map4" +#~ msgstr "Generr kode til memory map4" + +#~ msgid "Ouput extra code for initialized data" +#~ msgstr "Udsend ekstra kode til data med startvrdier" + +#~ msgid "Don't let reg. allocator use ybase registers" +#~ msgstr "Lad ikke registerallokeringen benytte ybase-registre" + +#~ msgid "Output extra debug info in Luxworks environment" +#~ msgstr "Udsend ekstra fejlanalyseringsinfo i Luxworks-miljet" + +#~ msgid "Save temp. files in Luxworks environment" +#~ msgstr "Gem midlertidige filer i Luxworks-miljet" + +#~ msgid "Specify alternate name for text section" +#~ msgstr "Angiv alternativt navn til tekstsektionen" + +#~ msgid "Specify alternate name for data section" +#~ msgstr "Angiv alternativt navn til datasektionen" + +#~ msgid "Specify alternate name for bss section" +#~ msgstr "Angiv alternativt navn til bss-sektionen" + +#~ msgid "Specify alternate name for constant section" +#~ msgstr "Angiv alternativt navn til konstantsektionen" + +#~ msgid "Specify alternate name for dsp16xx chip" +#~ msgstr "Angiv alternativt navn til dsp16xx-chippen" + +#~ msgid "profiling not implemented yet" +#~ msgstr "profilering understttes ikke endnu" + +#~ msgid "trampolines not yet implemented" +#~ msgstr "trampoliner understttes ikke endnu" + +#~ msgid "fr30_print_operand_address: unhandled address" +#~ msgstr "fr30_print_operand_address: ikke-hndteret adresse" + +#~ msgid "fr30_print_operand: unrecognized %%p code" +#~ msgstr "fr30_print_operand: ukendt '%%p'-kode" + +#~ msgid "fr30_print_operand: unrecognized %%b code" +#~ msgstr "fr30_print_operand: ukendt '%%b'-kode" + +#~ msgid "fr30_print_operand: unrecognized %%B code" +#~ msgstr "fr30_print_operand: ukendt '%%B'-kode" + +#~ msgid "fr30_print_operand: invalid operand to %%A code" +#~ msgstr "fr30_print_operand: ugyldig operand til '%%A'-kode" + +#~ msgid "fr30_print_operand: invalid %%x code" +#~ msgstr "fr30_print_operand: ugyldig '%%x'-kode" + +#~ msgid "fr30_print_operand: invalid %%F code" +#~ msgstr "fr30_print_operand: ugyldig '%%F'-kode" + +#~ msgid "fr30_print_operand: unknown code" +#~ msgstr "fr30_print_operand: ukendt kode" + +#~ msgid "fr30_print_operand: unhandled MEM" +#~ msgstr "fr30_print_operand: ikke-hndteret MEM" + +#~ msgid "Assume small address space" +#~ msgstr "Antag lille adresserum" + +#~ msgid "Unknown cpu: -mcpu=%s" +#~ msgstr "Ukendt processor: -mcpu=%s" + +#~ msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)" +#~ msgstr "-fpic og -gdwarf er indbyrdes uforenelige (-fpic og -g/-gdwarf-2 er i orden)" + +#~ msgid "Bad insn to frv_print_operand_address:" +#~ msgstr "Ugyldig instruktion til frv_print_operand_address:" + +#~ msgid "Bad register to frv_print_operand_memory_reference_reg:" +#~ msgstr "Ugyldigt register til frv_print_operand_memory_reference_reg:" + +#~ msgid "Bad insn to frv_print_operand_memory_reference:" +#~ msgstr "Ugyldig instruktion til frv_print_operand_memory_reference:" + +#~ msgid "Bad insn in frv_print_operand, bad const_double" +#~ msgstr "Ugyldig instruktion i frv_print_operand, ugyldig const_double" + +#~ msgid "Bad insn to frv_print_operand, 'C' modifier:" +#~ msgstr "Ugyldig instruktionen til frv_print_operand, 'C'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'c' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'c'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'e' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'e'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'F' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'F'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'f' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'f'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'L' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'L'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'M/N' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'M/N'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, 'O' modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, 'O'-modifikation:" + +#~ msgid "Bad insn to frv_print_operand, P modifier:" +#~ msgstr "Ugyldig instruktion til frv_print_operand, P-modifikation:" + +#~ msgid "Bad insn in frv_print_operand, z case" +#~ msgstr "Ugyldig instruktion i frv_print_operand, tilfldet z" + +#~ msgid "Bad insn in frv_print_operand, 0 case" +#~ msgstr "Ugyldig instruktion i frv_print_operand, tilfldet 0" + +#~ msgid "frv_print_operand: unknown code" +#~ msgstr "fr_print_operand: ukendt kode" + +#~ msgid "Bad output_move_single operand" +#~ msgstr "Ugyldig output_move_single-operand" + +#~ msgid "Bad output_move_double operand" +#~ msgstr "Ugyldig output_move_double-operand" + +#~ msgid "Bad output_condmove_single operand" +#~ msgstr "Ugyldig output_condmove_single-operand" + +#~ msgid "frv_registers_update" +#~ msgstr "frv_registers_update" + +#~ msgid "frv_registers_used_p" +#~ msgstr "frv_registers_used_p" + +#~ msgid "frv_registers_set_p" +#~ msgstr "frv_registers_set_p" + +#~ msgid "accumulator is not a constant integer" +#~ msgstr "akkumulator er ikke et konstant heltal" + +#~ msgid "accumulator number is out of bounds" +#~ msgstr "akkumulatortal er uden for det gyldig interval" + +#~ msgid "inappropriate accumulator for `%s'" +#~ msgstr "forkert akkumulator for '%s'" + +#~ msgid "`%s' expects a constant argument" +#~ msgstr "'%s' forventer en konstant parameter" + +#~ msgid "constant argument out of range for `%s'" +#~ msgstr "konstant parameter uden for det gyldige interval for '%s'" + +#~ msgid "media functions are not available unless -mmedia is used" +#~ msgstr "mediafunktioner er ikke tilgngelige medmindre -mmedia benyttes" + +#~ msgid "this media function is only available on the fr500" +#~ msgstr "denne mediafunktion er kun tilgngelig p fr500" + +#~ msgid "this media function is only available on the fr400" +#~ msgstr "denne mediafunktion er kun tilgngelig p fr400" + +#~ msgid " (frv)" +#~ msgstr " (frv)" + +#~ msgid "-ms2600 is used without -ms" +#~ msgstr "-ms2600 benyttet uden -ms" + +#~ msgid "-mn is used without -mh or -ms" +#~ msgstr "-mn benyttet uden -mh eller -ms" + +#~ msgid "Generate H8S code" +#~ msgstr "Generr H8S-kode" + +#~ msgid "Do not generate H8S code" +#~ msgstr "Generr ikke H8S-kode" + +#~ msgid "Generate H8S/2600 code" +#~ msgstr "Generr H8S/2600-kode" + +#~ msgid "Do not generate H8S/2600 code" +#~ msgstr "Generr ikke H8S/2600-kode" + +#~ msgid "Make integers 32 bits wide" +#~ msgstr "Gr heltal 32 bit brede" + +#~ msgid "Use registers for argument passing" +#~ msgstr "Benyt registre til parameteroverbringning" + +#~ msgid "Do not use registers for argument passing" +#~ msgstr "Benyt ikke registre til parameteroverbringning" + +#~ msgid "Consider access to byte sized memory slow" +#~ msgstr "Betragt tilgang til bytestrrelseshukommelse som langsomt" + +#~ msgid "Enable linker relaxing" +#~ msgstr "Aktivr tolerant sammenkdning" + +#~ msgid "Generate H8/300H code" +#~ msgstr "Generr H8/300H-kode" + +#~ msgid "Enable the normal mode" +#~ msgstr "Aktivr den normale tilstand" + +#~ msgid "Do not generate H8/300H code" +#~ msgstr "Generr ikke H8/300H-kode" + +#~ msgid "Use H8/300 alignment rules" +#~ msgstr "Benyt H8/300-justeringsregler" + +#~ msgid "junk at end of #pragma map" +#~ msgstr "ragelse i slutningen af #pragma map" + +#~ msgid "malformed #pragma map, ignored" +#~ msgstr "forkert udformet '#pragma map' - ignoreret" + +#~ msgid "real name is too long - alias ignored" +#~ msgstr "rigtigt navn for langt - alias ignoreret" + +#~ msgid "alias name is too long - alias ignored" +#~ msgstr "aliasnavn for langt - alias ignoreret" + +#~ msgid "internal error--no jump follows compare:" +#~ msgstr "intern fejl - intet spring efterflger sammenligning:" + +#~ msgid "Generate char instructions" +#~ msgstr "Generr char-instruktioner" + +#~ msgid "Do not generate char instructions" +#~ msgstr "Generr ikke char-instruktioner" + +#~ msgid "code model %s not supported in PIC mode" +#~ msgstr "kodemodellen %s er ikke understttet i PIC-tilstand" + +#~ msgid "bad value (%s) for -mcmodel= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mcmodel=" + +#~ msgid "bad value (%s) for -masm= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -masm=" + +#~ msgid "code model `%s' not supported in the %s bit mode" +#~ msgstr "kodemodellen %s er ikke understttet i %s bit-tilstand" + +#~ msgid "code model `large' not supported yet" +#~ msgstr "kodemodellen 'large' er ikke understttet endnu" + +#~ msgid "%i-bit mode not compiled in" +#~ msgstr "%i bit-tilstand er ikke oversat med ind" + +#~ msgid "bad value (%s) for -march= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -march=" + +#~ msgid "bad value (%s) for -mcpu= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mcpu=" + +#~ msgid "-mregparm=%d is not between 0 and %d" +#~ msgstr "-mregparm=%d er ikke mellem 0 og %d" + +#~ msgid "-malign-loops is obsolete, use -falign-loops" +#~ msgstr "-malign-loops er forldet, benyt -falign-loops" + +#~ msgid "-malign-loops=%d is not between 0 and %d" +#~ msgstr "-malign-loops=%d er ikke mellem 0 og %d" + +#~ msgid "-malign-jumps is obsolete, use -falign-jumps" +#~ msgstr "-malign-jumps er forldet, benyt -falign-jumps" + +#~ msgid "-malign-functions is obsolete, use -falign-functions" +#~ msgstr "-malign-functions er forldet, benyt -falign-functions" + +#~ msgid "-mpreferred-stack-boundary=%d is not between %d and 12" +#~ msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12" + +#~ msgid "-mbranch-cost=%d is not between 0 and 5" +#~ msgstr "-mbranch-cost=%d er ikke mellem 0 og 5" + +#~ msgid "bad value (%s) for -mtls-dialect= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mtls-dialect" + +#~ msgid "-malign-double makes no sense in the 64bit mode" +#~ msgstr "-malign-double giver ikke mening i 64 bit-tilstand" + +#~ msgid "-mrtd calling convention not supported in the 64bit mode" +#~ msgstr "kaldekonventionen -mrtd er ikke understttet i 64 bit-tilstand" + +#~ msgid "SSE instruction set disabled, using 387 arithmetics" +#~ msgstr "SSE-instruktionsst deaktiveret, bruger 387-beregninger" + +#~ msgid "387 instruction set disabled, using SSE arithmetics" +#~ msgstr "387-instruktionsst deaktiveret, bruger SSE-beregninger" + +#~ msgid "bad value (%s) for -mfpmath= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mfpmath=" + +#~ msgid "`%s' attribute requires an integer constant argument" +#~ msgstr "egenskaben '%s' krver en heltalskonstant som parameter" + +#~ msgid "argument to `%s' attribute larger than %d" +#~ msgstr "parameter til egenskaben '%s' er strre end %d" + +#~ msgid "invalid UNSPEC as operand" +#~ msgstr "ugyldig UNSPEC som operand" + +#~ msgid "extended registers have no high halves" +#~ msgstr "udvidede registre har ikke hje halvdele" + +#~ msgid "unsupported operand size for extended register" +#~ msgstr "ikke-understttet operandstrrelse for udvidede registre" + +#~ msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" +#~ msgstr "operand er hverken en konstant eller en betingelseskode, ugyldig operandkode 'c'" + +#~ msgid "invalid operand code `%c'" +#~ msgstr "ugyldig operandkode '%c'" + +#~ msgid "invalid constraints for operand" +#~ msgstr "ugyldige begrnsninger for operand" + +#~ msgid "unknown insn mode" +#~ msgstr "ukendt instruktionstilstand" + +#~ msgid "selector must be an immediate" +#~ msgstr "vlger skal vre en umiddelbar vrdi" + +#~ msgid "mask must be an immediate" +#~ msgstr "maske skal vre en umiddelbar vrdi" + +#~ msgid "shift must be an immediate" +#~ msgstr "skiftevrdi skal vre en umiddelbar vrdi" + +#~ msgid "`%s' attribute only applies to variables" +#~ msgstr "egenskaben '%s' kan kun anvendes p variabler" + +#~ msgid "`%s' declared as both exported to and imported from a DLL" +#~ msgstr "'%s' erklret som bde eksporteret til og importeret fra en DLL" + +#~ msgid "Use the Cygwin interface" +#~ msgstr "Benyt Cygwin-grnsefladen" + +#~ msgid "Use the Mingw32 interface" +#~ msgstr "Benyt Mingw32-grnsefladen" + +#~ msgid "Create GUI application" +#~ msgstr "Opret grafisk program" + +#~ msgid "Don't set Windows defines" +#~ msgstr "Angiv ikke Windows-definitioner" + +#~ msgid "Set Windows defines" +#~ msgstr "Angiv Windows-definitioner" + +#~ msgid "Create console application" +#~ msgstr "Opret konsolprogram" + +#~ msgid "Generate code for a DLL" +#~ msgstr "Generr kode til en DLL" + +#~ msgid "Ignore dllimport for functions" +#~ msgstr "Ignorr dllimport til funktioner" + +#~ msgid "Use Mingw-specific thread support" +#~ msgstr "Benyt Mingw-specifik trdunderstttelse" + +#~ msgid "-f%s ignored for target (all code is position independent)" +#~ msgstr "-f%s ignoreret for mlarkitekturen (all kode er positionsuafhngigt)" + +#~ msgid "-mbnu210 is ignored (option is obsolete)" +#~ msgstr "-mbnu210 ignoreres (tilvalget er forldet)" + +#~ msgid "Alternate calling convention" +#~ msgstr "Alternativ kaldekonvention" + +#~ msgid "Use normal calling convention" +#~ msgstr "Brug normal kaldekonvention" + +#~ msgid "Align some doubles on dword boundary" +#~ msgstr "Justr nogle double-variabler til dword-grnserne" + +#~ msgid "Align doubles on word boundary" +#~ msgstr "Justr double-variabler til word-grnserne" + +#~ msgid "Uninitialized locals in .bss" +#~ msgstr "Lokale variabler uden startvrdi i .bss" + +#~ msgid "Uninitialized locals in .data" +#~ msgstr "Lokale variabler uden startvrdi i .data" + +#~ msgid "Use IEEE math for fp comparisons" +#~ msgstr "Brug IEEE-matematik til kommatalssammenligninger" + +#~ msgid "Do not use IEEE math for fp comparisons" +#~ msgstr "Brug ikke IEEE-matematik til kommatalssammenligninger" + +#~ msgid "Return values of functions in FPU registers" +#~ msgstr "Returnr vrdier fra funktioner i fpu-registre" + +#~ msgid "Do not return values of functions in FPU registers" +#~ msgstr "Returnr ikke vrdier fra funktioner i fpu-registre" + +#~ msgid "Do not generate sin, cos, sqrt for FPU" +#~ msgstr "Generr ikke sin, cos, sqrt til fpu" + +#~ msgid "Generate sin, cos, sqrt for FPU" +#~ msgstr "Generr sin, cos og sqrt til fpu" + +#~ msgid "Omit the frame pointer in leaf functions" +#~ msgstr "Udelad rammehenvisningen i de yderste funktioner" + +#~ msgid "Enable stack probing" +#~ msgstr "Aktivr stakprvning" + +#~ msgid "Align destination of the string operations" +#~ msgstr "Justr strengoperationernes destination" + +#~ msgid "Do not align destination of the string operations" +#~ msgstr "Justr ikke strengoperationernes destination" + +#~ msgid "Inline all known string operations" +#~ msgstr "Indbyg alle kendte strengoperationer" + +#~ msgid "Do not inline all known string operations" +#~ msgstr "Indbyg ikke alle kendte strengoperationer" + +#~ msgid "Use push instructions to save outgoing arguments" +#~ msgstr "Brug push-instruktioner til at gemme udgende parametre" + +#~ msgid "Do not use push instructions to save outgoing arguments" +#~ msgstr "Brug ikke push-instruktioner til at gemme udgende parametre" + +# shadowing betyder at en funktion har samme navn og dermed skjuler en anden +#~ msgid "Support MMX built-in functions" +#~ msgstr "Understt indbyggede MMX-funktioner" + +#~ msgid "Do not support MMX built-in functions" +#~ msgstr "Understt ikke indbyggede MMX-funktioner" + +# shadowing betyder at en funktion har samme navn og dermed skjuler en anden +#~ msgid "Support 3DNow! built-in functions" +#~ msgstr "Understt indbyggede 3DNow!-funktioner" + +#~ msgid "Do not support 3DNow! built-in functions" +#~ msgstr "Understt ikke indbyggede 3DNow!-funktioner" + +#~ msgid "Support MMX and SSE built-in functions and code generation" +#~ msgstr "Understt indbyggede MMX- og SSE-funktioner og kodegenerering" + +#~ msgid "Do not support MMX and SSE built-in functions and code generation" +#~ msgstr "Understt ikke indbyggede MMX- og SSE-funktioner og kodegenerering" + +#~ msgid "Support MMX, SSE and SSE2 built-in functions and code generation" +#~ msgstr "Understt indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering" + +#~ msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation" +#~ msgstr "Understt ikke indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering" + +#~ msgid "sizeof(long double) is 16" +#~ msgstr "sizeof(long double) er 16" + +#~ msgid "sizeof(long double) is 12" +#~ msgstr "sizeof(long double) er 12" + +#~ msgid "Generate 64bit x86-64 code" +#~ msgstr "Generr 64 bit x86-64-kode" + +#~ msgid "Generate 32bit i386 code" +#~ msgstr "Generr 64 bit i386-kode" + +#~ msgid "Use red-zone in the x86-64 code" +#~ msgstr "Benyt rdzone i x86-64-koden" + +#~ msgid "Do not use red-zone in the x86-64 code" +#~ msgstr "Benyt ikke rdzone i x86-64-koden" + +#~ msgid "Schedule code for given CPU" +#~ msgstr "Planlg koden til en given processor" + +#~ msgid "Generate floating point mathematics using given instruction set" +#~ msgstr "Generr kommatalsmatematik vha. givent instruktionsst" + +#~ msgid "Generate code for given CPU" +#~ msgstr "Generr kode til en given processor" + +#~ msgid "Number of registers used to pass integer arguments" +#~ msgstr "Antallet af registre der skal bruges til at overbringe heltalsparametre" + +#~ msgid "Loop code aligned to this power of 2" +#~ msgstr "Lkkekode skal justeres til denne potens af 2" + +#~ msgid "Jump targets are aligned to this power of 2" +#~ msgstr "Steder der skal springes til, justeres til denne potens af 2" + +#~ msgid "Function starts are aligned to this power of 2" +#~ msgstr "Funktionsbegyndelser justeres til denne potens af 2" + +#~ msgid "Attempt to keep stack aligned to this power of 2" +#~ msgstr "Forsg at holde stakken justeret til denne potens af 2" + +#~ msgid "Branches are this expensive (1-5, arbitrary units)" +#~ msgstr "Forgreninger koster dette (1-5, vilkrlige enheder)" + +#~ msgid "Use given x86-64 code model" +#~ msgstr "Benyt den givne x86-64-kodemodel" + +#~ msgid "Use given assembler dialect" +#~ msgstr "Benyt den givne maskinkodedialekt" + +#~ msgid "Use given thread-local storage dialect" +#~ msgstr "Benyt den givne trd-lokale lagringsdialekt" + +#~ msgid "Generate ELF output" +#~ msgstr "Generr ELF-uddata" + +#~ msgid "Use Mingw32 interface" +#~ msgstr "Benyt Mingw32-grnseflade" + +#~ msgid "Use Cygwin interface" +#~ msgstr "Benyt Cygwin-grnseflade" + +#~ msgid "Use bare Windows interface" +#~ msgstr "Benyt bar Windows-grnseflade" + +#~ msgid "environment variable DJGPP not defined" +#~ msgstr "miljvariablen DJGPP er ikke defineret" + +#~ msgid "environment variable DJGPP points to missing file '%s'" +#~ msgstr "miljvariablen DJGPP peger p den manglende fil '%s'" + +#~ msgid "environment variable DJGPP points to corrupt file '%s'" +#~ msgstr "miljvariablen DJGPP peger p den delagte fil '%s'" + +#~ msgid "sorry, not implemented: #pragma align NAME=SIZE" +#~ msgstr "desvrre, ikke implementeret: #pragma align NAVN=STRRELSE" + +#~ msgid "malformed #pragma align - ignored" +#~ msgstr "forkert udformet '#pragma align' - ignoreret" + +#~ msgid "sorry, not implemented: #pragma noalign NAME" +#~ msgstr "desvrre, ikke implementeret: #pragma noalign NAVN" + +#~ msgid "conflicting architectures defined - using C series" +#~ msgstr "modstridende arkitekturer defineret - bruger C-serien" + +#~ msgid "conflicting architectures defined - using K series" +#~ msgstr "modstridende arkitekturer defineret - bruger K-serien" + +#~ msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" +#~ msgstr "iC2.0 og iC3.0 er inkompatible - bruger iC3.0" + +#~ msgid "stack limit expression is not supported" +#~ msgstr "stakgrnseudtryk understttes ikke" + +#~ msgid "Generate SA code" +#~ msgstr "Generr SA-kode" + +#~ msgid "Generate SB code" +#~ msgstr "Generr SB-kode" + +#~ msgid "Generate KA code" +#~ msgstr "Generr KA-kode" + +#~ msgid "Generate KB code" +#~ msgstr "Generr KB-kode" + +#~ msgid "Generate JA code" +#~ msgstr "Generr JA-kode" + +#~ msgid "Generate JD code" +#~ msgstr "Generr JD-kode" + +#~ msgid "Generate JF code" +#~ msgstr "Generr JF-kode" + +#~ msgid "generate RP code" +#~ msgstr "Generr RP-kode" + +#~ msgid "Generate MC code" +#~ msgstr "Generr MC-kode" + +#~ msgid "Generate CA code" +#~ msgstr "Generr CA-kode" + +#~ msgid "Generate CF code" +#~ msgstr "Generr CF-kode" + +#~ msgid "Use software floating point" +#~ msgstr "Benyt softwarekommatal" + +#~ msgid "Use alternate leaf function entries" +#~ msgstr "Benyt alternative elementer til yderste funktioner" + +#~ msgid "Do not use alternate leaf function entries" +#~ msgstr "Benyt ikke alternative elementer til yderste funktioner" + +#~ msgid "Perform tail call optimization" +#~ msgstr "Udfr halekaldsoptimering" + +#~ msgid "Do not perform tail call optimization" +#~ msgstr "Udfr ikke halekaldsoptimering" + +#~ msgid "Use complex addressing modes" +#~ msgstr "Benyt komplekse adresseringstilstande" + +#~ msgid "Do not use complex addressing modes" +#~ msgstr "Benyt ikke komplekse adresseringstilstande" + +#~ msgid "Align code to 8 byte boundary" +#~ msgstr "Justr kode til 8 byte-grnser" + +#~ msgid "Do not align code to 8 byte boundary" +#~ msgstr "Justr ikke kode til 8 byte-grnser" + +#~ msgid "Enable compatibility with iC960 v2.0" +#~ msgstr "Aktivr kompatibilitet med iC960 v2.0" + +#~ msgid "Enable compatibility with iC960 v3.0" +#~ msgstr "Aktivr kompatibilitet med iC960 v3.0" + +#~ msgid "Enable compatibility with ic960 assembler" +#~ msgstr "Aktivr kompatibilitet med ic960-maskinkodeoverstteren" + +#~ msgid "Do not permit unaligned accesses" +#~ msgstr "Tillad ikke ikke-justeret adgang" + +#~ msgid "Permit unaligned accesses" +#~ msgstr "Tillad ikke-justeret adgang" + +#~ msgid "Layout types like Intel's v1.3 gcc" +#~ msgstr "Sammenst typer som Intels v1.3 gcc" + +#~ msgid "Do not layout types like Intel's v1.3 gcc" +#~ msgstr "Sammenst ikke typer som Intels v1.3 gcc" + +#~ msgid "Use 64 bit long doubles" +#~ msgstr "Benyt 64 bit long double" + +#~ msgid "Enable linker relaxation" +#~ msgstr "Aktivr tolerant sammenkder" + +#~ msgid "Do not enable linker relaxation" +#~ msgstr "Aktivr ikke tolerant sammenkder" + +#~ msgid "malformed #pragma builtin" +#~ msgstr "forkert udformet '#pragma builtin'" + +#~ msgid "ia64_print_operand: unknown code" +#~ msgstr "ia64_print_operand: ukendt kode" + +#~ msgid "value of -mfixed-range must have form REG1-REG2" +#~ msgstr "vrdien af -mfixed-range skal vre p formen REG1-REG2" + +#~ msgid "%s-%s is an empty range" +#~ msgstr "%s-%s er et tomt interval" + +#~ msgid "cannot optimize floating point division for both latency and throughput" +#~ msgstr "kan ikke optimere kommatalsdivision for bde ventetid og bndbredde" + +#~ msgid "cannot optimize integer division for both latency and throughput" +#~ msgstr "kan ikke optimere heltalsdivision for bde ventetid og bndbredde" + +#~ msgid "bad value (%s) for -mtls-size= switch" +#~ msgstr "ugyldig vrdi (%s) for tilvalget -mtls-size=" + +#~ msgid "Generate big endian code" +#~ msgstr "Generr storendet kode" + +#~ msgid "Generate little endian code" +#~ msgstr "Generr lilleendet kode" + +#~ msgid "Generate code for GNU as" +#~ msgstr "Generr kode til GNU as" + +#~ msgid "Generate code for Intel as" +#~ msgstr "Generr kode til Intel as" + +#~ msgid "Generate code for GNU ld" +#~ msgstr "Generr kode til GNU ld" + +#~ msgid "Generate code for Intel ld" +#~ msgstr "Generr kode til Intel ld" + +#~ msgid "Generate code without GP reg" +#~ msgstr "Generr kode uden GP-registeret" + +#~ msgid "Emit stop bits before and after volatile extended asms" +#~ msgstr "Udsend stopbit fr og efter volatile udvidede asm-stninger" + +#~ msgid "Don't emit stop bits before and after volatile extended asms" +#~ msgstr "Udsend ikke stopbit fr og efter volatile udvidede asm-stninger" + +#~ msgid "Emit code for Itanium (TM) processor B step" +#~ msgstr "Udsend kode for Itanium (TM) processor B-skridt" + +#~ msgid "Use in/loc/out register names" +#~ msgstr "Benyt in/loc/out-registernavne" + +#~ msgid "Disable use of sdata/scommon/sbss" +#~ msgstr "Deaktivr brug af sdata/scommon/sbss" + +#~ msgid "Enable use of sdata/scommon/sbss" +#~ msgstr "Aktivr brug af sdata/scommon/sbss" + +#~ msgid "gp is constant (but save/restore gp on indirect calls)" +#~ msgstr "gp er konstant (men gem/gendan gp ved indirekte kald)" + +#~ msgid "Generate self-relocatable code" +#~ msgstr "Generr selvflyttende kode" + +#~ msgid "Generate inline floating point division, optimize for latency" +#~ msgstr "Generr indlejrede kommatalsdivisioner, optimr for ventetid" + +#~ msgid "Generate inline floating point division, optimize for throughput" +#~ msgstr "Generr indlejrede kommatalsdivisioner, optimr for bndbredde" + +#~ msgid "Generate inline integer division, optimize for latency" +#~ msgstr "Generr indlejrede heltalsdivisioner, optimr for ventetid" + +#~ msgid "Generate inline integer division, optimize for throughput" +#~ msgstr "Generr indlejrede heltalsdivisioner, optimr for bndbredde" + +#~ msgid "Enable Dwarf 2 line debug info via GNU as" +#~ msgstr "Aktivr Dwarf 2-linjefejlanalyseringsinfo via GNU as" + +#~ msgid "Disable Dwarf 2 line debug info via GNU as" +#~ msgstr "Deaktivr Dwarf 2-linjefejlanalyseringsinfo via GNU as" + +#~ msgid "Specify range of registers to make fixed" +#~ msgstr "Angiv interval af registre der skal gres faste" + +#~ msgid "bad operand" +#~ msgstr "ugyldig operand" + +#~ msgid "bad value (%s) for -mmodel switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mmodel" + +#~ msgid "bad value (%s) for -msdata switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -msdata" + +#~ msgid "invalid argument of `%s' attribute" +#~ msgstr "ugyldig parameter til egenskaben '%s'" + +#~ msgid "const objects cannot go in .sdata/.sbss" +#~ msgstr "konstante objekter kan ikke anbringes i .sdata/.sbss" + +#~ msgid "invalid operand to %%s code" +#~ msgstr "ugyldig operand til %%s-koden" + +#~ msgid "invalid operand to %%p code" +#~ msgstr "ugyldig operand til %%p-koden" + +#~ msgid "bad insn for 'A'" +#~ msgstr "ugyldig instruktion for 'A'" + +#~ msgid "invalid operand to %%T/%%B code" +#~ msgstr "ugyldig operand til %%T/%%B-koden" + +#~ msgid "invalid operand to %%N code" +#~ msgstr "ugyldig operand til %%N-koden" + +#~ msgid "pre-increment address is not a register" +#~ msgstr "prfiks forgelsesadresse er ikke et register" + +#~ msgid "pre-decrement address is not a register" +#~ msgstr "prfiks formindskelsesadresse er ikke et register" + +#~ msgid "post-increment address is not a register" +#~ msgstr "postfiks forgelsesadresse er ikke et register" + +#~ msgid "bad address" +#~ msgstr "ugyldig adresse" + +#~ msgid "lo_sum not of register" +#~ msgstr "lo_sum ikke af register" + +#~ msgid "Display compile time statistics" +#~ msgstr "Vis oversttelsesstatistikker" + +#~ msgid "Align all loops to 32 byte boundary" +#~ msgstr "Justr alle lkker til 32 byte-grnserne" + +#~ msgid "Only issue one instruction per cycle" +#~ msgstr "Udfr kun n instruktion pr. cyklus" + +#~ msgid "Prefer branches over conditional execution" +#~ msgstr "Foretrk forgrening frem for betinget udfrelse" + +#~ msgid "Code size: small, medium or large" +#~ msgstr "Kodestrrelse: small, medium eller large" + +#~ msgid "Small data area: none, sdata, use" +#~ msgstr "Omrde til sm data: none, sdata, use" + +#~ msgid "-f%s ignored for 68HC11/68HC12 (not supported)" +#~ msgstr "-f%s ignoreret for 68HC11/68HC12 (ikke understttet)" + +#~ msgid "`trap' and `far' attributes are not compatible, ignoring `far'" +#~ msgstr "egenskaberne 'trap' og 'far' kan ikke bruges p samme tid, ignorerer 'far'" + +#~ msgid "`trap' attribute is already used" +#~ msgstr "egenskaben 'trap' er allerede benyttet" + +#~ msgid "move insn not handled" +#~ msgstr "flytteinstruktion ikke hndteret" + +#~ msgid "invalid register in the move instruction" +#~ msgstr "ugyldigt register i flytteinstruktionen" + +#~ msgid "invalid operand in the instruction" +#~ msgstr "ugyldig operand i instruktionen" + +#~ msgid "invalid register in the instruction" +#~ msgstr "ugyldigt register i instruktionen" + +#~ msgid "operand 1 must be a hard register" +#~ msgstr "operand 1 skal vre et hrdt register" + +#~ msgid "invalid rotate insn" +#~ msgstr "ugyldig roteringsinstruktion" + +#~ msgid "registers IX, IY and Z used in the same INSN" +#~ msgstr "registrene IX, IY og Z benyttet i samme INSN" + +#~ msgid "cannot do z-register replacement" +#~ msgstr "kan ikke udfre Z-registererstatning" + +#~ msgid "invalid Z register replacement for insn" +#~ msgstr "ugyldig Z-registererstatning for instruktion" + +#~ msgid "Compile with 16-bit integer mode" +#~ msgstr "Overst med 16 bit-heltalstilstand" + +#~ msgid "Compile with 32-bit integer mode" +#~ msgstr "Overst med 32 bit-heltalstilstand" + +#~ msgid "Auto pre/post decrement increment allowed" +#~ msgstr "Selvformindskelse tilladt" + +#~ msgid "Auto pre/post decrement increment not allowed" +#~ msgstr "Selvforgelse ikke tilladt" + +#~ msgid "Min/max instructions allowed" +#~ msgstr "Min/max-instruktioner tilladt" + +#~ msgid "Min/max instructions not allowed" +#~ msgstr "Min/max-instruktioner ikke tilladt" + +#~ msgid "Use call and rtc for function calls and returns" +#~ msgstr "Benyt call og rtc til funktionskald og returneringer" + +#~ msgid "Use jsr and rts for function calls and returns" +#~ msgstr "Benyt jsr og rts til funktionskald og returneringer" + +#~ msgid "Do not use direct addressing mode for soft registers" +#~ msgstr "Benyt ikke direkte adresseringstilstand til blde registre" + +#~ msgid "Use direct addressing mode for soft registers" +#~ msgstr "Benyt direkte adresseringstilstand til blde registre" + +#~ msgid "Compile for a 68HC11" +#~ msgstr "Overst til en 68HC11" + +#~ msgid "Compile for a 68HC12" +#~ msgstr "Overst til en 68HC12" + +#~ msgid "Compile for a 68HCS12" +#~ msgstr "Overst til en 68HCS12" + +#~ msgid "Specify the register allocation order" +#~ msgstr "Angiv registerallokeringsordnen" + +#~ msgid "Indicate the number of soft registers available" +#~ msgstr "Angiv antallet af blde registre der er til rdighed" + +#~ msgid "-malign-loops=%d is not between 1 and %d" +#~ msgstr "-malign-loops=%d er ikke mellem 1 og %d" + +#~ msgid "-malign-jumps=%d is not between 1 and %d" +#~ msgstr "-malign-jumps=%d er ikke mellem 1 og %d" + +#~ msgid "-malign-functions=%d is not between 1 and %d" +#~ msgstr "-malign-functions=%d er ikke mellem 1 og %d" + +#~ msgid "-fPIC is not currently supported on the 68000 or 68010\n" +#~ msgstr "-fPIC understttes ikke p nuvrende tidspunkt p 68000 og 68010\n" + +#~ msgid "Generate code for a 68020" +#~ msgstr "Generr kode til en 68020" + +#~ msgid "Generate code for a 68000" +#~ msgstr "Generr kode til en 68000" + +#~ msgid "Use the bit-field instructions" +#~ msgstr "Benyt bitfeltinstruktionerne" + +#~ msgid "Do not use the bit-field instructions" +#~ msgstr "Benyt ikke bitfeltinstruktionerne" + +#~ msgid "Use different calling convention using 'rtd'" +#~ msgstr "Benyt anden kaldekonvention vha. 'rtd'" + +#~ msgid "Consider type `int' to be 16 bits wide" +#~ msgstr "Lad typen 'int' vre 16 bit bred" + +#~ msgid "Consider type `int' to be 32 bits wide" +#~ msgstr "Lad typen 'int' vre 32 bit bred" + +#~ msgid "Generate code for a Sun FPA" +#~ msgstr "Generr kode til en Sun FPA" + +#~ msgid "Do not generate code for a Sun FPA" +#~ msgstr "Generr ikke kode til en Sun FPA" + +#~ msgid "Generate code for a Sun Sky board" +#~ msgstr "Generr kode til et Sun Sky-kort" + +#~ msgid "Do not use Sky linkage convention" +#~ msgstr "Benyt ikke Sky-kdningskonventionen" + +#~ msgid "Generate code for a 68881" +#~ msgstr "Generr kode til en 68881" + +#~ msgid "Generate code with library calls for floating point" +#~ msgstr "Generr kode med bibliotekskald for kommatalsoperationer" + +#~ msgid "Generate code for a 68040, without any new instructions" +#~ msgstr "Generr kode til en 68040 uden nogen nye instruktioner" + +#~ msgid "Generate code for a 68060, without any new instructions" +#~ msgstr "Generr kode til en 68060 uden nogen nye instruktioner" + +#~ msgid "Generate code for a 68030" +#~ msgstr "Generr kode til en 68030" + +#~ msgid "Generate code for a 68040" +#~ msgstr "Generr kode til en 68040" + +#~ msgid "Generate code for a 68060" +#~ msgstr "Generr kode til en 68060" + +#~ msgid "Generate code for a 520X" +#~ msgstr "Generr kode til en 520X" + +#~ msgid "Generate code for a 68851" +#~ msgstr "Generr kode til en 68851" + +#~ msgid "Do no generate code for a 68851" +#~ msgstr "Generr ikke kode til en 68851" + +#~ msgid "Generate code for a 68302" +#~ msgstr "Generr kode til en 68302" + +#~ msgid "Generate code for a 68332" +#~ msgstr "Generr kode til en 68332" + +#~ msgid "Generate code for a cpu32" +#~ msgstr "Generr kode til en cpu32" + +#~ msgid "Align variables on a 32-bit boundary" +#~ msgstr "Justr variabler til 32 bit-grnserne" + +#~ msgid "Align variables on a 16-bit boundary" +#~ msgstr "Justr variabler til 16 bit-grnserne" + +#~ msgid "Generate pc-relative code" +#~ msgstr "Generr pc-relativ kode" + +#~ msgid "Do not use unaligned memory references" +#~ msgstr "Benyt ikke ikke-justerede hukommelsesreferencer" + +#~ msgid "Use unaligned memory references" +#~ msgstr "Benyt ikke-justerede hukommelsesreferencer" + +#~ msgid "internal gcc monitor: short-branch(%x)" +#~ msgstr "intern GCC-overvgning: short-branch(%x)" + +#~ msgid "internal gcc error: Can't express symbolic location" +#~ msgstr "intern GCC-fejl: Kan ikke udtrykke symbolsk placering" + +#~ msgid "argument #%d is a structure" +#~ msgstr "%d. parameter er en struktur" + +#~ msgid "%%R not followed by %%B/C/D/E" +#~ msgstr "%%R efterflges ikke af %%B/C/D/E" + +#~ msgid "invalid %%x/X value" +#~ msgstr "ugyldig %%x/X-vrdi" + +#~ msgid "invalid %%Q value" +#~ msgstr "ugyldig %%Q-vrdi" + +#~ msgid "invalid %%q value" +#~ msgstr "ugyldig %%q-vrdi" + +#~ msgid "invalid %%o value" +#~ msgstr "ugyldig %%o-vrdi" + +#~ msgid "invalid %%p value" +#~ msgstr "ugyldig %%p-vrdi" + +#~ msgid "invalid %%s/S value" +#~ msgstr "ugyldig %%s/S-vrdi" + +#~ msgid "invalid %%P operand" +#~ msgstr "ugyldig %%P-operand" + +#~ msgid "invalid %%B value" +#~ msgstr "ugyldig %%B-vrdi" + +#~ msgid "invalid %%D value" +#~ msgstr "ugyldig %%D-vrdi" + +#~ msgid "`%%d' operand isn't a register" +#~ msgstr "operanden '%%d' er ikke et register" + +#~ msgid "operand is r0" +#~ msgstr "operanden er r0" + +#~ msgid "operand is const_double" +#~ msgstr "operanden er const_double" + +#~ msgid "invalid code" +#~ msgstr "ugyldig kode" + +#~ msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible" +#~ msgstr "-mtrap-large-shift og -mhandle-large-shift er indbyrdes uforenelige" + +#~ msgid "invalid option `-mshort-data-%s'" +#~ msgstr "ugyldigt tilvalg '-mshort-data-%s'" + +#~ msgid "-mshort-data-%s is too large " +#~ msgstr "-mshort-data-%s er for stor" + +#~ msgid "-mshort-data-%s and PIC are incompatible" +#~ msgstr "-mshort-data-%s og PIC er indbyrdes uforenelige" + +#~ msgid "invalid option `-mstack-increment=%s'" +#~ msgstr "ugyldigt tilvalg '-mshort-increment=%s'" + +#~ msgid "Inline constants if it can be done in 2 insns or less" +#~ msgstr "Indlejr konstanter hvis det kan gres med 2 instruktioner eller mindre" + +#~ msgid "Inline constants if it only takes 1 instruction" +#~ msgstr "Indlejr konstanter hvis det kan gres med 1 instruktion" + +#~ msgid "Set maximum alignment to 4" +#~ msgstr "St maksimal justering til 4" + +#~ msgid "Set maximum alignment to 8" +#~ msgstr "St maksimal justering til 8" + +#~ msgid "Do not use the divide instruction" +#~ msgstr "Benyt ikke divisionsinstruktionen" + +#~ msgid "Do not arbitrary sized immediates in bit operations" +#~ msgstr "Benyt ikke vilkrlige strrelsers umiddelbare vrdier i bitoperationer" + +#~ msgid "Always treat bit-field as int-sized" +#~ msgstr "Behandl altid bitfelter som af strrelsen int" + +#~ msgid "Force functions to be aligned to a 4 byte boundary" +#~ msgstr "Tving funktioner til at blive justeret til en 4 byte-grnse" + +#~ msgid "Force functions to be aligned to a 2 byte boundary" +#~ msgstr "Tving funktioner til at blive justeret til en 2 byte-grnse" + +#~ msgid "Emit call graph information" +#~ msgstr "Udsend kaldegrafinfo" + +#~ msgid "Prefer word accesses over byte accesses" +#~ msgstr "Foretrk ord-tilgange frem for byte-tilgange" + +#~ msgid "Generate code for the M*Core M340" +#~ msgstr "Generr kode til en M*Core M340" + +#~ msgid "Maximum amount for a single stack increment operation" +#~ msgstr "Maksimalt antal for en enkelt stakforgelsesoperation" + +#~ msgid "bad value (%s) for -mabi= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mabi=" + +#~ msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor" +#~ msgstr "-mips%d er i konflikt med de andre arkitekturtilvalg som angiver en MIPS%d-processor" + +#~ msgid "bad value (%s) for -mips switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mips" + +#~ msgid "-march=%s is not compatible with the selected ABI" +#~ msgstr "-march=%s er ikke forenelig med den valgte ABI" + +#~ msgid "-mgp64 used with a 32-bit processor" +#~ msgstr "-mgp64 benyttet med en 32 bit-processor" + +#~ msgid "-mgp32 used with a 64-bit ABI" +#~ msgstr "-mgp32 benyttet med et 64 bit-ABI" + +#~ msgid "-mgp64 used with a 32-bit ABI" +#~ msgstr "-mgp64 benyttet med et 32 bit-ABI" + +#~ msgid "unsupported combination: %s" +#~ msgstr "ikke-understttet kombination: %s" + +#~ msgid "generation of Branch Likely instructions enabled, but not supported by architecture" +#~ msgstr "generering af Branch Likely-instruktioner er aktiveret, men ikke understttet af arkitekturen" + +#~ msgid "-G is incompatible with PIC code which is the default" +#~ msgstr "-G er uforenelig med PIC-kode som genereres som standard" + +#~ msgid "-membedded-pic and -mabicalls are incompatible" +#~ msgstr "-membedded-pic og -mabicalls er indbyrdes uforenelige" + +#~ msgid "-G and -membedded-pic are incompatible" +#~ msgstr "-G og -membedded-pic er indbyrdes uforenelige" + +#~ msgid "invalid option `entry%s'" +#~ msgstr "ugyldigt tilvalg 'entry%s'" + +#~ msgid "-mentry is only meaningful with -mips-16" +#~ msgstr "-mentry giver kun mening sammen med -mips-16" + +#~ msgid "internal error: %%) found without a %%( in assembler pattern" +#~ msgstr "intern fejl: %%) fundet uden en %%) i maskinkodeoversttermnster" + +#~ msgid "internal error: %%] found without a %%[ in assembler pattern" +#~ msgstr "intern fejl: %%] fundet uden en %%[ i maskinkodeoversttermnster" + +#~ msgid "internal error: %%> found without a %%< in assembler pattern" +#~ msgstr "intern fejl: %%> fundet uden en %%< i maskinkodeoversttermnster" + +#~ msgid "internal error: %%} found without a %%{ in assembler pattern" +#~ msgstr "intern fejl: %%} fundet uden en %%{ i maskinkodeoversttermnster" + +#~ msgid "PRINT_OPERAND: unknown punctuation '%c'" +#~ msgstr "PRINT_OPERAND: ukendt tegnstning '%c'" + +#~ msgid "PRINT_OPERAND null pointer" +#~ msgstr "PRINT_OPERAND nul-henvisning" + +#~ msgid "invalid use of %%d, %%x, or %%X" +#~ msgstr "ugyldigt brug af %%d, %%x eller %%X" + +#~ msgid "PRINT_OPERAND_ADDRESS, null pointer" +#~ msgstr "PRINT_OPERAND_ADDRESS, nul-henvisning" + +#~ msgid "MIPS ECOFF format does not allow changing filenames within functions with #line" +#~ msgstr "MIPS ECOFF-formatet tillader ikke skift af filnavne inden i funktioner med #line" + +#~ msgid "can't rewind temp file" +#~ msgstr "kan ikke spole midlertidig fil tilbage" + +#~ msgid "can't write to output file" +#~ msgstr "kan ikke skrive i uddatafil" + +#~ msgid "can't read from temp file" +#~ msgstr "kan ikke lse fra midlertidig fil" + +#~ msgid "can't close temp file" +#~ msgstr "kan ikke lukke midlertidig fil" + +#~ msgid "gp_offset (%ld) or end_offset (%ld) is less than zero" +#~ msgstr "gp_offset (%ld) eller end_offset (%ld) er mindre end nul" + +#~ msgid "fp_offset (%ld) or end_offset (%ld) is less than zero" +#~ msgstr "fp_offset (%ld) eller end_offset (%ld) er mindre end nul" + +#~ msgid "can not handle inconsistent calls to `%s'" +#~ msgstr "kan ikke hndtere inkonsistente kald af '%s'" + +#~ msgid "the cpu name must be lower case" +#~ msgstr "processornavnet skal staves med sm bogstaver" + +#~ msgid "bad value (%s) for %s" +#~ msgstr "ugyldig vrdi (%s) for %s" + +#~ msgid "No default crt0.o" +#~ msgstr "Ingen standard crt0.o" + +#~ msgid "Use 64-bit int type" +#~ msgstr "Benyt 64 bit int-type" + +#~ msgid "Use 64-bit long type" +#~ msgstr "Benyt 64 bit long-type" + +#~ msgid "Use 32-bit long type" +#~ msgstr "Benyt 32 bit long-type" + +#~ msgid "Optimize lui/addiu address loads" +#~ msgstr "Optimr lui/addiu-adresseindlsninger" + +#~ msgid "Don't optimize lui/addiu address loads" +#~ msgstr "Optimr ikke lui/addiu-adresseindlsninger" + +# 'as' str for assembler +#~ msgid "Use MIPS as" +#~ msgstr "Benyt MIPS as" + +#~ msgid "Use GNU as" +#~ msgstr "Benyt GNU as" + +#~ msgid "Use symbolic register names" +#~ msgstr "Benyt symbolske registernavne" + +#~ msgid "Don't use symbolic register names" +#~ msgstr "Benyt ikke symbolske registernavne" + +#~ msgid "Use GP relative sdata/sbss sections" +#~ msgstr "Benyt GP-relative sdata/sbss-sektioner" + +#~ msgid "Don't use GP relative sdata/sbss sections" +#~ msgstr "Benyt ikke GP-relative sdata/sbss-sektioner" + +#~ msgid "Output compiler statistics" +#~ msgstr "Udsend oversttelsesstatistik" + +#~ msgid "Don't output compiler statistics" +#~ msgstr "Udsend ikke oversttelsesstatistik" + +#~ msgid "Don't optimize block moves" +#~ msgstr "Optimr ikke blokflytninger" + +#~ msgid "Optimize block moves" +#~ msgstr "Optimr blokflytninger" + +#~ msgid "Use mips-tfile asm postpass" +#~ msgstr "Benyt mips-tfile-maskinkodeefterfase" + +#~ msgid "Don't use mips-tfile asm postpass" +#~ msgstr "Benyt ikke mips-tfile-maskinkodeefterfase" + +#~ msgid "Use hardware floating point" +#~ msgstr "Benyt hardware-kommatal" + +#~ msgid "Use 64-bit FP registers" +#~ msgstr "Benyt 64 bit-kommatalsregistre" + +#~ msgid "Use 32-bit FP registers" +#~ msgstr "Benyt 32 bit-kommatalsregistre" + +#~ msgid "Use 64-bit general registers" +#~ msgstr "Benyt 64 bit almene registre" + +#~ msgid "Use 32-bit general registers" +#~ msgstr "Benyt 32 bit almene registre" + +#~ msgid "Use Irix PIC" +#~ msgstr "Benyt Irix PIC" + +#~ msgid "Don't use Irix PIC" +#~ msgstr "Benyt ikke Irix PIC" + +#~ msgid "Use indirect calls" +#~ msgstr "Benyt indirekte kald" + +#~ msgid "Don't use indirect calls" +#~ msgstr "Benyt ikke indirekte kald" + +#~ msgid "Use embedded PIC" +#~ msgstr "Benyt indlejret PIC" + +#~ msgid "Don't use embedded PIC" +#~ msgstr "Benyt ikke indlejret PIC" + +#~ msgid "Use ROM instead of RAM" +#~ msgstr "Benyt ROM i stedet for RAM" + +#~ msgid "Don't use ROM instead of RAM" +#~ msgstr "Benyt ikke ROM i stedet for RAM" + +#~ msgid "Put uninitialized constants in ROM (needs -membedded-data)" +#~ msgstr "Anbring konstanter uden startvrdi i ROM (behver -membedded-data)" + +#~ msgid "Don't put uninitialized constants in ROM" +#~ msgstr "Anbring ikke konstanter uden startvrdi i ROM" + +#~ msgid "Use big-endian byte order" +#~ msgstr "Benyt storendet byteordning" + +#~ msgid "Use little-endian byte order" +#~ msgstr "Benyt lilleendet byteordning" + +#~ msgid "Use single (32-bit) FP only" +#~ msgstr "Benyt kun enkeltprcisions (32 bit) kommatal" + +#~ msgid "Don't use single (32-bit) FP only" +#~ msgstr "Benyt ikke kun enkeltprcisions (32 bit) kommatal" + +# hvad s det er... +#~ msgid "Use multiply accumulate" +#~ msgstr "Benyt multiplikationsakkumulering" + +#~ msgid "Don't use multiply accumulate" +#~ msgstr "Benyt ikke multiplikationsakkumulering" + +#~ msgid "Don't generate fused multiply/add instructions" +#~ msgstr "Generr ikke sammensatte gang/addr-instruktioner" + +#~ msgid "Generate fused multiply/add instructions" +#~ msgstr "Generr sammensatte gang/addr-instruktioner" + +#~ msgid "Work around early 4300 hardware bug" +#~ msgstr "Arbejd rundt om tidlig 4300-hardwarefejl" + +#~ msgid "Don't work around early 4300 hardware bug" +#~ msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl" + +#~ msgid "Trap on integer divide by zero" +#~ msgstr "Forrsag undtagelse ved heltalsdivision med nul" + +#~ msgid "Don't trap on integer divide by zero" +#~ msgstr "Forrsag ikke undtagelse ved heltalsdivision med nul" + +#~ msgid "Trap on integer divide overflow" +#~ msgstr "Forrsag undtagelse ved heltalsdivisionsoverlb" + +#~ msgid "Don't trap on integer divide overflow" +#~ msgstr "Forrsag ikke undtagelse ved heltalsdivisionsoverlb" + +#~ msgid "Use Branch Likely instructions, overriding default for arch" +#~ msgstr "Benyt Branch Likely-instruktioner, overskrivende forvalget for arkitektur" + +#~ msgid "Don't use Branch Likely instructions, overriding default for arch" +#~ msgstr "Benyt ikke Branch Likely-instruktioner, overskrivende forvalget for arkitektur" + +#~ msgid "Specify CPU for scheduling purposes" +#~ msgstr "Angiv processor til planlgningsforml" + +#~ msgid "Specify CPU for code generation purposes" +#~ msgstr "Angiv processor til kodegenereringsforml" + +#~ msgid "Specify an ABI" +#~ msgstr "Angiv en ABI" + +#~ msgid "Specify a Standard MIPS ISA" +#~ msgstr "Angiv en Standard MIPS ISA" + +#~ msgid "Use mips16 entry/exit psuedo ops" +#~ msgstr "Benyt MIPS16-indtrdelse-/afslutningspseudooperationer" + +#~ msgid "Don't use MIPS16 instructions" +#~ msgstr "Benyt ikke MIPS16-instruktioner" + +#~ msgid "Don't call any cache flush functions" +#~ msgstr "Kald ikke nogen mellemlagertmningsfunktion" + +#~ msgid "Specify cache flush function" +#~ msgstr "Angiv mellemlagertmningsfunktion" + +#~ msgid "mips16 function profiling" +#~ msgstr "MIPS16-funktionsprofilering" + +#~ msgid "-f%s not supported: ignored" +#~ msgstr "-f%s er ikke understttet: ignoreret" + +#~ msgid "too large function value type, needs %d registers, have only %d registers for this" +#~ msgstr "for stor funktionsvrditype, behver %d registre, har kun %d registre til dette" + +#~ msgid "function_profiler support for MMIX" +#~ msgstr "function_profiler-understttelse for MMIX" + +#~ msgid "MMIX Internal: Last named vararg would not fit in a register" +#~ msgstr "MMIX-intern: Sidst navngivne variabel parameter kan ikke passes i et register" + +#~ msgid "MMIX Internal: Expected a CONST_INT, not this" +#~ msgstr "MMIX-intern: Forventede en CONST_INT, ikke dette" + +#~ msgid "MMIX Internal: Bad register: %d" +#~ msgstr "MMIX-intern: Ugyldigt register: %d" + +#~ msgid "MMIX Internal: Bad value for 'm', not a CONST_INT" +#~ msgstr "MMIX-intern: Ugyldigt vrdi for 'm', ikke en CONST_INT" + +#~ msgid "MMIX Internal: Expected a register, not this" +#~ msgstr "MMIX-intern: Forventede et register, ikke dette" + +#~ msgid "MMIX Internal: Expected a constant, not this" +#~ msgstr "MMIX-intern: Forventede en konstant, ikke dette" + +#~ msgid "MMIX Internal: Missing `%c' case in mmix_print_operand" +#~ msgstr "MMIX-intern: Mangler '%c'-case i mmix_print_operand" + +#~ msgid "MMIX Internal: Cannot decode this operand" +#~ msgstr "MMIX-intern: Kan ikke dekode denne operand" + +#~ msgid "MMIX Internal: This is not a recognized address" +#~ msgstr "MMIX-intern: Dette er ikke en genkendt adresse" + +#~ msgid "stack frame not a multiple of 8 bytes: %d" +#~ msgstr "stakramme ikke et produkt af 8 byte: %d" + +#~ msgid "stack frame not a multiple of octabyte: %d" +#~ msgstr "stakramme ikke et produkt af 8 byte: %d" + +#~ msgid "MMIX Internal: %s is not a shiftable int" +#~ msgstr "MMIX-intern: %s er ikke en int der kan skiftes" + +#~ msgid "MMIX Internal: Trying to output invalidly reversed condition:" +#~ msgstr "MMIX-intern: Forsger at udskrive ugyldigt omvendt betingelse:" + +#~ msgid "MMIX Internal: What's the CC of this?" +#~ msgstr "MMIX-intern: Hvad er CC af dette?" + +#~ msgid "MMIX Internal: What is the CC of this?" +#~ msgstr "MMIX-intern: Hvad er CC af dette?" + +#~ msgid "MMIX Internal: This is not a constant:" +#~ msgstr "MMIX-intern: Dette er ikke en konstant:" + +#~ msgid "Set start-address of the program" +#~ msgstr "Angiv startadressen for programmet" + +#~ msgid "Set start-address of data" +#~ msgstr "Angiv startadressen for data" + +#~ msgid "For intrinsics library: pass all parameters in registers" +#~ msgstr "For indbyggede biblioteker: overbring alle parametre i registre" + +#~ msgid "Use register stack for parameters and return value" +#~ msgstr "Benyt registerstakken til parametre og returvrdier" + +#~ msgid "Use call-clobbered registers for parameters and return value" +#~ msgstr "Benyt kaldeoptagne registre til parametre og returvrdier" + +#~ msgid "Use epsilon-respecting floating point compare instructions" +#~ msgstr "Benyt epsilon-respekterende instruktioner til kommatalssammenligning" + +#~ msgid "Use zero-extending memory loads, not sign-extending ones" +#~ msgstr "Benyt nul-udvidende hukommelsesindlsninger, ikke fortegnsudvidende" + +#~ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)" +#~ msgstr "Generr divisionsresultater med rest som har det samme fortegn som nvneren (ikke tlleren)" + +#~ msgid "Prepend global symbols with \":\" (for use with PREFIX)" +#~ msgstr "Tilfj \":\" til starten af globale symboler (til brug sammen med PREFIX)" + +#~ msgid "Do not provide a default start-address 0x100 of the program" +#~ msgstr "Tilbyd ikke standardstartadressen 0x100 for programmet" + +#~ msgid "Link to emit program in ELF format (rather than mmo)" +#~ msgstr "Lad sammenkdningen udsende programmet i ELF-format (i stedet for mmo)" + +#~ msgid "Use P-mnemonics for branches statically predicted as taken" +#~ msgstr "Benyt P-aliaser for forgreninger som statistisk forudses at blive taget" + +#~ msgid "Don't use P-mnemonics for branches" +#~ msgstr "Benyt ikke P-aliaser for forgreninger" + +#~ msgid "Use addresses that allocate global registers" +#~ msgstr "Benyt adresser der allokerer globale registre" + +#~ msgid "Do not use addresses that allocate global registers" +#~ msgstr "Benyt ikke adresser der allokerer globale registre" + +#~ msgid "Generate a single exit point for each function" +#~ msgstr "Generr et enkelt afslutningspunkt for hver funktion" + +#~ msgid "Do not generate a single exit point for each function" +#~ msgstr "Generr ikke et enkelt afslutningspunkt for hver funktion" + +#~ msgid "Work around hardware multiply bug" +#~ msgstr "Arbejd omkring hardware-multiplikationsfejl" + +#~ msgid "Do not work around hardware multiply bug" +#~ msgstr "Arbejd ikke omkring hardware-multiplikationsfejl" + +#~ msgid "Target the AM33 processor" +#~ msgstr "Mlret mod AM33-processoren" + +#~ msgid "Enable linker relaxations" +#~ msgstr "Aktivr tolerant sammenkdning" + +#~ msgid "Don't use hardware fp" +#~ msgstr "Benyt ikke hardware-kommatal" + +#~ msgid "Alternative calling convention" +#~ msgstr "Alternativ kaldekonvention" + +#~ msgid "Pass some arguments in registers" +#~ msgstr "Overbring nogle parametre i registre" + +#~ msgid "Pass all arguments on stack" +#~ msgstr "Overbring alle parametre p stakken" + +#~ msgid "Optimize for 32532 cpu" +#~ msgstr "Optimr for en 32532-processor" + +#~ msgid "Optimize for 32332 cpu" +#~ msgstr "Optimr for en 32332-processor" + +#~ msgid "Optimize for 32032" +#~ msgstr "Optimr for en 32032-processor" + +#~ msgid "Register sb is zero. Use for absolute addressing" +#~ msgstr "Registeret 'sb' er nul; benyt til absolut adressering" + +#~ msgid "Do not use register sb" +#~ msgstr "Benyt ikke registeret 'sb'" + +#~ msgid "Use bit-field instructions" +#~ msgstr "Benyt bitfeltinstruktioner" + +#~ msgid "Do not use bit-field instructions" +#~ msgstr "Benyt ikke bitfeltinstruktioner" + +#~ msgid "Generate code for high memory" +#~ msgstr "Generr kode til hj hukommelse" + +#~ msgid "Generate code for low memory" +#~ msgstr "Generr kode til lav hukommelse" + +#~ msgid "32381 fpu" +#~ msgstr "32381-fpu" + +#~ msgid "Use multiply-accumulate fp instructions" +#~ msgstr "Benyt kommatalsinstruktioner til multiplikationsakkumulering" + +#~ msgid "Do not use multiply-accumulate fp instructions" +#~ msgstr "Benyt ikke kommatalsinstruktioner til multiplikationsakkumulering" + +#~ msgid "\"Small register classes\" kludge" +#~ msgstr "\"Sm registerklasser\"-lapning" + +#~ msgid "No \"Small register classes\" kludge" +#~ msgstr "Ingen \"Sm registerklasser\"-lapning" + +#~ msgid "" +#~ "unknown -mschedule= option (%s).\n" +#~ "Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n" +#~ msgstr "" +#~ "ukendt parameter til -mschedule= (%s).\n" +#~ "Gyldige parametre er 700, 7100, 7100LC, 7200, 7300 og 8000\n" + +#~ msgid "" +#~ "unknown -march= option (%s).\n" +#~ "Valid options are 1.0, 1.1, and 2.0\n" +#~ msgstr "" +#~ "ukendt parameter til -march= (%s).\n" +#~ "Gyldige parametre er 1.0, 1.1 og 2.0\n" + +#~ msgid "PIC code generation is not supported in the portable runtime model\n" +#~ msgstr "PIC-kodegenerering er ikke understttet i den portable krselsmodel\n" + +#~ msgid "PIC code generation is not compatible with fast indirect calls\n" +#~ msgstr "PIC-kodegenerering er ikke kompatibel med hurtige indirekte kald\n" + +#~ msgid "-g is only supported when using GAS on this processor," +#~ msgstr "-g er kun understttet ved brug af GAS p denne processor," + +#~ msgid "-g option disabled" +#~ msgstr "tilvalget -g deaktiveret" + +#~ msgid "Generate cpp defines for server IO" +#~ msgstr "Generr CPP-defineringer til server-IO" + +#~ msgid "Generate cpp defines for workstation IO" +#~ msgstr "Generr CPP-defineringer til arbejdsstation-IO" + +#~ msgid "Generate PA1.1 code" +#~ msgstr "Generr PA1.1-kode" + +#~ msgid "Generate PA1.0 code" +#~ msgstr "Generr PA1.0-kode" + +#~ msgid "Generate PA2.0 code (requires binutils 2.10 or later)" +#~ msgstr "Generr PA2.0-kode (krver binutils 2.10 eller nyere)" + +#~ msgid "Disable FP regs" +#~ msgstr "Deaktivr kommatalsregistre" + +#~ msgid "Do not disable FP regs" +#~ msgstr "Deaktivr ikke kommatalsregistre" + +#~ msgid "Disable space regs" +#~ msgstr "Deaktivr pladsregistre" + +#~ msgid "Do not disable space regs" +#~ msgstr "Deaktivr ikke pladsregistre" + +#~ msgid "Put jumps in call delay slots" +#~ msgstr "Anbring spring p kaldeventetidspladser" + +#~ msgid "Do not put jumps in call delay slots" +#~ msgstr "Anbring ikke spring p kaldeventetidspladser" + +#~ msgid "Disable indexed addressing" +#~ msgstr "Deaktivr indekseret adressering" + +#~ msgid "Do not disable indexed addressing" +#~ msgstr "Deaktivr ikke indekseret adressering" + +#~ msgid "Use portable calling conventions" +#~ msgstr "Benyt portable kaldekonventioner" + +#~ msgid "Do not use portable calling conventions" +#~ msgstr "Benyt ikke portable kaldekonventioner" + +#~ msgid "Assume code will be assembled by GAS" +#~ msgstr "Antag at koden bliver oversat af GAS" + +#~ msgid "Do not assume code will be assembled by GAS" +#~ msgstr "Antag ikke at koden bliver oversat af GAS" + +#~ msgid "Do not use software floating point" +#~ msgstr "Benyt ikke softwarekommatal" + +#~ msgid "Emit long load/store sequences" +#~ msgstr "Udsend lange load/store-sekvenser" + +#~ msgid "Do not emit long load/store sequences" +#~ msgstr "Udsend ikke lange load/store-sekvenser" + +#~ msgid "Generate fast indirect calls" +#~ msgstr "Generr hurtige indirekte kald" + +#~ msgid "Do not generate fast indirect calls" +#~ msgstr "Generr ikke hurtige indirekte kald" + +#~ msgid "Generate code for huge switch statements" +#~ msgstr "Generr kode til store switch-stninger" + +#~ msgid "Do not generate code for huge switch statements" +#~ msgstr "Generr ikke kode til store switch-stninger" + +#~ msgid "Always generate long calls" +#~ msgstr "Generr altid lange kalde" + +#~ msgid "Generate long calls only when needed" +#~ msgstr "Generr kun lange kalde nr det er ndvendigt" + +#~ msgid "Enable linker optimizations" +#~ msgstr "Aktivr sammenkderoptimeringer" + +#~ msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later." +#~ msgstr "Angiv arkitekturen for kodegenerering. Mulige vrdier er 1.0, 1.1 og 2.0. 2.0 krver GAS-snapshot 19990413 eller senere." + +#~ msgid "Assume code will be linked by GNU ld" +#~ msgstr "Antag at kode vil blive sammenkdet med GNU ld" + +#~ msgid "Assume code will be linked by HP ld" +#~ msgstr "Antag at kode vil blive sammenkdet med HP ld" + +#~ msgid "Do not use hardware floating point" +#~ msgstr "Benyt ikke hardware-kommatal" + +#~ msgid "Return floating point results in ac0" +#~ msgstr "Returnr kommatalsresultater i ac0" + +#~ msgid "Return floating point results in memory" +#~ msgstr "Returnr kommatalsresultater i hukommelse" + +#~ msgid "Generate code for an 11/40" +#~ msgstr "Generr kode til en 11/40" + +#~ msgid "Generate code for an 11/45" +#~ msgstr "Generr kode til en 11/45" + +#~ msgid "Generate code for an 11/10" +#~ msgstr "Generr kode til en 11/10" + +#~ msgid "Use 32 bit int" +#~ msgstr "Benyt 32 bit int" + +#~ msgid "Use 16 bit int" +#~ msgstr "Benyt 16 bit int" + +#~ msgid "Use 32 bit float" +#~ msgstr "Benyt 32 bit float" + +#~ msgid "Use 64 bit float" +#~ msgstr "Benyt 64 bit float" + +#~ msgid "Target has split I&D" +#~ msgstr "Mlarkitektur har delt I&D" + +#~ msgid "Target does not have split I&D" +#~ msgstr "Mlarkitektur har ikke delt I&D" + +#~ msgid "Use UNIX assembler syntax" +#~ msgstr "Benyt UNIX-maskinkodesyntaks" + +#~ msgid "Use DEC assembler syntax" +#~ msgstr "Benyt DEC-maskinkodesyntaks" + +#~ msgid "invalid %%S value" +#~ msgstr "ugyldig %%S-vrdi" + +#~ msgid "invalid %%b value" +#~ msgstr "ugyldig %%b-vrdi" + +#~ msgid "invalid %%z value" +#~ msgstr "ugyldig %%z-vrdi" + +#~ msgid "invalid %%Z value" +#~ msgstr "ugyldig %%Z-vrdi" + +#~ msgid "invalid %%k value" +#~ msgstr "ugyldig %%k-vrdi" + +#~ msgid "invalid %%j value" +#~ msgstr "ugyldig %%j-vrdi" + +#~ msgid "can't have varargs with -mfp-arg-in-fp-regs" +#~ msgstr "kan ikke have variable parameterlister med -mfp-arg-in-fp-regs" + +#~ msgid "ignoring malformed #pragma longcall" +#~ msgstr "ignorerer forkert udformet #pragma longcall" + +#~ msgid "missing open paren" +#~ msgstr "manglende startparantes" + +#~ msgid "missing number" +#~ msgstr "manglende tal" + +#~ msgid "missing close paren" +#~ msgstr "manglende slutparantes" + +#~ msgid "number must be 0 or 1" +#~ msgstr "tal skal enten vre 0 eller 1" + +#~ msgid "junk at end of #pragma longcall" +#~ msgstr "ragelse i slutningen af #pragma longcall" + +#~ msgid "-mmultiple is not supported on little endian systems" +#~ msgstr "-mmultiple er ikke understttet p lilleendede systemer" + +#~ msgid "-mstring is not supported on little endian systems" +#~ msgstr "-mstring er ikke understttet p lilleendede systemer" + +#~ msgid "unknown -mdebug-%s switch" +#~ msgstr "ukendt tilvalg -mdebug-%s" + +#~ msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" +#~ msgstr "ukendt parameter '%s' til -mtraceback; forventer 'full', 'partial' eller 'none'" + +#~ msgid "Unknown switch -mlong-double-%s" +#~ msgstr "Ukendt tilvalg -mlong-double-%s" + +#~ msgid "unknown -misel= option specified: '%s'" +#~ msgstr "ukendt tilvalg til -misel= angivet: '%s'" + +#~ msgid "unknown -mvrsave= option specified: '%s'" +#~ msgstr "ukendt tilvalg til -mvrsave= angivet: '%s'" + +#~ msgid "unknown ABI specified: '%s'" +#~ msgstr "ukendt ABI angivet: '%s'" + +#~ msgid "argument 1 must be a 5-bit signed literal" +#~ msgstr "1. parameter skal vre en 5 bit-konstant med fortegn" + +#~ msgid "argument 2 must be a 5-bit unsigned literal" +#~ msgstr "2. parameter skal vre en 5 bit-konstant uden fortegn" + +#~ msgid "argument 1 of __builtin_altivec_predicate must be a constant" +#~ msgstr "1. parameter til __builtin_altivec_predicate skal vre en konstant" + +#~ msgid "argument 1 of __builtin_altivec_predicate is out of range" +#~ msgstr "1. parameter til __builtin_altivec_predicate er uden for det gyldige interval" + +#~ msgid "argument 3 must be a 4-bit unsigned literal" +#~ msgstr "3. parameter skal vre en 4 bit-konstant uden fortegn" + +#~ msgid "argument to `%s' must be a 2-bit unsigned literal" +#~ msgstr "parameter til '%s' skal vre en 2 bit-konstant uden fortegn" + +#~ msgid "argument to dss must be a 2-bit unsigned literal" +#~ msgstr "parameter til dss skal vre en 2 bit-konstant uden fortegn" + +#~ msgid "argument 1 of __builtin_spe_predicate must be a constant" +#~ msgstr "1. parameter til __builtin_spe_predicate skal vre en konstant" + +#~ msgid "argument 1 of __builtin_spe_predicate is out of range" +#~ msgstr "1. parameter til __builtin_spe_predicate er uden for det gyldige interval" + +#~ msgid "invalid %%f value" +#~ msgstr "ugyldig %%f-vrdi" + +#~ msgid "invalid %%F value" +#~ msgstr "ugyldig %%F-vrdi" + +#~ msgid "invalid %%G value" +#~ msgstr "ugyldig %%G-vrdi" + +#~ msgid "invalid %%j code" +#~ msgstr "ugyldig %%j-kode" + +#~ msgid "invalid %%J code" +#~ msgstr "ugyldig %%J-kode" + +#~ msgid "invalid %%K value" +#~ msgstr "ugyldig %%K-vrdi" + +#~ msgid "invalid %%O value" +#~ msgstr "ugyldig %%O-vrdi" + +#~ msgid "invalid %%T value" +#~ msgstr "ugyldig %%T-vrdi" + +#~ msgid "invalid %%u value" +#~ msgstr "ugyldig %%u-vrdi" + +#~ msgid "invalid %%v value" +#~ msgstr "ugyldig %%v-vrdi" + +#~ msgid "no profiling of 64-bit code for this ABI" +#~ msgstr "ingen profilering af 64 bit-kode for denne ABI" + +#~ msgid "Always pass floating-point arguments in memory" +#~ msgstr "Overbring altid kommatalsparametre i hukommelse" + +#~ msgid "Don't always pass floating-point arguments in memory" +#~ msgstr "Overbring ikke altid kommatalsparametre i hukommelse" + +#~ msgid "Support message passing with the Parallel Environment" +#~ msgstr "Understt meddelelsesoverbringelse med Parallel Environment" + +#~ msgid "Compile for 64-bit pointers" +#~ msgstr "Overst for 64 bit-henvisninger" + +#~ msgid "Compile for 32-bit pointers" +#~ msgstr "Overst for 32 bit-henvisninger" + +#~ msgid "-maix64 and POWER architecture are incompatible" +#~ msgstr "-maix64 og POWER-arkitekturen er indbyrdes uforenelige" + +#~ msgid "-maix64 requires PowerPC64 architecture remain enabled" +#~ msgstr "-maix64 krver at PowerPC64-arkitekturen forbliver aktiveret" + +#~ msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported" +#~ msgstr "-maix64 pkrvet: 64 bit-beregninger med 32 bit-adressering understttes endnu ikke" + +#~ msgid "Use POWER instruction set" +#~ msgstr "Benyt POWER-instruktionssttet" + +#~ msgid "Use POWER2 instruction set" +#~ msgstr "Benyt POWER2-instruktionssttet" + +#~ msgid "Do not use POWER2 instruction set" +#~ msgstr "Benyt ikke POWER2-instruktionssttet" + +#~ msgid "Do not use POWER instruction set" +#~ msgstr "Benyt ikke POWER-instruktionssttet" + +#~ msgid "Use PowerPC instruction set" +#~ msgstr "Benyt PowerPC-instruktionssttet" + +#~ msgid "Do not use PowerPC instruction set" +#~ msgstr "Benyt ikke PowerPC-instruktionssttet" + +#~ msgid "Use PowerPC General Purpose group optional instructions" +#~ msgstr "Benyt valgfrie instruktioner fra PowerPC General Purpose-gruppen" + +#~ msgid "Don't use PowerPC General Purpose group optional instructions" +#~ msgstr "Benyt ikke valgfrie instruktioner fra PowerPC General Purpose-gruppen" + +#~ msgid "Use PowerPC Graphics group optional instructions" +#~ msgstr "Benyt valgfrie instruktioner fra PowerPC Graphics-gruppen" + +#~ msgid "Don't use PowerPC Graphics group optional instructions" +#~ msgstr "Benyt ikke valgfrie instruktioner fra PowerPC Graphics-gruppen" + +#~ msgid "Use PowerPC-64 instruction set" +#~ msgstr "Benyt PowerPC-64-instruktionssttet" + +#~ msgid "Don't use PowerPC-64 instruction set" +#~ msgstr "Benyt ikke PowerPC-64-instruktionssttet" + +#~ msgid "Use AltiVec instructions" +#~ msgstr "Benyt AltiVec-instruktioner" + +#~ msgid "Don't use AltiVec instructions" +#~ msgstr "Benyt ikke AltiVec-instruktioner" + +#~ msgid "Use new mnemonics for PowerPC architecture" +#~ msgstr "Benyt nye aliaser for PowerPC-arkitekturen" + +#~ msgid "Use old mnemonics for PowerPC architecture" +#~ msgstr "Benyt tidligere aliaser for PowerPC-arkitekturen" + +#~ msgid "Put everything in the regular TOC" +#~ msgstr "Anbring alting i den regulre indholdsfortegnelse" + +#~ msgid "Place floating point constants in TOC" +#~ msgstr "Anbring kommatalskonstanter i indholdsfortegnelsen" + +#~ msgid "Don't place floating point constants in TOC" +#~ msgstr "Anbring ikke kommatalskonstanter i indholdsfortegnelsen" + +#~ msgid "Place symbol+offset constants in TOC" +#~ msgstr "Anbring symbol+afst-konstanter i indholdsfortegnelsen" + +#~ msgid "Don't place symbol+offset constants in TOC" +#~ msgstr "Anbring ikke symbol+afst-konstanter i indholdsfortegnelsen" + +#~ msgid "Place variable addresses in the regular TOC" +#~ msgstr "Anbring variabeladresser i den regulre indholdsfortegnelse" + +#~ msgid "Generate load/store multiple instructions" +#~ msgstr "Generr flere indlsnings-/lagringsinstruktioner" + +#~ msgid "Do not generate load/store multiple instructions" +#~ msgstr "Generr ikke flere indlsnings-/lagringsinstruktioner" + +#~ msgid "Generate string instructions for block moves" +#~ msgstr "Generr strengoperationer til blokflytninger" + +#~ msgid "Do not generate string instructions for block moves" +#~ msgstr "Generr ikke strengoperationer til blokflytninger" + +#~ msgid "Generate load/store with update instructions" +#~ msgstr "Generr indlsning/lagring med opdateringsinstruktioner" + +#~ msgid "Do not generate load/store with update instructions" +#~ msgstr "Generr ikke indlsning/lagring med opdateringsinstruktioner" + +#~ msgid "Don't schedule the start and end of the procedure" +#~ msgstr "Planlg ikke begyndelsen og slutningen af proceduren" + +#~ msgid "Return all structures in memory (AIX default)" +#~ msgstr "Returnr alle strukturer i hukommelse (SVR4-standard)" + +#~ msgid "Return small structures in registers (SVR4 default)" +#~ msgstr "Returnr sm strukturer i registre (SVR4-standard)" + +#~ msgid "Use features of and schedule code for given CPU" +#~ msgstr "Benyt faciliteter fra og planlg koden til en given processor" + +#~ msgid "Enable debug output" +#~ msgstr "Aktivr fejlanalyseringsuddata" + +#~ msgid "Select full, part, or no traceback table" +#~ msgstr "Vlg komplet, partiel eller ingen tilbagesporingstabel" + +#~ msgid "Specify ABI to use" +#~ msgstr "Angiv ABI der skal bruges" + +#~ msgid "Specify size of long double (64 or 128 bits)" +#~ msgstr "Angiv strrelsen af long double (64 eller 128 bit)" + +#~ msgid "Specify yes/no if isel instructions should be generated" +#~ msgstr "Angiv yes/no hvis isel-instruktioner skal genereres" + +#~ msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec" +#~ msgstr "Angiv yes/no hvis VRSAVE-instruktioner skal genereres til AltiVec" + +#~ msgid "Avoid all range limits on call instructions" +#~ msgstr "Undg alle omrdegrnser ved kaldeinstruktioner" + +#~ msgid "RETURN_ADDRESS_OFFSET not supported" +#~ msgstr "RETURN_ADDRESS_OFFSET er ikke understttet" + +#~ msgid "Select ABI calling convention" +#~ msgstr "Angiv ABI-kaldekonvention" + +#~ msgid "Select method for sdata handling" +#~ msgstr "Angiv metode for sdata-hndtering" + +#~ msgid "Align to the base type of the bit-field" +#~ msgstr "Justr til grundtypen for bitfeltet" + +#~ msgid "Don't align to the base type of the bit-field" +#~ msgstr "Justr ikke til grundtypen for bitfeltet" + +#~ msgid "Don't assume that unaligned accesses are handled by the system" +#~ msgstr "Antag ikke at ujusterede tilgange hndteres af systemet" + +#~ msgid "Assume that unaligned accesses are handled by the system" +#~ msgstr "Antag at ujusterede tilgange hndteres af systemet" + +#~ msgid "Produce code relocatable at runtime" +#~ msgstr "Generr kode som kan flyttes p krselstidspunktet" + +#~ msgid "Don't produce code relocatable at runtime" +#~ msgstr "Generr ikke kode som kan flyttes p krselstidspunktet" + +#~ msgid "Produce little endian code" +#~ msgstr "Generr lilleendet kode" + +#~ msgid "Produce big endian code" +#~ msgstr "Generr storendet kode" + +#~ msgid "no description yet" +#~ msgstr "ingen beskrivelse endnu" + +#~ msgid "Use EABI" +#~ msgstr "Benyt EABI" + +#~ msgid "Don't use EABI" +#~ msgstr "Benyt ikke EABI" + +#~ msgid "Do not allow bit-fields to cross word boundaries" +#~ msgstr "Tillad ikke bitfelter at krydse ordgrnser" + +#~ msgid "Use alternate register names" +#~ msgstr "Benyt alternative registernavne" + +#~ msgid "Don't use alternate register names" +#~ msgstr "Benyt ikke alternative registernavne" + +#~ msgid "Link with libsim.a, libc.a and sim-crt0.o" +#~ msgstr "Sammenkd med libsim.a, libc.a og sim-crt0.o" + +#~ msgid "Link with libads.a, libc.a and crt0.o" +#~ msgstr "Sammenkd med libads.a, libc.a og crt0.o" + +#~ msgid "Link with libyk.a, libc.a and crt0.o" +#~ msgstr "Sammenkd med libyk.a, libc.a og crt0.o" + +#~ msgid "Link with libmvme.a, libc.a and crt0.o" +#~ msgstr "Sammenkd med libmvme.a, libc.a og crt0.o" + +#~ msgid "Set the PPC_EMB bit in the ELF flags header" +#~ msgstr "St PPC_EMB-bitten i ELF-tilvalgshovedet" + +#~ msgid "Use the WindISS simulator" +#~ msgstr "Benyt WindISS-simulatoren" + +#~ msgid "bad value for -mcall-%s" +#~ msgstr "ugyldig vrdi til -mcall-%s" + +#~ msgid "bad value for -msdata=%s" +#~ msgstr "ugyldig vrdi til -msdata=%s" + +#~ msgid "-mrelocatable and -msdata=%s are incompatible" +#~ msgstr "-mrelocatable og -msdata=%s er indbyrdes uforenelige" + +#~ msgid "-f%s and -msdata=%s are incompatible" +#~ msgstr "-f%s og -msdata=%s er indbyrdes uforenelige" + +#~ msgid "-msdata=%s and -mcall-%s are incompatible" +#~ msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige" + +#~ msgid "-mrelocatable and -mno-minimal-toc are incompatible" +#~ msgstr "-mrelocatable og -mno-minimal-toc er indbyrdes uforenelige" + +#~ msgid "-mrelocatable and -mcall-%s are incompatible" +#~ msgstr "-mrelocatable og -mcall-%s er indbyrdes uforenelige" + +#~ msgid "-fPIC and -mcall-%s are incompatible" +#~ msgstr "-fPIC og -mcall-%s er indbyrdes uforenelige" + +#~ msgid "-mcall-aixdesc must be big endian" +#~ msgstr "-mcall-aixdesc skal vre stor-endet" + +#~ msgid "invalid UNSPEC as operand (1)" +#~ msgstr "ugyldig UNSPEC som operand (1)" + +#~ msgid "invalid UNSPEC as operand (2)" +#~ msgstr "ugyldig UNSPEC som operand (2)" + +#~ msgid "UNKNOWN in s390_output_symbolic_const !?" +#~ msgstr "UNKNOWN i s390_output_symbolic_const !?" + +#~ msgid "Cannot decompose address." +#~ msgstr "Kan ikke adskille adresse." + +#~ msgid "UNKNOWN in print_operand !?" +#~ msgstr "UNKNOWN i print_operand !?" + +#~ msgid "Total size of local variables exceeds architecture limit." +#~ msgstr "Total strrelse af lokale variable overstiger arkitekturgrnsen." + +# RETMIG: hvad er backchain? +#~ msgid "Set backchain" +#~ msgstr "St backchain" + +#~ msgid "Don't set backchain (faster, but debug harder" +#~ msgstr "St ikke backchain (hurtigere, men svrere at fejlanalysere)" + +#~ msgid "Use bras for executable < 64k" +#~ msgstr "Benyt bras til krbar fil < 64k" + +#~ msgid "Don't use bras" +#~ msgstr "Benyt ikke bras" + +#~ msgid "Additional debug prints" +#~ msgstr "Udskriv ekstra fejlanalyseringsinfo" + +#~ msgid "Don't print additional debug prints" +#~ msgstr "Udskriv ikke ekstra fejlanalyseringsinfo" + +#~ msgid "64 bit mode" +#~ msgstr "64 bit-tilstand" + +#~ msgid "31 bit mode" +#~ msgstr "31 bit-tilstand" + +#~ msgid "mvcle use" +#~ msgstr "Benyt mvcle" + +#~ msgid "mvc&ex" +#~ msgstr "mvc&ex" + +#~ msgid "__builtin_saveregs not supported by this subtarget" +#~ msgstr "__builtin_saveregs understttes ikke af denne undermlarkitektur" + +#~ msgid "attribute interrupt_handler is not compatible with -m5-compact" +#~ msgstr "egenskaben interrupt_handler er ikke forenelig med -m5-compact" + +#~ msgid "`%s' attribute only applies to interrupt functions" +#~ msgstr "egenskaben '%s' kan kun anvendes sammen med afbrydelsesfunktioner" + +#~ msgid "`%s' attribute argument not a string constant" +#~ msgstr "parameteren til egenskaben '%s' er ikke en strengkonstant" + +#~ msgid "`%s' attribute argument not an integer constant" +#~ msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant" + +#~ msgid "Profiling is not supported on this target." +#~ msgstr "Profilering er ikke understttet p mlarkitekturen." + +#~ msgid "%s is not supported by this configuration" +#~ msgstr "%s understttes ikke af denne konfiguration" + +#~ msgid "-mlong-double-64 not allowed with -m64" +#~ msgstr "-mlong-double-64 er ikke tilladt med -m64" + +#~ msgid "-mcmodel= is not supported on 32 bit systems" +#~ msgstr "-mcmodel= understttes ikke p 32 bit-systemer" + +#~ msgid "invalid %%Y operand" +#~ msgstr "ugyldig %%Y-operand" + +#~ msgid "invalid %%A operand" +#~ msgstr "ugyldig %%A-operand" + +#~ msgid "invalid %%B operand" +#~ msgstr "ugyldig %%B-operand" + +#~ msgid "invalid %%c operand" +#~ msgstr "ugyldig %%c-operand" + +#~ msgid "invalid %%C operand" +#~ msgstr "ugyldig %%C-operand" + +#~ msgid "invalid %%d operand" +#~ msgstr "ugyldig %%d-operand" + +#~ msgid "invalid %%D operand" +#~ msgstr "ugyldig %%D-operand" + +#~ msgid "invalid %%f operand" +#~ msgstr "ugyldig %%f-operand" + +#~ msgid "invalid %%s operand" +#~ msgstr "ugyldig %%s-operand" + +#~ msgid "long long constant not a valid immediate operand" +#~ msgstr "long long-konstant er ikke en gyldig umiddelbar operand" + +#~ msgid "floating point constant not a valid immediate operand" +#~ msgstr "kommatalskonstant er ikke en gyldig umiddelbar operand" + +#~ msgid "Use 128 bit long doubles" +#~ msgstr "Benyt 128 bit long double" + +#~ msgid "Generate code for big endian" +#~ msgstr "Generr kode til storendet" + +#~ msgid "Generate code for little endian" +#~ msgstr "Generr kode til lilleendet" + +#~ msgid "Use little-endian byte order for data" +#~ msgstr "Benyt lilleendet byte-orden til data" + +#~ msgid "Assume possible double misalignment" +#~ msgstr "Antag at double-variabler kan vre ujusterede" + +#~ msgid "Assume all doubles are aligned" +#~ msgstr "Antag at alle double-variabler er justerede" + +#~ msgid "Pass -assert pure-text to linker" +#~ msgstr "Overbring -assert pure-text til sammenkderen" + +#~ msgid "Do not pass -assert pure-text to linker" +#~ msgstr "Overbring ikke -assert pure-text til sammenkderen" + +#~ msgid "Use flat register window model" +#~ msgstr "Benyt flad registervinduesmodel" + +#~ msgid "Do not use flat register window model" +#~ msgstr "Benyt ikke flad registervinduesmodel" + +#~ msgid "Use ABI reserved registers" +#~ msgstr "Benyt ABI-reserverede registre" + +#~ msgid "Do not use ABI reserved registers" +#~ msgstr "Benyt ikke ABI-reserverede registre" + +#~ msgid "Use hardware quad fp instructions" +#~ msgstr "Benyt hardware quad-kommatalsinstruktioner" + +#~ msgid "Do not use hardware quad fp instructions" +#~ msgstr "Benyt ikke hardware quad-kommatalsinstruktioner" + +#~ msgid "Compile for v8plus ABI" +#~ msgstr "Overst for v8plus-ABI" + +#~ msgid "Do not compile for v8plus ABI" +#~ msgstr "Overst ikke for v8plus-ABI" + +#~ msgid "Utilize Visual Instruction Set" +#~ msgstr "Benyt Visual Instruction Set" + +#~ msgid "Do not utilize Visual Instruction Set" +#~ msgstr "Benyt ikke Visual Instruction Set" + +#~ msgid "Optimize for Cypress processors" +#~ msgstr "Optimr for Cypress-processorer" + +#~ msgid "Optimize for SPARCLite processors" +#~ msgstr "Optimr for SPARCLite-processorer" + +#~ msgid "Optimize for F930 processors" +#~ msgstr "Optimr for F930-processorer" + +#~ msgid "Optimize for F934 processors" +#~ msgstr "Optimr for F934-processorer" + +#~ msgid "Use V8 SPARC ISA" +#~ msgstr "Benyt V8 SPARC ISA" + +#~ msgid "Optimize for SuperSPARC processors" +#~ msgstr "Optimr for SuperSPARC-processorer" + +#~ msgid "Pointers are 64-bit" +#~ msgstr "Henvisninger er 64 bit" + +#~ msgid "Pointers are 32-bit" +#~ msgstr "Henvisninger er 32 bit" + +#~ msgid "Use 32-bit ABI" +#~ msgstr "Benyt 32 bit-API" + +#~ msgid "Use 64-bit ABI" +#~ msgstr "Benyt 64 bit-API" + +#~ msgid "Use stack bias" +#~ msgstr "Benyt stakafst" + +#~ msgid "Do not use stack bias" +#~ msgstr "Benyt ikke stakafst" + +#~ msgid "Use structs on stronger alignment for double-word copies" +#~ msgstr "Benyt strukturer p strkere justering til dobbelt-ord kopier" + +#~ msgid "Do not use structs on stronger alignment for double-word copies" +#~ msgstr "Benyt ikke strukturer p strkere justering til dobbelt-ord kopier" + +#~ msgid "Optimize tail call instructions in assembler and linker" +#~ msgstr "Optimr halekaldsinstruktioner i maskinkodeoverstteren og sammenkderen" + +#~ msgid "Do not optimize tail call instructions in assembler or linker" +#~ msgstr "Optimr ikke halekaldsinstruktioner i maskinkodeoverstteren og sammenkderen" + +#~ msgid "Use given SPARC code model" +#~ msgstr "Benyt given SPARC-kodemodel" + +#~ msgid "cannot use va_start in interrupt function" +#~ msgstr "kan ikke bruge va_start i afbrydelsesfunktion" + +#~ msgid "`B' operand is not constant" +#~ msgstr "'B'-operanden er ikke konstant" + +#~ msgid "`B' operand has multiple bits set" +#~ msgstr "'B'-operanden har flere bit sat" + +#~ msgid "`o' operand is not constant" +#~ msgstr "'o'-operanden er ikke konstant" + +#~ msgid "xstormy16_print_operand: unknown code" +#~ msgstr "xstormy16_print_operand: ukendt kode" + +#~ msgid "switch statement of size %lu entries too large" +#~ msgstr "switch-stning med %lu elementer er for stor" + +#~ msgid "#pragma GHS endXXXX found without previous startXXX" +#~ msgstr "'#pragma GHS endXXXX' fundet uden forudgende 'startXXX'" + +#~ msgid "#pragma GHS endXXX does not match previous startXXX" +#~ msgstr "'#pragma GHS endXXXX' passer ikke med forudgende 'startXXX'" + +#~ msgid "cannot set interrupt attribute: no current function" +#~ msgstr "kan ikke stte afbrydelsesegenskaben: ingen aktuel funktion" + +#~ msgid "cannot set interrupt attribute: no such identifier" +#~ msgstr "kan ikke stte afbrydelsesegenskaben: intet sdant kaldenavn" + +#~ msgid "junk at end of #pragma ghs section" +#~ msgstr "ragelse i slutningen af '#pragma ghs section'" + +#~ msgid "unrecognized section name \"%s\"" +#~ msgstr "ukendt sektionsnavn \"%s\"" + +#~ msgid "malformed #pragma ghs section" +#~ msgstr "forkert udformet '#pragma ghs section'" + +#~ msgid "junk at end of #pragma ghs interrupt" +#~ msgstr "ragelse i slutningen af '#pragma ghs interrupt'" + +#~ msgid "junk at end of #pragma ghs starttda" +#~ msgstr "ragelse i slutningen af '#pragma ghs starttda'" + +#~ msgid "junk at end of #pragma ghs startsda" +#~ msgstr "ragelse i slutningen af '#pragma ghs startsda'" + +#~ msgid "junk at end of #pragma ghs startzda" +#~ msgstr "ragelse i slutningen af '#pragma ghs startzda'" + +#~ msgid "junk at end of #pragma ghs endtda" +#~ msgstr "ragelse i slutningen af '#pragma ghs endtda'" + +#~ msgid "junk at end of #pragma ghs endsda" +#~ msgstr "ragelse i slutningen af '#pragma ghs endsda'" + +#~ msgid "junk at end of #pragma ghs endzda" +#~ msgstr "ragelse i slutningen af '#pragma ghs endzda'" + +#~ msgid "%s=%s is not numeric" +#~ msgstr "%s=%s er ikke et tal" + +#~ msgid "%s=%s is too large" +#~ msgstr "%s=%s er for stor" + +#~ msgid "const_double_split got a bad insn:" +#~ msgstr "const_double_split modtog en ugyldig instruktion:" + +#~ msgid "output_move_single:" +#~ msgstr "output_move_single:" + +#~ msgid "a data area attribute cannot be specified for local variables" +#~ msgstr "en dataomrdeegenskab kan ikke angives for lokale variable" + +#~ msgid "data area of '%s' conflicts with previous declaration" +#~ msgstr "dataomrdet '%s' er i modstrid med tidligere erklring" + +#~ msgid "bogus JR construction: %d\n" +#~ msgstr "falsk JR-konstruktion: %d\n" + +#~ msgid "bad amount of stack space removal: %d" +#~ msgstr "ugyldig strrelse af stakpladsfjernelse: %d" + +#~ msgid "bogus JARL construction: %d\n" +#~ msgstr "falsk JARL-konstruktion: %d\n" + +#~ msgid "Bogus DISPOSE construction: %d\n" +#~ msgstr "Falsk DISPOSE-konstruktion: %d\n" + +#~ msgid "Too much stack space to dispose of: %d" +#~ msgstr "For meget stakplads at tage sig af: %d" + +#~ msgid "Bogus PREPEARE construction: %d\n" +#~ msgstr "Falsk PREPARE-konstruktion: %d\n" + +#~ msgid "Too much stack space to prepare: %d" +#~ msgstr "For meget stakplads at forberede: %d" + +#~ msgid "Support Green Hills ABI" +#~ msgstr "Understt Green Hills-ABI" + +#~ msgid "Prohibit PC relative function calls" +#~ msgstr "Forbyd PC-relative funktionskald" + +#~ msgid "Reuse r30 on a per function basis" +#~ msgstr "Genbrug r30 p et pr. funktionsgrundlag" + +#~ msgid "Use stubs for function prologues" +#~ msgstr "Benyt stubbe til funktionsindledninger" + +#~ msgid "Same as: -mep -mprolog-function" +#~ msgstr "Samme som: -mep -mprolog-function" + +#~ msgid "Enable backend debugging" +#~ msgstr "Aktivr bagendefejlanalyseringsinfo" + +#~ msgid "Compile for the v850 processor" +#~ msgstr "Overst for v850-processoren" + +#~ msgid "Compile for v850e processor" +#~ msgstr "Overst for v850e-processoren" + +#~ msgid "Enable the use of the short load instructions" +#~ msgstr "Aktivr brug af short load-instruktioner" + +#~ msgid "Do not use the callt instruction" +#~ msgstr "Benyt ikke callt-instruktionen" + +#~ msgid "Do not use registers r2 and r5" +#~ msgstr "Benyt ikke registrene r2 og r5" + +#~ msgid "Enforce strict alignment" +#~ msgstr "Gennemtving streng justering" + +#~ msgid "Use 4 byte entries in switch tables" +#~ msgstr "Benyt 4 byte-elementer i switch-tabeller" + +#~ msgid "Set the max size of data eligible for the TDA area" +#~ msgstr "Angiv den maks. strrelse af data til TDA-omrdet" + +#~ msgid "Set the max size of data eligible for the SDA area" +#~ msgstr "Angiv den maks. strrelse af data til SDA-omrdet" + +#~ msgid "Set the max size of data eligible for the ZDA area" +#~ msgstr "Angiv den maks. strrelse af data til ZDA-omrdet" + +#~ msgid "bad test" +#~ msgstr "ugyldig test" + +#~ msgid "boolean registers required for the floating-point option" +#~ msgstr "booleske registre er pkrvet til kommatalsindstillingen" + +#~ msgid "invalid mask" +#~ msgstr "ugyldig maske" + +#~ msgid "invalid address" +#~ msgstr "ugyldig adresse" + +#~ msgid "no register in address" +#~ msgstr "ingen registre i adresse" + +#~ msgid "address offset not a constant" +#~ msgstr "adresseafst er ikke en konstant" + +#~ msgid "only uninitialized variables can be placed in a .bss section" +#~ msgstr "kun variabler uden startvrdi kan placeres i .bss-sektionen" + +#~ msgid "Use the Xtensa code density option" +#~ msgstr "Benyt Xtensa-kodetthedsindstillingen" + +#~ msgid "Do not use the Xtensa code density option" +#~ msgstr "Benyt ikke Xtensa-kodetthedsindstillingen" + +#~ msgid "Use the Xtensa MAC16 option" +#~ msgstr "Benyt Xtensa-MAC16-indstillingen" + +#~ msgid "Do not use the Xtensa MAC16 option" +#~ msgstr "Benyt ikke Xtensa-MAC16-indstillingen" + +#~ msgid "Use the Xtensa MUL16 option" +#~ msgstr "Benyt Xtensa-MUL16-indstillingen" + +#~ msgid "Do not use the Xtensa MUL16 option" +#~ msgstr "Benyt ikke Xtensa-MUL16-indstillingen" + +#~ msgid "Use the Xtensa MUL32 option" +#~ msgstr "Benyt Xtensa-MUL32-indstillingen" + +#~ msgid "Do not use the Xtensa MUL32 option" +#~ msgstr "Benyt ikke Xtensa-MUL32-indstillingen" + +#~ msgid "Use the Xtensa NSA option" +#~ msgstr "Benyt Xtensa-NSA-indstillingen" + +#~ msgid "Do not use the Xtensa NSA option" +#~ msgstr "Benyt ikke Xtensa-NSA-indstillingen" + +#~ msgid "Use the Xtensa MIN/MAX option" +#~ msgstr "Benyt Xtensa-MIN/MAX-indstillingen" + +#~ msgid "Do not use the Xtensa MIN/MAX option" +#~ msgstr "Benyt ikke Xtensa-MIN/MAX-indstillingen" + +#~ msgid "Use the Xtensa SEXT option" +#~ msgstr "Benyt Xtensa-SEXT-indstillingen" + +#~ msgid "Do not use the Xtensa SEXT option" +#~ msgstr "Benyt ikke Xtensa-SEXT-indstillingen" + +#~ msgid "Use the Xtensa boolean register option" +#~ msgstr "Benyt Xtensa-indstillingen til booleske registre" + +#~ msgid "Do not use the Xtensa boolean register option" +#~ msgstr "Benyt ikke Xtensa-indstillingen til booleske registre" + +#~ msgid "Use the Xtensa floating-point unit" +#~ msgstr "Benyt kommatalsenheden til Xtensa" + +#~ msgid "Do not use the Xtensa floating-point unit" +#~ msgstr "Benyt ikke kommatalsenheden til Xtensa" + +#~ msgid "Disable fused multiply/add and multiply/subtract FP instructions" +#~ msgstr "Deaktivr sammensatte gang/addr- og gang/subtrahr-kommatalsinstruktioner" + +#~ msgid "Enable fused multiply/add and multiply/subtract FP instructions" +#~ msgstr "Aktivr sammensatte gang/addr- og gang/subtrahr-kommatalsinstruktioner" + +#~ msgid "Serialize volatile memory references with MEMW instructions" +#~ msgstr "Serialisr volatile hukommelsesreference med MEMW-instruktioner" + +#~ msgid "Do not serialize volatile memory references with MEMW instructions" +#~ msgstr "Serialisr ikke volatile hukommelsesreference med MEMW-instruktioner" + +#~ msgid "Intersperse literal pools with code in the text section" +#~ msgstr "Fordel konstanter med kode i tekstsektionen" + +#~ msgid "Put literal pools in a separate literal section" +#~ msgstr "Anbring konstanter i en adskilt konstantsektion" + +#~ msgid "Automatically align branch targets to reduce branch penalties" +#~ msgstr "Justr automatisk forgreningsml for at reducere forgreningsstraffe" + +#~ msgid "Do not automatically align branch targets" +#~ msgstr "Justr ikke automatisk forgreningsml" + +#~ msgid "Use indirect CALLXn instructions for large programs" +#~ msgstr "Benyt indirekte CALLXn-instruktioner for store programmer" + +#~ msgid "Use direct CALLn instructions for fast calls" +#~ msgstr "Benyt direkte CALLn-instruktioner for hurtige kald" + +#~ msgid "`-gnat' misspelled as `-gant'" +#~ msgstr "'-gnat' stavet forkert som '-gant'" + +#~ msgid "qualified type `%T' does not match destructor name `~%T'" +#~ msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'" + +#~ msgid "type of `%E' does not match destructor type `%T' (type was `%T')" +#~ msgstr "typen af '%E' passer ikke til destruktionsfunktionstypen '%T' (typen var '%T')" + +#~ msgid "`%D' is a namespace" +#~ msgstr "'%D' er et navnerum" + +#~ msgid "base object `%E' of scoped method call is of non-aggregate type `%T'" +#~ msgstr "stamobjektet '%E' fra metodekald forsynet med virkefelt er af en ikke-sammensat type '%T'" + +#~ msgid "unable to call pointer to member function here" +#~ msgstr "kan ikke kalde henvisning til medlemsfunktion her" + +#~ msgid "destructors take no parameters" +#~ msgstr "destruktionsfunktioner kan ikke have parametre" + +#~ msgid "destructor name `~%T' does not match type `%T' of expression" +#~ msgstr "destruktionsfunktionsnavn '~T' passer ikke med typen '%T' for udtrykket" + +#~ msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" +#~ msgstr "foresprgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'" + +#~ msgid "request for member `%D' is ambiguous" +#~ msgstr "foresprgsel efter medlemmet '%D' er tvetydigt" + +#~ msgid "%s %D(%T, %T, %T) " +#~ msgstr "%s %D(%T, %T, %T) " + +#~ msgid "%s %D(%T, %T) " +#~ msgstr "%s %D(%T, %T) " + +#~ msgid "%s %D(%T) " +#~ msgstr "%s %D(%T) " + +#~ msgid "%s %T " +#~ msgstr "%s %T " + +#~ msgid "%s %+#D%s" +#~ msgstr "%s %+#D%s" + +#~ msgid "conversion from `%T' to `%T' is ambiguous" +#~ msgstr "konvertering fra '%T' til '%T' er tvetydigt" + +#~ msgid "incomplete type '%T' cannot be used to name a scope" +#~ msgstr "ufuldstndig type '%T' kan ikke bruges til at navngive et virkefelt" + +#~ msgid "'%D' has no member named '%E'" +#~ msgstr "'%D' har intet medlem ved navn '%E'" + +#~ msgid "no matching function for call to `%D(%A)'" +#~ msgstr "ingen passende funktion for kald til '%D(%A)'" + +#~ msgid "call of overloaded `%D(%A)' is ambiguous" +#~ msgstr "kald af flertydig '%D(%A)' er tvetydigt" + +#~ msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" +#~ msgstr "henvisning til medlemsfunktionen %E kan ikke kaldes uden et objekt; overvej at benytte .* eller ->*" + +#~ msgid "no match for call to `(%T) (%A)'" +#~ msgstr "ingen passende fundet for kald til '(%T) (%A)'" + +#~ msgid "call of `(%T) (%A)' is ambiguous" +#~ msgstr "kald af '(%T) (%A)' er tvetydigt" + +#~ msgid "%s for `%T ? %T : %T' operator" +#~ msgstr "%s for operatoren '%T ? %T : %T'" + +#~ msgid "%s for `%T %s' operator" +#~ msgstr "%s for operatoren '%T %s' " + +#~ msgid "%s for `%T [%T]' operator" +#~ msgstr "%s for operatoren '%T [%T]'" + +#~ msgid "%s for `%T %s %T' operator" +#~ msgstr "%s for operatoren '%T %s %T'" + +#~ msgid "%s for `%s %T' operator" +#~ msgstr "%s for operatoren '%s %T'" + +#~ msgid "ISO C++ forbids omitting the middle term of a ?: expression" +#~ msgstr "ISO C++ forbyder udeladelse af den mellemste del af et ?:-udtryk" + +#~ msgid "`%E' has type `void' and is not a throw-expression" +#~ msgstr "'%E' har typen 'void' og er ikke et throw-udtryk" + +#~ msgid "operands to ?: have different types" +#~ msgstr "operander til ?: har forskellige typer" + +#~ msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" +#~ msgstr "enum-typer passer ikke sammen i betinget udtryk: '%T' og '%T'" + +#~ msgid "enumeral and non-enumeral type in conditional expression" +#~ msgstr "enum- og ikke enum-type i betinget udtryk" + +#~ msgid "`%D' must be declared before use" +#~ msgstr "'%D' skal erklres fr brug" + +#~ msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" +#~ msgstr "ingen '%D(int)' erklret for suffiks '%s', prver prfiksoperatoren i stedet" + +#~ msgid "using synthesized `%#D' for copy assignment" +#~ msgstr "bruger syntetiseret '%#D' for kopitildeling" + +#~ msgid " where cfront would use `%#D'" +#~ msgstr " hvor cfront ville bruge '%#D'" + +#~ msgid "comparison between `%#T' and `%#T'" +#~ msgstr "sammenligning mellem '%#T' og '%#T'" + +#~ msgid "no suitable `operator delete' for `%T'" +#~ msgstr "ingen passende 'operator delete' for '%T'" + +#~ msgid "`%+#D' is private" +#~ msgstr "'%+#D' er privat" + +#~ msgid "`%+#D' is protected" +#~ msgstr "'%+#D' er beskyttet" + +#~ msgid "`%+#D' is inaccessible" +#~ msgstr "'%+#D' er ikke tilgngelig" + +#~ msgid "within this context" +#~ msgstr "i denne kontekst" + +#~ msgid "invalid conversion from `%T' to `%T'" +#~ msgstr "ugyldig konvertering fra '%T' til '%T'" + +#~ msgid " initializing argument %P of `%D'" +#~ msgstr " ved klargring af parameteren %P til '%D'" + +#~ msgid " initializing argument %P of `%D' from result of `%D'" +#~ msgstr " ved klargring af parameteren %P til '%D' fra resultatet af '%D'" + +#~ msgid " initializing temporary from result of `%D'" +#~ msgstr " ved klargring af midlertidig variabel fra resultatet af '%D'" + +#~ msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" +#~ msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'; kald vil afbryde p krselstidspunktet" + +#~ msgid "cannot receive objects of non-POD type `%#T' through `...'" +#~ msgstr "kan ikke modtage objekter af en ikke-POD type '%#T' gennem '...'" + +#~ msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" +#~ msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer" + +#~ msgid "could not find class$ field in java interface type `%T'" +#~ msgstr "kunne ikke finde et class$-felt i Java-grnsefladetypen '%T'" + +#~ msgid "call to non-function `%D'" +#~ msgstr "kald af ikke-funktion '%D'" + +#~ msgid "no matching function for call to `%T::%D(%A)%#V'" +#~ msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'" + +#~ msgid "cannot call member function `%D' without object" +#~ msgstr "kan ikke kalde medlemsfunktionen '%D' uden et objekt" + +#~ msgid "passing `%T' chooses `%T' over `%T'" +#~ msgstr "videregivelse af '%T' vlger '%T' frem for '%T'" + +#~ msgid " in call to `%D'" +#~ msgstr " i kald af '%D'" + +#~ msgid "choosing `%D' over `%D'" +#~ msgstr "vlger '%D' frem for '%D'" + +#~ msgid " for conversion from `%T' to `%T'" +#~ msgstr " for konvertering fra '%T' til '%T'" + +#~ msgid " because conversion sequence for the argument is better" +#~ msgstr " fordi konverteringssekvensen for parameteren er bedre" + +#~ msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter" +#~ msgstr "iflge ISO C++ er '%D' og '%D' tvetydigt selvom den vrste konvertering for frstnvnte er bedre end den vrste konvertering for den sidstnvnte" + +#~ msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'" +#~ msgstr "kan ikke konvertere fra stamklassen '%T' til den nedarvede type '%T' via den virtuelle stamklasse '%T'" + +#~ msgid "`%#D' and `%#D' cannot be overloaded" +#~ msgstr "'%#D' og '%#D' kan ikke flertydiggres" + +#~ msgid "duplicate enum value `%D'" +#~ msgstr "enum-vrdien '%D' optrder mere end n gang" + +#~ msgid "duplicate field `%D' (as enum and non-enum)" +#~ msgstr "feltet '%D' optrder mere end n gang (som enum og som ikke-enum)" + +#~ msgid "duplicate nested type `%D'" +#~ msgstr "den indlejrede type '%D' optrder mere end n gang" + +#~ msgid "duplicate field `%D' (as type and non-type)" +#~ msgstr "feltet '%D' optrder mere end n gang (som type og som ikke-type)" + +#~ msgid "duplicate member `%D'" +#~ msgstr "medlemmet '%D' optrder mere end n gang" + +#~ msgid "conflicting access specifications for method `%D', ignored" +#~ msgstr "modstridende tilgangsanvisninger til metoden '%D', ignoreret" + +#~ msgid "conflicting access specifications for field `%s', ignored" +#~ msgstr "modstridende tilgangsanvisninger til feltet '%s', ignoreret" + +#~ msgid "`%D' names constructor" +#~ msgstr "'%D' navngiver en konstruktionsfunktion" + +#~ msgid "`%D' invalid in `%T'" +#~ msgstr "'%D' ugyldig i '%T'" + +#~ msgid "no members matching `%D' in `%#T'" +#~ msgstr "ingen medlemmer passer til '%D' i '%#T'" + +#~ msgid "`%D' invalid in `%#T'" +#~ msgstr "'%D' ugyldig i '%#T'" + +#~ msgid " because of local method `%#D' with same name" +#~ msgstr " p grund af den lokale metode '%#D' med det samme navn" + +#~ msgid " because of local member `%#D' with same name" +#~ msgstr " p grund af det lokale medlem '%#D' med det samme navn" + +#~ msgid "base class `%#T' has a non-virtual destructor" +#~ msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion" + +#~ msgid "base `%T' with only non-default constructor in class without a constructor" +#~ msgstr "stamklasse '%T' med kun ikke-standardkonstruktionsfunktion i klasse uden en konstruktionsfunktion" + +#~ msgid "all member functions in class `%T' are private" +#~ msgstr "alle medlemsfunktioner i klassen '%T' er private" + +#~ msgid "`%#T' only defines a private destructor and has no friends" +#~ msgstr "'%#T' definerer kun en privat destruktionsfunktion og har ingen venner" + +#~ msgid "`%#T' only defines private constructors and has no friends" +#~ msgstr "'%#T' definerer kun private konstruktionsfunktioner og har ingen venner" + +#~ msgid "redefinition of `%#T'" +#~ msgstr "omdefinering af '%#T'" + +#~ msgid "previous definition of `%#T'" +#~ msgstr "tidligere definition af '%#T'" + +# %D er en funktion +#~ msgid "no unique final overrider for `%D' in `%T'" +#~ msgstr "ingen unik endelig overskrivning af '%D' i '%T'" + +#~ msgid "`%D' was hidden" +#~ msgstr "'%D' var skjult" + +#~ msgid " by `%D'" +#~ msgstr " af '%D'" + +#~ msgid "ISO C++ forbids member `%D' with same name as enclosing class" +#~ msgstr "ISO C++ forbyder medlemmet '%D' med samme navn som den omgivende klasse" + +#~ msgid "`%#D' invalid; an anonymous union can only have non-static data members" +#~ msgstr "'%#D' er ugyldig; en anonym union kan kun have ikke-statiske datamedlemmer" + +#~ msgid "private member `%#D' in anonymous union" +#~ msgstr "privat medlem '%#D' i en anonym union" + +#~ msgid "protected member `%#D' in anonymous union" +#~ msgstr "beskyttet medlem '%#D' i en anonym union" + +#~ msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" +#~ msgstr "vtable-layout for klassen '%T' flger ikke ndvendigvis ABI'et og kan ndre sig i en fremtidig version af GCC pga. underforstet virtuel destruktionsfunktion" + +#~ msgid "bit-field `%#D' with non-integral type" +#~ msgstr "bitfelt '%#D' med en ikke-heltalstype" + +#~ msgid "bit-field `%D' width not an integer constant" +#~ msgstr "bredden af bitfeltet '%D' er ikke en heltalskonstant" + +#~ msgid "negative width in bit-field `%D'" +#~ msgstr "negativ bredde i bitfeltet '%D'" + +#~ msgid "zero width for bit-field `%D'" +#~ msgstr "en bredde p nul for bitfeltet '%D'" + +#~ msgid "width of `%D' exceeds its type" +#~ msgstr "bredden af '%D' overstiger typen" + +#~ msgid "`%D' is too small to hold all values of `%#T'" +#~ msgstr "'%D' er for lille til at indeholde alle vrdierne af '%#T'" + +#~ msgid "member `%#D' with constructor not allowed in union" +#~ msgstr "medlemmet '%#D' med en konstruktionsfunktion er ikke tilladt i en union" + +#~ msgid "member `%#D' with destructor not allowed in union" +#~ msgstr "medlemmet '%#D' med en destruktionsfunktion er ikke tilladt i en union" + +#~ msgid "member `%#D' with copy assignment operator not allowed in union" +#~ msgstr "medlemmet '%#D' med en kopitildelingsoperator er ikke tilladt i en union" + +#~ msgid "multiple fields in union `%T' initialized" +#~ msgstr "flere felter i union '%T' tildeles startvrdi" + +#~ msgid "field `%D' in local class cannot be static" +#~ msgstr "feltet '%D' i lokal klasse kan ikke vre statisk" + +#~ msgid "field `%D' invalidly declared function type" +#~ msgstr "feltet '%D' er p ugyldig vis erklret som en funktionstype" + +#~ msgid "field `%D' invalidly declared method type" +#~ msgstr "feltet '%D' er p ugyldig vis erklret som en medlemsfunktionstype" + +#~ msgid "field `%D' invalidly declared offset type" +#~ msgstr "feltet '%D' er p ugyldig vis erklret som en afstandstype" + +#~ msgid "field `%D' declared static in union" +#~ msgstr "feltet '%D' er erklret statisk i union" + +#~ msgid "non-static reference `%#D' in class without a constructor" +#~ msgstr "ikke-statisk reference '%#D' i klasse uden en konstruktionsfunktion" + +#~ msgid "non-static const member `%#D' in class without a constructor" +#~ msgstr "ikke-statisk konstant medlem '%#D' i klasse uden en konstruktionsfunktion" + +#~ msgid "field `%#D' with same name as class" +#~ msgstr "felt '%#D' med samme navn som klassen" + +#~ msgid "`%#T' has pointer data members" +#~ msgstr "'%#T' har henvisningsdatamedlemmer" + +#~ msgid " but does not override `%T(const %T&)'" +#~ msgstr " men overskriver ikke '%T(const %T&)'" + +#~ msgid " or `operator=(const %T&)'" +#~ msgstr " eller 'operator=(const %T&)'" + +#~ msgid " but does not override `operator=(const %T&)'" +#~ msgstr " men overskriver ikke 'operator=(const %T&)'" + +#~ msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" +#~ msgstr "afsttet for tom stamklasse '%T' flger ikke ndvendigvis ABI'en og kan ndre sig i en fremtidig version af GCC" + +#~ msgid "class `%T' will be considered nearly empty in a future version of GCC" +#~ msgstr "klassen '%T' vil blive betragtet som nsten tom i en fremtidig version af GCC" + +#~ msgid "initializer specified for non-virtual method `%D'" +#~ msgstr "startvrdi angivet for ikke-virtuel medlemsfunktion '%D'" + +#~ msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" +#~ msgstr "afsttet for virtuel stamklasse '%T' flger ikke ABI'en og kan ndre sig i en fremtidig version af GCC" + +#~ msgid "direct base `%T' inaccessible in `%T' due to ambiguity" +#~ msgstr "direkte stamklasse '%T' er ikke tilgngelig i '%T' p grund af tvetydighed" + +#~ msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" +#~ msgstr "virtuel stamklasse '%T' er ikke tilgngelig i '%T' p grund af tvetydighed" + +#~ msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" +#~ msgstr "strrelsen der bliver tildelt '%T' flger ikke ndvendigvis ABI'en og kan ndre sig i en fremtidig version af GCC" + +#~ msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" +#~ msgstr "afsttet for '%D' flger ikke ABI'en og kan ndre sig i en fremtidig version af GCC" + +#~ msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" +#~ msgstr "'%D' indeholder tomme klasser hvad der kan f stamklasser til at blive placeret andre steder i en fremtidig version af GCC" + +#~ msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" +#~ msgstr "layoutet af klasser der nedarver fra den tomme klasse '%T' kan ndre sig i en fremtidig version af GCC" + +#~ msgid "`%#T' has virtual functions but non-virtual destructor" +#~ msgstr "'%#T' har virtuelle funktioner, men ikke-virtuel destruktionsfunktion" + +#~ msgid "trying to finish struct, but kicked out due to previous parse errors" +#~ msgstr "forsgte at afslutte struct, men blev stoppet af tidligere fortolkningsfejl" + +#~ msgid "language string `\"%s\"' not recognized" +#~ msgstr "sprogstrengen '\"%s\"' ikke genkendt" + +#~ msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" +#~ msgstr "kan ikke benytte den flertydiggjorte funktion '%D' baseret p konvertering til typen '%T'" + +#~ msgid "no matches converting function `%D' to type `%#T'" +#~ msgstr "ingen passende ved konvertering af funktionen '%D' til typen '%#T'" + +#~ msgid "converting overloaded function `%D' to type `%#T' is ambiguous" +#~ msgstr "konvertering af den flertydiggjorte funktion '%D' til typen '%T' er tvetydig" + +#~ msgid "assuming pointer to member `%D'" +#~ msgstr "antager henvisning til medlemmet '%D'" + +#~ msgid "(a pointer to member can only be formed with `&%E')" +#~ msgstr "(en henvisning til medlem kan kun dannes med '&%E')" + +#~ msgid "not enough type information" +#~ msgstr "ikke tilstrkkelig information om typen" + +#~ msgid "argument of type `%T' does not match `%T'" +#~ msgstr "parameter af typen '%T' passer ikke til '%T'" + +#~ msgid "invalid operation on uninstantiated type" +#~ msgstr "ugyldig operation p uudskiftet type" + +#~ msgid "declaration of `%#D'" +#~ msgstr "omerklring af '%#D'" + +#~ msgid "changes meaning of `%D' from `%+#D'" +#~ msgstr "skifter betydningen af '%D' fra '%+#D'" + +#~ msgid "can't convert from incomplete type `%T' to `%T'" +#~ msgstr "kan ikke konvertere fra ufuldstndig type '%T' til '%T'" + +#~ msgid "conversion of `%E' from `%T' to `%T' is ambiguous" +#~ msgstr "konvertering af '%E' fra '%T' til '%T' er tvetydigt" + +#~ msgid "converting from `%T' to `%T'" +#~ msgstr "konvertering fra '%T' til '%T'" + +#~ msgid "pointer to member cast from `%T' to `%T' is via virtual base" +#~ msgstr "typekonvertering af henvisning til medlem fra '%T' til '%T' er via virtuel stamklasse" + +#~ msgid "cannot convert `%E' from type `%T' to type `%T'" +#~ msgstr "kan ikke konvertere '%E' fra typen '%T' til typen '%T'" + +#~ msgid "invalid conversion from '%T' to '%T'" +#~ msgstr "ugyldig konvertering fra '%T' til '%T'" + +#~ msgid "conversion from `%T' to `%T' discards qualifiers" +#~ msgstr "konvertering fra '%T' til '%T' forkaster modifikationer" + +#~ msgid "casting `%T' to `%T' does not dereference pointer" +#~ msgstr "typeomtvingning af '%T' til '%T' flger ikke henvisning" + +#~ msgid "cannot convert type `%T' to type `%T'" +#~ msgstr "kan ikke konvertere typen '%T' til typen '%T'" + +#~ msgid "conversion from `%#T' to `%#T'" +#~ msgstr "konvertering fra '%#T' til '%#T'" + +#~ msgid "`%#T' used where a `%T' was expected" +#~ msgstr "'%#T' benyttet hvor '%T' var forventet" + +#~ msgid "the address of `%D', will always be `true'" +#~ msgstr "adressen af '%D' vil altid vre 'true'" + +#~ msgid "`%#T' used where a floating point value was expected" +#~ msgstr "'%#T' benyttet hvor der forventedes en kommatalsvrdi" + +#~ msgid "conversion from `%T' to non-scalar type `%T' requested" +#~ msgstr "konvertering fra '%T' til en ikke-skalartype '%T' udbedt" + +#~ msgid "object of incomplete type `%T' will not be accessed in %s" +#~ msgstr "objekt af den ufuldstndige type '%T' vil ikke blive tilget i %s" + +#~ msgid "object of type `%T' will not be accessed in %s" +#~ msgstr "objekt af typen '%T' vil ikke blive tilget i %s" + +#~ msgid "object `%E' of incomplete type `%T' will not be accessed in %s" +#~ msgstr "objektet '%E' af den ufuldstndige type '%T' vil ikke blive tilget i %s" + +#~ msgid "%s cannot resolve address of overloaded function" +#~ msgstr "%s kan ikke finde adressen af flertydiggjort funktion" + +#~ msgid "%s is a reference, not call, to function `%E'" +#~ msgstr "%s er en reference til og ikke et kald af funktionen '%E'" + +#~ msgid "ambiguous default type conversion from `%T'" +#~ msgstr "tvetydig standardtypekonvertering fra '%T'" + +#~ msgid " candidate conversions include `%D' and `%D'" +#~ msgstr " kandidater til konverteringen inkluderer '%D' og '%D'" + +#~ msgid "conflicts with previous declaration `%#D'" +#~ msgstr "strider mod tidligere erklring '%#D'" + +#~ msgid "label `%D' used but not defined" +#~ msgstr "etiketten '%D' er benyttet, men ikke defineret" + +#~ msgid "label `%D' defined but not used" +#~ msgstr "etiketten '%D' er defineret, men ikke benyttet" + +#~ msgid "namespace alias `%D' not allowed here, assuming `%D'" +#~ msgstr "navnerumsalias '%D' er ikke tilladt her, antager '%D'" + +#~ msgid "previous declaration of `%D'" +#~ msgstr "'%D' er tidligere erklret" + +#~ msgid "shadowing %s function `%#D'" +#~ msgstr "skygger for en %s-funktion '%#D'" + +#~ msgid "library function `%#D' redeclared as non-function `%#D'" +#~ msgstr "biblioteksfunktionen '%#D' er omerklret som '%#D' der ikke er en funktion" + +#~ msgid "conflicts with built-in declaration `%#D'" +#~ msgstr "strider mod indbygget erklring '%#D'" + +# flges af nste tekst +#~ msgid "new declaration `%#D'" +#~ msgstr "ny erklring af '%#D'" + +#~ msgid "ambiguates built-in declaration `%#D'" +#~ msgstr "tvetydiggr indbygget erklring '%#D'" + +#~ msgid "`%#D' redeclared as different kind of symbol" +#~ msgstr "'%#D' omerklret som en anden form for symbol" + +#~ msgid "previous declaration of `%#D'" +#~ msgstr "tidligere erklring af '%#D'" + +#~ msgid "declaration of template `%#D'" +#~ msgstr "erklring af skabelon '%#D'" + +#~ msgid "ambiguates old declaration `%#D'" +#~ msgstr "tvetydiggr tidligere erklring '%#D'" + +#~ msgid "declaration of C function `%#D' conflicts with" +#~ msgstr "erklring af C-funktionen '%#D' strider mod" + +#~ msgid "previous declaration `%#D' here" +#~ msgstr "tidligere erklring af '%#D' her" + +#~ msgid "conflicting types for `%#D'" +#~ msgstr "modstridende typer for '%#D'" + +#~ msgid "previous declaration as `%#D'" +#~ msgstr "tidligere erklring som '%#D'" + +#~ msgid "`%#D' previously defined here" +#~ msgstr "'%#D' tidligere defineret her" + +#~ msgid "`%#D' previously declared here" +#~ msgstr "'%#D' tidligere erklret her" + +#~ msgid "prototype for `%#D'" +#~ msgstr "prototypen for '%#D'" + +#~ msgid "follows non-prototype definition here" +#~ msgstr "flger definition uden prototype her" + +#~ msgid "previous declaration of `%#D' with %L linkage" +#~ msgstr "tidligere erklring af '%#D' med %L-kdning" + +#~ msgid "conflicts with new declaration with %L linkage" +#~ msgstr "strider mod ny erklring af med %L-kdning" + +#~ msgid "default argument given for parameter %d of `%#D'" +#~ msgstr "standardparameter givet til %d. parameter for '%#D'" + +#~ msgid "after previous specification in `%#D'" +#~ msgstr "efter tidligere specifikation i '%#D'" + +#~ msgid "`%#D' was used before it was declared inline" +#~ msgstr "'%#D' blev brugt fr erklring som inline" + +#~ msgid "previous non-inline declaration here" +#~ msgstr "tidligere ikke-inline erklring her" + +#~ msgid "redundant redeclaration of `%D' in same scope" +#~ msgstr "overfldig omerklring af '%D' i samme virkefelt" + +#~ msgid "declaration of `%F' throws different exceptions" +#~ msgstr "erklring af '%F' kaster forskellige undtagelser" + +#~ msgid "than previous declaration `%F'" +#~ msgstr "end tidligere erklring '%F'" + +#~ msgid "explicit specialization of %D after first use" +#~ msgstr "eksplicit specialisering af %D efter frste brug" + +#~ msgid "`%#D' used prior to declaration" +#~ msgstr "'%#D' benyttet fr erklring" + +#~ msgid "redeclaration of `wchar_t' as `%T'" +#~ msgstr "omerklring af 'wchar_t' som '%T'" + +#~ msgid "invalid redeclaration of `%D'" +#~ msgstr "ugyldig omerklring af '%D'" + +#~ msgid "as `%D'" +#~ msgstr "som '%D'" + +#~ msgid "previous external decl of `%#D'" +#~ msgstr "tidligere ekstern erklring af '%#D'" + +#~ msgid "`%D' was previously implicitly declared to return `int'" +#~ msgstr "'%D' blev tidligere underforstet erklret til at returnere 'int'" + +#~ msgid "extern declaration of `%#D' doesn't match" +#~ msgstr "extern-erklring af '%#D' passer ikke med" + +#~ msgid "global declaration `%#D'" +#~ msgstr "global erklring '%#D'" + +#~ msgid "declaration of `%#D' shadows a parameter" +#~ msgstr "erklring af '%#D' skygger for en parameter" + +#~ msgid "declaration of `%s' shadows a member of `this'" +#~ msgstr "erklring af '%s' skygger for et medlem af 'this'" + +#~ msgid "`%#D' hides constructor for `%#T'" +#~ msgstr "'%#D' skjuler konstruktionsfunktion for '%#T'" + +#~ msgid "`%#D' conflicts with previous using declaration `%#D'" +#~ msgstr "'%#D' strider mod tidligere using-erklring '%#D'" + +#~ msgid "previous non-function declaration `%#D'" +#~ msgstr "tidligere ikke-funktionserklring '%#D'" + +#~ msgid "conflicts with function declaration `%#D'" +#~ msgstr "strider mod funktionserklring '%#D'" + +#~ msgid "implicit declaration of function `%#D'" +#~ msgstr "underforstet erklring af funktionen '%#D'" + +#~ msgid "label `%s' referenced outside of any function" +#~ msgstr "der er blevet henvist til etiketten '%s' uden for en funktion" + +#~ msgid "jump to label `%D'" +#~ msgstr "spring til etiketten '%D' " + +#~ msgid "jump to case label" +#~ msgstr "spring til case-etiket" + +#~ msgid " crosses initialization of `%#D'" +#~ msgstr " krydser klargring af '%#D'" + +#~ msgid " enters scope of non-POD `%#D'" +#~ msgstr " gr ind i virkefelt af ikke-POD '%#D'" + +#~ msgid " enters try block" +#~ msgstr " gr ind i try-blok" + +#~ msgid " enters catch block" +#~ msgstr " gr ind i catch-blok" + +#~ msgid " from here" +#~ msgstr " herfra" + +#~ msgid " skips initialization of `%#D'" +#~ msgstr " springer over klargring af '%#D'" + +#~ msgid "label named wchar_t" +#~ msgstr "etiket med navnet wchar_t" + +#~ msgid "duplicate label `%D'" +#~ msgstr "etiketten '%D' optrder mere end n gang" + +#~ msgid "case label `%E' not within a switch statement" +#~ msgstr "case-etiket '%E' befinder sig ikke inden i en switch-stning" + +#~ msgid "`%#D' redeclared as %C" +#~ msgstr "'%#D' omerklret som %C" + +#~ msgid "invalid use of `%D'" +#~ msgstr "ugyldig brug af '%D" + +#~ msgid "`%D::%D' is not a template" +#~ msgstr "'%D::%D' er ikke en skabelon" + +#~ msgid "`%D' undeclared in namespace `%D'" +#~ msgstr "'%D' ikke erklret i navnerummet '%D'" + +#~ msgid "`%D' used without template parameters" +#~ msgstr "'%D' benyttet uden skabelonsparametre" + +#~ msgid "no class template named `%#T' in `%#T'" +#~ msgstr "ingen klasseskabelon ved navn '%#T' i '%#T'" + +#~ msgid "no type named `%#T' in `%#T'" +#~ msgstr "ingen type ved navn '%#T' i '%#T'" + +#~ msgid "lookup of `%D' finds `%#D'" +#~ msgstr "opslag af '%D' finder '%#D'" + +#~ msgid " instead of `%D' from dependent base class" +#~ msgstr " i stedet for '%D' fra afhngig stamklasse" + +#~ msgid " (use `typename %T::%D' if that's what you meant)" +#~ msgstr " (benyt 'typename %T::%D' hvis det er hvad du mener)" + +#~ msgid "name lookup of `%D' changed" +#~ msgstr "navneopslag for '%D' ndret" + +#~ msgid " matches this `%D' under ISO standard rules" +#~ msgstr " passer med '%D' under ISO-standardreglerne" + +#~ msgid " matches this `%D' under old rules" +#~ msgstr " passer med '%D' under tidligere regler" + +#~ msgid "name lookup of `%D' changed for new ISO `for' scoping" +#~ msgstr "navneopslaget af '%D' er ndret til ISO 'for'-virkefelt" + +#~ msgid " cannot use obsolete binding at `%D' because it has a destructor" +#~ msgstr " kan ikke bruge forldet binding til '%D' fordi den har en destruktionsfunktion" + +#~ msgid " using obsolete binding at `%D'" +#~ msgstr " bruger forldet binding til '%D'" + +#~ msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')" +#~ msgstr "opslag af '%D' i virkefeltet for '%#T' ('%#D') passer ikke med opslaget i det aktuelle virkefelt ('%#D')" + +#~ msgid "an anonymous union cannot have function members" +#~ msgstr "en anonym union kan ikke have funktionsmedlemmer" + +#~ msgid "member %#D' with constructor not allowed in anonymous aggregate" +#~ msgstr "medlemmet '%#D' med konstruktionsfunktion er ikke tilladt i anonym sammensat type" + +#~ msgid "member %#D' with destructor not allowed in anonymous aggregate" +#~ msgstr "medlemmet '%#D' med destruktionsfunktion er ikke tilladt i anonym sammensat type" + +#~ msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" +#~ msgstr "medlemmet '%#D' med kopitildelingsoperator er ikke tilladt i anonym sammensat type" + +#~ msgid "redeclaration of C++ built-in type `%T'" +#~ msgstr "omerklring af indbygget type i C++ '%T'" + +#~ msgid "multiple types in one declaration" +#~ msgstr "flere typer i n erklring" + +#~ msgid "missing type-name in typedef-declaration" +#~ msgstr "manglende typenavn i typedef-erklring" + +#~ msgid "ISO C++ prohibits anonymous structs" +#~ msgstr "ISO C++ forbyder anonyme strukturer" + +#~ msgid "`%D' can only be specified for functions" +#~ msgstr "'%D' kan kun angives for funktioner" + +#~ msgid "`%D' can only be specified inside a class" +#~ msgstr "'%D' kan kun angives inden i en klasse" + +#~ msgid "`%D' can only be specified for constructors" +#~ msgstr "'%D' kan kun angives for konstruktionsfunktioner" + +#~ msgid "`%D' can only be specified for objects and functions" +#~ msgstr "'%D' kan kun angives for objekter og funktioner" + +# init dkker over vrditildeling her - samme for de nste mange +#~ msgid "typedef `%D' is initialized (use __typeof__ instead)" +#~ msgstr "typedef '%D' bliver tildelt en vrdi (benyt __typeof__ i stedet)" + +#~ msgid "function `%#D' is initialized like a variable" +#~ msgstr "funktionen '%#D' bliver tildelt en startvrdi som en variabel" + +#~ msgid "declaration of `%#D' has `extern' and is initialized" +#~ msgstr "erklringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startvrdi" + +#~ msgid "`%#D' is not a static member of `%#T'" +#~ msgstr "'%#D' er ikke et statisk medlem af '%#T'" + +#~ msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" +#~ msgstr "ISO C++ tillader ikke '%T::%D' at blive defineret som '%T::%D'" + +#~ msgid "duplicate initialization of %D" +#~ msgstr "%D tildelt startvrdi mere end n gang" + +#~ msgid "declaration of `%#D' outside of class is not definition" +#~ msgstr "erklring af '%#D' uden for en klasse er ikke en definition" + +#~ msgid "variable `%#D' has initializer but incomplete type" +#~ msgstr "variablen '%#D' bliver tildelt en startvrdi, men er af en ufuldstndig type" + +#~ msgid "elements of array `%#D' have incomplete type" +#~ msgstr "elementer i tabellen '%#D' er af en ufuldstndig type" + +#~ msgid "aggregate `%#D' has incomplete type and cannot be defined" +#~ msgstr "den sammensatte type '%#D' er af en ufuldstndig type og kan ikke defineres" + +#~ msgid "`%D' declared as reference but not initialized" +#~ msgstr "'%D' erklret som en reference, men bliver ikke tildelt en startvrdi" + +#~ msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" +#~ msgstr "ISO C++ forbyder brug af en startvrdiliste til at klargre referencen '%D'" + +#~ msgid "cannot initialize `%T' from `%T'" +#~ msgstr "kan ikke klargre '%T' fra %T'" + +#~ msgid "initializer fails to determine size of `%D'" +#~ msgstr "startvrdien giver ikke strrelsen af '%D'" + +#~ msgid "array size missing in `%D'" +#~ msgstr "tabelstrrelsen mangler i '%D'" + +#~ msgid "zero-size array `%D'" +#~ msgstr "nulstrrelsestabel '%D'" + +#~ msgid "storage size of `%D' isn't known" +#~ msgstr "lagringsstrrelsen af '%D' er ikke kendt" + +#~ msgid "storage size of `%D' isn't constant" +#~ msgstr "lagringsstrrelsen af '%D' er ikke konstant" + +#~ msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" +#~ msgstr "semantikken for indlejret funktionsstatisk data '%#D' er forkert (du ender med flere kopier)" + +#~ msgid " you can work around this by removing the initializer" +#~ msgstr " du kan arbejde dig rundt om dette ved at fjerne startvrdien" + +#~ msgid "uninitialized const `%D'" +#~ msgstr "konstant '%D' uden startvrdi" + +#~ msgid "brace-enclosed initializer used to initialize `%T'" +#~ msgstr "startvrdi i krllede paranteser benyttet til at klargre '%T'" + +#~ msgid "initializer for `%T' must be brace-enclosed" +#~ msgstr "startvrdi for '%T' skal vre indesluttet i krllede paranteser" + +#~ msgid "ISO C++ does not allow designated initializers" +#~ msgstr "ISO C++ tillader ikke udpegede startvrdier" + +#~ msgid "`%T' has no non-static data member named `%D'" +#~ msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'" + +#~ msgid "too many initializers for `%T'" +#~ msgstr "for mange startvrdier for '%T'" + +#~ msgid "variable-sized object `%D' may not be initialized" +#~ msgstr "objektet '%D' af variabel strrelse m ikke tildeles en startvrdi" + +#~ msgid "`%D' has incomplete type" +#~ msgstr "'%D' er af en ufuldstndig type" + +#~ msgid "`%D' must be initialized by constructor, not by `{...}'" +#~ msgstr "'%D' skal klargres af en konstruktionsfunktion, ikke af '{...}'" + +#~ msgid "structure `%D' with uninitialized const members" +#~ msgstr "struktur '%D' med konstante medlemmer uden startvrdi" + +#~ msgid "structure `%D' with uninitialized reference members" +#~ msgstr "struktur '%D' med referencemedlemmer uden startvrdi" + +#~ msgid "assignment (not initialization) in declaration" +#~ msgstr "tildeling (ikke klargring) i erklring" + +#~ msgid "cannot initialize `%D' to namespace `%D'" +#~ msgstr "kan ikke tildele startvrdi til '%D' med navnerummet '%D'" + +#~ msgid "shadowing previous type declaration of `%#D'" +#~ msgstr "skygger for tidligere typeerklring af '%#D'" + +#~ msgid "`%D' cannot be thread-local because it has non-POD type `%T'" +#~ msgstr "'%D' kan ikke vre trdlokal eftersom den er af en ikke-POD type '%T'" + +#~ msgid "`%D' is thread-local and so cannot be dynamically initialized" +#~ msgstr "'%D' er trdlokal og kan derfor ikke blive tildelt en startvrdi dynamisk" + +#~ msgid "multiple initializations given for `%D'" +#~ msgstr "flere startvrdier angivet for '%D'" + +#~ msgid "invalid catch parameter" +#~ msgstr "ugyldig catch-parameter" + +#~ msgid "destructor for alien class `%T' cannot be a member" +#~ msgstr "destruktionsfunktionen for den fremmede klasse '%T' kan ikke vre et medlem" + +#~ msgid "constructor for alien class `%T' cannot be a member" +#~ msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke vre et medlem" + +#~ msgid "`%D' declared as a `virtual' %s" +#~ msgstr "'%D' erklret som 'virtual' %s" + +#~ msgid "`%D' declared as an `inline' %s" +#~ msgstr "'%D' erklret som 'inline' %s" + +# %s bliver omsat til typen +#~ msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" +#~ msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklring af %s" + +#~ msgid "`%D' declared as a friend" +#~ msgstr "'%D' er erklret som en ven" + +#~ msgid "`%D' declared with an exception specification" +#~ msgstr "'%D' erklret med en undtagelsesspecifikation" + +#~ msgid "cannot declare `::main' to be a template" +#~ msgstr "kan ikke erklre '::main' som en skabelon" + +#~ msgid "cannot declare `::main' to be inline" +#~ msgstr "kan ikke erklre '::main' som indlejret" + +#~ msgid "cannot declare `::main' to be static" +#~ msgstr "kan ikke erklre '::main' som statisk" + +#~ msgid "`main' must return `int'" +#~ msgstr "'main' skal returnere typen 'int'" + +#~ msgid "non-local function `%#D' uses anonymous type" +#~ msgstr "ikke-lokal funktion '%#D' bruger anonym type" + +#~ msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" +#~ msgstr "'%#D' refererer ikke til den ikkemodificerede type, so den bruges ikke til sammenkdning" + +#~ msgid "non-local function `%#D' uses local type `%T'" +#~ msgstr "ikke-lokal funktion '%#D' bruger lokal type '%T'" + +#~ msgid "%smember function `%D' cannot have `%T' method qualifier" +#~ msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'" + +#~ msgid "defining explicit specialization `%D' in friend declaration" +#~ msgstr "definering af eksplicit specialisering '%D' i friend-erklring" + +#~ msgid "invalid use of template-id `%D' in declaration of primary template" +#~ msgstr "ugyldig brug af skabelons-id '%D' i erklring af primr skabelon" + +#~ msgid "default arguments are not allowed in declaration of friend template specialization `%D'" +#~ msgstr "standardparametre er ikke tilladt i erklring af venneskabelonsspecialisering '%D'" + +#~ msgid "`inline' is not allowed in declaration of friend template specialization `%D'" +#~ msgstr "'inline' er ikke tilladt i erklring venneskabelonsspecialisering '%D'" + +#~ msgid "definition of implicitly-declared `%D'" +#~ msgstr "definition af underforstet-erklret '%D'" + +#~ msgid "no `%#D' member function declared in class `%T'" +#~ msgstr "ingen medlemsfunktion '%#D' erklret i klassen '%T'" + +#~ msgid "non-local variable `%#D' uses local type `%T'" +#~ msgstr "ikke-lokal variabel '%#D' bruger lokal type '%T'" + +#~ msgid "invalid in-class initialization of static data member of non-integral type `%T'" +#~ msgstr "ugyldig tildeling af startvrdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'" + +#~ msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" +#~ msgstr "ISO C++ forbyder tildeling af startvrdi i klasse til ikke-konstant statisk medlem '%D'" + +#~ msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" +#~ msgstr "ISO C++ forbyder tildeling af startvrdi til medlemskonstant '%D' af en ikke-heltallig type" + +#~ msgid "size of array `%D' has non-integer type" +#~ msgstr "strrelsen af tabellen '%D' er ikke af en heltalstype" + +#~ msgid "size of array has non-integer type" +#~ msgstr "strrelsen af tabel er ikke af en heltalstype" + +#~ msgid "size of array `%D' is negative" +#~ msgstr "strrelsen af tabellen '%D' er negativ" + +#~ msgid "size of array is negative" +#~ msgstr "strrelsen af tabel er negativ" + +#~ msgid "ISO C++ forbids zero-size array `%D'" +#~ msgstr "ISO C++ forbyder tabellen '%D' med strrelsen nul" + +#~ msgid "ISO C++ forbids zero-size array" +#~ msgstr "ISO C++ forbyder tabel med strrelsen nul" + +#~ msgid "size of array `%D' is not an integral constant-expression" +#~ msgstr "strrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk" + +#~ msgid "size of array is not an integral constant-expression" +#~ msgstr "strrelsen af tabel er ikke af et heltalligt konstantudtryk" + +#~ msgid "ISO C++ forbids variable-size array `%D'" +#~ msgstr "ISO C++ forbyder tabellen '%D' med variabel strrelse" + +#~ msgid "ISO C++ forbids variable-size array" +#~ msgstr "ISO C++ forbyder tabel med variabel strrelse" + +#~ msgid "overflow in array dimension" +#~ msgstr "tabeldimension for stor" + +#~ msgid "declaration of `%D' as %s" +#~ msgstr "erklring af '%D' som %s" + +#~ msgid "creating %s" +#~ msgstr "opretter %s" + +#~ msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" +#~ msgstr "erklring af '%D' som flerdimensional tabel skal have grnser for alle dimensioner pnr den frste" + +#~ msgid "multidimensional array must have bounds for all dimensions except the first" +#~ msgstr "flerdimensional tabel skal have grnser for alle dimensioner pnr den frste" + +#~ msgid "return type specification for constructor invalid" +#~ msgstr "angivelse af returneringstypen til konstruktionsfunktion er ugyldigt" + +#~ msgid "return type specification for destructor invalid" +#~ msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt" + +#~ msgid "operator `%T' declared to return `%T'" +#~ msgstr "operator '%T' erklret til at returnere '%T'" + +#~ msgid "return type specified for `operator %T'" +#~ msgstr "returtype angivet for 'operator %T'" + +#~ msgid "destructors must be member functions" +#~ msgstr "destruktionsfunktioner skal vre medlemmer" + +#~ msgid "destructor `%T' must match class name `%T'" +#~ msgstr "destruktionsfunktion '%T' skal passe til klassenavnet '%T'" + +#~ msgid "variable declaration is not allowed here" +#~ msgstr "variabelerklring er ikke tilladt her" + +#~ msgid "invalid declarator" +#~ msgstr "ugyldig erklrer" + +#~ msgid "declarator-id missing; using reserved word `%D'" +#~ msgstr "erklrer-id mangler; bruger reserveret ord '%D'" + +#~ msgid "type `%T' is not derived from type `%T'" +#~ msgstr "typen '%T' er ikke nedarvet fra typen '%T'" + +#~ msgid "`%T' specified as declarator-id" +#~ msgstr "'%T' angivet som erklrer-id" + +#~ msgid " perhaps you want `%T' for a constructor" +#~ msgstr " mske nsker du '%T' for en konstruktionsfunktion" + +#~ msgid "invalid use of template-name '%E' in a declarator" +#~ msgstr "ugyldig brug af skabelonsnavn '%E' i erklring" + +#~ msgid "declaration of `%D' as non-function" +#~ msgstr "erklring af '%D' som ikke-funktion" + +#~ msgid "`bool' is now a keyword" +#~ msgstr "'bool' er et reserveret ord" + +#~ msgid "extraneous `%T' ignored" +#~ msgstr "overfldig '%T' ignoreret" + +#~ msgid "multiple declarations `%T' and `%T'" +#~ msgstr "flere erklringer '%T' og '%T'" + +#~ msgid "ISO C++ does not support `long long'" +#~ msgstr "ISO C++ understtter ikke 'long long'" + +#~ msgid "ISO C++ forbids declaration of `%s' with no type" +#~ msgstr "ISO C++ forbyder erklring af '%s' uden en type" + +#~ msgid "`%T' is implicitly a typename" +#~ msgstr "'%T' er underforstet et typenavn" + +#~ msgid "short, signed or unsigned invalid for `%s'" +#~ msgstr "short, signed eller unsigned er ugyldig for '%s'" + +#~ msgid "long and short specified together for `%s'" +#~ msgstr "long og short er begge angivet for '%s'" + +#~ msgid "signed and unsigned given together for `%s'" +#~ msgstr "signed og unsigned er begge angivet for '%s'" + +#~ msgid "qualifiers are not allowed on declaration of `operator %T'" +#~ msgstr "modifikationer er ikke tilladt i erklring af 'operator %T'" + +#~ msgid "member `%D' cannot be declared both virtual and static" +#~ msgstr "medlemmet '%D' kan ikke afklres bde virtual og static" + +#~ msgid "storage class specifiers invalid in parameter declarations" +#~ msgstr "lagringsklasseanvisninger er ugyldige i parametererklringer" + +#~ msgid "typedef declaration invalid in parameter declaration" +#~ msgstr "typedef-erklringer er ugyldig i parametererklringer" + +#~ msgid "virtual outside class declaration" +#~ msgstr "virtual angivet uden for klasseerklring" + +#~ msgid "storage class specified for %s `%s'" +#~ msgstr "lagringsklasse angivet for %s '%s'" + +#~ msgid "storage class specifiers invalid in friend function declarations" +#~ msgstr "lagringsklasseanvisninger er ugyldige i vennefunktionserklringer" + +#~ msgid "destructor cannot be static member function" +#~ msgstr "destruktionsfunktionen kan ikke vre en statisk medlemsfunktion" + +#~ msgid "destructors may not be `%s'" +#~ msgstr "destruktionsfunktioner m ikke vre '%s'" + +#~ msgid "constructor cannot be static member function" +#~ msgstr "konstruktionsfunktionen kan ikke vre en statisk medlemsfunktion" + +#~ msgid "constructors cannot be declared virtual" +#~ msgstr "konstruktionsfunktioner kan ikke erklres virtual" + +#~ msgid "constructors may not be `%s'" +#~ msgstr "konstruktionsfunktioner m ikke vre '%s'" + +#~ msgid "return value type specifier for constructor ignored" +#~ msgstr "angivelse af typen af returvrdien til konstruktionsfunktionen ignoreret" + +#~ msgid "can't initialize friend function `%s'" +#~ msgstr "kan ikke tildele en startvrdi til vennefunktionen '%s'" + +#~ msgid "virtual functions cannot be friends" +#~ msgstr "en virtuel funktion kan ikke erklres som friend" + +#~ msgid "friend declaration not in class definition" +#~ msgstr "friend-erklringen er ikke i klassedefinitionen" + +#~ msgid "can't define friend function `%s' in a local class definition" +#~ msgstr "kan ikke definere vennefunktion '%s' i en lokal klassedefinition" + +#~ msgid "destructors may not have parameters" +#~ msgstr "destruktionsfunktioner m ikke have parametre" + +#~ msgid "cannot declare reference to `%#T'" +#~ msgstr "kan ikke erklre reference til '%#T'" + +#~ msgid "cannot declare pointer to `%#T'" +#~ msgstr "kan ikke erklre henvisning til '%#T'" + +#~ msgid "cannot declare pointer to `%#T' member" +#~ msgstr "kan ikke erklre henvisning til medlemmet '%#T'" + +#~ msgid "extra qualification `%T::' on member `%s' ignored" +#~ msgstr "ekstra modifikation '%T::' af medlemmet '%s' ignoreret" + +#~ msgid "cannot declare member function `%T::%s' within `%T'" +#~ msgstr "kan ikke erklre medlemsfunktion '%T::%s' inde i '%T'" + +#~ msgid "cannot declare member `%T::%s' within `%T'" +#~ msgstr "kan ikke erklre medlem '%T::%s' inde i '%T'" + +#~ msgid "data member may not have variably modified type `%T'" +#~ msgstr "datamedlem m ikke have variabelt ndret type '%T'" + +#~ msgid "parameter may not have variably modified type `%T'" +#~ msgstr "parameter m ikke have variabelt ndret type '%T'" + +#~ msgid "only declarations of constructors can be `explicit'" +#~ msgstr "kun erklringer af konstruktionsfunktioner kan vre 'explicit'" + +#~ msgid "non-member `%s' cannot be declared `mutable'" +#~ msgstr "'%s' som ikke er medlem, kan ikke erklres 'mutable'" + +#~ msgid "non-object member `%s' cannot be declared `mutable'" +#~ msgstr "'%s' som ikke er objektmedlem, kan ikke erklres 'mutable'" + +#~ msgid "function `%s' cannot be declared `mutable'" +#~ msgstr "funktionen '%s' kan ikke erklres 'mutable'" + +#~ msgid "static `%s' cannot be declared `mutable'" +#~ msgstr "static '%s' kan ikke erklres 'mutable'" + +#~ msgid "const `%s' cannot be declared `mutable'" +#~ msgstr "const '%s' kan ikke erklres 'mutable'" + +#~ msgid "template-id `%D' used as a declarator" +#~ msgstr "skabelons-id '%D' benyttet som erklrer" + +#~ msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" +#~ msgstr "ISO C++ forbyder indlejret type '%D' med samme navn som den omgivende klasse" + +#~ msgid "typedef name may not be class-qualified" +#~ msgstr "typedef-navn kan ikke klassemodificeres" + +#~ msgid "invalid type qualifier for non-member function type" +#~ msgstr "ugyldig typemodifikation for ikke-medlemsfunktionstype" + +#~ msgid "type qualifiers specified for friend class declaration" +#~ msgstr "typemodifikationer angivet for friend class-erklring" + +#~ msgid "`inline' specified for friend class declaration" +#~ msgstr "'inline' angivet for friend class-erklring" + +#~ msgid "template parameters cannot be friends" +#~ msgstr "skabelonsparametre kan ikke vre venner" + +#~ msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" +#~ msgstr "friend-erklring krver klasseangivelse, dvs. 'friend class %T::%D'" + +#~ msgid "friend declaration requires class-key, i.e. `friend %#T'" +#~ msgstr "friend-erklring krver klasseangivelse, dvs. 'friend %#T'" + +#~ msgid "trying to make class `%T' a friend of global scope" +#~ msgstr "forsg p at gre klassen '%T' til ven af det globale virkningsfelt" + +#~ msgid "invalid qualifiers on non-member function type" +#~ msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype" + +#~ msgid "abstract declarator `%T' used as declaration" +#~ msgstr "abstrakt erklrer '%T' benyttet som erklring" + +#~ msgid "unnamed variable or field declared void" +#~ msgstr "unavngiven variabel eller felt erklret void" + +#~ msgid "variable or field declared void" +#~ msgstr "variabel eller felt erklret void" + +#~ msgid "cannot use `::' in parameter declaration" +#~ msgstr "kan ikke bruge '::' i parametererklring" + +#~ msgid "invalid use of `::'" +#~ msgstr "ugyldig brug af '::'" + +#~ msgid "function `%D' cannot be declared friend" +#~ msgstr "funktionen '%D' kan ikke erklres friend" + +#~ msgid "can't make `%D' into a method -- not in a class" +#~ msgstr "kan ikke gre '%D' til en metode - er ikke i en klasse" + +#~ msgid "function `%D' declared virtual inside a union" +#~ msgstr "funktionen '%D' erklret virtual inden i en union" + +#~ msgid "`%D' cannot be declared virtual, since it is always static" +#~ msgstr "'%D' kan ikke erklres virtual eftersom den altid er statisk" + +#~ msgid "field `%D' has incomplete type" +#~ msgstr "feltet '%D' er af en ufuldstndig type" + +#~ msgid "name `%T' has incomplete type" +#~ msgstr "navnet '%T' er af en ufuldstndig type" + +#~ msgid " in instantiation of template `%T'" +#~ msgstr " i instantiering af skabelonen '%T'" + +#~ msgid "`%s' is neither function nor member function; cannot be declared friend" +#~ msgstr "'%s' er hverken en almindelig funktion eller en medlemsfunktion; kan ikke erklres som friend" + +#~ msgid "member functions are implicitly friends of their class" +#~ msgstr "medlemsfunktioner er underforstet venner af deres klasse" + +#~ msgid "ISO C++ forbids initialization of member `%D'" +#~ msgstr "ISO C++ forbyder tildeling af startvrdi til medlemmet '%D'" + +#~ msgid "making `%D' static" +#~ msgstr "gr '%D' statisk" + +#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class" +#~ msgstr "ISO C++ forbyder statisk datamedlem '%D' med samme navn som den omgivende klasse" + +#~ msgid "storage class `auto' invalid for function `%s'" +#~ msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'" + +#~ msgid "storage class `register' invalid for function `%s'" +#~ msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'" + +#~ msgid "storage class `__thread' invalid for function `%s'" +#~ msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'" + +#~ msgid "storage class `static' invalid for function `%s' declared out of global scope" +#~ msgstr "lagringsklassen 'static' er ugyldig for funktionen '%s' erklret uden for det globale virkefelt" + +#~ msgid "storage class `inline' invalid for function `%s' declared out of global scope" +#~ msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklret uden for det globale virkefelt" + +#~ msgid "virtual non-class function `%s'" +#~ msgstr "virtuel funktion '%s' tilhrer ikke en klasse" + +#~ msgid "cannot declare member function `%D' to have static linkage" +#~ msgstr "kan ikke erklre medlemsfunktion '%D' til at have statisk kdning" + +#~ msgid "cannot declare static function inside another function" +#~ msgstr "kan ikke erklre en funktion for static inden i en anden funktion" + +#~ msgid "`static' may not be used when defining (as opposed to declaring) a static data member" +#~ msgstr "'static' m ikke bruges ved definering (i modstning til erklring) af et statisk datamedlem" + +#~ msgid "static member `%D' declared `register'" +#~ msgstr "statisk medlem '%D' erklret 'register'" + +#~ msgid "cannot explicitly declare member `%#D' to have extern linkage" +#~ msgstr "kan ikke eksplicit erklre medlemmet '%#D' til at have extern-kdning" + +#~ msgid "default argument for `%#D' has type `%T'" +#~ msgstr "standardparameter for '%#D' har typen '%T'" + +#~ msgid "default argument for parameter of type `%T' has type `%T'" +#~ msgstr "standardparameter for parameter af typen '%T' har typen '%T'" + +#~ msgid "default argument `%E' uses local variable `%D'" +#~ msgstr "standardparameter '%E' bruger lokal variabel '%D'" + +#~ msgid "invalid string constant `%E'" +#~ msgstr "ugyldig strengkonstant '%E'" + +#~ msgid "invalid integer constant in parameter list, did you forget to give parameter name?" +#~ msgstr "ugyldig heltalskonstant i parameterlisten, mske mangler parameternavnet?" + +#~ msgid "parameter `%D' invalidly declared method type" +#~ msgstr "parameteren '%D' er p ugyldig vis erklret som af en medlemsfunktionstype" + +#~ msgid "parameter `%D' invalidly declared offset type" +#~ msgstr "parameteren '%D' er p ugyldig vis erklret som af en offset-type" + +#~ msgid "parameter `%D' includes %s to array of unknown bound `%T'" +#~ msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grnse '%T'" + +#~ msgid "invalid constructor; you probably meant `%T (const %T&)'" +#~ msgstr "ugyldig konstruktionsfunktion; du mente sandsynligvis '%T (const %T&)'" + +#~ msgid "`%D' must be a nonstatic member function" +#~ msgstr "'%D' skal vre en ikke-statisk medlemsfunktion" + +#~ msgid "`%D' must be either a non-static member function or a non-member function" +#~ msgstr "'%D' skal enten vre en ikke-statisk medlemsfunktion eller ikke en medlemsfunktion" + +#~ msgid "`%D' must have an argument of class or enumerated type" +#~ msgstr "'%D' skal have en parameter af en klasse- eller enum-type" + +#~ msgid "conversion to %s%s will never use a type conversion operator" +#~ msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator" + +#~ msgid "ISO C++ prohibits overloading operator ?:" +#~ msgstr "ISO C++ forbyder flertydiggrelse af operatoren ?:" + +#~ msgid "postfix `%D' must take `int' as its argument" +#~ msgstr "postfiks '%D' skal tage mod 'int' som parameter" + +#~ msgid "postfix `%D' must take `int' as its second argument" +#~ msgstr "postfiks '%D' skal tage mod 'int' som den anden parameter" + +#~ msgid "`%D' must take either zero or one argument" +#~ msgstr "'%D' skal tage mod nul eller n parameter" + +#~ msgid "`%D' must take either one or two arguments" +#~ msgstr "'%D' skal tage mod n eller to parametre" + +#~ msgid "prefix `%D' should return `%T'" +#~ msgstr "prfiks '%D' skal returnere '%T'" + +#~ msgid "postfix `%D' should return `%T'" +#~ msgstr "postfiks '%D' skal returnere '%T'" + +#~ msgid "`%D' must take `void'" +#~ msgstr "'%D' skal tage mod 'void'" + +#~ msgid "`%D' must take exactly one argument" +#~ msgstr "'%s' skal tage mod n parameter" + +#~ msgid "`%D' must take exactly two arguments" +#~ msgstr "'%s' skal tage mod to parametre" + +#~ msgid "user-defined `%D' always evaluates both arguments" +#~ msgstr "brugerdefineret '%D' evaluerer altid begge parametre" + +#~ msgid "`%D' should return by value" +#~ msgstr "'%D' skal returnere pr. vrdi (ikke reference)" + +#~ msgid "`%D' cannot have default arguments" +#~ msgstr "'%D' kan ikke have standardparametre" + +#~ msgid "using typedef-name `%D' after `%s'" +#~ msgstr "bruger typedef-navn '%D' efter '%s'" + +#~ msgid "using template type parameter `%T' after `%s'" +#~ msgstr "bruger skabelonstypeparameter '%D' efter '%s'" + +#~ msgid "`%s %T' declares a new type at namespace scope" +#~ msgstr "'%s %T' erklrer en ny type ved navnerumsvirkefelt" + +#~ msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'" +#~ msgstr " navne fra afhngige stamklasser er ikke synlige for umodificerede navneopslag - benyt '%s %T::%T' for at referere til den nedarvede type" + +#~ msgid "use of enum `%#D' without previous declaration" +#~ msgstr "brug af enum '%#D' uden tidligere erklring" + +#~ msgid "derived union `%T' invalid" +#~ msgstr "nedarvet union '%T' ugyldig" + +#~ msgid "base type `%T' fails to be a struct or class type" +#~ msgstr "stamklassetype '%T' er hverken en struct- eller class-type" + +#~ msgid "base class `%T' has incomplete type" +#~ msgstr "stamklasse '%T' er af en ufuldstndig type" + +#~ msgid "recursive type `%T' undefined" +#~ msgstr "rekursiv type '%T' ikke defineret" + +#~ msgid "duplicate base type `%T' invalid" +#~ msgstr "stamklassetype '%T' optrder mere end n gang" + +#~ msgid "multiple definition of `%#T'" +#~ msgstr "flere definitioner af '%#T'" + +#~ msgid "previous definition here" +#~ msgstr "tidligere definition her" + +#~ msgid "enumerator value for `%D' not integer constant" +#~ msgstr "enum-vrdi for '%D' er ikke en heltalskonstant" + +#~ msgid "overflow in enumeration values at `%D'" +#~ msgstr "enum-vrdier for store ved '%D'" + +#~ msgid "return type `%#T' is incomplete" +#~ msgstr "returtype '%#T' er ufuldstndig" + +#~ msgid "semicolon missing after declaration of `%#T'" +#~ msgstr "semikolon mangler efter erklring af '%#T'" + +#~ msgid "return type for `main' changed to `int'" +#~ msgstr "returtype for 'main' ndret til 'int'" + +#~ msgid "`%D' implicitly declared before its definition" +#~ msgstr "'%s' er underforstet erklret efter dens definition" + +#~ msgid "`operator=' should return a reference to `*this'" +#~ msgstr "'operator=' br returnere en reference til '*this'" + +#~ msgid "parameter `%D' declared void" +#~ msgstr "parameteren '%D' erklret void" + +#~ msgid "`%D' is already defined in class `%T'" +#~ msgstr "'%D' er allerede defineret i klassen '%T'" + +#~ msgid "static member function `%#D' declared with type qualifiers" +#~ msgstr "statisk medlemsfunktion '%#D' erklret med typemodifikationer" + +#~ msgid "duplicate type qualifiers in %s declaration" +#~ msgstr "dobbelte typemodifikationer i %s-erklring" + +#~ msgid "template `%#D' instantiated in file without #pragma interface" +#~ msgstr "skabelon '%#D' instantieret i fil uden #pragma interface" + +#~ msgid "template `%#D' defined in file without #pragma interface" +#~ msgstr "skabelon '%#D' defineret i fil uden #pragma interface" + +#~ msgid "name missing for member function" +#~ msgstr "navn mangler for medlemsfunktion" + +#~ msgid "parser may be lost: is there a '{' missing somewhere?" +#~ msgstr "fortolkeren kan vre faret vild: mangler der en '{' et eller andet sted?" + +#~ msgid "ambiguous conversion for array subscript" +#~ msgstr "tvetydig konvertering af tabelindeks" + +#~ msgid "invalid types `%T[%T]' for array subscript" +#~ msgstr "ugyldige typer '%T[%T]' for tabelopslag" + +#~ msgid "type `%#T' argument given to `delete', expected pointer" +#~ msgstr "parameter af typen '%#T' givet til 'delete', forventede henvisning" + +#~ msgid "anachronistic use of array size in vector delete" +#~ msgstr "forldet brug af tabelstrrelse i tabelformen af delete" + +#~ msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'" +#~ msgstr "kan ikke udfre delete p en funktion; kun henvisninger til objekter er gyldige som parameter til 'delete'" + +#~ msgid "deleting `%T' is undefined" +#~ msgstr "benyttelse af delete p '%T' er ikke defineret" + +#~ msgid "deleting array `%#D'" +#~ msgstr "benyttelse af delete p tabellen '%#D'" + +#~ msgid "invalid declaration of member template `%#D' in local class" +#~ msgstr "ugyldig erklring af medlemsskabelon '%#D' i lokal klasse" + +#~ msgid "invalid use of `virtual' in template declaration of `%#D'" +#~ msgstr "ugyldig brug af 'virtual' i skabelonserklring af '%#D'" + +#~ msgid "template declaration of `%#D'" +#~ msgstr "skabelonserklring af '%#D'" + +#~ msgid "Java method '%D' has non-Java return type `%T'" +#~ msgstr "Java-metoden '%D' har har en returtype '%T' som ikke er fra Java" + +#~ msgid "Java method '%D' has non-Java parameter type `%T'" +#~ msgstr "Java-metoden '%D' har har en parametertype '%T' som ikke er fra Java" + +#~ msgid "prototype for `%#D' does not match any in class `%T'" +#~ msgstr "prototypen for '%#D' passer ikke nogen i klassen '%T'" + +#~ msgid "local class `%#T' shall not have static data member `%#D'" +#~ msgstr "lokal klasse '%#T' m ikke have det statiske datamedlem '%#D'" + +#~ msgid "initializer invalid for static member with constructor" +#~ msgstr "tildeling af startvrdi er ugyldig for statisk medlem med konstruktionsfunktion" + +#~ msgid "(an out of class initialization is required)" +#~ msgstr "(en klargring uden for klassens erklring er ndvendig)" + +#~ msgid "invalid data member initialization" +#~ msgstr "ugyldig tildeling af startvrdi til datamedlem" + +#~ msgid "(use `=' to initialize static data members)" +#~ msgstr "(brug '=' for at klargre statiske datamedlemmer)" + +#~ msgid "member `%D' conflicts with virtual function table field name" +#~ msgstr "medlemmet '%D' er i konflikt med feltnavn fra den virtuelle funktionstabel" + +#~ msgid "`%D' is already defined in `%T'" +#~ msgstr "'%D' er allerede defineret i '%T'" + +#~ msgid "field initializer is not constant" +#~ msgstr "feltets startvrdi er ikke en konstant" + +#~ msgid "`asm' specifiers are not permitted on non-static data members" +#~ msgstr "'asm'-angivelser er ikke tilladt p ikke-statiske datamedlemmer" + +#~ msgid "cannot declare `%D' to be a bit-field type" +#~ msgstr "kan ikke erklre '%D' til at vre en bitfeltstype" + +#~ msgid "cannot declare bit-field `%D' with function type" +#~ msgstr "kan ikke erklre bitfelt '%D' med funktionstype" + +#~ msgid "`%D' is already defined in the class %T" +#~ msgstr "'%D' er allerede defineret i klassen '%T'" + +#~ msgid "static member `%D' cannot be a bit-field" +#~ msgstr "statisk medlem '%D' kan ikke vre et bitfelt" + +#~ msgid "initializer specified for non-member function `%D'" +#~ msgstr "startvrdi angivet for ikke-medlemsfunktion '%D'" + +#~ msgid "invalid initializer for virtual method `%D'" +#~ msgstr "ugyldig startvrdi til virtuel medlemsfunktion '%D'" + +#~ msgid "anonymous struct not inside named type" +#~ msgstr "anonym struct er ikke inden i en navngiven type" + +#~ msgid "namespace-scope anonymous aggregates must be static" +#~ msgstr "anonyme variabler af sammensatte typer i navnerumsvirkefelt skal erklres static" + +#~ msgid "anonymous aggregate with no members" +#~ msgstr "anonym sammensat type uden medlemmer" + +#~ msgid "`operator new' must return type `%T'" +#~ msgstr "'operator new' skal returnere typen '%T'" + +#~ msgid "`operator new' takes type `size_t' (`%T') as first parameter" +#~ msgstr "den frste parameter til 'operator new' skal vre af typen 'size_t' ('%T')" + +#~ msgid "`operator delete' must return type `%T'" +#~ msgstr "'operator delete' skal returnere typen '%T'" + +#~ msgid "`operator delete' takes type `%T' as first parameter" +#~ msgstr "den frste parameter til 'operator delete' skal vre af typen '%T'" + +#~ msgid "too many initialization functions required" +#~ msgstr "for mange klargringsfunktioner pkrvet" + +#~ msgid "inline function `%D' used but never defined" +#~ msgstr "indbygget funktion '%D' benyttet, men aldrig defineret" + +#~ msgid "use of old-style cast" +#~ msgstr "brug af ldre type typeomtvingning" + +#~ msgid "use of `%D' is ambiguous" +#~ msgstr "brug af '%D' er tvetydigt" + +#~ msgid " first declared as `%#D' here" +#~ msgstr " frst erklret som '%#D' her" + +#~ msgid " also declared as `%#D' here" +#~ msgstr " ogs erklret som '%#D' her" + +#~ msgid "`%D' denotes an ambiguous type" +#~ msgstr "'%D' angiver en tvetydig type" + +#~ msgid " first type here" +#~ msgstr " frste type her" + +#~ msgid " other type here" +#~ msgstr " anden type her" + +#~ msgid "declaration of `%D' not in a namespace surrounding `%D'" +#~ msgstr "erklring af '%D' er ikke i et navnerum der omgiver '%D'" + +#~ msgid "`%D' should have been declared inside `%D'" +#~ msgstr "'%D' skulle have vret erklret inden i '%D'" + +#~ msgid "`%D' is not a function," +#~ msgstr "'%s' er ikke en funktion," + +#~ msgid " conflict with `%D'" +#~ msgstr " konflikt med '%D'" + +#~ msgid "unknown namespace `%D'" +#~ msgstr "ukendt navnerum '%D'" + +#~ msgid "`%T' is not a namespace" +#~ msgstr "'%T' er ikke et navnerum" + +#~ msgid "`%D' is not a namespace" +#~ msgstr "'%D' er ikke et navnerum" + +#~ msgid "a using-declaration cannot specify a template-id. Try `using %D'" +#~ msgstr "en using-erklring kan ikke angive en skabelons-id; prv 'using %D'" + +#~ msgid "namespace `%D' not allowed in using-declaration" +#~ msgstr "navnerum '%D' ikke tilladt i using-erklring" + +#~ msgid "`%D' not declared" +#~ msgstr "'%D' ikke erklret" + +#~ msgid "`%D' is already declared in this scope" +#~ msgstr "'%D' er allerede erklret i dette navnerum" + +#~ msgid "using declaration `%D' introduced ambiguous type `%T'" +#~ msgstr "using-erklring '%D' introducerede tvetydig type '%T'" + +#~ msgid "using-declaration for non-member at class scope" +#~ msgstr "using-erklring for ikke-medlem ved klassevirkefelt" + +#~ msgid "using-declaration for destructor" +#~ msgstr "using-erklring for destruktionsfunktion" + +#~ msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'" +#~ msgstr "en using-erklring kan ikke angive en skabelons-id; prv 'using %T::%D'" + +#~ msgid "namespace `%T' undeclared" +#~ msgstr "navnerummet '%T' er ikke erklret" + +#~ msgid "default argument missing for parameter %P of `%+#D'" +#~ msgstr "standardparameter mangler for parameter %P i '%+#D'" + +#~ msgid "extra qualification `%T::' on member `%D' ignored" +#~ msgstr "ekstra modifikation '%T::' af medlemmet '%D' ignoreret" + +#~ msgid "`%T' does not have a class or union named `%D'" +#~ msgstr "'%T' har ikke en klasse eller en union ved navn '%D'" + +#~ msgid "`%T' is not a class or union type" +#~ msgstr "'%T' er ikke af en klasse- eller union-type" + +#~ msgid "template argument is required for `%T'" +#~ msgstr "skabelonsparameter er pkrvet for '%T'" + +#~ msgid "declaration of `%D' in `%D' which does not enclose `%D'" +#~ msgstr "erklring af '%D' i '%D' som ikke omgiver '%D'" + +#~ msgid "`%s' not supported by %s" +#~ msgstr "'%s' ikke understttet af %s" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "(static %s for %s)" +#~ msgstr "(statisk %s for %s)" + +#~ msgid "\\x%x" +#~ msgstr "\\x%x" + +#~ msgid "In %s `%s':" +#~ msgstr "I %s '%s':" + +#~ msgid "%s: In instantiation of `%s':\n" +#~ msgstr "%s: i instantiering af '%s':\n" + +#~ msgid "%s:%d: instantiated from `%s'\n" +#~ msgstr "%s:%d: instantieret fra '%s'\n" + +#~ msgid "%s:%d: instantiated from here\n" +#~ msgstr "%s:%d: instantieret herfra\n" + +#~ msgid "unexpected letter `%c' in locate_error\n" +#~ msgstr "uventet bogstav '%c' i locate_error\n" + +#~ msgid "type `%T' is disallowed in Java `throw' or `catch'" +#~ msgstr "typen '%T' er ikke tilladt i Java 'throw' eller 'catch'" + +#~ msgid "call to Java `catch' or `throw' with `jthrowable' undefined" +#~ msgstr "kald til Java 'catch' eller 'throw' mens 'jthrowable' ikke er defineret" + +#~ msgid "type `%T' is not derived from `java::lang::Throwable'" +#~ msgstr "typen '%T' nedarver ikke fra 'java::lang::Throwable'" + +#~ msgid "mixing C++ and Java catches in a single translation unit" +#~ msgstr "blander C++ og Java 'catch' i n oversttelsesenhed" + +#~ msgid "throwing NULL, which has integral, not pointer type" +#~ msgstr "kaster NULL som har en heltals-, ikke en henvisningstype" + +#~ msgid " in thrown expression" +#~ msgstr " i kastet udtryk" + +#~ msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression" +#~ msgstr "udtrykket '%E' med den abstrakte klassetype '%T' kan ikke bruges i throw-udtryk" + +#~ msgid "exception of type `%T' will be caught" +#~ msgstr "undtagelse af typen '%T' vil blive fanget" + +#~ msgid " by earlier handler for `%T'" +#~ msgstr " af tidligere hndtering af '%T'" + +#~ msgid "`...' handler must be the last handler for its try block" +#~ msgstr "hndteringen '...' skal vre den sidste hndtering i try-blokken" + +#~ msgid "`%D' is already a friend of class `%T'" +#~ msgstr "'%D' er allerede en ven af klassen '%T'" + +#~ msgid "previous friend declaration of `%D'" +#~ msgstr "tidligere friend-erklring af '%D'" + +#~ msgid "invalid type `%T' declared `friend'" +#~ msgstr "ugyldig type '%T' erklret 'friend'" + +#~ msgid "partial specialization `%T' declared `friend'" +#~ msgstr "partiel specialisering '%T' erklret 'friend'" + +#~ msgid "class `%T' is implicitly friends with itself" +#~ msgstr "klassen '%T' er underforstet ven med sig selv" + +#~ msgid "typename type `%#T' declared `friend'" +#~ msgstr "typename-type '%#T' erklret 'friend'" + +#~ msgid "template parameter type `%T' declared `friend'" +#~ msgstr "skabelonsparametertypen '%T' erklret 'friend'" + +#~ msgid "`%#T' is not a template" +#~ msgstr "'%#T' er ikke en skabelon" + +#~ msgid "`%T' is already a friend of `%T'" +#~ msgstr "'%T' er allerede en ven af '%T'" + +#~ msgid "member `%D' declared as friend before type `%T' defined" +#~ msgstr "medlemmet '%D' erklret som friend fr typen '%T' er defineret" + +#~ msgid "friend declaration `%#D' declares a non-template function" +#~ msgstr "friend-erklring '%#D' erklrer en ikke-skabelonsfunktion" + +#~ msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" +#~ msgstr "(hvis dette er hvad du nsker, s sikr dig at funktionsskabelonen allerede er blevet erklret og tilfj <> efter funktionsnavnet her) -Wno-non-template-friend deaktiverer denne advarsel" + +#~ msgid "argument to `%s' missing\n" +#~ msgstr "en parameter til '%s' mangler\n" + +#~ msgid "`%D' should be initialized in the member initialization list" +#~ msgstr "'%D' br blive klargjort i medlemsklargringslisten" + +#~ msgid "default-initialization of `%#D', which has reference type" +#~ msgstr "standardklargring af '%#D' som er af en referencetype" + +#~ msgid "uninitialized reference member `%D'" +#~ msgstr "referencemedlem '%D' uden startvrdi" + +#~ msgid "initializer list treated as compound expression" +#~ msgstr "klargringsliste behandlet som et sammensat udtryk" + +#~ msgid "`%D' will be initialized after" +#~ msgstr "'%D' vil blive klargjort efter" + +#~ msgid "base `%T' will be initialized after" +#~ msgstr "stamklasse '%T' vil blive klargjort efter" + +#~ msgid " `%#D'" +#~ msgstr " '%#D'" + +#~ msgid " base `%T'" +#~ msgstr " stamklasse '%T'" + +#~ msgid "multiple initializations given for base `%T'" +#~ msgstr "flere startvrdier angivet for stamklassen '%T'" + +#~ msgid "initializations for multiple members of `%T'" +#~ msgstr "startvrdier for flere medlemmer af '%T'" + +#~ msgid "base class `%#T' should be explicitly initialized in the copy constructor" +#~ msgstr "stamklassen '%#T' br eksplicit blive klargjort i kopikonstruktionsfunktionen" + +#~ msgid "class `%T' does not have any field named `%D'" +#~ msgstr "klassen '%T' har ikke et felt ved navn '%D'" + +#~ msgid "field `%#D' is static; the only point of initialization is its definition" +#~ msgstr "feltet '%#D' er statisk; det eneste sted det kan klargres er ved dets definition" + +#~ msgid "unnamed initializer for `%T', which has no base classes" +#~ msgstr "unavngiven klargring af '%T' som ikke har nogen stamklasser" + +#~ msgid "unnamed initializer for `%T', which uses multiple inheritance" +#~ msgstr "unavngiven klargring af '%T' som benytter multipel nedarvning" + +#~ msgid "type `%D' is not a direct or virtual base of `%T'" +#~ msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'" + +#~ msgid "type `%D' is not a direct base of `%T'" +#~ msgstr "typen '%D' er ikke en direkte stamklasse til '%T'" + +#~ msgid "bad array initializer" +#~ msgstr "ugyldig tildeling af startvrdi til tabel" + +#~ msgid "`%T' is not an aggregate type" +#~ msgstr "'%T' er ikke en sammensat type" + +#~ msgid "`%T' fails to be an aggregate typedef" +#~ msgstr "'%T' er ikke en sammensat typedef" + +#~ msgid "type `%T' is of non-aggregate type" +#~ msgstr "typen '%T' er ikke en sammensat type" + +#~ msgid "cannot call destructor `%T::~%T' without object" +#~ msgstr "kan ikke kalde destruktionsfunktion '%T::~%T' uden objekt" + +#~ msgid "invalid use of non-static field `%D'" +#~ msgstr "ugyldig brug af ikke-statisk felt '%D'" + +#~ msgid "invalid use of member `%D'" +#~ msgstr "ugyldig brug af medlemmet '%D'" + +#~ msgid "no method `%T::%D'" +#~ msgstr "ingen metode ved navn '%T::%D'" + +#~ msgid "incomplete type `%T' does not have member `%D'" +#~ msgstr "ufuldstndig type '%T' har ikke medlemmet '%D'" + +#~ msgid "`%D' is not a member of type `%T'" +#~ msgstr "'%D' er ikke et medlem af typen '%T'" + +#~ msgid "invalid pointer to bit-field `%D'" +#~ msgstr "ugyldig henvisning til bitfeltet '%D'" + +#~ msgid "object missing in use of pointer-to-member construct" +#~ msgstr "der mangler et objekt i henvisning til medlem-konstruktion" + +#~ msgid "member `%D' is non-static but referenced as a static member" +#~ msgstr "medlemmet '%D' er ikke statisk, men refereres som et statisk medlem" + +#~ msgid "at this point in file" +#~ msgstr "ved dette sted i filen" + +#~ msgid "object missing in `%E'" +#~ msgstr "objekt mangler i '%E'" + +#~ msgid "new of array type fails to specify size" +#~ msgstr "new virkende p en tabeltype mangler at angive strrelsen" + +#~ msgid "size in array new must have integral type" +#~ msgstr "strrelse i tabel-new skal vre en heltalstype" + +#~ msgid "zero size array reserves no space" +#~ msgstr "tabel med strrelsen nul reserverer ingen plads" + +#~ msgid "new cannot be applied to a reference type" +#~ msgstr "new kan ikke bruges p en referencetype" + +#~ msgid "new cannot be applied to a function type" +#~ msgstr "new kan ikke bruges p en funktionstype" + +#~ msgid "call to Java constructor, while `jclass' undefined" +#~ msgstr "kald af Java-konstruktionsfunktion mens 'jclass' ikke er defineret" + +#~ msgid "can't find class$" +#~ msgstr "kan ikke finde class$" + +#~ msgid "invalid type `void' for new" +#~ msgstr "ugyldig type 'void' til new" + +#~ msgid "call to Java constructor with `%s' undefined" +#~ msgstr "kald af Java-konstruktionsfunktion mens '%s' ikke er defineret" + +#~ msgid "ISO C++ forbids initialization in array new" +#~ msgstr "ISO C++ forbyder startvrdier i tabel-new" + +#~ msgid "initializer list being treated as compound expression" +#~ msgstr "klargringsliste bliver behandlet som et sammensat udtryk" + +#~ msgid "ISO C++ forbids aggregate initializer to new" +#~ msgstr "ISO C++ forbyder sammensat startvrditildeling ved new" + +#~ msgid "uninitialized const in `new' of `%#T'" +#~ msgstr "konstant uden startvrdi i 'new' af '%#T'" + +#~ msgid "initializer ends prematurely" +#~ msgstr "startvrdien slutter for tidligt" + +#~ msgid "cannot initialize multi-dimensional array with initializer" +#~ msgstr "kan ikke klargre multidimensional tabel med startvrdi" + +#~ msgid "unknown array size in delete" +#~ msgstr "ukendt tabelstrrelse i delete" + +#~ msgid "type to vector delete is neither pointer or array type" +#~ msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype" + +#~ msgid "type name expected before `*'" +#~ msgstr "der forventedes et typenavn fr '*'" + +#~ msgid "cannot declare references to references" +#~ msgstr "kan ikke erklre referencer til referencer" + +#~ msgid "cannot declare pointers to references" +#~ msgstr "kan ikke erklre henvisninger til referencer" + +#~ msgid "type name expected before `&'" +#~ msgstr "der forventedes et typenavn fr '&'" + +#~ msgid "semicolon missing after %s declaration" +#~ msgstr "semikolon mangler efter %s-erklring" + +#~ msgid "semicolon missing after declaration of `%T'" +#~ msgstr "semikolon mangler efter erklring af '%T'" + +#~ msgid "junk at end of #pragma %s" +#~ msgstr "ragelse i slutningen 'af #pragma %s'" + +#~ msgid "invalid #pragma %s" +#~ msgstr "ugyldig #pragma %s" + +#~ msgid "#pragma vtable no longer supported" +#~ msgstr "'#pragma vtable' understttes ikke lngere" + +#~ msgid "#pragma implementation for %s appears after file is included" +#~ msgstr "'#pragma implementation' til %s optrder efter filen er inkluderet" + +#~ msgid "junk at end of #pragma GCC java_exceptions" +#~ msgstr "ragelse i slutningen af #pragma GCC java_exceptions" + +#~ msgid "`%D' not defined" +#~ msgstr "'%D' er ikke defineret" + +#~ msgid "`%D' was not declared in this scope" +#~ msgstr "'%D' blev ikke erklret i dette virkefelt" + +#~ msgid "`%D' undeclared (first use this function)" +#~ msgstr "'%D' er ikke erklret (frst benyttet i denne funktion)" + +# dkkende, og pnere end original i praktisk brug +#~ msgid "(Each undeclared identifier is reported only once for each function it appears in.)" +#~ msgstr "(et kaldenavn der ikke er erklret, rapporteres kun n gang per funktion)" + +#~ msgid "`::%D' undeclared (first use here)" +#~ msgstr "'::%D' er ikke erklret (frst benyttet her)" + +#~ msgid "real-valued template parameters when cross-compiling" +#~ msgstr "skabelonsparametre med reelle vrdi ved krydsoversttelse" + +#~ msgid "the mangled name of `%D' will change in a future version of GCC" +#~ msgstr "det ABI-navnet for '%D' vil ndre sig i en fremtidig version af GCC" + +#~ msgid "due to a defect in the G++ 3.2 ABI, G++ has assigned the same mangled name to two different types" +#~ msgstr "pga. en fejl i G++ 3.2-ABI'en har G++ tildelt det samme sammensatte navn til det to forskellige typer" + +#~ msgid "invalid use of member `%D' in static member function" +#~ msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion" + +#~ msgid "use of namespace `%D' as expression" +#~ msgstr "brug af navnerummet '%D' som udtryk" + +#~ msgid "use of class template `%T' as expression" +#~ msgstr "brug af klasseskabelonen '%T' som udtryk" + +#~ msgid "use of %s from containing function" +#~ msgstr "brug af %s fra indeholdende funktion" + +#~ msgid " `%#D' declared here" +#~ msgstr " '%#D' erklret her" + +#~ msgid "request for member `%D' is ambiguous in multiple inheritance lattice" +#~ msgstr "foresprgsel efter medlemmet '%D' er tvetydigt i det multiple nedarvningsnet" + +#~ msgid "generic thunk code fails for method `%#D' which uses `...'" +#~ msgstr "generel thunk-kode mislykkes for metoden '%#D' som bruger '...'" + +#~ msgid "non-static const member `%#D', can't use default assignment operator" +#~ msgstr "ikke-statisk konstant medlem '%#D' kan ikke bruge standardtildelingsoperatoren" + +#~ msgid "non-static reference member `%#D', can't use default assignment operator" +#~ msgstr "ikke-statisk referencemedlem '%#D' kan ikke bruge standardtildelingsoperatoren" + +#~ msgid "`%s' tag used in naming `%#T'" +#~ msgstr "'%s'-mrke benyttet i navngivning af '%#T'" + +#~ msgid "keyword `export' not implemented, and will be ignored" +#~ msgstr "det reserverede ord 'export' er ikke implementeret og vil blive ignoreret" + +#~ msgid "use of linkage spec `%D' is different from previous spec `%D'" +#~ msgstr "brug af kdningsangivelse '%D' er forskellig fra den tidligere angivelse '%D'" + +#~ msgid "no base or member initializers given following ':'" +#~ msgstr "ingen stamklasse- eller medlemsklargringer er angivet efter ':'" + +#~ msgid "anachronistic old style base class initializer" +#~ msgstr "forldet stamklasseklargring" + +#~ msgid "`>>' should be `> >' in template class name" +#~ msgstr "'>>' skulle have vret '> >' i skabelonsklassenavn" + +#~ msgid "use of template qualifier outside template" +#~ msgstr "brug af skabelonsmodifikation uden for skabelon" + +#~ msgid "ISO C++ forbids an empty condition for `%s'" +#~ msgstr "ISO C++ forbyder en tom betingelse til '%s'" + +#~ msgid "definition of class `%T' in condition" +#~ msgstr "definition af klassen '%T' i betingelse" + +#~ msgid "definition of enum `%T' in condition" +#~ msgstr "definition af enum '%T' i betingelse" + +#~ msgid "definition of array `%#D' in condition" +#~ msgstr "definition af tabel '%#D' i betingelse" + +#~ msgid "old style placement syntax, use () instead" +#~ msgstr "forldet placeringssyntaks, brug () i stedet" + +#~ msgid "`%T' is not a valid expression" +#~ msgstr "'%T' er ikke et gyldigt udtryk" + +#~ msgid "initialization of new expression with `='" +#~ msgstr "tildeling af startvrdi til new-udtryk med '='" + +#~ msgid "ISO C++ forbids compound literals" +#~ msgstr "ISO C++ forbyder sammensatte konstanter" + +#~ msgid "ISO C++ forbids braced-groups within expressions" +#~ msgstr "ISO C++ forbyder krllet parantes-grupper inden i udtryk" + +#~ msgid "sigof type specifier" +#~ msgstr "sigof-typeangivelse" + +#~ msgid "`sigof' applied to non-aggregate expression" +#~ msgstr "'sigof' benyttet p et udtryk der ikke er af en sammensat type" + +#~ msgid "`sigof' applied to non-aggregate type" +#~ msgstr "'sigof' benyttet p en type der ikke er sammensat" + +#~ msgid "using `typename' outside of template" +#~ msgstr "bruger 'typename' uden for en skabelon" + +#~ msgid "storage class specifier `%s' not allowed after struct or class" +#~ msgstr "lagringsklasseangivelsen '%s' er ikke tilladt efter struct eller class" + +#~ msgid "type specifier `%s' not allowed after struct or class" +#~ msgstr "typeangivelsen '%s' er ikke tilladt efter struct eller class" + +#~ msgid "type qualifier `%s' not allowed after struct or class" +#~ msgstr "typemodifikationen '%s' er ikke tilladt efter struct eller class" + +#~ msgid "no body nor ';' separates two class, struct or union declarations" +#~ msgstr "der er hverken en krop eller et semikolon mellem to class, struct eller union-erklringer" + +#~ msgid "no bases given following `:'" +#~ msgstr "ingen stamklasse er angivet efter ':'" + +#~ msgid "`%D' access" +#~ msgstr "'%D'-tilgang" + +#~ msgid "multiple access specifiers" +#~ msgstr "mere end n tilgangsangivelse" + +#~ msgid "multiple `virtual' specifiers" +#~ msgstr "mere end n 'virtual'-angivelse" + +#~ msgid "missing ';' before right brace" +#~ msgstr "der mangler et semikolon fr en hjre krllet parantes" + +#~ msgid "ISO C++ forbids array dimensions with parenthesized type in new" +#~ msgstr "ISO C++ forbyder tabeldimensioner med parantetiseret type i new" + +#~ msgid "`%T' is not a class or namespace" +#~ msgstr "'%T' er ikke en klasse eller et navnerum" + +#~ msgid "ISO C++ forbids label declarations" +#~ msgstr "ISO C++ forbyder etiketerklringer" + +#~ msgid "ISO C++ forbids computed gotos" +#~ msgstr "ISO C++ forbyder beregnede goto'er" + +#~ msgid "label must be followed by statement" +#~ msgstr "etiketten skal efterflges af en stning" + +#~ msgid "must have at least one catch per try block" +#~ msgstr "skal have mindst n catch pr. try-blok" + +#~ msgid "ISO C++ forbids compound statements inside for initializations" +#~ msgstr "ISO C++ forbyder sammensatte stninger inden i 'for'-klargringer" + +#~ msgid "possibly missing ')'" +#~ msgstr "muligvis mangler en ')'" + +#~ msgid "type specifier omitted for parameter" +#~ msgstr "typeangivelsen er ikke angivet for parameteren" + +#~ msgid "`%E' is not a type, use `typename %E' to make it one" +#~ msgstr "'%E' er ikke en type, benyt 'typename %E' for at gre den til en" + +#~ msgid "no type `%D' in `%T'" +#~ msgstr "ingen type '%D' i '%T'" + +#~ msgid "type specifier omitted for parameter `%E'" +#~ msgstr "typeangivelse udeladt for parameteren '%E'" + +#~ msgid "'%D' is used as a type, but is not defined as a type." +#~ msgstr "'%D' benyttes som en type, men er ikke defineret som en type" + +#~ msgid "data member `%D' cannot be a member template" +#~ msgstr "datamedlem '%D' kan ikke vre en medlemsskabelon" + +#~ msgid "invalid member template declaration `%D'" +#~ msgstr "ugyldig medlemsskabelonerklring '%D'" + +#~ msgid "explicit specialization in non-namespace scope `%D'" +#~ msgstr "eksplicit specialisering i virkefeltet '%D' der ikke er et navnerum" + +#~ msgid "enclosing class templates are not explicitly specialized" +#~ msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede" + +#~ msgid "specializing `%#T' in different namespace" +#~ msgstr "specialiserer '%#T' i andet navnerum" + +# hnger sammen med foregende tekst, derfor ikke 'fra' +#~ msgid " from definition of `%#D'" +#~ msgstr " i forhold til definition af '%#D'" + +#~ msgid "specialization of `%T' after instantiation" +#~ msgstr "specialisering af '%T' efter instantiering" + +#~ msgid "specialization `%T' after instantiation `%T'" +#~ msgstr "specialisering af '%T' efter instantiering '%T'" + +#~ msgid "explicit specialization of non-template `%T'" +#~ msgstr "eksplicit specialisering af '%T' der ikke er en skabelon" + +#~ msgid "specialization of %D after instantiation" +#~ msgstr "specialisering af '%D' efter instantiering" + +#~ msgid "%s %+#D" +#~ msgstr "%s %+#D" + +#~ msgid "`%D' is not a function template" +#~ msgstr "'%D' er ikke en funktionsskabelon" + +#~ msgid "template-id `%D' for `%+D' does not match any template declaration" +#~ msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklring" + +#~ msgid "ambiguous template specialization `%D' for `%+D'" +#~ msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'" + +#~ msgid "template-id `%D' in declaration of primary template" +#~ msgstr "skabelons-id '%D' i erklring af primr skabelon" + +#~ msgid "template parameter list used in explicit instantiation" +#~ msgstr "skabelonsparameterliste benyttet i eksplicit instantiering" + +#~ msgid "definition provided for explicit instantiation" +#~ msgstr "definition angivet for eksplicit instantiering" + +#~ msgid "too many template parameter lists in declaration of `%D'" +#~ msgstr "for mange skabelonsparameterlister angivet i erklring af '%D'" + +#~ msgid "too few template parameter lists in declaration of `%D'" +#~ msgstr "for f skabelonsparameterlister angivet i erklring af '%D'" + +#~ msgid "explicit specialization not preceded by `template <>'" +#~ msgstr "eksplicit specialisering flger ikke efter 'template <>'" + +#~ msgid "partial specialization `%D' of function template" +#~ msgstr "partiel specialisering '%D' af funktionsskabelon" + +#~ msgid "default argument specified in explicit specialization" +#~ msgstr "standardparameter angivet i eksplicit specialisering" + +#~ msgid "template specialization with C linkage" +#~ msgstr "skabelonsspecialisering med C-kdning" + +#~ msgid "specialization of implicitly-declared special member function" +#~ msgstr "specialisering af underforstet erklret speciel medlemsfunktion" + +#~ msgid "no member function `%D' declared in `%T'" +#~ msgstr "ingen medlemsfunktion '%D' erklret i '%T'" + +#~ msgid "too many template parameter lists in declaration of `%T'" +#~ msgstr "for mange skabelonsparameterlister i erklringen af '%T'" + +#~ msgid " shadows template parm `%#D'" +#~ msgstr " skygger for skabelonsparameter '%#D'" + +#~ msgid "template parameters not used in partial specialization:" +#~ msgstr "skabelonsparametre der ikke bruges i partiel specialisering:" + +#~ msgid " `%D'" +#~ msgstr " '%D'" + +#~ msgid "partial specialization `%T' does not specialize any template arguments" +#~ msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre" + +# flertalsform undvendig +#~ msgid "template argument `%E' involves template parameter(s)" +#~ msgstr "skabelonsparameter '%E' involverer skabelonsparameter" + +# flertalsform undvendig +#~ msgid "type `%T' of template argument `%E' depends on template parameter(s)" +#~ msgstr "typen '%T' af skabelonsparameteren '%E' afhnger af skabelonsparameter" + +#~ msgid "no default argument for `%D'" +#~ msgstr "ingen standardparameter til '%D'" + +#~ msgid "template with C linkage" +#~ msgstr "skabelon med C-kdning" + +#~ msgid "template class without a name" +#~ msgstr "skabelonsklasse uden et navn" + +#~ msgid "`%D' does not declare a template type" +#~ msgstr "'%D' erklrer ikke en skabelonstype" + +#~ msgid "template definition of non-template `%#D'" +#~ msgstr "skabelonsdefinition af ikke-skabelon '%#D'" + +#~ msgid "expected %d levels of template parms for `%#D', got %d" +#~ msgstr "forvented %d niveauer af skabelonsparametre for '%#D', modtog %d" + +#~ msgid "got %d template parameters for `%#D'" +#~ msgstr "modtog %d skabelonsparametre for '%#D'" + +#~ msgid "got %d template parameters for `%#T'" +#~ msgstr "modtog %d skabelonsparametre for '%#T'" + +#~ msgid " but %d required" +#~ msgstr " men %d pkrvet" + +#~ msgid "`%T' is not a template type" +#~ msgstr "'%T' er ikke en skabelonstype" + +# hnger sammen med nste tekst +#~ msgid "previous declaration `%D'" +#~ msgstr "tidligere erklring '%D'" + +#~ msgid "used %d template parameter%s instead of %d" +#~ msgstr "benyttede %d skabelonsparameter%s i stedet for %d" + +#~ msgid "template parameter `%#D'" +#~ msgstr "skabelonsparameter '%#D'" + +#~ msgid "redeclared here as `%#D'" +#~ msgstr "omerklret her som '%#D'" + +#~ msgid "redefinition of default argument for `%#D'" +#~ msgstr "omdefinering af standardparameter for '%#D'" + +#~ msgid " original definition appeared here" +#~ msgstr " oprindelig definition er her" + +#~ msgid "`%E' is not a valid template argument" +#~ msgstr "'%E' er ikke en gyldig skabelonsparameter" + +#~ msgid "it must be the address of a function with external linkage" +#~ msgstr "den skal vre adressen af en funktion med ekstern kdning" + +#~ msgid "it must be the address of an object with external linkage" +#~ msgstr "den skal vre adressen af et objekt med ekstern kdning" + +#~ msgid "it must be a pointer-to-member of the form `&X::Y'" +#~ msgstr "den skal vre en henvisning til medlem p formen '&X::Y'" + +#~ msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" +#~ msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kdning" + +#~ msgid "address of non-extern `%E' cannot be used as template argument" +#~ msgstr "adresse p ikke-ekstern '%E' kan ikke bruges som skabelonsparameter" + +#~ msgid "non-constant `%E' cannot be used as template argument" +#~ msgstr "ikke-konstant '%E' kan ikke bruges som skabelonsparameter" + +#~ msgid "object `%E' cannot be used as template argument" +#~ msgstr "objektet '%E' kan ikke bruges som skabelonsparameter" + +#~ msgid "to refer to a type member of a template parameter, use `typename %E'" +#~ msgstr "benyt 'typename %E' for at referere til et typemedlem af en skabelonsparameter" + +#~ msgid "type/value mismatch at argument %d in template parameter list for `%D'" +#~ msgstr "type/vrdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'" + +#~ msgid " expected a constant of type `%T', got `%T'" +#~ msgstr " forventede en konstant af typen '%T', modtog '%T'" + +#~ msgid " expected a type, got `%E'" +#~ msgstr " forventede en type, modtog '%E'" + +#~ msgid " expected a type, got `%T'" +#~ msgstr " forventede en type, modtog '%T'" + +#~ msgid " expected a class template, got `%T'" +#~ msgstr " forventede en klasseskabelon, modtog '%T'" + +#~ msgid " expected a template of type `%D', got `%D'" +#~ msgstr " forventede en skabelon af typen '%D', modtog '%D'" + +#~ msgid "template-argument `%T' uses anonymous type" +#~ msgstr "skabelonsparameter '%T' benytter anonym type" + +#~ msgid "template-argument `%T' uses local type `%T'" +#~ msgstr "skabelonsparameter '%T' benytter lokal type '%T'" + +#~ msgid "template-argument `%T' is a variably modified type" +#~ msgstr "skabelonsparameter '%T' er en variabelt ndret type" + +#~ msgid "could not convert template argument `%E' to `%T'" +#~ msgstr "kunne ikke konvertere skabelonsparameteren '%E' til '%T'" + +#~ msgid "wrong number of template arguments (%d, should be %d)" +#~ msgstr "forkert antal skabelonsparametre (%d, skulle vre %d)" + +#~ msgid "provided for `%D'" +#~ msgstr "angivet for '%D'" + +#~ msgid "template argument %d is invalid" +#~ msgstr "skabelonsparameter %d er ugyldig" + +#~ msgid "non-template used as template" +#~ msgstr "ikke-skabelon benyttet som skabelon" + +#~ msgid "`%T' is not a template" +#~ msgstr "'%T' er ikke en skabelon" + +#~ msgid "non-template type `%T' used as a template" +#~ msgstr "ikke-skabelonstype '%T' benyttet som skabelon" + +#~ msgid "for template declaration `%D'" +#~ msgstr "til skabelonserklring '%D'" + +#~ msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" +#~ msgstr "skabelonsinstantieringsdybden overskrider maksimum p %d (benyt -ftemplate-depth-NN for at forge maksimum) ved instantiering af '%D'" + +#~ msgid "ambiguous class template instantiation for `%#T'" +#~ msgstr "tvetydig klasseskabelonsinstantiering for '%#T'" + +#~ msgid "%s %+#T" +#~ msgstr "%s %+#T" + +#~ msgid "instantiation of `%D' as type `%T'" +#~ msgstr "instantiering af '%D' som typen '%T'" + +#~ msgid "invalid parameter type `%T'" +#~ msgstr "ugyldig parametertype '%T'" + +#~ msgid "in declaration `%D'" +#~ msgstr "i erklringen '%D'" + +#~ msgid "creating pointer to member function of non-class type `%T'" +#~ msgstr "opretter henvisning til medlemsfunktion af typen '%T' der ikke er en klasse" + +#~ msgid "creating array with size zero" +#~ msgstr "opretter tabel med strrelsen nul" + +#~ msgid "creating array with size zero (`%E')" +#~ msgstr "opretter tabel med strrelsen nul ('%E')" + +#~ msgid "forming reference to void" +#~ msgstr "danner reference til void" + +#~ msgid "forming %s to reference type `%T'" +#~ msgstr "danner %s til referencetypen '%T'" + +#~ msgid "creating pointer to member of non-class type `%T'" +#~ msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse" + +#~ msgid "creating pointer to member reference type `%T'" +#~ msgstr "opretter henvisning til medlemsreference af typen '%T'" + +#~ msgid "creating array of `%T'" +#~ msgstr "opretter tabel af '%T'" + +#~ msgid "`%T' is not a class, struct, or union type" +#~ msgstr "'%T' er ikke en class-, struct- eller union-type" + +#~ msgid "use of `%s' in template" +#~ msgstr "brug af '%s' i skabelon" + +#~ msgid "type `%T' composed from a local class is not a valid template-argument" +#~ msgstr "typen '%T' sammensat fra lokal klasse er ikke en gyldig skabelonsparameter" + +#~ msgid " trying to instantiate `%D'" +#~ msgstr " ved forsg p at instantiere '%D'" + +#~ msgid "incomplete type unification" +#~ msgstr "ufuldstndig typeforening" + +#~ msgid "use of `%s' in template type unification" +#~ msgstr "brug af '%s' i skabelonstypeforening" + +#~ msgid "explicit instantiation of non-template `%#D'" +#~ msgstr "eksplicit instantiering af ikke-skabelon '%#D'" + +#~ msgid "no matching template for `%D' found" +#~ msgstr "ingen passende skabelon for '%D' fundet" + +#~ msgid "explicit instantiation of `%#D'" +#~ msgstr "eksplicit instantiering af '%#D'" + +#~ msgid "duplicate explicit instantiation of `%#D'" +#~ msgstr "'%#D' er blevet eksplicit instantieret mere end n gang" + +#~ msgid "ISO C++ forbids the use of `extern' on explicit instantiations" +#~ msgstr "ISO C++ forbyder brugen af 'extern' ved eksplicitte instantieringer" + +#~ msgid "storage class `%D' applied to template instantiation" +#~ msgstr "lagringsklasse '%D' anvendt p skabelonsinstantiering" + +#~ msgid "explicit instantiation of non-template type `%T'" +#~ msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype" + +#~ msgid "explicit instantiation of `%#T' before definition of template" +#~ msgstr "eksplicit instantiering af '%T' fr definering af skabelonen" + +#~ msgid "ISO C++ forbids the use of `%s' on explicit instantiations" +#~ msgstr "ISO C++ forbyder brugen af '%s ved eksplicitte instantieringer" + +#~ msgid "duplicate explicit instantiation of `%#T'" +#~ msgstr "'%#T' er blevet eksplicit instantieret mere end n gang" + +#~ msgid "explicit instantiation of `%D' but no definition available" +#~ msgstr "eksplicit instantiering af '%D', men ingen definition tilgngelig" + +#~ msgid "`%#T' is not a valid type for a template constant parameter" +#~ msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant " + +#~ msgid "-frepo must be used with -c" +#~ msgstr "-frepo skal bruges med -c" + +#~ msgid "mysterious repository information in %s" +#~ msgstr "mystisk info om opbevaringssted i '%s'" + +#~ msgid "can't create repository information file `%s'" +#~ msgstr "kan ikke oprette informationsfilen '%s' til opbevaringssted" + +#~ msgid "cannot use typeid with -fno-rtti" +#~ msgstr "kan ikke bruge typeid med -fno-rtti" + +#~ msgid "must #include before using typeid" +#~ msgstr "'#include ' er ndvendig fr typeid kan benyttes" + +#~ msgid "cannot create type information for type `%T' because its size is variable" +#~ msgstr "kan ikke oprette typeinformation for typen '%T' fordi dens strrelse er variabel" + +#~ msgid "dynamic_cast of `%#D' to `%#T' can never succeed" +#~ msgstr "dynamic_cast af '%#D' til '%#T' kan aldrig lykkes" + +#~ msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)" +#~ msgstr "kan ikke anvende dynamic_cast p '%E' (af typen '%#T') til typen '%#T' (%s)" + +#~ msgid "`%T' is an inaccessible base of `%T'" +#~ msgstr "'%T' er en utilgngelig stamklasse til '%T'" + +#~ msgid "`%T' is an ambiguous base of `%T'" +#~ msgstr "'%T' er en tvetydig stamklasse til '%T'" + +#~ msgid "assignment to non-static member `%D' of enclosing class `%T'" +#~ msgstr "tildeling til ikke-statisk medlem '%D' af omgivende klasse '%T'" + +#~ msgid "adjusting pointers for covariant returns" +#~ msgstr "justerer henvisninger for kovariante returneringer" + +#~ msgid "invalid covariant return type for `%#D'" +#~ msgstr "ugyldig kovariant returneringstype for '%#D'" + +#~ msgid " overriding `%#D' (must be pointer or reference to class)" +#~ msgstr " overskriver '%#D' (skal vre en henvisning eller reference til klasse)" + +#~ msgid " overriding `%#D' (must use pointer or reference)" +#~ msgstr " overskriver '%#D' (skal vre en henvisning eller reference)" + +#~ msgid "conflicting return type specified for `%#D'" +#~ msgstr "modstridende returtyper angivet for '%#D'" + +#~ msgid " overriding `%#D'" +#~ msgstr " overskriver '%#D'" + +#~ msgid "looser throw specifier for `%#F'" +#~ msgstr "lsere throw-angivelse for '%#F'" + +#~ msgid " overriding `%#F'" +#~ msgstr " overskriver '%#F'" + +#~ msgid "`%#D' cannot be declared" +#~ msgstr "'%#D' kan ikke erklres" + +#~ msgid " since `%#D' declared in base class" +#~ msgstr " eftersom '%#D' er erklret i stamklassen" + +#~ msgid "`%#D' needs a final overrider" +#~ msgstr "'%#D' behver en endelig overskrivning" + +#~ msgid "type of asm operand `%E' could not be determined" +#~ msgstr "typen af asm-operanden '%E' kunne ikke afgres" + +#~ msgid "ISO C++ does not permit named return values" +#~ msgstr "ISO C++ tillader ikke navngivne returvrdier" + +#~ msgid "return identifier `%D' already in place" +#~ msgstr "returkaldenavn '%D' allerede p plads" + +#~ msgid "can't redefine default return value for constructors" +#~ msgstr "kan ikke omdefinere standardreturvrdi for konstruktionsfunktioner" + +#~ msgid "only constructors take base initializers" +#~ msgstr "kun konstruktionsfunktioner har stamklasseklargringer" + +#~ msgid "`this' is unavailable for static member functions" +#~ msgstr "'this' er ikke tilgngelig for statiske medlemsfunktioner" + +#~ msgid "invalid use of `this' in non-member function" +#~ msgstr "ugyldig brug af 'this' i ikke-medlemsfunktion" + +#~ msgid "invalid use of `this' at top level" +#~ msgstr "ugyldig brug af 'this' ved verste niveau" + +#~ msgid "calling type `%T' like a method" +#~ msgstr "kalder typen '%T' som en metode" + +#~ msgid "destructor specifier `%T::~%T()' must have matching names" +#~ msgstr "destruktionsangivelse '%T::~%T()' skal have ens navne" + +#~ msgid "`%E' is not of type `%T'" +#~ msgstr "'%E' er ikke af typen '%T'" + +#~ msgid "template type parameters must use the keyword `class' or `typename'" +#~ msgstr "skabelonstypeparametre skal begynde med 'class' eller 'typename'" + +#~ msgid "invalid default template argument" +#~ msgstr "ugyldig standardparameter i skabelon" + +#~ msgid "definition of `%#T' inside template parameter list" +#~ msgstr "definition af '%#T' inden i skabelonsparameterliste" + +#~ msgid "invalid definition of qualified type `%T'" +#~ msgstr "ugyldig definition af modificeret type '%T'" + +#~ msgid "invalid base-class specification" +#~ msgstr "ugyldig stamklasseangivelse" + +#~ msgid "base class `%T' has cv qualifiers" +#~ msgstr "stamklassen '%T' har const/volatile-modifikationer" + +#~ msgid "multiple declarators in template declaration" +#~ msgstr "flere erklrerer i skabelonserklring" + +#~ msgid "type of `%E' is unknown" +#~ msgstr "typen af '%E' er ukendt" + +#~ msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy" +#~ msgstr "kaldenavnet '%s' er i modstrid med den interne navngivningsstrategi i GNU c++" + +#~ msgid "parse error at end of saved function text" +#~ msgstr "tolkningsfejl ved slutningen af gemt funktionstekst" + +#~ msgid "%Hend of file read inside definition" +#~ msgstr "%Hslutningen af filen lst inden i definition" + +#~ msgid "parse error in method specification" +#~ msgstr "tolkningsfejl i medlemsfunktionsangivelsen" + +#~ msgid "function body for constructor missing" +#~ msgstr "kroppen til konstruktionsfunktionen mangler" + +#~ msgid "%Hend of file read inside default argument" +#~ msgstr "%Hslutningen af filen lst inden i standardparameter" + +#~ msgid "circular dependency in default args of `%#D'" +#~ msgstr "cirkulr afhngighed i standardparametre til '%#D'" + +#~ msgid "invalid type `%T' for default argument to `%T'" +#~ msgstr "ugyldig type '%T' for standardparameter til '%T'" + +#~ msgid "%s before `%s'" +#~ msgstr "%s fr '%s'" + +#~ msgid "%s before `%c'" +#~ msgstr "%s fr '%c'" + +#~ msgid "%s before `\\%o'" +#~ msgstr "%s fr '\\%o'" + +#~ msgid "%s before `%s' token" +#~ msgstr "%s fr symbolet '%s'" + +#~ msgid "non-lvalue in %s" +#~ msgstr "ikke-venstrevrdi i %s" + +#~ msgid "`%V' qualifiers cannot be applied to `%T'" +#~ msgstr "modifikationerne '%V' kan ikke anvendes p '%T'" + +#~ msgid "`%s' attribute can only be applied to Java class definitions" +#~ msgstr "egenskaben '%s' kan kun anvendes med Java-klassedefinitioner" + +#~ msgid "`%s' attribute can only be applied to class definitions" +#~ msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner" + +#~ msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" +#~ msgstr "'%s' er forldet; virtuelle tabeller i g++ er nu COM-kompatible som standard" + +#~ msgid "requested init_priority is not an integer constant" +#~ msgstr "den udbedte init_priority er ikke en heltalskonstant" + +#~ msgid "can only use `%s' attribute on file-scope definitions of objects of class type" +#~ msgstr "kan kun bruge egenskaben '%s' p filvirkefeltsdefinitioner af objekter af klassetype" + +#~ msgid "requested init_priority is out of range" +#~ msgstr "den udbedte init_priority er uden for det gyldige interval" + +#~ msgid "requested init_priority is reserved for internal use" +#~ msgstr "den udbedte init_priority er reserveret til intern brug" + +#~ msgid "`%s' attribute is not supported on this platform" +#~ msgstr "egenskaben '%s' er ikke understttet p denne platform" + +#~ msgid "lang_* check: failed in %s, at %s:%d" +#~ msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d" + +#~ msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function" +#~ msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning til funktion" + +#~ msgid "%s between distinct pointer types `%T' and `%T' lacks a cast" +#~ msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse" + +#~ msgid "ISO C++ prohibits conversion from `%#T' to `(...)'" +#~ msgstr "ISO C++ forbyder konvertering fra '%#T' til '(...)'" + +#~ msgid "invalid application of `%s' to a member function" +#~ msgstr "ugyldig brug af '%s' p en medlemsfunktion" + +#~ msgid "invalid application of `%s' to non-static member" +#~ msgstr "ugyldig brug af '%s' p et ikke-statisk medlem" + +#~ msgid "sizeof applied to a bit-field" +#~ msgstr "'sizeof' benyttet p et bitfelt" + +#~ msgid "ISO C++ forbids applying `sizeof' to an expression of function type" +#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p et udtryk af en funktionstype" + +#~ msgid "invalid use of non-lvalue array" +#~ msgstr "ugyldig brug af en tabel der ikke kan optrde som en venstrevrdi" + +#~ msgid "deprecated conversion from string constant to `%T'" +#~ msgstr "forldet konvertering fra strengkonstant til '%T'" + +#~ msgid "request for member `%D' in `%E', which is of non-class type `%T'" +#~ msgstr "foresprgsel efter medlemmet '%D' i '%E' som er af en ikke-klassetype '%T'" + +#~ msgid "`%D' is not a member of `%T'" +#~ msgstr "'%D' er ikke et medlem af '%T'" + +#~ msgid "invalid access to non-static data member `%D' of NULL object" +#~ msgstr "ugyldig tilgang til ikke-statisk datamedlem '%D' af NULL-objekt" + +#~ msgid "(perhaps the `offsetof' macro was used incorrectly)" +#~ msgstr "(mske blev 'offsetof'-makroen benyttet forkert)" + +#~ msgid "`%D::%D' is not a member of `%T'" +#~ msgstr "'%D::%D' er ikke et medlem af '%T'" + +#~ msgid "destructor specifier `%T::~%T' must have matching names" +#~ msgstr "destruktionsangivelse '%T::~%T' skal have ens navne" + +#~ msgid "type `%T' has no destructor" +#~ msgstr "typen '%T' har ingen destruktionsfunktion" + +#~ msgid "`%D' is not a member template function" +#~ msgstr "'%D' er ikke en medlemsskabelonfunktion" + +#~ msgid "`%T' is not a pointer-to-object type" +#~ msgstr "'%T' er ikke af en henvisning til objekt-type" + +#~ msgid "invalid use of `%s' on pointer to member" +#~ msgstr "ugyldig brug af '%s' p henvisning til medlem" + +#~ msgid "invalid type argument" +#~ msgstr "ugyldig typeparameter" + +#~ msgid "ISO C++ forbids subscripting non-lvalue array" +#~ msgstr "ISO C++ forbyder indeksering af en ikke-venstrevrdis tabel" + +#~ msgid "subscripting array declared `register'" +#~ msgstr "indeksering af tabel som er erklret 'register'" + +#~ msgid "object missing in use of `%E'" +#~ msgstr "objekt mangler i brug af '%E'" + +#~ msgid "ISO C++ forbids calling `::main' from within program" +#~ msgstr "ISO C++ forbyder kald af '::main' inde fra programmet" + +#~ msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'" +#~ msgstr "brug .* eller ->* i kald af henvisning til medlemsfunktion i '%E (...)'" + +#~ msgid "`%E' cannot be used as a function" +#~ msgstr "'%E' kan ikke bruges som en funktion" + +#~ msgid "too many arguments to %s `%+#D'" +#~ msgstr "for mange parametre til %s '%+#D'" + +#~ msgid "parameter type of called function is incomplete" +#~ msgstr "parametertypen for den kaldte funktion er ufuldstndig" + +#~ msgid "too few arguments to %s `%+#D'" +#~ msgstr "for f parametre til %s '%+#D'" + +#~ msgid "assuming cast to type `%T' from overloaded function" +#~ msgstr "antager typeomtvingning til typen '%T' fra flertydig funktion" + +#~ msgid "division by zero in `%E / 0'" +#~ msgstr "division med nul i '%E / 0'" + +#~ msgid "division by zero in `%E / 0.'" +#~ msgstr "division med nul i '%E / 0.'" + +#~ msgid "division by zero in `%E %% 0'" +#~ msgstr "division med nul i '%E %% 0'" + +#~ msgid "division by zero in `%E %% 0.'" +#~ msgstr "division med nul i '%E %% 0.'" + +#~ msgid "%s rotate count is negative" +#~ msgstr "%s-roteringsantal er negativt" + +#~ msgid "%s rotate count >= width of type" +#~ msgstr "%s-roteringsantal >= bredden af typen" + +#~ msgid "ISO C++ forbids comparison between pointer and integer" +#~ msgstr "ISO C++ forbyder sammenligning mellem henvisningsvariabel og heltal" + +#~ msgid "comparison between types `%#T' and `%#T'" +#~ msgstr "sammenligning mellem typerne '%#T' og '%#T'" + +#~ msgid "comparison between signed and unsigned integer expressions" +#~ msgstr "sammenlign mellem signed og unsigned heltalsudtryk" + +#~ msgid "invalid operands of types `%T' and `%T' to binary `%O'" +#~ msgstr "ugyldige operander af typerne '%T' og '%T' til binr '%O'" + +#~ msgid "NULL used in arithmetic" +#~ msgstr "NULL benyttet i udregning" + +#~ msgid "ISO C++ forbids using pointer of type `void *' in subtraction" +#~ msgstr "ISO C++ forbyder brug af henvisning af typen 'void *' i fratrkning" + +#~ msgid "ISO C++ forbids using pointer to a function in subtraction" +#~ msgstr "ISO C++ forbyder brug af henvisning til funktion i fratrkning" + +#~ msgid "ISO C++ forbids using pointer to a method in subtraction" +#~ msgstr "ISO C++ forbyder brug af henvisning til medlemsfunktion i fratrkning" + +#~ msgid "ISO C++ forbids using pointer to a member in subtraction" +#~ msgstr "ISO C++ forbyder brug af henvisning til medlem i fratrkning" + +#~ msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" +#~ msgstr "ugyldig brug af en henvisning til en ufuldstndig type i henvisningsberegning" + +#~ msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." +#~ msgstr "ugyldig brug af '%E' til at danne en henvisning til medlemsfunktion; benyt et kaldenavn med klasseprfiks" + +#~ msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" +#~ msgstr "paranteser omkring '%E' kan ikke bruges til at danne en henvisning til medlemsfunktion" + +#~ msgid "taking address of temporary" +#~ msgstr "tager adressen p midlertidig variabel" + +#~ msgid "ISO C++ forbids %sing an enum" +#~ msgstr "ISO C++ forbyder %s af en enum" + +#~ msgid "cannot %s a pointer to incomplete type `%T'" +#~ msgstr "kan ikke %s en henvisning til en ufuldstndig type '%T'" + +#~ msgid "ISO C++ forbids %sing a pointer of type `%T'" +#~ msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'" + +#~ msgid "cast to non-reference type used as lvalue" +#~ msgstr "typeomtvingning til ikke-reference-type benyttet som venstrevrdi" + +#~ msgid "invalid use of `--' on bool variable `%D'" +#~ msgstr "ugyldig brug af '--' p den booleske variabel '%D'" + +#~ msgid "ISO C++ forbids taking address of function `::main'" +#~ msgstr "ISO C++ forbyder at tage adressen p funktionen '::main'" + +#~ msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'" +#~ msgstr "ISO C++ forbyder at tage adressen p en ikke-modificeret, ikke-statisk medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'" + +#~ msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" +#~ msgstr "ISO C++ forbyder at tage adressen p en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'" + +#~ msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" +#~ msgstr "ISO C++ forbyder at tage adressen p en typeomtvingning til et udtryk der ikke er en venstrevrdi" + +#~ msgid "attempt to take address of bit-field structure member `%D'" +#~ msgstr "forsg p at finde adressen af bitfeltstrukturmedlemmet '%D'" + +#~ msgid "taking address of destructor" +#~ msgstr "tager adressen p en destruktionsfunktion" + +#~ msgid "taking address of bound pointer-to-member expression" +#~ msgstr "tager adressen p et bundet henvisning til medlem-udtryk" + +#~ msgid "cannot create pointer to reference member `%D'" +#~ msgstr "kan ikke oprette henvisning til reference medlemmet '%D'" + +#~ msgid "cannot take the address of `this', which is an rvalue expression" +#~ msgstr "kan ikke tage adressen af 'this' som er et hjrevrdiudtryk" + +#~ msgid "address requested for `%D', which is declared `register'" +#~ msgstr "adresse forespurgt for '%D' som er erklret 'register'" + +#~ msgid "static_cast from type `%T' to type `%T' casts away constness" +#~ msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed" + +#~ msgid "invalid static_cast from type `%T' to type `%T'" +#~ msgstr "ugyldig static_cast fra typen '%T' til typen '%T'" + +#~ msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" +#~ msgstr "ugyldig reinterpret_cast af et hjrevrdiudtryk fra typen '%T' til typen '%T'" + +#~ msgid "reinterpret_cast from `%T' to `%T' loses precision" +#~ msgstr "reinterpret_cast fra '%T' til '%T' mister prcision" + +#~ msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)" +#~ msgstr "reinterpret_cast fra '%T' til '%T' fjerner const (eller volatile)" + +#~ msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" +#~ msgstr "ISO C++ forbyder sammenligninger mellem henvisning til funktion og henvisning til objekt" + +#~ msgid "invalid reinterpret_cast from type `%T' to type `%T'" +#~ msgstr "ugyldig reinterpret_cast fra typen '%T' til typen '%T'" + +#~ msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" +#~ msgstr "ugyldig brug af const_cast med typen '%T' som ikke er en henvisnings-, reference- eller en henvisning til datamedlem-type" + +#~ msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" +#~ msgstr "ugyldig brug af const_cast med typen '%T' som er en henvisning eller reference til funktion" + +#~ msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" +#~ msgstr "ugyldig const_cast af en hjrevrdi fra typen '%T' til typen '%T'" + +#~ msgid "invalid const_cast from type `%T' to type `%T'" +#~ msgstr "ugyldig const_cast fra typen '%T' til typen '%T'" + +#~ msgid "ISO C++ forbids casting to an array type `%T'" +#~ msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype '%T'" + +#~ msgid "invalid cast to function type `%T'" +#~ msgstr "ugyldig omtvingelse til funktionstypen '%T'" + +#~ msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" +#~ msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer p henvisningsmlets type" + +#~ msgid "cast from `%T' to `%T' increases required alignment of target type" +#~ msgstr "typeomtvingning fra '%T' til '%T' forger den pkrvede justering af mlets type" + +#~ msgid " in evaluation of `%Q(%#T, %#T)'" +#~ msgstr " i evaluering af '%Q(%#T, %#T)'" + +#~ msgid "ISO C++ forbids cast to non-reference type used as lvalue" +#~ msgstr "ISO C++ forbyder omtvingelse af typen til en ikke-reference-type benyttet som venstrevrdi" + +#~ msgid "incompatible types in assignment of `%T' to `%T'" +#~ msgstr "uforenelige typer i tildeling af '%T' til '%T'" + +#~ msgid "ISO C++ forbids assignment of arrays" +#~ msgstr "ISO C++ forbyder tildeling af tabeller" + +#~ msgid " in pointer to member function conversion" +#~ msgstr " i henvisning til medlemsfunktion-omdannelse" + +#~ msgid " in pointer to member conversion" +#~ msgstr " i henvisning til medlem-omdannelse" + +#~ msgid "pointer to member cast via virtual base `%T' of `%T'" +#~ msgstr "henvisning til medlem-typeomtvingning via den virtuelle stamklasse '%T' af '%T'" + +#~ msgid "pointer to member conversion via virtual base `%T' of `%T'" +#~ msgstr "henvisning til medlem-omdannelse via den virtuelle stamklasse '%T' af '%T'" + +#~ msgid "invalid conversion to type `%T' from type `%T'" +#~ msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'" + +# %s bliver til returnering eller tildeling eller noget i den retning +#~ msgid "passing NULL used for non-pointer %s %P of `%D'" +#~ msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'" + +#~ msgid "%s to non-pointer type `%T' from NULL" +#~ msgstr "%s til ikke-henvisningstypen '%T' fra NULL" + +#~ msgid "passing `%T' for %s %P of `%D'" +#~ msgstr "overbringelse af '%T' for ikke-henvisnings%s %P af '%D'" + +#~ msgid "%s to `%T' from `%T'" +#~ msgstr "%s til '%T' fra '%T'" + +#~ msgid "passing negative value `%E' for %s %P of `%D'" +#~ msgstr "overbringelse af negativ vrdi '%E' for %s %P af '%D'" + +#~ msgid "%s of negative value `%E' to `%T'" +#~ msgstr "%s af negativ vrdi '%E' til `%T'" + +#~ msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" +#~ msgstr "kan ikke konvertere '%T' til '%T' for parameter '%P' til '%D'" + +#~ msgid "cannot convert `%T' to `%T' in %s" +#~ msgstr "kan ikke konvertere '%T' til '%T' i %s" + +#~ msgid "in passing argument %P of `%+D'" +#~ msgstr "i overbringelse af parameter %P af '%+D'" + +#~ msgid "returning reference to temporary" +#~ msgstr "returnerer reference til midlertidig variabel" + +#~ msgid "reference to non-lvalue returned" +#~ msgstr "reference til ikke-venstrevrdi returneret" + +#~ msgid "reference to local variable `%D' returned" +#~ msgstr "reference til den lokale variabel '%D' returneret" + +#~ msgid "address of local variable `%D' returned" +#~ msgstr "adresse af den lokale variabel '%D' returneret" + +#~ msgid "returning a value from a destructor" +#~ msgstr "returnerer en vrdi fra en destruktionsfunktion" + +#~ msgid "cannot return from a handler of a function-try-block of a constructor" +#~ msgstr "kan ikke returnere fra en hndtering af en funktions-try-blok i en konstruktionsfunktion" + +#~ msgid "returning a value from a constructor" +#~ msgstr "returnerer en vrdi fra en konstruktionsfunktion" + +#~ msgid "return-statement with no value, in function declared with a non-void return type" +#~ msgstr "return-stning uden en vrdi i en funktion der er erklret med en ikke-void returtype" + +#~ msgid "return-statement with a value, in function declared with a void return type" +#~ msgstr "return-stning med en vrdi i en funktion der er erklret med en void returtype" + +#~ msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" +#~ msgstr "'operator new' m ikke returnere NULL medmindre den er erklret 'throw()' (eller -fcheck-new er benyttet)" + +#~ msgid "type `%T' is not a base type for type `%T'" +#~ msgstr "typen '%T' er ikke en grundtype for typen '%T'" + +#~ msgid "cannot declare variable `%D' to be of type `%T'" +#~ msgstr "kan ikke erklre variablen '%D' til at vre af typen '%T'" + +#~ msgid "cannot declare parameter `%D' to be of type `%T'" +#~ msgstr "kan ikke erklre parameteren '%D' til at vre af typen '%T'" + +#~ msgid "cannot declare field `%D' to be of type `%T'" +#~ msgstr "kan ikke erklre feltet '%D' til at vre af typen '%T'" + +#~ msgid "invalid return type for member function `%#D'" +#~ msgstr "ugyldig returtype for medlemsfunktionen '%#D'" + +#~ msgid "invalid return type for function `%#D'" +#~ msgstr "ugyldig returtype for funktionen '%#D'" + +#~ msgid "cannot allocate an object of type `%T'" +#~ msgstr "kan ikke allokere et objekt af typen '%T'" + +#~ msgid " because the following virtual functions are abstract:" +#~ msgstr " eftersom de flgende virtuelle funktioner er abstrakte:" + +#~ msgid "\t%#D" +#~ msgstr "\t%#D" + +#~ msgid " since type `%T' has abstract virtual functions" +#~ msgstr " eftersom typen '%T' har abstrakte virtuelle funktioner" + +#~ msgid "constructor syntax used, but no constructor declared for type `%T'" +#~ msgstr "konstruktionsfunktionsyntaks benyttet, men ingen konstruktionsfunktion er erklret for typen '%T'" + +#~ msgid "comma expression used to initialize return value" +#~ msgstr "kommaudtryk benyttet til at klargre returvrdi" + +#~ msgid "cannot initialize arrays using this syntax" +#~ msgstr "kan ikke tildele tabeller startvrdier med denne syntaks" + +#~ msgid "initializing array with parameter list" +#~ msgstr "klargr tabel med en parameterliste" + +#~ msgid "initializer for scalar variable requires one element" +#~ msgstr "startvrdien for en skalarvariabel kan kun best af t element" + +#~ msgid "braces around scalar initializer for `%T'" +#~ msgstr "krllede paranteser omkring skalarstartvrdi for '%T'" + +#~ msgid "ignoring extra initializers for `%T'" +#~ msgstr "ignorerer ekstra startvrdier for '%T'" + +#~ msgid "variable-sized object of type `%T' may not be initialized" +#~ msgstr "objekt af typen '%T' med variabel strrelse m ikke tildeles en startvrdi" + +#~ msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" +#~ msgstr "underobjekt af typen '%T' skal klargres af en konstruktionsfunktion, ikke af '%E'" + +#~ msgid "aggregate has a partly bracketed initializer" +#~ msgstr "sammensat type har delvis indklammet startvrdi" + +#~ msgid "non-trivial labeled initializers" +#~ msgstr "ikke-trivielle navngivne startvrdier" + +#~ msgid "non-empty initializer for array of empty elements" +#~ msgstr "en startvrdi der ikke er tom, tildeles til en tabel med tomme elementer" + +#~ msgid "initializer list for object of class with virtual base classes" +#~ msgstr "klargringsliste for objekt af en klasse med virtuelle stamklasser" + +#~ msgid "initializer list for object of class with base classes" +#~ msgstr "klargringsliste for objekt af en klasse med stamklasser" + +#~ msgid "initializer list for object using virtual functions" +#~ msgstr "klargringsliste for objekt med virtuelle funktioner" + +#~ msgid "missing initializer for member `%D'" +#~ msgstr "manglende startvrdi for medlemmet '%D'" + +#~ msgid "uninitialized const member `%D'" +#~ msgstr "konstant medlem '%D' uden startvrdi" + +#~ msgid "member `%D' with uninitialized const fields" +#~ msgstr "medlem '%D' med konstante felter uden startvrdi" + +#~ msgid "member `%D' is uninitialized reference" +#~ msgstr "medlemmet '%D' er en reference uden startvrdi" + +#~ msgid "index value instead of field name in union initializer" +#~ msgstr "indeksvrdi i stedet for feltnavn i union-startvrdi" + +#~ msgid "no field `%D' in union being initialized" +#~ msgstr "intet felt '%D' i union der tildeles startvrdi" + +#~ msgid "union `%T' with no named members cannot be initialized" +#~ msgstr "union '%T' uden navngivne elementer kan ikke tildeles startvrdi" + +#~ msgid "excess elements in aggregate initializer" +#~ msgstr "for mange elementer i startvrdi til sammensat type" + +#~ msgid "circular pointer delegation detected" +#~ msgstr "fundet en henvisningsefterflgelse der gr i ring" + +#~ msgid "base operand of `->' has non-pointer type `%T'" +#~ msgstr "grundoperanden til '->' har en ikke-henvisningstype '%T'" + +#~ msgid "result of `operator->()' yields non-pointer result" +#~ msgstr "resultatet af 'operator->()' er ikke en henvisning" + +#~ msgid "base operand of `->' is not a pointer" +#~ msgstr "grundoperanden til '->' er ikke en henvisning" + +#~ msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" +#~ msgstr "'%E' kan ikke bruges som en medlemshenvisning eftersom udtrykkets type er '%T'" + +#~ msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" +#~ msgstr "kan ikke anvende medlemshenvisning '%E' p '%E' som er af den ikke-sammensatte type '%T'" + +#~ msgid "member type `%T::' incompatible with object type `%T'" +#~ msgstr "medlemstypen '%T::' uforenelige med objekttypen '%T'" + +#~ msgid "`%T' fails to be a typedef or built-in type" +#~ msgstr "'%T' er hverken en typedef eller en indbygget type" + +#~ msgid "ISO C++ forbids defining types within %s" +#~ msgstr "ISO C++ forbyder definering af typer inden i %s" + +#~ msgid "call to function `%D' which throws incomplete type `%#T'" +#~ msgstr "kald af en funktion '%D' som kaster en ufuldstndig type '%#T'" + +#~ msgid "call to function which throws incomplete type `%#T'" +#~ msgstr "kald af en funktion som kaster en ufuldstndig type '%#T'" + +#~ msgid "%s is deprecated, please see the documentation for details" +#~ msgstr "%s er forldet, se venligst dokumentationen for detaljer" + +#~ msgid "Do not obey access control semantics" +#~ msgstr "Adlyd ikke tilgangskontrolsemantikker" + +#~ msgid "Change when template instances are emitted" +#~ msgstr "Skift hvornr skabelonsinstanser udsendes" + +#~ msgid "Check the return value of new" +#~ msgstr "Kontrollr returvrdien for new" + +#~ msgid "Reduce size of object files" +#~ msgstr "Reducr strrelsen af objektfiler" + +#~ msgid "Make string literals `char[]' instead of `const char[]'" +#~ msgstr "Gr strengkonstanter til 'char[]' i stedet for 'const char[]'" + +#~ msgid "Dump the entire translation unit to a file" +#~ msgstr "Anbring hele oversttelsesenheden i en fil" + +#~ msgid "Do not inline member functions by default" +#~ msgstr "Integrr ikke medlemsfunktioner som standard" + +#~ msgid "Do not generate run time type descriptor information" +#~ msgstr "Generr ikke typebeskrivelsesoplysninger til krselstidspunktet" + +#~ msgid "Do not generate code to check exception specifications" +#~ msgstr "Generr ikke kode til at kontrollere undtagelsesspecifikationer" + +#~ msgid "Scope of for-init-statement vars extends outside" +#~ msgstr "Udvid virkefeltet for variabler i for-klargringsstninger" + +#~ msgid "Do not recognize GNU defined keywords" +#~ msgstr "Genkend ikke GNU-definerede reserverede ord" + +#~ msgid "Enable support for huge objects" +#~ msgstr "Aktivr understttelse af enorme objekter" + +#~ msgid "Export functions even if they can be inlined" +#~ msgstr "Eksportr funktioner ogs selvom de kan integreres" + +#~ msgid "Only emit explicit template instantiations" +#~ msgstr "Udsend kun eksplicitte skabelonsinstatieringer" + +#~ msgid "Only emit explicit instantiations of inline templates" +#~ msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner" + +#~ msgid "Don't pedwarn about uses of Microsoft extensions" +#~ msgstr "Udsend ikke pedantiske advarsler om brug af Microsoft-udvidelser" + +#~ msgid "Recognize and/bitand/bitor/compl/not/or/xor" +#~ msgstr "Genkend and/bitand/bitor/compl/not/or/xor" + +#~ msgid "Disable optional diagnostics" +#~ msgstr "Deaktivr valgfrie diagnosticeringer" + +#~ msgid "Downgrade conformance errors to warnings" +#~ msgstr "Nedgradr standardoverholdelsesfejl til advarsler" + +#~ msgid "Enable automatic template instantiation" +#~ msgstr "Aktivr automatisk skabelonsinstantiering" + +#~ msgid "Display statistics accumulated during compilation" +#~ msgstr "Vis statistik som indsamles under oversttelsen" + +#~ msgid "Specify maximum template instantiation depth" +#~ msgstr "Angiv maksimal skabelonsinstantieringsdybde" + +#~ msgid "Use __cxa_atexit to register destructors" +#~ msgstr "Benyt __cxa_atexit til at registrere destruktionsfunktioner" + +#~ msgid "Discard unused virtual functions" +#~ msgstr "Kassr ubrugte virtuelle funktioner" + +#~ msgid "Implement vtables using thunks" +#~ msgstr "Implementr virtuelle tabeller vha. thunk-kode" + +#~ msgid "Emit common-like symbols as weak symbols" +#~ msgstr "Udsend almindelige symboler som svage symboler" + +#~ msgid "Emit cross referencing information" +#~ msgstr "Udsend krydsreferenceoplysninger" + +#~ msgid "Warn about inconsistent return types" +#~ msgstr "Advar om inkonsistente returtyper" + +#~ msgid "Warn about overloaded virtual function names" +#~ msgstr "Advar om flertydige virtuelle funktionsnavne" + +#~ msgid "Don't warn when all ctors/dtors are private" +#~ msgstr "Advar ikke nr alle konstruktions-/destruktionsfunktioner er private" + +#~ msgid "Warn about non virtual destructors" +#~ msgstr "Advar om ikke-virtuelle destruktionsfunktioner" + +#~ msgid "Warn when a function is declared extern, then inline" +#~ msgstr "Advar nr en funktion erklret extern erklres inline" + +#~ msgid "Warn when the compiler reorders code" +#~ msgstr "Advar nr overstteren ndrer p ordenen af kode" + +#~ msgid "Warn when synthesis behavior differs from Cfront" +#~ msgstr "Advar nr synteseopfrslen adskiller sig fra Cfront" + +#~ msgid "Don't warn when type converting pointers to member functions" +#~ msgstr "Advar ikke ved typeomdannelse af henvisninger til medlemsfunktioner" + +#~ msgid "Warn about violations of Effective C++ style rules" +#~ msgstr "Advar om overtrdelser af stilreglerne fra Effective C++" + +#~ msgid "Warn when overload promotes from unsigned to signed" +#~ msgstr "Advar nr flertydiggrelse forfremmer fra unsigned til signed" + +#~ msgid "Warn if a C style cast is used in a program" +#~ msgstr "Advar hvis en typeomtvingning i C-stil benyttes" + +#~ msgid "Don't warn when non-templatized friend functions are declared within a template" +#~ msgstr "Advar ikke nr ikke-skabelonsvennefunktioner erklres inde i en skabelon" + +#~ msgid "Don't announce deprecation of compiler features" +#~ msgstr "Annoncr ikke forldelse af overstterfaciliteter" + +#~ msgid "note:" +#~ msgstr "bemrk:" + +#~ msgid "warning:" +#~ msgstr "advarsel: " + +#~ msgid "fatal:" +#~ msgstr "fatal:" + +#~ msgid "(continued):" +#~ msgstr "(fortsat):" + +#~ msgid "[REPORT BUG!!] %" +#~ msgstr "[RAPPORTER FEJL!] %" + +#~ msgid "[REPORT BUG!!]" +#~ msgstr "[RAPPORTER FEJL!]" + +#~ msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling" +#~ msgstr "ASSIGN'et etiket kan ikke passe i '%A' ved %0 - bruger bredere sskende" + +#~ msgid "no INTEGER type can hold a pointer on this configuration" +#~ msgstr "ingen INTEGER-type kan opbevare en henvisning i denne konfiguration" + +#~ msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide," +#~ msgstr "konfiguration: REAL, INTEGER og LOGICAL er %d bit brede," + +#~ msgid "and pointers are %d bits wide, but g77 doesn't yet work" +#~ msgstr "og henvisninger er %d bit brede, men g77 virker endnu ikke" + +#~ msgid "properly unless they all are 32 bits wide" +#~ msgstr "ordentligt medmindre de alle er 32 bit brede" + +#~ msgid "Please keep this in mind before you report bugs." +#~ msgstr "Husk venligst p dette fr du rapporterer fejl." + +#~ msgid "configuration: char * holds %d bits, but ftnlen only %d" +#~ msgstr "konfiguration: char * holder %d bit, men ftnlen kun %d" + +#~ msgid "" +#~ "configuration: char * holds %d bits, but INTEGER only %d --\n" +#~ " ASSIGN statement might fail" +#~ msgstr "konfiguration: char * holder %d bit, men INTEGER kun %d - ASSIGN-stning kan mislykkes" + +#~ msgid "In statement function" +#~ msgstr "I stningsfunktion" + +#~ msgid "Outside of any program unit:\n" +#~ msgstr "Uden for nogen programenhed:\n" + +#~ msgid "%A from %B at %0%C" +#~ msgstr "%A fra %B ved %0%C" + +#~ msgid "directory name must immediately follow -I" +#~ msgstr "et katalognavn skal flge umiddelbart efter -I" + +#~ msgid "At %0, INCLUDE file %A exists, but is not readable" +#~ msgstr "Ved %0 eksisterer INCLUDE-filen %A, men kan ikke lses" + +#~ msgid "At %0, INCLUDE nesting too deep" +#~ msgstr "Ved %0 er INCLUDE-indlejring for dyb" + +#~ msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses" +#~ msgstr "To aritmetiske operatorer efter hinanden ved %0 og %1 - benyt paranteser" + +#~ msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses" +#~ msgstr "Operatoren ved %0 har lavere prioritet end den ved %1 - benyt paranteser" + +#~ msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2" +#~ msgstr "Benyt .EQV./.NEQV. i stedet for .EQ./.NE. ved %0 for LOGICAL-operander ved %1 og %2" + +#~ msgid "Unsupported operand for ** at %1 -- converting to default INTEGER" +#~ msgstr "Ikke-understttet operand for ** ved %1 - konverterer til standard-INTEGER" + +#~ msgid "overflowed output arg list for `%s'" +#~ msgstr "overlb i uddataparameterlist for '%s'" + +#~ msgid "--driver no longer supported" +#~ msgstr "--driver understttes ikke lngere" + +#~ msgid "argument to `%s' missing" +#~ msgstr "parameter til '%s' mangler" + +#~ msgid "no input files; unwilling to write output files" +#~ msgstr "ingen inputfiler; vil ikke skrive outputfiler" + +#~ msgid "Implicit declaration of `%A' at %0" +#~ msgstr "Implicit erklring af '%A' ved %0" + +#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0" +#~ msgstr "Undvigesekvensen '\\%A' ved %0 flger ikke ISO C-standarden" + +#~ msgid "Unknown escape sequence `\\%A' at %0" +#~ msgstr "Ukendt undvigesekvens '\\%A' ved %0" + +#~ msgid "Unterminated escape sequence `\\' at %0" +#~ msgstr "Uafsluttet undvigsekvens '\\' ved %0" + +#~ msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0" +#~ msgstr "Ukendt undvigesekvens '\\' efterfulgt af tegnkode 0x%A ved %0" + +#~ msgid "\\x used at %0 with no following hex digits" +#~ msgstr "\\x angivet ved %0 uden efterflgende hexadecimale cifre" + +#~ msgid "Hex escape at %0 out of range" +#~ msgstr "Hexadecimal undvigesekvens ved %0 er uden for det gyldige interval" + +#~ msgid "Escape sequence at %0 out of range for character" +#~ msgstr "Undvigesekvens ved %0 er uden for det gyldig interval for tegn" + +#~ msgid "hex escape out of range" +#~ msgstr "hexadecimal undvigesekvens er uden for det gyldige interval" + +#~ msgid "non-ANSI-standard escape sequence, `\\%c'" +#~ msgstr "undvigesekvensen '\\%c' flger ikke ANSI-standarden" + +#~ msgid "non-ISO escape sequence `\\%c'" +#~ msgstr "undvigesekvensen '\\%c' flger ikke ISO-standarden" + +#~ msgid "unknown escape sequence `\\%c'" +#~ msgstr "ukendt undvigesekvens '\\%c'" + +#~ msgid "unknown escape sequence: `\\' followed by char code 0x%x" +#~ msgstr "ukendt undvigesekvens: '\\' efterfulgt af tegnkoden 0x%x" + +#~ msgid "badly formed directive -- no closing quote" +#~ msgstr "forkert udformet direktiv - intet afsluttende anfrselstegn" + +#~ msgid "#-lines for entering and leaving files don't match" +#~ msgstr "#-linjer til at trde ind og ud af filer passer ikke" + +#~ msgid "bad directive -- missing close-quote" +#~ msgstr "forkert udformet direktiv - intet afsluttende anfrselstegn" + +#~ msgid "ignoring pragma: %s" +#~ msgstr "ignorerer pragma: %s" + +#~ msgid "invalid #ident" +#~ msgstr "ugyldig #ident" + +#~ msgid "undefined or invalid # directive" +#~ msgstr "ugyldigt eller ikke-defineret #-direktiv" + +#~ msgid "invalid #line" +#~ msgstr "ugyldig #line" + +#~ msgid "use `#line ...' instead of `# ...' in first line" +#~ msgstr "benyt '#line ...' i stedet for '# ...' i frste linje" + +#~ msgid "invalid #-line" +#~ msgstr "ugyldig #-linje" + +#~ msgid "Null character at %0 -- line ignored" +#~ msgstr "Nultegn ved %0 - linje ignoreret" + +#~ msgid "INCLUDE at %0 not the only statement on the source line" +#~ msgstr "INCLUDE ved %0 er ikke den eneste stning p kildekodelinjen" + +#~ msgid "ASSIGNed FORMAT specifier is too small" +#~ msgstr "ASSIGN'et FORMAT-angivelse er for lille" + +#~ msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry" +#~ msgstr "SELECT CASE p CHARACTER-type (ved %0) er ikke understttet - desvrre" + +#~ msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)" +#~ msgstr "SELECT (ved %0) har ens tilflde -- tjek heltalsoverlb af CASEs" + +#~ msgid "ASSIGN to variable that is too small" +#~ msgstr "ASSIGN til variabel der er for lille" + +#~ msgid "ASSIGNed GOTO target variable is too small" +#~ msgstr "ASSIGN'et GOTO-mlvariabel er for lille" + +#~ msgid "Local adjustable symbol `%A' at %0" +#~ msgstr "Lokalt justerbart symbol '%A' ved %0" + +#~ msgid "data initializer on host with different endianness" +#~ msgstr "datastartvrdi p vrt med anden endethed" + +#~ msgid "%s no longer supported -- try -fvxt" +#~ msgstr "%s er ikke lngere understttet - prv -fvxt" + +#~ msgid "%s no longer supported -- try -fno-vxt -ff90" +#~ msgstr "%s er ikke lngere understttet - prv -fno-vxt -ff90" + +#~ msgid "%s disabled, use normal debugging flags" +#~ msgstr "%s deaktiveret, benyt normale fejlanalyseringstilvalg" + +#~ msgid "Print g77-specific compiler version info, run internal tests" +#~ msgstr "Udskriv g77-specifik overstterversioninfo, kr interne test" + +#~ msgid "Program is written in typical FORTRAN 66 dialect" +#~ msgstr "Program er skrevet i typisk FORTRAN 66-dialekt" + +#~ msgid "Program is written in typical Unix f77 dialect" +#~ msgstr "Program er skrevet i typisk Unix f77-dialekt" + +#~ msgid "Program does not use Unix-f77 dialectal features" +#~ msgstr "Program benytter ikke Unix f77-dialektiske faciliteter" + +#~ msgid "Program is written in Fortran-90-ish dialect" +#~ msgstr "Program er skrevet i Fortran 90-agtig dialekt" + +#~ msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements" +#~ msgstr "Behandl lokale variable og COMMON-blokke som om de var nvnt i SAVE-stninger" + +#~ msgid "Allow $ in symbol names" +#~ msgstr "Tillad $ i symbolnavne" + +#~ msgid "f2c-compatible code need not be generated" +#~ msgstr "f2c-kompatibel kode behver ikke at blive genereret" + +#~ msgid "Unsupported; do not generate libf2c-calling code" +#~ msgstr "Ikke-understttet; generr ikke libf2c-kaldende kode" + +#~ msgid "Unsupported; affects code-generation of arrays" +#~ msgstr "Ikke-understttet; pvirker kodegenerering af tabeller" + +#~ msgid "Program is written in Fortran-90-ish free form" +#~ msgstr "Program er skrevet i Fortran 90-agtig fri stil" + +#~ msgid "Warn about use of (only a few for now) Fortran extensions" +#~ msgstr "Advar om brug af (i jeblikket kun nogle f) Fortran-udvidelser" + +#~ msgid "Program is written in VXT (Digital-like) FORTRAN" +#~ msgstr "Program er skrevet i VXT (Digital-agtig) FORTRAN" + +#~ msgid "Disallow all ugly features" +#~ msgstr "Forbyd alle grimme faciliteter" + +# hollerith? +#~ msgid "Hollerith and typeless constants not passed as arguments" +#~ msgstr "Hollerith og typelse konstanter overbringes ikke som parametre" + +#~ msgid "Allow ordinary copying of ASSIGN'ed vars" +#~ msgstr "Tillad almindelig kopiering af ASSIGN'ede variable" + +# RETMIG: ? +#~ msgid "Dummy array dimensioned to (1) is assumed-size" +#~ msgstr "Dummy-tabel dimensioneret til (1) er antaget strrelse" + +#~ msgid "Trailing comma in procedure call denotes null argument" +#~ msgstr "Afsluttende komma i procedurekald angiver nulparameter" + +#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +#~ msgstr "Tillad REAL(Z) og AIMAG(Z) givet DOUBLE COMPLEX Z" + +#~ msgid "Initialization via DATA and PARAMETER is type-compatible" +#~ msgstr "Klargring via DATA og PARAMETER er type-kompatible" + +#~ msgid "Allow INTEGER and LOGICAL interchangeability" +#~ msgstr "Tillad INTEGER og LOGICAL p hinandens plads" + +#~ msgid "Print internal debugging-related info" +#~ msgstr "Udskriv intern fejlanalyseringsrelateret info" + +#~ msgid "Initialize local vars and arrays to zero" +#~ msgstr "Klargr lokale variable og tabeller til nul" + +#~ msgid "Backslashes in character/hollerith constants not special (C-style)" +#~ msgstr "Omvendte skrstreger i tegn/hollerith-konstanter er ikke specielle (C-stil)" + +#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +#~ msgstr "Lad forenden emulere COMPLEX-beregninger for at undg fejl" + +#~ msgid "Disable the appending of underscores to externals" +#~ msgstr "Deaktivr tilfjelse af understreger bag p eksterne variable" + +#~ msgid "Never append a second underscore to externals" +#~ msgstr "Tilfj aldrig en anden understreg til eksterne variable" + +#~ msgid "Intrinsics spelled as e.g. SqRt" +#~ msgstr "Indbyggede staves som f.eks. SqRt" + +#~ msgid "Intrinsics in uppercase" +#~ msgstr "Indbyggede staves med store bogstaver" + +#~ msgid "Intrinsics letters in arbitrary cases" +#~ msgstr "Der skelnes ikke mellem sm og store bogstaver i indbyggede" + +#~ msgid "Language keywords spelled as e.g. IOStat" +#~ msgstr "Sprogngleord staves som f.eks. IOStat" + +#~ msgid "Language keywords in uppercase" +#~ msgstr "Sprogngleord staves med store bogstaver" + +#~ msgid "Language keyword letters in arbitrary cases" +#~ msgstr "Der skelnes ikke mellem sm og store bogstaver i sprogngleord" + +#~ msgid "Internally convert most source to uppercase" +#~ msgstr "Konvertr det meste kildekode til store bogstaver internt" + +#~ msgid "Internally preserve source case" +#~ msgstr "Bevar de store/sm bogstaver i kildekoden internt" + +#~ msgid "Symbol names spelled in mixed case" +#~ msgstr "Symbolnavne staves med en blanding af store og sm bogstaver" + +#~ msgid "Symbol names in uppercase" +#~ msgstr "Symbolnavne staves med store bogstaver" + +#~ msgid "Symbol names in lowercase" +#~ msgstr "Symbolnavne staves med sm bogstaver" + +#~ msgid "Program written in uppercase" +#~ msgstr "Program skrives med store bogstaver" + +#~ msgid "Program written in lowercase" +#~ msgstr "Program skrives med sm bogstaver" + +#~ msgid "Program written in strict mixed-case" +#~ msgstr "Program skrives med streng blanding af store/sm bogstaver" + +#~ msgid "Compile as if program written in uppercase" +#~ msgstr "Overst som hvis programmet var skrevet med store bogstaver" + +#~ msgid "Compile as if program written in lowercase" +#~ msgstr "Overst som hvis programmet var skrevet med sm bogstaver" + +#~ msgid "Preserve all spelling (case) used in program" +#~ msgstr "Bevar al stavning (store/sm bogstaver) benyttet i programmet" + +#~ msgid "Delete libU77 intrinsics with bad interfaces" +#~ msgstr "Slet libU77-indbyggede med drlige grnseflader" + +#~ msgid "Disable libU77 intrinsics with bad interfaces" +#~ msgstr "Deaktivr libU77-indbyggede med drlige grnseflader" + +#~ msgid "Hide libU77 intrinsics with bad interfaces" +#~ msgstr "Skjul libU77-indbyggede med drlige grnseflader" + +#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Slet f2c-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Deaktivr f2c-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Skjul f2c-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Slet F90-understttelse af ikke-FORTRAN-77-indbyggede " + +#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Deaktivr F90-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Skjul F90-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +#~ msgstr "Slet g77-understttelse af ikke-FORTRAN-77-indbyggede " + +#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +#~ msgstr "Deaktivr g77-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +#~ msgstr "Skjul g77-understttelse af ikke-FORTRAN-77-indbyggede" + +#~ msgid "Delete MIL-STD 1753 intrinsics" +#~ msgstr "Slet MIL-STD 1753-indbyggede" + +#~ msgid "Disable MIL-STD 1753 intrinsics" +#~ msgstr "Deaktivr MIL-STD 1753-indbyggede" + +#~ msgid "Hide MIL-STD 1753 intrinsics" +#~ msgstr "Skjul MIL-STD 1753-indbyggede" + +#~ msgid "Delete libU77 intrinsics" +#~ msgstr "Slet libU77-indbyggede" + +#~ msgid "Disable libU77 intrinsics" +#~ msgstr "Deaktivr libU77-indbyggede" + +#~ msgid "Hide libU77 intrinsics" +#~ msgstr "Skjul libU77-indbyggede" + +#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Slet VXT FORTRAN-understttelse af ikke-FORTRAN-77-indbyggede " + +#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Deaktivr VXT FORTRAN-understttelse af ikke-FORTRAN-77-indbyggede " + +#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Skjul VXT FORTRAN-understttelse af ikke-FORTRAN-77-indbyggede " + +#~ msgid "Treat initial values of 0 like non-zero values" +#~ msgstr "Behandl begyndelsesvrdier p 0 som vrdier forskellig fra nul" + +#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +#~ msgstr "Udsend speciel fejlanalyseringsinfo for COMMON og EQUIVALENCE (deaktiveret)" + +#~ msgid "Take at least one trip through each iterative DO loop" +#~ msgstr "Tag i det mindste et skridt gennem hver DO-lkke" + +#~ msgid "Print names of program units as they are compiled" +#~ msgstr "Udskriv navne p programenheder efterhnden som de oversttes" + +#~ msgid "Disable fatal diagnostics about inter-procedural problems" +#~ msgstr "Deaktivr fatale diagnosticeringer af interprocedurale procedurer" + +#~ msgid "Make prefix-radix non-decimal constants be typeless" +#~ msgstr "Gr prfiks-grundtal ikke-decimale konstanter typelse" + +#~ msgid "Generate code to check subscript and substring bounds" +#~ msgstr "Generr kode for at tjekke indekserings- og understrengsgrnser" + +#~ msgid "Fortran-specific form of -fbounds-check" +#~ msgstr "Fortran-specifik form for -fbounds-check" + +#~ msgid "Disable warnings about inter-procedural problems" +#~ msgstr "Deaktivr advarsler om interprocedurale problemer" + +#~ msgid "Warn about constructs with surprising meanings" +#~ msgstr "Advar om konstruktioner med overraskende betydninger" + +#~ msgid "Add a directory for INCLUDE searching" +#~ msgstr "Tilfj et katalog til INCLUDE-sgning" + +#~ msgid "Set the maximum line length" +#~ msgstr "Angiv den maksimale linjelngde" + +#~ msgid "Missing first operand for binary operator at %0" +#~ msgstr "Manglende frste operand for binr operator ved %0" + +#~ msgid "Zero-length character constant at %0" +#~ msgstr "Nul-lngde tegnkonstant ved %0" + +#~ msgid "Invalid token at %0 in expression or subexpression at %1" +#~ msgstr "Ugyldigt symbol ved %0 i udtryk eller underudtryk ved %1" + +#~ msgid "Missing operand for operator at %1 at end of expression at %0" +#~ msgstr "Manglende operand for operator ved %1 i slutningen af udtryk ved %0" + +#~ msgid "Label %A already defined at %1 when redefined at %0" +#~ msgstr "Etiket %A er allerede defineret ved %1 ved omdefinering ved %0" + +#~ msgid "Unrecognized character at %0 [info -f g77 M LEX]" +#~ msgstr "Ukendt tegn ved %0 [info -f g77 M LEX]" + +#~ msgid "Label definition %A at %0 on empty statement (as of %1)" +#~ msgstr "Etiketdefinition %A ved %0 i tom stning (ved %1)" + +#~ msgid "Invalid first character at %0 [info -f g77 M LEX]" +#~ msgstr "Ugyldig frste tegn ved %0 [info -f g77 M LEX]" + +#~ msgid "Line too long as of %0 [info -f g77 M LEX]" +#~ msgstr "Linje for lang ved %0 [info -f g77 M LEX]" + +#~ msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]" +#~ msgstr "Tegn der ikke er tal ved %0 i etiketfelt [info -f g77 M LEX]" + +#~ msgid "Label number at %0 not in range 1-99999" +#~ msgstr "Etiketnummer ved %0 er ikke i intervallet 1-99999" + +#~ msgid "At %0, '!' and '/*' are not valid comment delimiters" +#~ msgstr "Ved %0 er '!' og '/*' ikke gyldige kommentarafgrnsninger" + +#~ msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]" +#~ msgstr "Fortsttelsesindikator ved %0 skal optrde i kolonne 6 [info -f g77 M LEX]" + +#~ msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]" +#~ msgstr "Etiket ved %0 er ugyldig med fortsttelseslinjeindikator ved %1 [info -f g77 M LEX]" + +#~ msgid "Character constant at %0 has no closing apostrophe at %1" +#~ msgstr "Tenkonstant ved %0 har ingen afsluttende apostrof ved %1" + +#~ msgid "Hollerith constant at %0 specified %A more characters than are present as of %1" +#~ msgstr "Hollerith-konstant ved %0 angiver %A flere tegn end der optrder ved %1" + +#~ msgid "Missing close parenthese at %0 needed to match open parenthese at %1" +#~ msgstr "Afsluttende parantes ved %0 behves for at svare til ben parantes ved %1" + +#~ msgid "Integer at %0 too large" +#~ msgstr "Heltal ved %0 for stort" + +#~ msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'" +#~ msgstr "Punktum ved %0 efterflges ikke af cifre til kommatal eller af 'NOT.', 'TRUE.' eller 'FALSE.'" + +#~ msgid "Missing close-period between `.%A' at %0 and %1" +#~ msgstr "Manglende afsluttende punktum mellem '.%A' ved %0 og %1" + +#~ msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field" +#~ msgstr "Ugyldig eksponent ved %0 for reel konstant ved %1; ikke-ciffer '%A' i eksponentfelt" + +#~ msgid "Missing value at %1 for real-number exponent at %0" +#~ msgstr "Manglende vrdi ved %1 for reel eksponent ved %0" + +#~ msgid "Expected binary operator between expressions at %0 and at %1" +#~ msgstr "Forventede binr operator mellem udtryk ved %0 og ved %1" + +#~ msgid "Semicolon at %0 is an invalid token" +#~ msgstr "Semikolon ved %0 er et ugyldigt symbol" + +#~ msgid "Extraneous comma in FORMAT statement at %0" +#~ msgstr "Ekstra komma i FORMAT-stning ved %0" + +#~ msgid "Missing comma in FORMAT statement at %0" +#~ msgstr "Manglende komma i FORMAT-stning ved %0" + +#~ msgid "Spurious sign in FORMAT statement at %0" +#~ msgstr "Mystisk fortegn i FORMAT-stning ved %0" + +#~ msgid "Spurious number in FORMAT statement at %0" +#~ msgstr "Mystisk tal i FORMAT-stning ved %0" + +#~ msgid "Spurious text trailing number in FORMAT statement at %0" +#~ msgstr "Mystisk tekstafsluttende tal i FORMAT-stning ved %0" + +#~ msgid "Unrecognized FORMAT specifier at %0" +#~ msgstr "Ukendt FORMAT-angivelse ved %0" + +#~ msgid "Missing close-parenthese(s) in FORMAT statement at %0" +#~ msgstr "Manglende afsluttende parantes i FORMAT-stning ved %0" + +#~ msgid "Missing number following period in FORMAT statement at %0" +#~ msgstr "Manglende tal efter punktum i FORMAT-stning ved %0" + +#~ msgid "Missing number following `E' in FORMAT statement at %0" +#~ msgstr "Manglende tal efter 'E' i FORMAT-stning ved %0" + +#~ msgid "Spurious trailing comma preceding terminator at %0" +#~ msgstr "Mystisk afsluttende komma fr afslutningssymbol ved %0" + +#~ msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)" +#~ msgstr "Angiv OPERATOR i stedet for ASSIGNMENT ved %0 for INTERFACE-stning der ikke angiver tildelingsoperatoren (=)" + +#~ msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)" +#~ msgstr "Angiv ASSIGNMENT i stedet for OPERATOR ved %0 for INTERFACE-stning der angiver tildelingsoperatoren (=)" + +#~ msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects" +#~ msgstr "Kan ikke angive =klargringsudtryk ved %0 medmindre '::' optrder fr listen af objekter" + +#~ msgid "Reference to label at %1 inconsistent with its definition at %0" +#~ msgstr "Reference til etiket ved %1 er inkonsistent med dens definition ved %0" + +#~ msgid "Reference to label at %1 inconsistent with earlier reference at %0" +#~ msgstr "Reference til etiket ved %1 er inkonsistent med tidligere reference ved %0" + +#~ msgid "DO-statement reference to label at %1 follows its definition at %0" +#~ msgstr "DO-stningsreference til etiket ved %1 flger dens definition ved %0" + +#~ msgid "Reference to label at %1 is outside block containing definition at %0" +#~ msgstr "Reference til etiket ved %1 er uden for blok der indeholder definitionen ved %0" + +#~ msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1" +#~ msgstr "DO-stningsreferencer til etiket ved %0 og %2 adskilt af uafsluttet blok der begynder ved %1" + +#~ msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1" +#~ msgstr "DO-stningsreference til etiket ved %0 og etiketdefinition ved %2 adskilt af uafsluttet blok der begynder ved %1" + +#~ msgid "Label definition at %0 invalid on this kind of statement" +#~ msgstr "Etiketdefinition ved %0 er ugyldig ved denne slags stning" + +#~ msgid "Statement at %0 invalid in this context" +#~ msgstr "Stning ved %0 er ugyldig i denne kontekst" + +#~ msgid "Statement at %0 invalid in context established by statement at %1" +#~ msgstr "Stning ved %0 er ugyldig i den kontekst der er etableret af stning ved %1" + +#~ msgid "Statement at %0 must specify construct name specified at %1" +#~ msgstr "Stning ved %0 skal angive konstruktionsnavn angivet ved %1" + +#~ msgid "Construct name at %0 superfluous, no construct name specified at %1" +#~ msgstr "Kontruktionsnavn ved %0 er overfldigt, intet kontruktionsnavn angivet ved %1" + +#~ msgid "Construct name at %0 not the same as construct name at %1" +#~ msgstr "Kontruktionsnavn ved %0 er ikke det samme som konstruktionsnavn ved %1" + +#~ msgid "Construct name at %0 does not match construct name for any containing DO constructs" +#~ msgstr "Kontruktionsnavn ved %0 passer ikke med konstruktionsnavn for nogen indeholdende DO-konstruktioner" + +#~ msgid "Label definition missing at %0 for DO construct specifying label at %1" +#~ msgstr "Etiketdefinition mangler ved %0 for DO-konstruktion der angiver etiket ved %1" + +#~ msgid "Statement at %0 follows ELSE block for IF construct at %1" +#~ msgstr "Stning ved %0 flger ELSE-blok for IF-konstruktion ved %1" + +#~ msgid "No label definition for FORMAT statement at %0" +#~ msgstr "Ingen etiketdefinition for FORMAT-stning ved %0" + +#~ msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1" +#~ msgstr "Anden forekomst af ELSE WHERE ved %0 inden i WHERE ved %1" + +#~ msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1" +#~ msgstr "END-stning ved %0 mangler ngleordet '%A' som er pkrvet for interne eller modul-procedurer afgrnset af %1" + +#~ msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment" +#~ msgstr "MODULE PROCEDURE-stning ved %0 er ikke tilladt da INTERFACE ved %1 ikke angiver generisk navn, operator eller tildeling" + +#~ msgid "BLOCK DATA name at %0 superfluous, no name specified at %1" +#~ msgstr "BLOCK DATA-navn ved %0 er overfldigt, intet navn angivet ved %1" + +#~ msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1" +#~ msgstr "Programnavn ved %0 er overfldigt, ingen PROGRAM-stning angivet ved %1" + +#~ msgid "Program unit name at %0 not the same as name at %1" +#~ msgstr "Programenhedsnavn ved %0 er ikke det samme som navn ved %1" + +#~ msgid "Type name at %0 not the same as name at %1" +#~ msgstr "Typenavn ved %0 er ikke det samme som navn ved %1" + +#~ msgid "End of source file before end of block started at %0" +#~ msgstr "Slutning p kildekodefil fr slutning af blok begyndt ved %0" + +#~ msgid "Undefined label, first referenced at %0" +#~ msgstr "Ikke-defineret etiket, frste reference er ved %0" + +#~ msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0" +#~ msgstr "SAVE-stning eller -egenskab ved %1 kan ikke angives sammen med SAVE-stning eller -egenskab ved %0" + +#~ msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0" +#~ msgstr "PUBLIC- eller PRIVATE-stning ved %1 kan ikke angives sammen med PUBLIC- eller PRIVATE-stning ved %0" + +#~ msgid "RETURN statement at %0 invalid within a main program unit" +#~ msgstr "RETURN-stning ved %0 ugyldig inden i en hovedprogramenhed" + +#~ msgid "Alternate return specifier at %0 invalid within a main program unit" +#~ msgstr "Alternativ returangivelse ved %0 er ugyldig inden i en hovedprogramenhed" + +#~ msgid "Alternate return specifier at %0 invalid within a function" +#~ msgstr "Alternativ returangivelse ved %0 er ugyldig inden i en funktion" + +#~ msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module" +#~ msgstr "Tilgangsangivelse eller PRIVATE-stning ved %0 er ugyldig for nedarvet typedefinition som ikke er i specifikationsdelen af et modul" + +#~ msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements" +#~ msgstr "Tilgangsangivelse ved %0 skal umiddelbart flge nedarvet type-stning ved %1 uden nogen mellemliggende stninger" + +#~ msgid "No components specified as of %0 for derived-type definition beginning at %1" +#~ msgstr "Ingen komponenter angivet ved %0 for nedarvet typedefinition begyndende ved %1" + +#~ msgid "No components specified as of %0 for structure definition beginning at %1" +#~ msgstr "Ingen komponenter angivet ved %0 for strukturdefinition begyndende ved %1" + +#~ msgid "Missing structure name for outer structure definition at %0" +#~ msgstr "Manglende strukturnavn for ydre strukturdefinition ved %0" + +#~ msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead" +#~ msgstr "Feltnavne ved %0 for ydre strukturdefinition - angiv dem i en efterflgende RECORD-stning i stedet" + +#~ msgid "Missing field name(s) for structure definition at %0 within structure definition at %1" +#~ msgstr "Manglende feltnavne for strukturdefinition ved %0 inden i strukturdefinition ved %1" + +#~ msgid "No components specified as of %0 for map beginning at %1" +#~ msgstr "Ingen komponenter angivet ved %0 for map begyndende ved %1" + +#~ msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required" +#~ msgstr "Nul eller en map angivet ved %0 for union begyndende ved %1 - mindst to er pkrvet" + +#~ msgid "Missing %A specifier in statement at %0" +#~ msgstr "Manglende %A-angivelse i stning ved %0" + +#~ msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O" +#~ msgstr "Elementer i I/O-liste begyndende ved %0 er ugyldigt for navnlistedirigeret I/O" + +#~ msgid "Conflicting I/O control specifications at %0 and %1" +#~ msgstr "Modstridende I/O-kontrolangivelser ved %0 og %1" + +#~ msgid "No UNIT= specifier in I/O control list at %0" +#~ msgstr "Inge UNIT=-angivelse i I/O-kontrolliste ved %0" + +#~ msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list" +#~ msgstr "Specifikation ved %0 krver ADVANCE='NO'-specifikation i samme I/O-kontrolliste" + +#~ msgid "Specification at %0 requires explicit FMT= specification in same I/O control list" +#~ msgstr "Specifikation ved %0 krver eksplicit FMT=-specifikation i samme I/O-kontrolliste" + +#~ msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1" +#~ msgstr "Anden forekomst af CASE DEFAULT ved %0 inden i SELECT CASE ved %1" + +#~ msgid "Duplicate or overlapping case values/ranges at %0 and %1" +#~ msgstr "CASE-vrdi optrder mere end n gang eller intervaller overlapper ved %0 og %1" + +#~ msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1" +#~ msgstr "Type og/eller form for type-parameter konflikt mellem CASE-vrdi eller vrdi i interval ved %0 og SELECT CASE ved %1" + +#~ msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement" +#~ msgstr "Intervalangivelse ved %0 er ugyldig for CASE-stning inden i SELECT CASE-stning med logisk type" + +#~ msgid "Fortran 90 feature at %0 unsupported" +#~ msgstr "Fortran 90-facilitet ved %0 er ikke understttet" + +#~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]" +#~ msgstr "Ugyldig erklring af reference til symbolet '%A' ved %0 (frst set ved %1)" + +#~ msgid "Null element at %0 for array reference at %1" +#~ msgstr "Nulelement ved %0 for tabelreference ved %1" + +#~ msgid "Too few elements (%A missing) as of %0 for array reference at %1" +#~ msgstr "For f elementer (%A mangler) ved %0 for tabelreference ved %1" + +#~ msgid "Too many elements as of %0 for array reference at %1" +#~ msgstr "For mange elementer ved %0 for tabelreference ved %1" + +#~ msgid "Missing colon as of %0 in substring reference for %1" +#~ msgstr "Manglende kolon ved %0 i understrengsreference for %1" + +#~ msgid "Invalid use at %0 of substring operator on %1" +#~ msgstr "Ugyldig brug ved %0 af understrengsoperator p %1" + +#~ msgid "Substring begin/end point at %0 out of defined range" +#~ msgstr "Understrengs begyndelses-/slutpunkt ved %0 er uden for det definerede interval" + +#~ msgid "Array element value at %0 out of defined range" +#~ msgstr "Tabelelementvrdi ved %0 er uden for det definerede interval" + +#~ msgid "Expression at %0 has incorrect data type or rank for its context" +#~ msgstr "Udtryk ved %0 har forkert datatype eller rang for dets kontekst" + +#~ msgid "Division by 0 (zero) at %0 (IEEE not yet supported)" +#~ msgstr "Division med nul ved %0 (IEEE understttes ikke endnu)" + +#~ msgid "%A step count known to be 0 (zero) at %0" +#~ msgstr "%A-skridttller vides at vre nul ved %0" + +#~ msgid "%A end value plus step count known to overflow at %0" +#~ msgstr "%A-slutvrdi plus skridttller vides at forrsage overlb ved %0" + +#~ msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0" +#~ msgstr "%A-begyndelses-, slut- og skridttller-vrdier vides at resultere i implementeringsafhngig opfrsel pga. overlb i mellemregninger ved %0" + +#~ msgid "%A begin, end, and step-count values known to result in no iterations at %0" +#~ msgstr "%A-begyndelses-, slut- og skridttller-vrdier vides at resultere i at der ikke foretages nogen iterationer ved %0" + +#~ msgid "Type disagreement between expressions at %0 and %1" +#~ msgstr "Typekonflikt mellem udtryk ved %0 og %1" + +#~ msgid "No specification for implied-DO iterator `%A' at %0" +#~ msgstr "Ingen angivelse af underforstet DO-iterator '%A' ved %0" + +#~ msgid "Gratuitous parentheses surround implied-DO construct at %0" +#~ msgstr "Ekstra paranteser omkring underforstet DO-konstruktion ved %0" + +#~ msgid "Zero-size specification invalid at %0" +#~ msgstr "Nulstrrelses angivelse ugyldig ved %0" + +#~ msgid "Zero-size array at %0" +#~ msgstr "Nulstrrelsestabel ved %0" + +#~ msgid "Target machine does not support complex entity of kind specified at %0" +#~ msgstr "Mlarkitekturen understtter ikke den form for kompleks enhed der er angivet ved %0" + +#~ msgid "Target machine does not support DOUBLE COMPLEX, specified at %0" +#~ msgstr "Mlarkitekturen understtter ikke DOUBLE COMPLEX, som angivet ved %0" + +#~ msgid "Attempt to raise constant zero to a power at %0" +#~ msgstr "Forsg at oplfte konstant nul til en potens af %0" + +#~ msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C" +#~ msgstr "Reference til generisk indbygget '%A' ved %0 kunne vre for at danne %B eller %C" + +#~ msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]" +#~ msgstr "Tvetydig brug af indbygget '%A' ved %0 [info -f g77 M CMPAMBIG]" + +#~ msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]" +#~ msgstr "Indbygget '%A' refereret til som %B ved %0, som %C ved %1 [info -f g77 M EXPIMP]" + +#~ msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]" +#~ msgstr "Samme navn '%A' benyttet for %B ved %0 og %C ved %1 [info -f g77 M INTGLOB]" + +#~ msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0" +#~ msgstr "Eksplicit typeerklring for indbygget '%A' er i modstrid med kald ved %0" + +#~ msgid "Unable to open INCLUDE file `%A' at %0" +#~ msgstr "Kunne ikke bne INCLUDE-filen '%A' ved %0" + +#~ msgid "Null argument at %0 for statement function reference at %1" +#~ msgstr "Nulparameter ved %0 for stningsfunktionsreference ved %1" + +#~ msgid "Null argument at %0 for procedure invocation at %1" +#~ msgstr "Nulparameter ved %0 for procedurekald ved %1" + +#~ msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1" +#~ msgstr "%A for f parametre (begyndende ved dummy-parameter '%B') ved %0 for stningsfunktionsreference ved %1" + +#~ msgid "%A too many arguments as of %0 for statement function reference at %1" +#~ msgstr "%A for mange parametre ved %0 for stningsfunktionsreference ved %1" + +#~ msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0" +#~ msgstr "Tabel angivet ved %1 for dummy-parameter '%A' i stningsfunktionsreference ved %1" + +#~ msgid "Unsupported FORMAT specifier at %0" +#~ msgstr "Ikke-understttet FORMAT-angivelse ved %0" + +#~ msgid "Variable-expression FORMAT specifier at %0 -- unsupported" +#~ msgstr "Variabel-udtryks FORMAT-angivelse ved %0 - ikke-understttet" + +#~ msgid "Unsupported VXT statement at %0" +#~ msgstr "Ikke-understttet VXT-stning ved %0" + +#~ msgid "Attempt to specify second initial value for `%A' at %0" +#~ msgstr "Forsg p at angive anden startvrdi for '%A' ved %0" + +#~ msgid "Too few initial values in list of initializers for `%A' at %0" +#~ msgstr "For f startvrdier i klargringsliste for '%A' ved %0" + +#~ msgid "Too many initial values in list of initializers starting at %0" +#~ msgstr "For mange startvrdier i klargringsliste ved %0" + +#~ msgid "Array or substring specification for `%A' out of range in statement at %0" +#~ msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i stning ved %0" + +#~ msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0" +#~ msgstr "Tabelindeks nr. %B er uden for det gyldig interval ved klargring af '%A' i stning ved %0" + +#~ msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0" +#~ msgstr "Underforstet do-lkkeskridttller p nul for iterationsvariablen '%A' i stning ved %0" + +#~ msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0" +#~ msgstr "Underforstet do-lkkegentagelsestller p nul for iterationsvariablen '%A' i stning ved %0" + +#~ msgid "Not an integer constant expression in implied do-loop in statement at %0" +#~ msgstr "Ikke et heltalskonstantudtryk i underforstet do-lkke i stning ved %0" + +#~ msgid "Attempt to specify second initial value for element of `%A' at %0" +#~ msgstr "Forsg p at angive anden startvdi for element af '%A' ved %0" + +#~ msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0" +#~ msgstr "Forsg p at anvende EQUIVALENCE mellem de almene omrder '%A' og '%B' ved %0" + +#~ msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions" +#~ msgstr "Kan ikke placere '%A' som angivet af EQUIVALENCE pga. justeringsrestriktioner" + +#~ msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'" +#~ msgstr "Forkerte EQUIVALENCE-krav for placering af '%A' ved bde %C og %D bytes afstand fra '%B'" + +#~ msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement" +#~ msgstr "Tabel- eller understrengsspecifikation for '%A' er uden for det gyldige interval i EQUIVALENCE-stning" + +#~ msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement" +#~ msgstr "Understreng af ikke-CHARACTER enhed '%A' i EQUIVALENCE-stning" + +#~ msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement" +#~ msgstr "Tabelreference til skalar variabel '%A' i EQUIVALENCE-stning" + +#~ msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'" +#~ msgstr "Tabelindeks nr. %B er uden for det gyldige interval for EQUIVALENCE '%A'" + +#~ msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'" +#~ msgstr "Forsg p at udvide COMMON-omrde over dets begyndelsespunkt vha. EQUIVALENCE '%A'" + +#~ msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement" +#~ msgstr "For f elementer i reference til tabllen '%A' i EQUIVALENCE-stning" + +#~ msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement" +#~ msgstr "For mange elementer i reference til tabllen '%A' i EQUIVALENCE-stning" + +#~ msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'" +#~ msgstr "Blandede CHARACTER- og ikke-CHARACTER-typer vha. COMMON/EQUIVALENCE - f.eks. '%A' og '%B'" + +#~ msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram" +#~ msgstr "Returvrdi `%A' for FUNCTION ved %0 refereres ikke i underprogram" + +#~ msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1" +#~ msgstr "Almen blok '%A' er SAVEd, eksplicit eller implicit, ved %0, men ikke ved %1" + +#~ msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1" +#~ msgstr "Almen blok '%A' er %B %D i lngde ved %0, men %C %E ved %1" + +#~ msgid "Blank common initialized at %0" +#~ msgstr "Tom almen tildelt startvrdi ved %0" + +#~ msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC" +#~ msgstr "Indbygget '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklret INTRINSIC" + +#~ msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL" +#~ msgstr "Ekstern procedure '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklret EXTERNAL" + +#~ msgid "Character `%A' (for example) is upper-case in symbol name at %0" +#~ msgstr "Tegn '%A' (f.eks.) er et stort bogstav i symbolnavn ved %0" + +#~ msgid "Character `%A' (for example) is lower-case in symbol name at %0" +#~ msgstr "Tegn '%A' (f.eks.) er et lille bogstav i symbolnavn ved %0" + +#~ msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0" +#~ msgstr "Tegn '%A' flges ikke af lille bogstav i symbolnavn ved %0" + +#~ msgid "Initial character `%A' is lower-case in symbol name at %0" +#~ msgstr "Begyndelsestegn '%A' er et lille bogstav i symbolnavn ved %0" + +#~ msgid "NAMELIST not adequately supported by run-time library for source files with case preserved" +#~ msgstr "NAMELIST er ikke tilstrkkeligt understttet af krselsbiblioteket for kildefiler med store/sm bogstaver bevaret" + +#~ msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0" +#~ msgstr "Indlejret %%-konstruktion (%%VAL, %%REF eller %%DESCR) ved %0" + +#~ msgid "Statement at %0 invalid in BLOCK DATA program unit at %1" +#~ msgstr "Stning ved %0 er ugyldig i BLOCK DATA-programenhed ved %1" + +#~ msgid "Truncating characters on right side of character constant at %0" +#~ msgstr "Fjerner tegn p den hjre side af tegnkonstant ved %0" + +#~ msgid "Truncating characters on right side of hollerith constant at %0" +#~ msgstr "Fjerner tegn p den hjre side af hollerith-konstant ved %0" + +#~ msgid "Truncating non-zero data on left side of numeric constant at %0" +#~ msgstr "Fjerner data der ikke er nul, p den venstre side af numerisk konstant ved %0" + +#~ msgid "Truncating non-zero data on left side of typeless constant at %0" +#~ msgstr "Fjerner data der ikke er nul, p den venstre side af typels konstant ved %0" + +#~ msgid "Typeless constant at %0 too large" +#~ msgstr "Typels konstant ved %0 er for stor" + +#~ msgid "First-column ampersand continuation at %0" +#~ msgstr "Frstekolonne og-tegnsfortsttelse ved %0" + +#~ msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]" +#~ msgstr "Globalt navn '%A' defineret ved %0 er allerede defineret ved %1 [info -f g77 M GLOBALS]" + +#~ msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]" +#~ msgstr "Globalt navn '%A' er %B ved %0, men er %C ved %1 [info -f g77 M GLOBALS]" + +#~ msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]" +#~ msgstr "Globalt navn '%A' ved %0 har anden type ved %1 [info -f g77 M GLOBALS]" + +#~ msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]" +#~ msgstr "For %B parameter overbragt til '%A' ved %0 mod definitionen ved %1 [info -f g77 M GLOBALS]" + +#~ msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]" +#~ msgstr "For %B parametre til '%A' ved %0 mod kald ved %1 [info -f g77 M GLOBALS]" + +#~ msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]" +#~ msgstr "Parameter nr. %B for '%A' er %C ved %0, men er %D ved %1 [info -f g77 M GLOBALS]" + +#~ msgid "Array `%A' at %0 is too large to handle" +#~ msgstr "Tabellen '%A' ved %0 er for stor til at hndtere" + +#~ msgid "Statement function `%A' defined at %0 is not used" +#~ msgstr "Stningsfunktion '%A' defineret ved %0, men er ikke brugt" + +#~ msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]" +#~ msgstr "Indbygget '%A', kaldt ved %0, vides ikke vre r 2000-sikker [info -f g77 M Y2KBAD]" + +#~ msgid "Internal compiler error -- cannot perform operation" +#~ msgstr "Intern overstterfejl - kan ikke udfre operation" + +#~ msgid "In unknown kind" +#~ msgstr "I ukendt ting" + +#~ msgid "In entity" +#~ msgstr "I enheden" + +#~ msgid "In function" +#~ msgstr "I funktionen" + +#~ msgid "In subroutine" +#~ msgstr "I underrutinen" + +#~ msgid "In program" +#~ msgstr "I programmet" + +#~ msgid "In block-data unit" +#~ msgstr "I blokdataenheden" + +#~ msgid "In common block" +#~ msgstr "I den almene blok" + +#~ msgid "In construct" +#~ msgstr "I konstruktionen" + +#~ msgid "In namelist" +#~ msgstr "I navnelisten" + +#~ msgid "In anything" +#~ msgstr "I et eller andet" + +#~ msgid "internal error in check-init: tree code not implemented: %s" +#~ msgstr "intern fejl i check-init: trkode ikke implementeret: %s" + +#~ msgid "final field '%s' may not have been initialized" +#~ msgstr "slutfeltet '%s' bliver mske ikke klargjort" + +#~ msgid "internal error - too many interface type" +#~ msgstr "intern fejl - for mange grnsefladetyper" + +#~ msgid "bad method signature" +#~ msgstr "ugyldig metodesignatur" + +#~ msgid "misplaced ConstantValue attribute (not in any field)" +#~ msgstr "forkert placeret ConstantValue-egenskab (ikke i noget felt)" + +#~ msgid "duplicate ConstantValue attribute for field '%s'" +#~ msgstr "mere end n ConstantValue-egenskab for feltet '%s'" + +#~ msgid "ConstantValue attribute of field '%s' has wrong type" +#~ msgstr "ConstantValue-egenskaben for feltet '%s' har forkert type" + +#~ msgid "field '%s' not found in class" +#~ msgstr "feltet '%s' blev ikke fundet i klassen" + +#~ msgid "abstract method in non-abstract class" +#~ msgstr "abstrakt metode i ikke-abstrakt klasse" + +#~ msgid "non-static method '%s' overrides static method" +#~ msgstr "ikke-statisk metode '%s' overskriver statisk metode" + +#~ msgid "In %s: overlapped variable and exception ranges at %d" +#~ msgstr "I %s: overlappende variabel- og undtagelsesintervaller ved %d" + +#~ msgid "bad type in parameter debug info" +#~ msgstr "ugyldig type i parameterfejlanalyseringsinfo" + +#~ msgid "bad PC range for debug info for local `%s'" +#~ msgstr "ugyldig PC-interval for fejlanalyseringsinfo for lokal '%s'" + +#~ msgid "stack underflow - dup* operation" +#~ msgstr "stakunderlb - dup*-operation" + +#~ msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'" +#~ msgstr "reference '%s' er tvetydig: den optrder i grnsefladen '%s' og grnsefladen '%s'" + +#~ msgid "field `%s' not found" +#~ msgstr "feltet '%s' ikke fundet" + +#~ msgid "ret instruction not implemented" +#~ msgstr "ret-instruktion ikke implementeret" + +#~ msgid "method '%s' not found in class" +#~ msgstr "metoden '%s' ikke fundet i klassen" + +#~ msgid "failed to find class '%s'" +#~ msgstr "kunne ikke finde klassen '%s'" + +#~ msgid "class '%s' has no method named '%s' matching signature '%s'" +#~ msgstr "klassen '%s' har ingen metode ved navn '%s' der passer med signaturen '%s'" + +#~ msgid "invokestatic on non static method" +#~ msgstr "invokestatic p en ikke-statisk metode" + +#~ msgid "invokestatic on abstract method" +#~ msgstr "invokestatic p en abstrakt metode" + +#~ msgid "invoke[non-static] on static method" +#~ msgstr "invoke[non-static] p en statisk metode" + +#~ msgid "missing field '%s' in '%s'" +#~ msgstr "manglende felt '%s' i '%s'" + +#~ msgid "mismatching signature for field '%s' in '%s'" +#~ msgstr "signatur passer ikke med feltet '%s' i '%s'" + +#~ msgid "assignment to final field `%s' not in field's class" +#~ msgstr "tildeling til endeligt felt '%s' er ikke i feltets klasse" + +#~ msgid "assignment to final static field `%s' not in class initializer" +#~ msgstr "tildeling til endeligt statisk felt '%s' er ikke i klassens klargring" + +#~ msgid "assignment to final field `%s' not in constructor" +#~ msgstr "tildeling til endeligt felt '%s' er ikke i konstruktionsfunktion" + +#~ msgid "can't expand %s" +#~ msgstr "kan ikke udfolde %s" + +#~ msgid "invalid PC in line number table" +#~ msgstr "ugyldig PC i linjetalstabel" + +#~ msgid "unreachable bytecode from %d to before %d" +#~ msgstr "kan ikke n bytekode fra %d til fr %d" + +#~ msgid "unreachable bytecode from %d to the end of the method" +#~ msgstr "kan ikke n bytekode fra %d til slutningen af metoden" + +#~ msgid "unrecogized wide sub-instruction" +#~ msgstr "ukendt bred underinstruktion" + +#~ msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead" +#~ msgstr "kildekodefilen for klassen '%s' er nyere end dens tilsvarende klassefil; kildekodefilen '%s' benyttet i stedet" + +#~ msgid "bad string constant" +#~ msgstr "ugyldig strengkonstant" + +#~ msgid "bad value constant type %d, index %d" +#~ msgstr "ugyldig vrdikonstanttype %d, indeks %d" + +#~ msgid "can't reopen %s" +#~ msgstr "kan ikke genbne %s" + +#~ msgid "can't close %s" +#~ msgstr "kan ikke lukke %s" + +#~ msgid "cannot find file for class %s" +#~ msgstr "kan ikke finde filen for klassen %s" + +#~ msgid "not a valid Java .class file" +#~ msgstr "ikke en gyldig Java .class-fil" + +#~ msgid "error while parsing constant pool" +#~ msgstr "fejl ved tolkning af konstant omrde" + +#~ msgid "error in constant pool entry #%d\n" +#~ msgstr "fejl i konstantomrdelement nr. %d\n" + +#~ msgid "reading class %s for the second time from %s" +#~ msgstr "lser klassen %s for anden gang fra %s" + +#~ msgid "error while parsing fields" +#~ msgstr "fejl ved tolkning af felter" + +#~ msgid "error while parsing methods" +#~ msgstr "fejl ved tolkning af metoder" + +#~ msgid "error while parsing final attributes" +#~ msgstr "fejl ved tolkning af endelige egenskaber" + +#~ msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath" +#~ msgstr "det 'java.lang.Object' som blev fundet i '%s' havde ikke den specielle nullngdes egenskab 'gnu.gcj.gcj-compiled'. Dette betyder som regel at din klassesti er angivet forkert. Prv 'info gcj \"Input Options\"' for at se en infoside der beskriver hvordan man angiver klassestien" + +#~ msgid "missing Code attribute" +#~ msgstr "manglende Code-egenskab" + +#~ msgid "source file seen twice on command line and will be compiled only once" +#~ msgstr "kildekodefil angivet to gange i kommandolinjen og vil kun blive oversat n gang" + +#~ msgid "no input file specified" +#~ msgstr "ingen inddatafiler angivet" + +#~ msgid "can't close input file %s" +#~ msgstr "kan ikke lukke inddatafilen %s" + +#~ msgid "bad zip/jar file %s" +#~ msgstr "delagt zip/jar-fil %s" + +#~ msgid "internal error in generate_bytecode_insn - tree code not implemented: %s" +#~ msgstr "intern fejl i generate_bytecode_insn - trkode er ikke implementeret: %s" + +#~ msgid "field initializer type mismatch" +#~ msgstr "typen af startvrdien for feltet passer ikke" + +#~ msgid "can't create directory %s" +#~ msgstr "kan ikke oprette kataloget %s" + +#~ msgid "can't create %s" +#~ msgstr "kan ikke oprette %s" + +#~ msgid "only one of `--print-main', `--list-class', and `--complexity' allowed" +#~ msgstr "kun n af '--print-main', '--list-class' og '--complexity' tilladt" + +#~ msgid "can't open output file `%s'" +#~ msgstr "kan ikke bne uddatafilen '%s'" + +#~ msgid "file not found `%s'" +#~ msgstr "filen '%s' blev ikke fundet" + +#~ msgid "can't specify `-D' without `--main'\n" +#~ msgstr "kan ikke angive '-D' uden '--main'\n" + +#~ msgid "`%s' is not a valid class name" +#~ msgstr "'%s' er et ugyldigt klassenavn" + +#~ msgid "--resource requires -o" +#~ msgstr "--resource pkrver -o" + +#~ msgid "warning: already-compiled .class files ignored with -C" +#~ msgstr "advarsel: allerede oversatte .class-filer ignoreret med -C" + +#~ msgid "cannot specify both -C and -o" +#~ msgstr "-C og -o er indbyrdes uforenelige" + +#~ msgid "cannot create temporary file" +#~ msgstr "kan ikke oprette midlertidig fil" + +#~ msgid "using both @FILE with multiple files not implemented" +#~ msgstr "brug af @FILE med flere filer er ikke implementeret" + +#~ msgid "cannot specify `main' class when not linking" +#~ msgstr "kan ikke angive 'main'-klassen nr der ikke sammenkdes" + +#~ msgid "can't do dependency tracking with input from stdin" +#~ msgstr "kan ikke udfre afhngighedsflgning med inddata fra standard-ind" + +#~ msgid "couldn't determine target name for dependency tracking" +#~ msgstr "kunne ikke bestemme mlnavn for afhngighedsflgning" + +#~ msgid "" +#~ "unknown encoding: `%s'\n" +#~ "This might mean that your locale's encoding is not supported\n" +#~ "by your system's iconv(3) implementation. If you aren't trying\n" +#~ "to use a particular encoding for your input file, try the\n" +#~ "`--encoding=UTF-8' option" +#~ msgstr "" +#~ "ukendt kodning: '%s'\n" +#~ "Dette betyder muligvis at kodningen fra dine regionaldata ikke\n" +#~ "understttes af dit systems iconv(3)-implementering. Hvis du \n" +#~ "ikke nske at bruge en bestemt kodning for dine inddatafiler, \n" +#~ "s prv tilvalget '--encoding=UTF-8'" + +#~ msgid "can't mangle %s" +#~ msgstr "kan ikke sammenstte %s" + +#~ msgid "internal error - invalid Utf8 name" +#~ msgstr "intern fejl - ugyldigt UTF-8-navn" + +#~ msgid "Missing term" +#~ msgstr "Manglende term" + +#~ msgid "';' expected" +#~ msgstr "';' forventet" + +#~ msgid "Missing name" +#~ msgstr "Manglende navn" + +#~ msgid "'*' expected" +#~ msgstr "'*' forventet" + +#~ msgid "Class or interface declaration expected" +#~ msgstr "Klasse- eller grnsefladeerklring forventet" + +#~ msgid "Missing class name" +#~ msgstr "Manglende klassenavn" + +#~ msgid "'{' expected" +#~ msgstr "'{' forventet" + +#~ msgid "Missing super class name" +#~ msgstr "Manglende superklassenavn" + +#~ msgid "Missing interface name" +#~ msgstr "Manglende grnsefladenavn" + +#~ msgid "Missing variable initializer" +#~ msgstr "Manglende variabelstartvrdi" + +#~ msgid "Invalid declaration" +#~ msgstr "Ugyldig erklring" + +#~ msgid "']' expected" +#~ msgstr "']' forventet" + +#~ msgid "Unbalanced ']'" +#~ msgstr "Uafbalanceret ']'" + +#~ msgid "Invalid method declaration, method name required" +#~ msgstr "Ugyldig metodeerklring, metodenavn pkrvet" + +#~ msgid "Identifier expected" +#~ msgstr "Kaldenavn forventet" + +#~ msgid "Invalid method declaration, return type required" +#~ msgstr "Ugyldig metodeerklring, returtype pkrvet" + +#~ msgid "')' expected" +#~ msgstr "')' forventet" + +#~ msgid "Missing formal parameter term" +#~ msgstr "Manglende formel parameterterm" + +#~ msgid "Missing identifier" +#~ msgstr "Manglende kaldenavn" + +#~ msgid "Missing class type term" +#~ msgstr "Manglende klassetypeterm" + +#~ msgid "Invalid interface type" +#~ msgstr "Ugyldig grnsefladetype" + +#~ msgid "':' expected" +#~ msgstr "':' forventet" + +#~ msgid "Invalid expression statement" +#~ msgstr "Ugyldig udtryksstning" + +#~ msgid "'(' expected" +#~ msgstr "'(' forventet" + +#~ msgid "Missing term or ')'" +#~ msgstr "Manglende term eller ')'" + +#~ msgid "Missing or invalid constant expression" +#~ msgstr "Manglende eller ugyldigt konstant udtryk" + +#~ msgid "Missing term and ')' expected" +#~ msgstr "Manglende term eller ')' forventet" + +#~ msgid "Invalid control expression" +#~ msgstr "Ugyldigt kontroludtryk" + +#~ msgid "Invalid update expression" +#~ msgstr "Ugyldigt opdateringsudtryk" + +#~ msgid "Invalid init statement" +#~ msgstr "Ugyldig klargringsstning" + +#~ msgid "Missing term or ')' expected" +#~ msgstr "Manglende term eller ')' forventet" + +#~ msgid "'class' or 'this' expected" +#~ msgstr "'class' eller 'this' forventet" + +#~ msgid "'class' expected" +#~ msgstr "'class' forventet" + +#~ msgid "')' or term expected" +#~ msgstr "')' eller term forventet" + +#~ msgid "'[' expected" +#~ msgstr "'[' forventet" + +#~ msgid "Field expected" +#~ msgstr "Felt forventet" + +#~ msgid "Missing term and ']' expected" +#~ msgstr "Manglende term og ']' forventet" + +#~ msgid "']' expected, invalid type expression" +#~ msgstr "']' forventet, ugyldigt typeudtryk" + +#~ msgid "Invalid type expression" +#~ msgstr "Ugyldigt typeudtryk" + +#~ msgid "Invalid reference type" +#~ msgstr "Ugyldig referencetype" + +#~ msgid "Constructor invocation must be first thing in a constructor" +#~ msgstr "Konstruktionsfunktionskald skal vre det frste i en konstruktionsfunktion" + +#~ msgid "Only constructors can invoke constructors" +#~ msgstr "Kun konstruktionsfunktioner kan kalde konstruktionsfunktioner" + +#~ msgid ": `%s' JDK1.1(TM) feature" +#~ msgstr ": '%s' JDK1.1(TM)-facilitet" + +#~ msgid "" +#~ "%s.\n" +#~ "%s" +#~ msgstr "" +#~ "%s.\n" +#~ "%s" + +#~ msgid "malformed .zip archive in CLASSPATH: %s" +#~ msgstr "ugyldigt udformet .zip-arkiv i CLASSPATH: %s" + +#~ msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" +#~ msgstr "Kan ikke finde standardpakken '%s'. Kontrollr CLASSPATH-miljvariablen og tilgangen til arkiverne" + +#~ msgid "missing static field `%s'" +#~ msgstr "manglende statisk felt '%s'" + +#~ msgid "not a static field `%s'" +#~ msgstr "ikke et statisk felt '%s'" + +#~ msgid "No case for %s" +#~ msgstr "Ingen case for %s" + +#~ msgid "unregistered operator %s" +#~ msgstr "ikke-registreret operator %s" + +#~ msgid "junk at end of signature string" +#~ msgstr "ragelse i slutningen signaturstreng" + +#~ msgid "bad pc in exception_table" +#~ msgstr "ugyldig pc i exception_table" + +#~ msgid "exception handler inside code that is being protected" +#~ msgstr "undtagelseshndtering inden i kode der bliver beskyttet" + +#~ msgid "unknown opcode %d@pc=%d during verification" +#~ msgstr "ukendt kode %d@pc=%d under verifikation" + +#~ msgid "verification error at PC=%d" +#~ msgstr "verifikationsfejl ved PC=%d" + +#~ msgid "Disable automatic array bounds checking" +#~ msgstr "Deaktivr automatisk tabelgrnsekontrollering" + +#~ msgid "Disable assignability checks for stores into object arrays" +#~ msgstr "Deaktivr tildelingstjek for lagringer i objekttabeller" + +#~ msgid "Assume native functions are implemented using JNI" +#~ msgstr "Antag at indfdte funktioner er implementeret vha. JNI" + +#~ msgid "Replace system path" +#~ msgstr "Erstat systemsti" + +#~ msgid "Set class path" +#~ msgstr "Angiv klassesti" + +#~ msgid "Set class path (deprecated: use --classpath instead)" +#~ msgstr "Angiv klassesti (forldet: benyt --classpath i stedet)" + +#~ msgid "Choose class whose main method should be used" +#~ msgstr "Vlg klasse hvis main-metode skal bruges" + +#~ msgid "Choose input encoding (default comes from locale)" +#~ msgstr "Vlg inddatakodning (standardvrdi kommer fra regionalindstillinger)" + +#~ msgid "Add directory to class path" +#~ msgstr "Tilfj katalog til klassesti" + +#~ msgid "Directory where class files should be written" +#~ msgstr "Katalog som klassefiler skrives i" + +#~ msgid "Warn if modifiers are specified when not necessary" +#~ msgstr "Advar hvis modifikationer angives nr det ikke er ndvendigt" + +#~ msgid "Warn if deprecated empty statements are found" +#~ msgstr "Advar hvis forldede tomme stninger bliver fundet" + +#~ msgid "Warn if .class files are out of date" +#~ msgstr "Advar hvis .class-filer er forldede" + +#~ msgid "Always check for non gcj generated classes archives" +#~ msgstr "Kontrollr altid for ikke-GCJ-genererede klassearkiver" + +#~ msgid "Never optimize static class initialization code" +#~ msgstr "Optimr aldrig statiske klassers klargringskode" + +#~ msgid "Use offset tables for virtual method calls" +#~ msgstr "Benyt afststabeller til virtuelle metodekald" + +#~ msgid "object does not conform to the `%s' protocol" +#~ msgstr "objekt overholder ikke protokollen '%s'" + +#~ msgid "class `%s' does not implement the `%s' protocol" +#~ msgstr "klassen '%s' implementerer ikke protokollen '%s'" + +#~ msgid "`%s' cannot be statically allocated" +#~ msgstr "'%s' kan ikke allokeres statisk" + +#~ msgid "unexpected type for `id' (%s)" +#~ msgstr "uventet type for 'id' (%s)" + +#~ msgid "undefined type `id', please import " +#~ msgstr "typen 'id' er ikke defineret, importr venligst " + +#~ msgid "protocol `%s' has circular dependency" +#~ msgstr "protokollen '%s' har cirkulr afhngighed" + +#~ msgid "cannot find protocol declaration for `%s'" +#~ msgstr "kan ikke finde protokolerklringen af '%s'" + +#~ msgid "cannot find interface declaration for `%s'" +#~ msgstr "kan ikke finde grnsefladeerklringen af '%s'" + +#~ msgid "cannot find reference tag for class `%s'" +#~ msgstr "kan ikke finde referencemrket for klassen '%s'" + +#~ msgid "creating selector for non existant method %s" +#~ msgstr "opretter vlger for ikke-eksisterende metode '%s'" + +#~ msgid "cannot find class `%s'" +#~ msgstr "kan ikke finde klassen '%s'" + +#~ msgid "class `%s' already exists" +#~ msgstr "klassen '%s' eksisterer allerede" + +#~ msgid "cannot find interface declaration for `%s', superclass of `%s'" +#~ msgstr "kan ikke grnsefladeerklringen af '%s', superklasse til '%s'" + +#~ msgid "circular inheritance in interface declaration for `%s'" +#~ msgstr "cirkulr nedarvning i interface-erklringen af '%s'" + +#~ msgid "inconsistent instance variable specification" +#~ msgstr "inkonsistent instansvariabelangivelse" + +#~ msgid "can not use an object as parameter to a method\n" +#~ msgstr "kan ikke benytte et objekt som parameter til en metode\n" + +#~ msgid "multiple declarations for method `%s'" +#~ msgstr "mere end n erklring af metoden '%s'" + +#~ msgid "invalid receiver type `%s'" +#~ msgstr "ugyldig modtagertype '%s'" + +#~ msgid "`%s' does not respond to `%s'" +#~ msgstr "'%s' svarer ikke p '%s'" + +#~ msgid "no super class declared in interface for `%s'" +#~ msgstr "ingen superklasse erklret i grnsefladen for '%s'" + +#~ msgid "cannot find class (factory) method" +#~ msgstr "kan ikke finde klasse(fabriks)metode" + +#~ msgid "return type for `%s' defaults to id" +#~ msgstr "returtypen for '%s' fr standardvrdien id" + +#~ msgid "method `%s' not implemented by protocol" +#~ msgstr "metoden '%s' er ikke implementeret af protokollen" + +#~ msgid "return type defaults to id" +#~ msgstr "returtype fr standardvrdien id" + +#~ msgid "cannot find method" +#~ msgstr "kan ikke finde metode" + +#~ msgid "undeclared selector `%s'" +#~ msgstr "uerklret vlger '%s'" + +#~ msgid "instance variable `%s' accessed in class method" +#~ msgstr "instansvariablen '%s' tilget i klassemetode" + +#~ msgid "duplicate definition of class method `%s'" +#~ msgstr "mere end n definition af klassemetoden '%s'" + +#~ msgid "duplicate declaration of class method `%s'" +#~ msgstr "mere end n erklring af klassemetoden '%s'" + +#~ msgid "duplicate definition of instance method `%s'" +#~ msgstr "mere end n definition af instansmetoden '%s'" + +#~ msgid "duplicate declaration of instance method `%s'" +#~ msgstr "mere end n erklring af instansmetoden '%s'" + +#~ msgid "duplicate interface declaration for category `%s(%s)'" +#~ msgstr "mere end n grnsefladeerklring af kategorien '%s(%s)'" + +#~ msgid "instance variable `%s' is declared private" +#~ msgstr "instansvariablen '%s' er erklret privat" + +#~ msgid "instance variable `%s' is declared %s" +#~ msgstr "instansvariablen '%s' er erklret '%s'" + +#~ msgid "static access to object of type `id'" +#~ msgstr "statisk tilgang til objekt af typen 'id'" + +#~ msgid "incomplete implementation of class `%s'" +#~ msgstr "ufuldstndig implementering af klassen '%s'" + +#~ msgid "incomplete implementation of category `%s'" +#~ msgstr "ufuldstndig implementering af kategorien '%s'" + +#~ msgid "method definition for `%c%s' not found" +#~ msgstr "metodedefinitionen for '%c%s' ikke fundet" + +#~ msgid "%s `%s' does not fully implement the `%s' protocol" +#~ msgstr "%s '%s' implementerer ikke helt protokollen '%s'" + +#~ msgid "`@end' missing in implementation context" +#~ msgstr "'@end' mangler i implementationskontekst" + +#~ msgid "reimplementation of class `%s'" +#~ msgstr "omimplementering af klassen '%s'" + +#~ msgid "conflicting super class name `%s'" +#~ msgstr "modstridende superklassenavn '%s'" + +#~ msgid "duplicate interface declaration for class `%s'" +#~ msgstr "mere end n grnsefladeerklring af klassen '%s'" + +#~ msgid "duplicate declaration for protocol `%s'" +#~ msgstr "mere end n erklring af protokollen '%s'" + +#~ msgid "[super ...] must appear in a method context" +#~ msgstr "[super ...] skal optrde i en metodekontekst" + +#~ msgid "potential selector conflict for method `%s'" +#~ msgstr "potentiel vlgerkonflikt for metoden '%s'" + +#~ msgid "`@end' must appear in an implementation context" +#~ msgstr "'@end' skal optrde i en implementationskontekst" + +#~ msgid "method definition not in class context" +#~ msgstr "metodedefinitionen optrder ikke i en klassekontekst" + +#~ msgid "Dump decls to a .decl file" +#~ msgstr "Udskriv erklringer i en .decl-fil" + +#~ msgid "Generate code for GNU runtime environment" +#~ msgstr "Generr kode til GNU-krselmilj" + +#~ msgid "Generate code for NeXT runtime environment" +#~ msgstr "Generr kode til NeXT-krselmilj" + +#~ msgid "Warn if a selector has multiple methods" +#~ msgstr "Advar hvis en vlger har flere metoder" + +#~ msgid "Do not warn if inherited methods are unimplemented" +#~ msgstr "Advar ikk hvis nedarvede metoder ikke implementeres" + +#~ msgid "Generate C header of platform specific features" +#~ msgstr "Generr C-inkluderingsfil med platformspecifikke faciliteter" + +#~ msgid "Specify the name of the class for constant strings" +#~ msgstr "Angiv navnet p klassen til konstante strenge" + +#~ msgid "(debug) trace parsing process" +#~ msgstr "(fejlretning) flg fortolkningsprocessen" + +#~ msgid "(debug) trace lexical analysis" +#~ msgstr "(fejlretning) flg lexikalsk analyse" + +#~ msgid "-current_version only allowed with -dynamiclib" +#~ msgstr "-current_version er kun tilladt med -dynamiclib" + +#~ msgid "-install_name only allowed with -dynamiclib" +#~ msgstr "-install_name er kun tilladt med -dynamiclib" + +#~ msgid "-bundle not allowed with -dynamiclib" +#~ msgstr "-bundle er ikke tilladt med -dynamiclib" + +#~ msgid "-bundle_loader not allowed with -dynamiclib" +#~ msgstr "-bundle_loader er ikke tilladt med -dynamiclib" + +#~ msgid "-client_name not allowed with -dynamiclib" +#~ msgstr "-client_name er ikke tilladt med -dynamiclib" + +#~ msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" +#~ msgstr "-force_cpusubtype_ALL er ikke tilladt med -dynamiclib" + +#~ msgid "-force_flat_namespace not allowed with -dynamiclib" +#~ msgstr "-force_flat_namespace er ikke tilladt med -dynamiclib" + +#~ msgid "-keep_private_externs not allowed with -dynamiclib" +#~ msgstr "-keep_private_externs er ikke tilladt med -dynamiclib" + +#~ msgid "-private_bundle not allowed with -dynamiclib" +#~ msgstr "-private_bundle er ikke tilladt med -dynamiclib" + +#~ msgid "GNU C does not support -C without using -E" +#~ msgstr "GNU C understtter ikke -C uden -E" + +#~ msgid "GNU C does not support -CC without using -E" +#~ msgstr "GNU C understtter ikke -CC uden -E" + +#~ msgid "`-p' not supported; use `-pg' and gprof(1)" +#~ msgstr "'-p' understttes ikke; brug '-pg' og gprof(1)" + +#~ msgid "may not use both -m32 and -m64" +#~ msgstr "-m32 og -m64 er indbyrdes uforenelige" + +#~ msgid "The -shared option is not currently supported for VAX ELF." +#~ msgstr "Tilvalget -shared understttes i jeblikket ikke for VAX ELF." + +#~ msgid "profiling not supported with -mg\n" +#~ msgstr "profilgenerering understttes ikke med -mg\n" + +#~ msgid "-pipe is not supported" +#~ msgstr "-pipe understttes ikke" + +#~ msgid "may not use both -EB and -EL" +#~ msgstr "kan ikke bruge bde -EB og -EL" + +#~ msgid "-pg and -fomit-frame-pointer are incompatible" +#~ msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige" + +#~ msgid "mno-cygwin and mno-win32 are not compatible" +#~ msgstr "-mno-cygwin og -mnowin32 er indbyrdes uforenelige" + +#~ msgid "shared and mdll are not compatible" +#~ msgstr "shared og mdll er indbyrdes uforenelige" + +#~ msgid "-E required when input is from standard input" +#~ msgstr "-E pkrvet nr inddata kommer fra standardind" + +#~ msgid "compilation of header file requested" +#~ msgstr "oversttelse af inkluderingsfil udbedt" + +#~ msgid " conflicting code gen style switches are used" +#~ msgstr " konfliktende kodegenereringstilvalg er benyttet" + +#~ msgid "-pg or -p and -fomit-frame-pointer are incompatible" +#~ msgstr "-pg eller -p og -fomit-frame-pointer er indbyrdes uforenelige" + +#~ msgid "choose either big or little endian, not both" +#~ msgstr "vlg enten stor- eller lilleendet, ikke begge" + +#~ msgid "choose either m340 or m210 not both" +#~ msgstr "vlg enten m340 eller m210, ikke begge" + +#~ msgid "the m210 does not have little endian support" +#~ msgstr "m210 har ikke understttelse for lilleendet" + +#~ msgid "-mapcs-26 and -mapcs-32 may not be used together" +#~ msgstr "-mapcs-26 og -mapcs-32 kan ikke bruges p samme tid" + +#~ msgid "-msoft-float and -mhard_float may not be used together" +#~ msgstr "-msoft-float og -mhard_float kan ikke bruges p samme tid" + +#~ msgid "-mbig-endian and -mlittle-endian may not be used together" +#~ msgstr "-mbig-endian og -mlittle-endian kan ikke bruges p samme tid" + +#~ msgid "-mhard-float not supported" +#~ msgstr "-mhard-float understttes ikke" + +#~ msgid "-msingle-float and -msoft-float can not both be specified" +#~ msgstr "-msingle-float og -msoft-float er indbyrdes uforenelige" + +#~ msgid "-c or -S required for Ada" +#~ msgstr "-c eller -S krves til Ada" + +#~ msgid "-fjni and -femit-class-files are incompatible" +#~ msgstr "-fjni og -femit-class-files er indbyrdes uforenelige" + +#~ msgid "-fjni and -femit-class-file are incompatible" +#~ msgstr "-fjni og -femit-class-file er indbyrdes uforenelige" + +#~ msgid "-femit-class-file should used along with -fsyntax-only" +#~ msgstr "-femit-class-file skal bruges sammen med -fsyntax-only" + +#~ msgid "-static not valid with -mcoff" +#~ msgstr "-static er ikke gyldig sammen med -mcoff" + +#~ msgid "-shared not valid with -mcoff" +#~ msgstr "-shared er ikke gyldig sammen med -mcoff" + +#~ msgid "-symbolic not valid with -mcoff" +#~ msgstr "-symbolic er ikke gyldig sammen med -mcoff" + +#~ msgid "-fpic is not valid with -mcoff" +#~ msgstr "-fpic er ikke gyldig sammen med -mcoff" + +#~ msgid "-fPIC is not valid with -mcoff" +#~ msgstr "-fPIC er ikke gyldig sammen med -mcoff" + +#~ msgid "-fpic not valid with -mcoff" +#~ msgstr "-fpic er ikke gyldig sammen med -mcoff" + +#~ msgid "-fPIC not valid with -mcoff" +#~ msgstr "-fPIC er ikke gyldig sammen med -mcoff" + +#~ msgid "__alignof__ applied to an incomplete type" +#~ msgstr "__alignof__ benyttet p en ufuldstndig type" + +#~ msgid "-traditional is deprecated and may be removed" +#~ msgstr "-traditional er forldet og kan blive fjernet" + +#~ msgid "unknown C standard `%s'" +#~ msgstr "ukendt C-standard '%s'" + +#~ msgid "type of external `%s' is not global" +#~ msgstr "typen af den eksterne '%s' er ikke global" + +#~ msgid "typedef `%s' is initialized" +#~ msgstr "typedef '%s' bliver tildelt en startvrdi" + +#~ msgid "unnamed fields of type other than struct or union are not allowed" +#~ msgstr "unavngivne felter af andre typer end struct eller union er ikke tilladt" + +#~ msgid "null format string" +#~ msgstr "formateringsstreng er nul" + +#~ msgid "ignoring #pragma %s" +#~ msgstr "ignorerer #pragma: %s" + +#~ msgid "both 'f' and 'l' suffixes on floating constant" +#~ msgstr "bde 'f'- og 'l'-endelser i kommatalskonstant" + +#~ msgid "floating point number exceeds range of '%s'" +#~ msgstr "kommatal overskrider intervallet for '%s" + +#~ msgid "decimal point in exponent - impossible!" +#~ msgstr "decimalkomma i eksponent - umuligt!" + +#~ msgid "underscore in number" +#~ msgstr "understreg i tal" + +#~ msgid "numeric constant with no digits" +#~ msgstr "talkonstant uden cifre" + +#~ msgid "numeric constant contains digits beyond the radix" +#~ msgstr "talkonstant indeholder cifre der ligger ud over grundtallet" + +#~ msgid "floating constant may not be in radix 16" +#~ msgstr "kommatalskonstant m ikke skrives med grundtal 16" + +#~ msgid "more than one 'f' suffix on floating constant" +#~ msgstr "mere end n 'f'-endelse i kommatalskonstant" + +#~ msgid "traditional C rejects the 'f' suffix" +#~ msgstr "traditionel C tillader ikke endelsen 'f'" + +#~ msgid "more than one 'l' suffix on floating constant" +#~ msgstr "mere end n 'l'-endelse i kommatalskonstant" + +#~ msgid "traditional C rejects the 'l' suffix" +#~ msgstr "traditionel C tillader ikke endelsen 'l'" + +#~ msgid "more than one 'i' or 'j' suffix on floating constant" +#~ msgstr "mere end n 'i'- eller 'j'-endelse i kommatalskonstant" + +#~ msgid "ISO C forbids imaginary numeric constants" +#~ msgstr "ISO C forbyder imaginre talkonstanter" + +#~ msgid "floating constant out of range" +#~ msgstr "kommatalskonstant er uden for det gyldige interval" + +#~ msgid "floating point number exceeds range of 'double'" +#~ msgstr "kommatal overskrider intervallet for 'double'" + +#~ msgid "two 'u' suffixes on integer constant" +#~ msgstr "to 'u'-endelser i heltalskonstant" + +#~ msgid "traditional C rejects the 'u' suffix" +#~ msgstr "traditionel C tillader ikke 'u'-endelsen" + +#~ msgid "three 'l' suffixes on integer constant" +#~ msgstr "tre 'l'-endelser i heltalskonstant" + +#~ msgid "'lul' is not a valid integer suffix" +#~ msgstr "'lul' er ikke en gyldig heltalsendelse" + +#~ msgid "'Ll' and 'lL' are not valid integer suffixes" +#~ msgstr "'Ll' og 'lL' er ikke gyldige heltalsendelser" + +#~ msgid "more than one 'i' or 'j' suffix on integer constant" +#~ msgstr "mere end n 'i'- eller 'j'-endelse i heltalskonstant" + +#~ msgid "invalid suffix on integer constant" +#~ msgstr "ugyldig endelse i heltalskonstant" + +#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits" +#~ msgstr "heltalskonstant er for stor til denne konfiguration af overstteren - afkortet til %d bit" + +#~ msgid "width of integer constant changes with -traditional" +#~ msgstr "bredden af heltalskonstant skifter med -traditional" + +#~ msgid "integer constant is unsigned in ISO C, signed with -traditional" +#~ msgstr "heltalskonstant er unsigned i ISO C, signed med -traditional" + +#~ msgid "width of integer constant may change on other systems with -traditional" +#~ msgstr "bredden af heltalskonstant kan skifte p andre systemer med -traditional" + +#~ msgid "integer constant larger than the maximum value of %s" +#~ msgstr "heltalskonstant er strre end den maksimale vrdi for %s" + +#~ msgid "an unsigned long long int" +#~ msgstr "en unsigned long long int" + +#~ msgid "a long long int" +#~ msgstr "en long long int" + +#~ msgid "an unsigned long int" +#~ msgstr "en unsigned long int" + +#~ msgid "decimal constant is so large that it is unsigned" +#~ msgstr "decimalkonstant er s stor at den er unsigned" + +#~ msgid "complex integer constant is too wide for 'complex int'" +#~ msgstr "kompleks heltalskonstant er for bred til 'complex int'" + +#~ msgid "integer constant is larger than the maximum value for its type" +#~ msgstr "heltalskonstant er strre end den maksimale vrdi for dens type" + +#~ msgid "missing white space after number '%.*s'" +#~ msgstr "manglende mellemrum efter tallet '%.*s'" + +#~ msgid "ISO C does not permit use of `varargs.h'" +#~ msgstr "ISO C tillader ikke brug af 'varargs.h'" + +#~ msgid "storage class specifier in array declarator" +#~ msgstr "lagringsklasseanvisning i tabelerklring" + +#~ msgid "sizeof applied to a function type" +#~ msgstr "sizeof benyttet p en funktionstype" + +#~ msgid "sizeof applied to a void type" +#~ msgstr "sizeof benyttet p en void-type" + +#~ msgid "sizeof applied to an incomplete type" +#~ msgstr "sizeof benyttet p en ufuldstndig type" + +#~ msgid "variable offset is passed partially in stack and in reg" +#~ msgstr "variabelafst bliver viderebragt delvis i stak og i register" + +#~ msgid "variable size is passed partially in stack and in reg" +#~ msgstr "variabelstrrelse bliver viderebragt delvis i stak og i register" + +#~ msgid "execvp %s" +#~ msgstr "execvp %s" + +#~ msgid "floating point numbers are not valid in #if" +#~ msgstr "kommatal er ikke tilladt i #if" + +#~ msgid "traditional C rejects the `U' suffix" +#~ msgstr "traditionel C forbyder 'U'-endelsen" + +#~ msgid "too many 'l' suffixes in integer constant" +#~ msgstr "for mange 'l'-endelser i heltalskonstant" + +#~ msgid "integer constant contains digits beyond the radix" +#~ msgstr "heltalskonstanten indeholder cifre der er strre end grundtallet" + +#~ msgid "integer constant out of range" +#~ msgstr "heltalskonstanten er uden for det gyldige interval" + +#~ msgid "string constants are not valid in #if" +#~ msgstr "strengkonstanter er ikke tilladt i #if" + +#~ msgid "missing binary operator" +#~ msgstr "manglende binr operator" + +#~ msgid "changing search order for system directory \"%s\"" +#~ msgstr "skifter sgeorden for systemkataloget \"%s\"" + +#~ msgid " as it is the same as non-system directory \"%s\"" +#~ msgstr " da det er det samme som ikke-system-kataloget \"%s\"" + +#~ msgid " as it has already been specified as a non-system directory" +#~ msgstr " da det allerede er blevet angivet som et ikke-system-katalog" + +#~ msgid "I/O error on output" +#~ msgstr "I/O-fejl p uddata" + +#~ msgid "argument missing after %s" +#~ msgstr "en parameter mangler efter %s" + +#~ msgid "number missing after %s" +#~ msgstr "et tal mangler efter %s" + +#~ msgid "target missing after %s" +#~ msgstr "et ml mangler efter %s" + +#~ msgid "GNU CPP version %s (cpplib)" +#~ msgstr "GNU CPP version %s (cpplib)" + +#~ msgid "" +#~ " -pedantic Issue all warnings demanded by strict ISO C\n" +#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n" +#~ " -trigraphs Support ISO C trigraphs\n" +#~ " -lang-c Assume that the input sources are in C\n" +#~ " -lang-c89 Assume that the input sources are in C89\n" +#~ msgstr "" +#~ " -pedantic Fremkom med alle advarsler pkrvet for nje ISO C\n" +#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n" +#~ " -traditional Iagttag opfrsel som en K&R-prprocessor\n" +#~ " -trigraphs Understt ANSI C-trigrafer\n" +#~ " -lang-c Antag at inddata er C\n" +#~ " -lang-c89 Antag at inddata er C89\n" + +#~ msgid "" +#~ " -lang-c++ Assume that the input sources are in C++\n" +#~ " -lang-objc Assume that the input sources are in ObjectiveC\n" +#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n" +#~ " -lang-asm Assume that the input sources are in assembler\n" +#~ msgstr "" +#~ " -lang-c++ Antag at inddata er C++\n" +#~ " -lang-cobjc Antag at inddata er Objective C\n" +#~ " -lang-cobjc++ Antag at inddata er Objective C++\n" +#~ " -lang-asm Antag at inddata er maskinkode\n" + +#~ msgid "possible start of unterminated string literal" +#~ msgstr "muligvis begyndelsen af uafsluttet strengkonstant" + +#~ msgid "multi-line string literals are deprecated" +#~ msgstr "flerlinjers strengkonstanter er forldede" + +#~ msgid "the meaning of '\\%c' varies with -traditional" +#~ msgstr "betydningen af '\\%c' skifter med -traditional" + +#~ msgid "the meaning of '\\a' varies with -traditional" +#~ msgstr "betydningen af '\\a' skifter med -traditional" + +#~ msgid "the meaning of '\\x' varies with -traditional" +#~ msgstr "betydningen af '\\x' skifter med -traditional" + +#~ msgid "\"%s\" cannot be used as a macro name" +#~ msgstr "\"%s\" kan ikke bruges som et makronavn" + +#~ msgid "directives may not be used inside a macro argument" +#~ msgstr "direktiver m ikke optrde inden i en makroparameter" + +#~ msgid "invalid option %s" +#~ msgstr "ugyldigt tilvalg %s" + +#~ msgid "%s:%d: warning: " +#~ msgstr "%s:%d: advarsel: " + +#~ msgid "%s: warning: " +#~ msgstr "%s: advarsel: " + +#~ msgid "sorry, not implemented: " +#~ msgstr "desvrre, ikke implementeret: " + +#~ msgid "Internal compiler error in %s, at %s:%d" +#~ msgstr "Intern overstterfejl i %s ved %s:%d." + +#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n" +#~ msgstr "Copyright 2002 Free Software Foundation, Inc.\n" + +#~ msgid "argument to `-b' is missing" +#~ msgstr "der mangler en parameter til '-b'" + +#~ msgid "argument to `-V' is missing" +#~ msgstr "der mangler en parameter til '-V'" + +#~ msgid "invalid version number format" +#~ msgstr "ugyldigt versionsnummerformat" + +#~ msgid ".da file contents exhausted too early\n" +#~ msgstr "indholdet af .da-filen er udtmt for tidligt\n" + +#~ msgid ".da file contents not exhausted\n" +#~ msgstr "indholdet af .da-filen ikke udtmt\n" + +#~ msgid "%6.2f%% of %d source lines executed in function %s\n" +#~ msgstr "%6.2f%% af %d kildekodelinjer udfrt i funktionen %s\n" + +#~ msgid "No executable source lines in function %s\n" +#~ msgstr "Ingen krbare kildelinjer i funktionen %s\n" + +#~ msgid "%6.2f%% of %d branches executed in function %s\n" +#~ msgstr "%6.2f%% af %d forgreninger udfrt i funktionen %s\n" + +#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n" +#~ msgstr "%6.2f%% af %d forgreninger valgt mindst n gang i funktionen %s\n" + +#~ msgid "No branches in function %s\n" +#~ msgstr "Ingen forgreninger i funktionen %s\n" + +#~ msgid "%6.2f%% of %d calls executed in function %s\n" +#~ msgstr "%6.2f%% af %d kald udfrt i funktionen %s\n" + +#~ msgid "No calls in function %s\n" +#~ msgstr "Ingen kald i funktionen %s\n" + +#~ msgid "%6.2f%% of %d source lines executed in file %s\n" +#~ msgstr "%6.2f%% af %d kildekodelinjer udfrt i filen %s\n" + +#~ msgid "%6.2f%% of %d branches executed in file %s\n" +#~ msgstr "%6.2f%% af %d forgreninger udfrt i filen %s\n" + +#~ msgid "%6.2f%% of %d branches taken at least once in file %s\n" +#~ msgstr "%6.2f%% af %d forgreninger valgt mindst n gang i filen %s\n" + +#~ msgid "%6.2f%% of %d calls executed in file %s\n" +#~ msgstr "%6.2f%% af %d kald udfrt i filen %s\n" + +#~ msgid "call %d returns = %s\n" +#~ msgstr "kald %d returnerer = %s\n" + +#~ msgid "call %d returns = %s%%\n" +#~ msgstr "kald %d returnerer = %s%%\n" + +#~ msgid "branch %d taken = %s\n" +#~ msgstr "forgrening %d valgt = %s\n" + +#~ msgid "branch %d taken = %s%%\n" +#~ msgstr "forgrening %d valgt = %s%%\n" + +#~ msgid ".da file contents exhausted too early" +#~ msgstr "indholdet af .da-filen er udtmt for tidligt" + +#~ msgid ".da file contents not exhausted" +#~ msgstr "indholdet af .da-filen ikke udtmt" + +#~ msgid "conversion from NaN to int" +#~ msgstr "konvertering fra NaN til int" + +#~ msgid "floating point overflow" +#~ msgstr "kommatalsoverlb" + +#~ msgid "overflow on truncation to integer" +#~ msgstr "overlb ved afkortelse til heltal" + +#~ msgid "overflow on truncation to unsigned integer" +#~ msgstr "overlb ved afkortelse til heltal uden fortegn" + +#~ msgid "%s: argument domain error" +#~ msgstr "%s: parameterdomnefejl" + +#~ msgid "%s: function singularity" +#~ msgstr "%s: funktionssingularitet" + +#~ msgid "%s: overflow range error" +#~ msgstr "%s: overlbsintervalfejl" + +#~ msgid "%s: underflow range error" +#~ msgstr "%s: underlbsintervalfejl" + +#~ msgid "%s: total loss of precision" +#~ msgstr "%s: samlet tab af prcision" + +#~ msgid "%s: partial loss of precision" +#~ msgstr "%s: delvist tab af prcision" + +#~ msgid "%s: NaN - producing operation" +#~ msgstr "%s: NaN - producerer operation" + +#~ msgid "Pretend that host and target use the same FP format" +#~ msgstr "Lad som om vrten og mlet bruger samme kommatalsformat" + +#~ msgid "Compile pointers as triples: value, base & end" +#~ msgstr "Overst henvisningsvariabler som tretupler: vrdi, basis og slut" + +#~ msgid "Do not promote floats to double if using -traditional" +#~ msgstr "Forfrem ikke float til double hvis -traditional benyttes" + +#~ msgid "Attempt to support traditional K&R style C" +#~ msgstr "Forsg at understtte traditionel K&R C" + +#~ msgid "internal error: %s" +#~ msgstr "intern fejl: %s" + +#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block" +#~ msgstr "krydsspring deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok" + +#~ msgid " -a Enable block profiling \n" +#~ msgstr " -a Aktivr blokprofilering\n" + +#~ msgid " -ax Enable jump profiling \n" +#~ msgstr " -ax Aktivr springprofilering\n" + +#~ msgid "profiling does not work without a frame pointer" +#~ msgstr "profilering virker ikke uden en rammehenvisning" + +#~ msgid "floating point numbers not allowed in #if expressions" +#~ msgstr "kommatal er ikke tilladt i #if-udtryk" + +#~ msgid "invalid number in #if expression" +#~ msgstr "ugyldigt tal i #if-udtryk" + +#~ msgid "invalid character constant in #if" +#~ msgstr "ugyldig tegnkonstant i #if" + +#~ msgid "double quoted strings not allowed in #if expressions" +#~ msgstr "strenge med dobbelte anfrselstegn er ikke tilladte i #if-udtryk" + +#~ msgid "invalid token in expression" +#~ msgstr "ugyldigt symbol udtryk" + +#~ msgid "octal character constant does not fit in a byte" +#~ msgstr "oktal tegnkonstant kan ikke vre i en byte" + +#~ msgid "hex character constant does not fit in a byte" +#~ msgstr "hexadecimal tegnkonstant kan ikke vre i en byte" + +#~ msgid "empty #if expression" +#~ msgstr "tomt #if-udtryk" + +#~ msgid "Junk after end of expression." +#~ msgstr "ragelse efter slutningen af udtryk" + +#~ msgid "macro or #include recursion too deep" +#~ msgstr "makro eller #include-rekursion er for dyb" + +#~ msgid "usage: %s [switches] input output" +#~ msgstr "brug: %s [tilvalg] inddata uddata" + +#~ msgid "-traditional is not supported in C++" +#~ msgstr "-traditional understttes ikke i C++" + +#~ msgid "-traditional and -ansi are mutually exclusive" +#~ msgstr "-traditional og -ansi er indbyrdes uforenelige" + +#~ msgid "filename missing after -i option" +#~ msgstr "et filnavn mangler efter tilvalget -i" + +#~ msgid "filename missing after -o option" +#~ msgstr "et filnavn mangler efter tilvalget -o" + +#~ msgid "target missing after %s option" +#~ msgstr "et ml mangler efter tilvalget %s" + +#~ msgid "filename missing after %s option" +#~ msgstr "et filnavn mangler efter tilvalget %s" + +#~ msgid "macro name missing after -%c option" +#~ msgstr "et makronavn mangler efter tilvalget -%c" + +#~ msgid "-pedantic and -traditional are mutually exclusive" +#~ msgstr "-pedantic og -traditional er indbyrdes uforenelige" + +#~ msgid "-trigraphs and -traditional are mutually exclusive" +#~ msgstr "-trigraphs og -traditional er indbyrdes uforenelige" + +#~ msgid "directory name missing after -I option" +#~ msgstr "et katalognavn mangler efter '-I'-tilvalg" + +#~ msgid "`/*' within comment" +#~ msgstr "'/*' i en kommentar" + +#~ msgid "unterminated #%s conditional" +#~ msgstr "uafsluttet #%s-betingelse" + +#~ msgid "not in any file?!" +#~ msgstr "ikke i nogen fil?!" + +#~ msgid "`defined' must be followed by ident or (ident)" +#~ msgstr "'defined' skal efterflges af et kaldenavn eller (kaldenavn)" + +#~ msgid "cccp error: invalid special hash type" +#~ msgstr "cccp-fejl: ugyldig speciel hash-type" + +#~ msgid "#include expects \"fname\" or " +#~ msgstr "#include forventer \"filnavn\" eller " + +#~ msgid "no include path in which to find %.*s" +#~ msgstr "der er ingen inkluderingssti at finde %.*s i" + +#~ msgid "invalid macro name" +#~ msgstr "ugyldigt makronavn" + +#~ msgid "invalid macro name `%s'" +#~ msgstr "ugyldigt makronavn '%s'" + +#~ msgid "parameter name starts with a digit in #define" +#~ msgstr "parameternavn begynder med et ciffer i #define" + +#~ msgid "badly punctuated parameter list in #define" +#~ msgstr "ugyldigt punktueret parameterliste i #define" + +#~ msgid "unterminated parameter list in #define" +#~ msgstr "uafsluttet parameterliste i #define" + +#~ msgid "\"%.*s\" redefined" +#~ msgstr "\"%.*s\" omdefineret" + +#~ msgid "# operator should be followed by a macro argument name" +#~ msgstr "operatoren # skal efterflges af et makroparameternavn" + +#~ msgid "invalid format #line command" +#~ msgstr "ugyldigt formateret #line-kommando" + +#~ msgid "undefining `defined'" +#~ msgstr "glemmer definitionen af 'defined'" + +#~ msgid "undefining `%s'" +#~ msgstr "glemmer definitionen af '%s'" + +#~ msgid "extra text at end of directive" +#~ msgstr "ekstra tekst i slutningen af direktiv" + +#~ msgid "#error%.*s" +#~ msgstr "#error%.*s" + +#~ msgid "#warning%.*s" +#~ msgstr "#warning%.*s" + +#~ msgid "#elif not within a conditional" +#~ msgstr "#elif er ikke inde i betingelsesstning" + +#~ msgid "#%s not within a conditional" +#~ msgstr "#%s ikke inde i betingelsesstning" + +#~ msgid "#else or #elif after #else" +#~ msgstr "#else eller #elif efter #else" + +#~ msgid "#else not within a conditional" +#~ msgstr "#else er ikke inde i betingelsesstning" + +#~ msgid "unbalanced #endif" +#~ msgstr "uafbalanceret #endif" + +#~ msgid "unterminated string or character constant" +#~ msgstr "uafsluttet streng- eller tegnkonstant" + +#~ msgid "arguments given to macro `%s'" +#~ msgstr "parametre givet til makroen '%s'" + +#~ msgid "no args to macro `%s'" +#~ msgstr "ingen parametre givet til makroen '%s'" + +#~ msgid "only 1 arg to macro `%s'" +#~ msgstr "kun 1 parameter givet til makroen '%s'" + +#~ msgid "only %d args to macro `%s'" +#~ msgstr "kun %d parametre givet til makroen '%s'" + +#~ msgid "too many (%d) args to macro `%s'" +#~ msgstr "for mange (%d) parametre givet til makroen '%s'" + +#~ msgid "" +#~ "internal error in %s, at tradcpp.c:%d\n" +#~ "Please submit a full bug report.\n" +#~ "See %s for instructions." +#~ msgstr "" +#~ "intern fejl i '%s', ved tradcpp:%d\n" +#~ "Send venligst en komplet fejlrapport.\n" +#~ "Se %s for instruktioner." + +#~ msgid "optimization turned on" +#~ msgstr "optimeringer slet til" + +#~ msgid "optimization turned off" +#~ msgstr "optimeringer slet fra" + +#~ msgid "optimization level restored" +#~ msgstr "optimeringsniveau gendannet" + +#~ msgid "Use VAX-C alignment" +#~ msgstr "Brug VAX-C-justering" + +#~ msgid "invalid %%V value" +#~ msgstr "ugyldig %%V-vrdi" + +#~ msgid "Generate code assuming DW bit is set" +#~ msgstr "Generr kode der antager at DW-bitten er sat" + +#~ msgid "Generate code assuming DW bit is not set" +#~ msgstr "Generr kode der antager at DW-bitten ikke er sat" + +#~ msgid "Generate code using byte writes" +#~ msgstr "Generr kode der bruger byte-skrivninger" + +#~ msgid "Do not generate byte writes" +#~ msgstr "Generr ikke byte-skrivninger" + +#~ msgid "Use small memory model" +#~ msgstr "Brug en lille hukommelsesmodel" + +#~ msgid "Use normal memory model" +#~ msgstr "Brug en normal hukommelsesmodel" + +#~ msgid "Use large memory model" +#~ msgstr "Brug en stor hukommelsesmodel" + +#~ msgid "Generate 29050 code" +#~ msgstr "Generr 29050-kode" + +#~ msgid "Generate 29000 code" +#~ msgstr "Generr 29000-kode" + +#~ msgid "Use kernel global registers" +#~ msgstr "Bruge kerneglobale registre" + +#~ msgid "Use user global registers" +#~ msgstr "Bruge brugerglobale registre" + +#~ msgid "Emit stack checking code" +#~ msgstr "Generr stakkontrolleringskode" + +#~ msgid "Do not emit stack checking code" +#~ msgstr "Generr ikke stakkontrolleringskode" + +#~ msgid "Work around storem hardware bug" +#~ msgstr "Arbejd rundt om storem-hardwarefejl" + +#~ msgid "Do not work around storem hardware bug" +#~ msgstr "Arbejd ikke rundt om storem-hardwarefejl" + +#~ msgid "Store locals in argument registers" +#~ msgstr "Gem lokale variable i parameterregistre" + +#~ msgid "Do not store locals in arg registers" +#~ msgstr "Gem ikke lokale variable i parameterregistre" + +#~ msgid "Do not generate multm instructions" +#~ msgstr "Generr ikke multm-instruktioner" + +#~ msgid "Do symbol renaming for BSD" +#~ msgstr "Foretag symbolomdbning for BSD" + +#~ msgid "Do symbol renaming for X/OPEN" +#~ msgstr "Foretag symbolomdbning for X/OPEN" + +#~ msgid "Don't do symbol renaming" +#~ msgstr "Foretag ikke symbolomdbning" + +#~ msgid "MCU `%s' not supported" +#~ msgstr "MCU '%s' ikke understttet" + +#~ msgid "Generate code for the C400" +#~ msgstr "Generr kode til en C400" + +#~ msgid "Generate code for the C300" +#~ msgstr "Generr kode til en C300" + +#~ msgid "Generate code for c1" +#~ msgstr "Generr kode til en c1" + +#~ msgid "Generate code for c2" +#~ msgstr "Generr kode til en c2" + +#~ msgid "Generate code for c32" +#~ msgstr "Generr kode til en c32" + +#~ msgid "Generate code for c34" +#~ msgstr "Generr kode til en c34" + +#~ msgid "Use standard calling sequence, with arg count word" +#~ msgstr "Benyt standardkaldesekvens, med parameterantalsord" + +#~ msgid "Place arg count in a nop instruction (faster than push)" +#~ msgstr "Anbring parameterantal i en nop-instruktion (hurtigere end push)" + +#~ msgid "Don't push arg count, depend on symbol table" +#~ msgstr "Videresend ikke parameterantal, afhng af symboltabel" + +#~ msgid "Use data cache for volatile mem refs (default)" +#~ msgstr "Benyt datamellemlager for volatile hukommelsesreferencer (standard)" + +#~ msgid "Don't use data cache for volatile mem refs" +#~ msgstr "Benyt ikke datamellemlager for volatile hukommelsesreferencer" + +#~ msgid "Bypass data cache for volatile mem refs" +#~ msgstr "Forbig datamellemlager for volatile hukommelsesreferencer" + +#~ msgid "Use 64-bit longs" +#~ msgstr "Benyt 64 bit-long" + +#~ msgid "Use cc- and libc-compatible 32-bit longs" +#~ msgstr "Benyt cc- og libc-kompatibel 32 bit-long" + +#~ msgid "inline float constants not supported on this host" +#~ msgstr "integrerede kommatalskonstanter er ikke understttede p denne vrt" + +#~ msgid "Generate code the unix assembler can handle" +#~ msgstr "Generr kode som Unix-maskinkodeoverstteren kan hndtere" + +#~ msgid "Generate code an embedded assembler can handle" +#~ msgstr "Generr kode som en indlejret maskinkodeoverstter kan hndtere" + +#~ msgid "Retain standard MXDB information" +#~ msgstr "Bevar standard-MXDB-info" + +#~ msgid "Retain legend information" +#~ msgstr "Bevar indholdsinfo" + +#~ msgid "Generate external legend information" +#~ msgstr "Generr ekstern indholdsinfo" + +#~ msgid "Emit identifying info in .s file" +#~ msgstr "Udsend identificerende info i .s-fil" + +#~ msgid "Warn when a function arg is a structure" +#~ msgstr "Advar nr en funktionsparameter er en struktur" + +#~ msgid "argument is a structure" +#~ msgstr "parameter er en struktur" + +#~ msgid "half-pic init called on systems that don't support it" +#~ msgstr "half-PIC-klargring kaldt p systemer der ikke understtter det" + +#~ msgid "Profiling uses mcount" +#~ msgstr "Profilering benytter mcount" + +#~ msgid "Emit half-PIC code" +#~ msgstr "Udsend half-PIC-kode" + +#~ msgid "Emit ELF object code" +#~ msgstr "Udsend ELF-objektkode" + +#~ msgid "Emit ROSE object code" +#~ msgstr "Udsend ROSE-objektkode" + +#~ msgid "Symbols have a leading underscore" +#~ msgstr "Symboler har en indledende understreg" + +#~ msgid "Align to >word boundaries" +#~ msgstr "Justr til >word-grnserne" + +#~ msgid "Use mcount for profiling" +#~ msgstr "Benyt mcount til profilering" + +#~ msgid "Use mcount_ptr for profiling" +#~ msgstr "Benyt mcount_ptr til profilering" + +#~ msgid "Generate code which uses the FPU" +#~ msgstr "Generr kode som bruger FPU'en" + +#~ msgid "Do not generate code which uses the FPU" +#~ msgstr "Generr ikke kode som bruger FPU'en" + +#~ msgid "the -mlong-double-64 option does not work yet" +#~ msgstr "tilvalget -mlong-double-64 virker ikke endnu" + +#~ msgid "The -march option is incompatible to -mipsN and therefore ignored." +#~ msgstr "Tilvalget -march er uforeneligt med -mipsN og derfor ignoreret." + +#~ msgid "-mips%d not supported" +#~ msgstr "-mips%d er ikke understttet" + +#~ msgid "-mabi=%s does not support -mips%d" +#~ msgstr "-mabi=%s understtter ikke -mips%d" + +#~ msgid "this target does not support the -mabi switch" +#~ msgstr "denne mlarkitektur understtter ikke tilvalget -mabi" + +#~ msgid "bad value (%s) for -mtune= switch" +#~ msgstr "ugyldig vrdi (%s) til tilvalget -mcpu=" + +#~ msgid "-mips%d does not support 64 bit fp registers" +#~ msgstr "-mips%d understtter ikke 64-bit kommatalsregistre" + +#~ msgid "-mips%d does not support 64 bit gp registers" +#~ msgstr "-mips%d understtter ikke 64-bit almene registre" + +#~ msgid "Use OSF PIC" +#~ msgstr "Benyt OSF PIC" + +#~ msgid "Don't use OSF PIC" +#~ msgstr "Benyt ikke OSF PIC" + +#~ msgid "Optimize for 3900" +#~ msgstr "Optimr for 3900" + +#~ msgid "Optimize for 4650" +#~ msgstr "Optimr for 4650" + +#~ msgid "stack frame too big" +#~ msgstr "stakramme for stor" + +#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs" +#~ msgstr "hverken variable parametre eller standardparametre mmix_setup_incoming_varargs" + +#~ msgid "oops, not debugged; fixing up value:" +#~ msgstr "ups, ikke fejlanalyseret; retter vrdi:" + +#~ msgid "Generate little endian data" +#~ msgstr "Generr lilleendet data" + +#~ msgid "Generate big endian data" +#~ msgstr "Generr storendet data" + +#~ msgid "Turn on maintainer testing code" +#~ msgstr "Aktivr vedligeholdertestkode" + +#~ msgid "Enable Transmeta picoJava extensions" +#~ msgstr "Aktivr Transmeta picoJava-udvidelser" + +#~ msgid "Disable Transmeta picoJava extensions" +#~ msgstr "Deaktivr Transmeta picoJava-udvidelser" + +#~ msgid "Disable reorganization pass" +#~ msgstr "Deaktivr omorganiseringsfase" + +#~ msgid "-f%s ignored (all code is position independent)" +#~ msgstr "-f%s ignoreret (al kode er positionsuafhngigt)" + +#~ msgid "-ffunction-sections disabled on AIX when debugging" +#~ msgstr "-ffunction-sections deaktiveret p AIX ved fejlanalysering" + +#~ msgid "-fdata-sections not supported on AIX" +#~ msgstr "-fdata-sections er ikke understttet p AIX" + +#~ msgid "argument 3 of `%s' must be a 2-bit literal" +#~ msgstr "parameter til '%s' skal vre en 2 bit-konstant" + +#~ msgid "%%S computed all 1's mask" +#~ msgstr "%%S beregnede alle 1'eres maske" + +#~ msgid "%%S computed all 0's mask" +#~ msgstr "%%S beregnede alle 0's maske" + +#~ msgid "no viable candidates" +#~ msgstr "ingen mulige kandidater" + +#~ msgid "cannot pass objects of non-POD type `%#T' through `...'" +#~ msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'" + +#~ msgid "`%D' has already been declared in `%T'" +#~ msgstr "'%D' er allerede blevet erklret i '%T'" + +#~ msgid "typedef `%D' is initialized" +#~ msgstr "typedef '%D' bliver tildelt en startvrdi" + +#~ msgid "`%D' as declarator" +#~ msgstr "'%D' som erklrer" + +#~ msgid "size of member `%D' is not constant" +#~ msgstr "strrelsen af medlemmet '%D' er ikke konstant" + +#~ msgid "cannot declare %s to references" +#~ msgstr "kan ikke erklre %s til referencer" + +#~ msgid "invalid type: `void &'" +#~ msgstr "ugyldig type: 'void &'" + +#~ msgid "typedef declaration includes an initializer" +#~ msgstr "typedef-erklringen indeholder en startvrdi" + +#~ msgid "-fname-mangling-version is no longer supported" +#~ msgstr "-fname-mangling-version understttes ikke lngere" + +#~ msgid "candidate%s: %+#D" +#~ msgstr "candidate%s: %+#D" + +#~ msgid " %#D" +#~ msgstr " %#D" + +#~ msgid "member initializers for `%#D'" +#~ msgstr "medlemsstartvrdier for '%#D'" + +#~ msgid " will be re-ordered to match declaration order" +#~ msgstr " vil blive omordnet for at passe til erklringsordenen" + +#~ msgid "multiple initializations given for member `%D'" +#~ msgstr "flere startvrdier angivet for medlemmet '%D'" + +#~ msgid "base initializers for `%#T'" +#~ msgstr "stamklasseklargring for '%#T'" + +#~ msgid " will be re-ordered to match inheritance order" +#~ msgstr " vil blive omordnet for at passe til nedarvningsordenen" + +#~ msgid "base class `%T' already initialized" +#~ msgstr "stamklassen '%T' er allerede klargjort" + +#~ msgid "implementation-reserved name `%D' used" +#~ msgstr "implementationsreserveret navn '%D' benyttet" + +#~ msgid "explicit instantiation of `%#D' after" +#~ msgstr "eksplicit instantiering af '%#D' efter" + +#~ msgid "explicit specialization here" +#~ msgstr "eksplicit specialisering her" + +#~ msgid "explicit instantiation of `%#T' after" +#~ msgstr "eksplicit instantiering af '%#T' efter" + +#~ msgid "base initializer for `%T'" +#~ msgstr "stamklasseklargring for '%T'" + +#~ msgid " will be re-ordered to precede member initializations" +#~ msgstr " vil blive omordnet for at komme fr medlemsklargringer" + +#~ msgid "ignoring `%V' qualifiers on `%T'" +#~ msgstr "ignorerer modifikationerne '%V' til '%T'" + +#~ msgid "ISO C++ forbids applying `sizeof' to a function type" +#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p en funktionstype" + +#~ msgid "ISO C++ forbids applying `sizeof' to a member function" +#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p en medlemsfunktion" + +#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type" +#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p typen 'void' som er en ufuldstndig type" + +#~ msgid "`sizeof' applied to non-static member" +#~ msgstr "'sizeof' benyttet p et ikke-statisk medlem" + +#~ msgid "`sizeof' applied to incomplete type `%T'" +#~ msgstr "'sizeof' benyttet p en ufuldstndig type '%T'" + +#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'" +#~ msgstr "foresprgsel for medlemmet '%T::%D' i udtryk med den ikke-sammensatte type '%T'" + +#~ msgid "invalid use of type decl `%#D' as expression" +#~ msgstr "ugyldig brug af typeerklring '%#D' som udtryk" + +#~ msgid "invalid use of template `%#D' as expression" +#~ msgstr "ugyldig brug af skabelon '%#D' som udtryk" + +#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead" +#~ msgstr "ugyldig offsetof fra ikke-POD type '%#T'; benyt henvisning til medlem i stedet" + +#~ msgid "pointer to member function called, but not in class scope" +#~ msgstr "henvisning til medlem-funktion kaldt, men ikke i klassevirkefelt" + +#~ msgid "object missing in call to method `%D'" +#~ msgstr "objekt mangler i kald til metoden '%D'" + +#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?" +#~ msgstr "funktionen '%D' erklret flertydigt, men ingen definition optrder til at passe den sammen med?!?" + +#~ msgid "invalid call to member function needing `this' in static member function scope" +#~ msgstr "ugyldigt kald af medlemsfunktion som har brug for 'this', i et statisk medlemsfunktionsvirkefelt" + +#~ msgid "unary `&'" +#~ msgstr "unr '&'" + +#~ msgid "invalid use of undefined type `%#T'" +#~ msgstr "ugyldig brug af en ikke-defineret type '%#T'" + +#~ msgid "forward declaration of `%#T'" +#~ msgstr "forhndserklring af '%#T'" + +#~ msgid "invalid use of `%T'" +#~ msgstr "ugyldig brug af '%T'" + +#~ msgid "invalid use of member (did you forget the `&' ?)" +#~ msgstr "ugyldig brug af medlem (glemte du en '&'?)" + +#~ msgid "invalid use of template type parameter" +#~ msgstr "ugyldig brug af skabelonstypeparameter" + +#~ msgid "address of overloaded function with no contextual type information" +#~ msgstr "adresse af flertydig funktion uden kontekstuelle typeoplysninger" + +#~ msgid "overloaded function with no contextual type information" +#~ msgstr "flertydig funktion uden kontekstuelle typeoplysninger" + +#~ msgid "insufficient contextual information to determine type" +#~ msgstr "utilstrkkelige kontekstuelle oplysninger til at afgre typen" + +#~ msgid "initializer list construction invalid for derived class object `%D'" +#~ msgstr "klargringslistekonstruktion er ugyldig for nedarvet klasseobjekt '%D'" + +#~ msgid "initializer list construction invalid for polymorphic class object `%D'" +#~ msgstr "klargringslistekonstruktion er ugyldig for polymorfisk klasseobjekt '%D'" + +#~ msgid "initializer list construction invalid for `%D'" +#~ msgstr "klargringslistekonstruktion er ugyldig for '%D'" + +#~ msgid "due to the presence of a constructor" +#~ msgstr "pga. af tilstedevrelsen af en konstruktionsfunktion" + +#~ msgid "due to non-public access of member `%D'" +#~ msgstr "pga. ikke-public tilgang af medlemmet '%D'" + +#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions" +#~ msgstr "ISO C++ forbyder ikke-konstante startvrdiudtryk for sammensatte typer" + +#~ msgid "The meaning of `\\x' (at %0) varies with -traditional" +#~ msgstr "Betydningen af '\\x' (ved %0) skifter med -traditional" + +#~ msgid "The meaning of `\\a' (at %0) varies with -traditional" +#~ msgstr "Betydningen af '\\a' (ved %0) skifter med -traditional" + +#~ msgid "the meaning of `\\x' varies with -traditional" +#~ msgstr "betydningen af '\\x' skifter med -traditional" + +#~ msgid "the meaning of `\\a' varies with -traditional" +#~ msgstr "betydningen af '\\a' skifter med -traditional" + +#~ msgid "parse error; also virtual memory exceeded" +#~ msgstr "tolkningsfejl; desuden lbet tr for virtuel hukommelse" + +#~ msgid "Can't specify array dimension in a declaration" +#~ msgstr "Kan ikke angive tabeldimension i en erklring" + +#~ msgid "internal error - use of undefined type" +#~ msgstr "intern fejl - brug af ikke-defineret type" + +#~ msgid "no class name specified as argument to -fconstant-string-class" +#~ msgstr "intet klassenavn angivet som parameter til -fconstant-string-class" + +#~ msgid "-p profiling is no longer supported. Use -pg instead" +#~ msgstr "profilgenerering med -p understttes ikke lngere; benyt -pg i stedet for" + +#~ msgid "incompatible interworking options" +#~ msgstr "uforenelige samvirkende tilvalg" + +#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive" +#~ msgstr "-mabi=mmixware og -mabi=gnu er indbyrdes uforenelige" + +#~ msgid "-p option not supported: use -pg instead" +#~ msgstr "tilvalget -p understttes ikke; benyt -pg i stedet" + +#~ msgid "-mbsd and -pedantic incompatible" +#~ msgstr "-mbsd og -pedantic er indbyrdes uforenelige" + +#~ msgid "-mbsd and -mxopen incompatible" +#~ msgstr "-mbsd og -mxopen er indbyrdes uforenelige" + +#~ msgid "-mxopen and -pedantic incompatible" +#~ msgstr "-mxopen og -pedantic er indbyrdes uforenelige" + +#~ msgid "may not use both -mfp64 and -msingle-float" +#~ msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige" + +#~ msgid "may not use both -mfp64 and -m4650" +#~ msgstr "-mfp64 og -m4650 er indbyrdes uforenelige" + +#~ msgid "may not use both -mgp32 and -mfp64" +#~ msgstr "-mgp32 og -mfp64 er indbyrdes uforenelige" + +#~ msgid "Only initialized variables can be placed into program memory area." +#~ msgstr "Kun variabler med startvrdi kan placeres i programhukommelsesomrdet." + +#~ msgid "declaration of `%#T'" +#~ msgstr "erklring af '%#T'" + +#~ msgid "a -ifile option requires a -map option" +#~ msgstr "et '-ifile'-tilvalg krver et '-map'-tilvalg" + +#~ msgid "%s before character constant" +#~ msgstr "%s fr tegnkonstant" + +#~ msgid "%s before character 0%o" +#~ msgstr "%s fr tegn 0%o" + +#~ msgid "invalid identifier `%s'" +#~ msgstr "ugyldigt kaldenavn '%s'" + +#~ msgid "parse error at `..'" +#~ msgstr "tolkningsfejl ved '..'" + +#~ msgid "nondigits in number and not hexadecimal" +#~ msgstr "tegn der ikke er cifre, optrder i tal" + +#~ msgid "two `u's in integer constant" +#~ msgstr "to 'u'-endelser i heltalskonstant" + +#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99" +#~ msgstr "'[*]' i parametererklring kun tilladt i ISO C 99" + +#~ msgid "invalid `for (ITERATOR)' syntax" +#~ msgstr "ugyldigt 'for (LKKEVARIABEL)'-syntaks" + +#~ msgid "`for (%s)' inside expansion of same iterator" +#~ msgstr "'for (%s)' inden i udfoldning af samme lkkevariabel" + +#~ msgid "case label within scope of cleanup or variable array" +#~ msgstr "case-etiket i oprydningsomrde eller i en variabel tabel" + +#~ msgid "wrong type argument to %s" +#~ msgstr "forkert parametertype til %s" + +#~ msgid "invalid lvalue in increment" +#~ msgstr "ugyldig venstrevrdi i forgelse" + +#~ msgid "invalid lvalue in decrement" +#~ msgstr "ugyldig venstrevrdi i formindskelse" + +#~ msgid "increment" +#~ msgstr "forgelse" + +#~ msgid "decrement" +#~ msgstr "formindskelse" + +#~ msgid "duplicate array index in initializer" +#~ msgstr "tabelindeks i startvrdi optrder mere end n gang" + +#~ msgid "thumb_load_double_from_address: destination is not a register" +#~ msgstr "thumb_load_double_from_adress: destination er ikke et register" + +#~ msgid "thumb_load_double_from_address: source is not a computed memory address" +#~ msgstr "thumb_load_double_from_adress: kilden er ikke en beregnet hukommelsesadresse" + +#~ msgid "thumb_load_double_from_address: Unhandled address calculation" +#~ msgstr "thumb_load_double_from_adress: adresseberegningen er ikke hndteret" + +#~ msgid "ACCUM_HIGH_REGS class in limit_reload_class" +#~ msgstr "ACCUM_HIGH_REGS-klasse i limit_reload_class" + +#~ msgid "YH_OR_ACCUM_HIGH_REGS found in limit_reload_class" +#~ msgstr "YH_OR_ACCUM_HIGH_REGS fundet i limit_reload_class" + +#~ msgid "YL found in limit_reload_class" +#~ msgstr "YL fundet i limit_reload_class" + +#~ msgid "Invalid register for compare" +#~ msgstr "Ugyldigt register til sammenligningen" + +#~ msgid "Internal gcc abort from %s:%d" +#~ msgstr "Intern GCC-afbrydelse fra %s:%d" + +#~ msgid "Register '%c' already specified in allocation order" +#~ msgstr "Registret '%c' er allerede angivet i tildelingsordenen" + +#~ msgid "Same as -mcpu=i386" +#~ msgstr "Magen til -mcpu=i386" + +#~ msgid "Same as -mcpu=i486" +#~ msgstr "Magen til -mcpu=i486" + +#~ msgid "Same as -mcpu=pentium" +#~ msgstr "Magen til -mcpu=pentium" + +#~ msgid "Same as -mcpu=pentiumpro" +#~ msgstr "Magen til -mcpu=pentiumpro" + +#~ msgid "Emit Intel syntax assembler opcodes" +#~ msgstr "Konstrur instruktionerne til maskinkodeoverstteren med Intel-syntaks" + +#~ msgid "invalid %H value" +#~ msgstr "ugyldig %H-vrdi" + +#~ msgid "invalid %h value" +#~ msgstr "ugyldig %h-vrdi" + +#~ msgid "invalid %Q value" +#~ msgstr "ugyldig %Q-vrdi" + +#~ msgid "invalid %q value" +#~ msgstr "ugyldig %q-vrdi" + +#~ msgid "invalid %p value" +#~ msgstr "ugyldig %p-vrdi" + +#~ msgid "invalid %B value" +#~ msgstr "ugyldig %B-vrdi" + +#~ msgid "invalid %C value" +#~ msgstr "ugyldig %C-vrdi" + +#~ msgid "invalid %E value" +#~ msgstr "ugyldig %E-vrdi" + +#~ msgid "invalid %r value" +#~ msgstr "ugyldig %r-vrdi" + +#~ msgid "-mcpu=%s does not support -mips%d" +#~ msgstr "-mcpu=%s understtter ikke -mips%d" + +#~ msgid "PRINT_OPERAND: letter %c was found & insn was not CONST_INT" +#~ msgstr "PRINT_OPERAND: bogstavet %c blev fundet og instruktionen var ikke CONST_INT" + +#~ msgid "-mptr%d not allowed on -m%d" +#~ msgstr "-mptr%d er ikke tilladt p -m%d" + +#~ msgid "parse errors have confused me too much" +#~ msgstr "tolkningsfejl er blevet for forvirrende" + +#~ msgid "virtual memory exhausted" +#~ msgstr "lbet tr for virtuel hukommelse" + +#~ msgid "the new ABI requires vtable thunks" +#~ msgstr "den nye binre grnseflade krver virtuel tabel-afdelinger" + +#~ msgid "`void' in parameter list must be entire list" +#~ msgstr "'void' i en parameterliste skal udgre hele listen" + +#~ msgid "no file specified with -fdump-translation-unit" +#~ msgstr "ingen filer angivet med -fdump-translation-unit" + +#~ msgid "`__alignof__' applied to a bit-field" +#~ msgstr "'__alignof__' brugt p et bitfelt" + +#~ msgid "(you really want to initialize it separately)" +#~ msgstr "(klargr den separat)" + +#~ msgid "`operator new' takes type `size_t' parameter" +#~ msgstr "'operator new' skal have en parameter af typen 'size_t'" + +#~ msgid "`...' invalid in specification of `operator delete'" +#~ msgstr "'...' er ugyldigt i angivelsen af 'operator delete'" + +#~ msgid "`default' label within scope of cleanup or variable array" +#~ msgstr "'default'-etiket i oprydningsomrde eller i en variabel tabel" + +#~ msgid "initializer for unnamed base class ambiguous" +#~ msgstr "klargring af unavngiven stamklasse er flertydig" + +#~ msgid "invalid #pragma vtable" +#~ msgstr "ugyldig #pragma vtable" + +#~ msgid "%s at end of saved text" +#~ msgstr "%s ved slutningen af den gemte tekst" + +#~ msgid "complex integer constant is too wide for `__complex int'" +#~ msgstr "kompleks heltalskonstant er for bred til '__complex int'" + +#~ msgid "ambiguous request for method pointer `%s'" +#~ msgstr "flertydig foresprgsel efter medlemsfunktionshenvisningen '%s'" + +#~ msgid "taking dynamic typeid of object with -fno-rtti" +#~ msgstr "forsg p at finde den dynamiske typeid af et objekt med -fno-rtti" + +#~ msgid "`com_interface' only supported with -fvtable-thunks" +#~ msgstr "'com_interface' understttes kun med -fvtable-thunks" + +#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead" +#~ msgstr "ugyldig reference til NULL-henvisning, benyt en henvisning til medlem i stedet" + +#~ msgid "Please submit a full bug report." +#~ msgstr "Send venligst en komplet fejlrapport." + +#~ msgid "duplicate label `%s' in switch statement" +#~ msgstr "mere end n '%s'-etiket i switch-stningen" + +#~ msgid "duplicate label (%d) in switch statement" +#~ msgstr "mere end n etiket (%d) i switch-stningen" + +#~ msgid "range values `%s' and `%s' reversed" +#~ msgstr "intervalvrdierne '%s' og '%s' vender omvendt" + +#~ msgid "range values reversed" +#~ msgstr "intervalvrdierne vender omvendt" + +#~ msgid "Can't create cross-reference file `%s'" +#~ msgstr "Kan ikke oprette krydsreferencefilen '%s'" + +#~ msgid "bad is_error(%d) in v_message" +#~ msgstr "ugyldig is_error(%d) i v_message" + +#~ msgid "'defined' without an identifier" +#~ msgstr "'defined' optrder uden et kaldenavn" + +#~ msgid "`##' at start of macro definition" +#~ msgstr "'##' i begyndelsen af makrodefinitionen" + +#~ msgid "empty object-like macro went through full #define" +#~ msgstr "en tom objektlignende makro gik gennem komplet #define" + +#~ msgid "first token = %d not %d in collect_formal_parameters" +#~ msgstr "frste symbol = %d er ikke %d i collect_formal_parameters" + +#~ msgid "impossible token in macro argument list" +#~ msgstr "umuligt symbol i makroparameterlisten" + +#~ msgid "illegal token in macro argument list" +#~ msgstr "ugyldigt symbol i makroparameterlisten" + +#~ msgid "another parameter follows \"...\"" +#~ msgstr "der optrder en parameter mere efter \"...\"" + +#~ msgid "collect_params: argc=%d argslen=0" +#~ msgstr "collect_params: argc=%d argslen=0" + +#~ msgid "C99 does not permit use of __VA_ARGS__ as a macro argument name" +#~ msgstr "C99 tillader ikke brug af __VA_ARGS__ som makroparameternavn" + +#~ msgid "C89 does not permit varargs macros" +#~ msgstr "C89 tillader ikke variabel parameterliste-makroer" + +#~ msgid "collect_params: impossible token type %d" +#~ msgstr "collect_params: umulig symboltype %d" + +#~ msgid "attempt to use poisoned `%s'." +#~ msgstr "forsg p at bruge forgiftet '%s'" + +#~ msgid "macroexpand: unexpected token %d (wanted LPAREN)" +#~ msgstr "macroexpand: forventede ikke symbol %d (skulle have vret LPAREN)" + +#~ msgid "unterminated macro call" +#~ msgstr "uafsluttet makrokald" + +#~ msgid "macro `%s' used with just one arg" +#~ msgstr "makroen '%s' kaldt med kun n parameter" + +#~ msgid "macro `%s' used with only %d args" +#~ msgstr "makroen '%s' kaldt med kun %d parametre" + +#~ msgid "macro `%s' used with too many (%d) args" +#~ msgstr "makroen '%s' kaldt med for mange (%d) parametre" + +#~ msgid "buffers still stacked in cpp_finish" +#~ msgstr "mellemlagre er stadig stakket op i cpp_finish" + +#~ msgid "" +#~ "Switches:\n" +#~ " -include Include the contents of before other files\n" +#~ " -imacros Accept definition of macros in \n" +#~ " -iprefix Specify as a prefix for next two options\n" +#~ " -iwithprefix Add to the end of the system include path\n" +#~ " -iwithprefixbefore Add to the end of the main include path\n" +#~ " -isystem Add to the start of the system include path\n" +#~ " -idirafter Add to the end of the system include path\n" +#~ " -I Add 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 Put output into \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= 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 Define a with string '1' as its value\n" +#~ " -D= Define a with as its value\n" +#~ " -A () Assert the to \n" +#~ " -A- () Disable the to \n" +#~ " -U Undefine \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= 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 Inkludr indholdet af fr andre filer\n" +#~ " -imacros Ls makrodefinitionerne i \n" +#~ " -iprefix Angiv som et prfiks til de nste to tilvalg\n" +#~ " -iwithprefix Fj til slutningen af systeminkluderingsstien\n" +#~ " -withprefixbefore Fj til slutningen af den alm. inkluderingssti\n" +#~ " -isystem Fj til begyndelsen af systeminkluderingsstien\n" +#~ " -idirafter Fj til slutningen af systeminkluderingsstien\n" +#~ " -I Fj til slutningen af den alm. inkluderingssti\n" +#~ " -I- Nje kontrolleret inkluderingssti; se info-hjlpen\n" +#~ " -nostdinc Sg ikke i systeminkluderingskataloger\n" +#~ " (kataloger angivet med -isystem sges dog stadig)\n" +#~ " -nostdinc++ Sg ikke i systeminkluderingskataloger til C++\n" +#~ " -o Send uddata til \n" +#~ " -pedantic Fremkom med alle advarsler pkrvet for nje ISO C\n" +#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n" +#~ " -traditional Iagttag opfrsel som en K&R-prprocessor\n" +#~ " -trigraphs Understt ANSI C-trigrafer\n" +#~ " -lang-c Antag at inddata er C\n" +#~ " -lang-c89 Antag at inddata er C89\n" +#~ " -lang-c++ Antag at inddata er C++\n" +#~ " -lang-cobjc Antag at inddata er Objective C\n" +#~ " -lang-cobjc++ Antag at inddata er Objective C++\n" +#~ " -lang-asm Antag at inddata er maskinkode\n" +#~ " -lang-fortran Antag at inddata er Fortran\n" +#~ " -lang-chill Antag at inddata er Chill\n" +#~ " -std= Angiv at koden retter sig efter en af standarderne:\n" +#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n" +#~ " iso9899:199409, iso9899:1999\n" +#~ " -+ Tillad fortolkning af faciliteter i C++-stil\n" +#~ " -w Blokr advarselsmeddelelser\n" +#~ " -Wtrigraphs Advar hvis der optrder trigrafer\n" +#~ " -Wno-trigraphs Advar ikke om trigrafer\n" +#~ " -Wcomment{s} Advar hvis en kommentar begynder inden i en anden\n" +#~ " -Wno-comment{s} Advar ikke om kommentarer\n" +#~ " -Wtraditional Advar hvis en makroparameter vil blive gjort til en\n" +#~ " streng med -traditional\n" +#~ " -Wno-traditional Advar ikke om omdannelse til streng\n" +#~ " -Wundef Advar hvis en ikkedefineret makro bruges med #if\n" +#~ " -Wno-undef Advar ikke om test p makroer der ikke er definerede\n" +#~ " -Wimport Advar om brug af #import\n" +#~ " -Wno-import Advar ikke om brug af #import\n" +#~ " -Werror Behandl alle advarsler som fejl\n" +#~ " -Wno-error Behandl ikke alle advarsler som fejl\n" +#~ " -Wall Sl alle prprocessoradvarsler til\n" +#~ " -M Generr afhngigheder til make\n" +#~ " -MM Som -M, men ignorr systeminkluderingsfiler\n" +#~ " -MD Som -M, men anbring uddata i en '.d'-fil\n" +#~ " -MMD Som -MD, men ignorr systeminkluderingsfiler\n" +#~ " -MG Behandl manglende inkl.-filer som genererede filer\n" +#~ " -g3 Inkludr #define- og #undef-direktiver i uddata\n" +#~ " -D Definr makroen med strengen '1' som vrdi\n" +#~ " -D= Definr makroen med vrdien \n" +#~ " -A () Angiv at er svar p \n" +#~ " -A- () Angiv at ikke er svar p \n" +#~ " -U Glem definitionen af \n" +#~ " -v Skriv versionsnummeret\n" +#~ " -H Skriv navnene p inkluderingsfilerne nr de bruges\n" +#~ " -C Fjern ikke kommentarer\n" +#~ " -dM Vis til sidst de aktive makrodefinitioner\n" +#~ " -dD Bevar makrodefinitioner i uddata\n" +#~ " -dN Som -dD bortset fra at kun navnene bevares\n" +#~ " -dI Inkludr #include-anvisninger i uddata\n" +#~ " -ftabstop= Afstand mellem tabulatorstop i kolonnerapportering\n" +#~ " -P Generr ikke #line-angivelser\n" +#~ " -$ Tillad ikke '$' i kaldenavne\n" +#~ " -remap Omdan filnavne ved filinkludering\n" +#~ " --version Udskriv versionsinformation\n" +#~ " -h eller --help Vis denne vejledning\n" + +#~ msgid "mark active in cpp_pop_buffer" +#~ msgstr "markr aktiv i cpp_pop_buffer" + +#~ msgid "length < 0 in cpp_expand_to_buffer" +#~ msgstr "lngden < 0 i cpp_expand_to_buffer" + +#~ msgid "backslash-newline within line comment" +#~ msgstr "omvendt skrstreg efterfulgt af linjeskift fundet i en enkeltlinjeskommentar" + +#~ msgid "C++ style comments are not allowed in traditional C" +#~ msgstr "kommentarer i C++-stil er ikke tilladt i traditionel C" + +#~ msgid "string constant runs past end of line" +#~ msgstr "strengkonstanten gr ud over slutningen af linjen" + +#~ msgid "missing '>' in `#include '" +#~ msgstr "manglende '>' i '#include '" + +#~ msgid "vertical tab in preprocessing directive" +#~ msgstr "lodret tabulator i prprocessordirektiv" + +#~ msgid "form feed in preprocessing directive" +#~ msgstr "sideskift i prprocessordirektiv" + +#~ msgid "null character preserved" +#~ msgstr "nultegn bevaret" + +#~ msgid "comment start split across lines" +#~ msgstr "kommentarbegyndelsen delt over to linjer" + +#~ msgid "comment start '/*' split across lines" +#~ msgstr "kommentarbegyndelsen '/*' delt over to linjer" + +#~ msgid "comment end '*/' split across lines" +#~ msgstr "kommentarslutningen '*/' delt over to linjer" + +#~ msgid "handle_directive called on macro buffer" +#~ msgstr "handle_directive kaldt med et makromellemlager" + +#~ msgid "ignoring #%s because of its indented #" +#~ msgstr "ignorerer #%s p grund af den indrykkede '#'" + +#~ msgid "ISO C does not allow #%s" +#~ msgstr "ISO C tillader ikke #%s" + +#~ msgid "redefining poisoned `%.*s'" +#~ msgstr "omdefinerer forgiftet '%.*s'" + +#~ msgid "garbage at end of #line" +#~ msgstr "ragelse i slutningen af #line" + +#~ msgid "second token after #line is not a string" +#~ msgstr "det andet symbol efter #line er ikke en streng" + +#~ msgid "junk on line after #undef" +#~ msgstr "ragelse p linjen efter #undef" + +#~ msgid "cannot undefine poisoned \"%s\"" +#~ msgstr "kan ikke glemme definitionen af forgiftet \"%s\"" + +#~ msgid "#%s with invalid argument" +#~ msgstr "#%s med ugyldig parameter" + +#~ msgid "Cannot duplicate non-existant exception region." +#~ msgstr "Kan ikke mangfoldiggre en ikkeeksisterende undtagelsesregion." + +#~ msgid "Never issued previous false_label" +#~ msgstr "Srgede ikke for tidligere false_label" + +#~ msgid "output_operand: %s" +#~ msgstr "output_operand: %s" + +#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n" +#~ msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d\n" + +#~ msgid "file path prefix `%s%s' never used" +#~ msgstr "stiprfikset '%s%s' blev aldrig brugt" + +#~ msgid "file path prefix `%s' never used" +#~ msgstr "stiprfikset '%s' blev aldrig brugt" + +#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n" +#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJKAT] fil\n" + +#~ msgid "%s: option `--%s' doesn't allow an argument\n" +#~ msgstr "%s: tilvalget '--%s' tillader ikke en parameter\n" + +#~ msgid "%s: option `%c%s' doesn't allow an argument\n" +#~ msgstr "%s: tilvalget '%c%s' tillader ikke en parameter\n" + +#~ msgid "%s: option `%s' requires an argument\n" +#~ msgstr "%s: tilvalget '%s' skal have en parameter\n" + +#~ msgid "%s: unrecognized option `--%s'\n" +#~ msgstr "%s: ukendt tilvalg '--%s'\n" + +#~ msgid "%s: unrecognized option `%c%s'\n" +#~ msgstr "%s: ukendt tilvalg '%c%s'\n" + +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: ugyldigt tilvalg -- %c\n" + +#~ msgid "%s: invalid option -- %c\n" +#~ msgstr "%s: ugyldigt tilvalg -- %c\n" + +#~ msgid "%s: option requires an argument -- %c\n" +#~ msgstr "%s: tilvalget skal have en parameter -- %c\n" + +#~ msgid "%s: option `-W %s' doesn't allow an argument\n" +#~ msgstr "%s: tilvalget '-W %s' tillader ikke en parameter\n" + +#~ msgid "Objective-C text in C source file" +#~ msgstr "Objective C-tekst i C-kildekodefil" + +#~ msgid "statically allocated objects not supported" +#~ msgstr "statisk allokerede objekter understttes ikke" + +#~ msgid "`asm' cannot be used in function where memory usage is checked" +#~ msgstr "'asm' kan ikke benyttes i funktioner hvor hukommelsesforbruget bliver tjekket" + +#~ msgid "`asm' cannot be used with `-fcheck-memory-usage'" +#~ msgstr "'asm' kan ikke benyttes sammen med '-fcheck-memory-usage'" + +#~ msgid "output operand constraint %d contains `+'" +#~ msgstr "uddataoperandbegrnsning %d indeholder '+'" + +#~ msgid "hard register `%s' listed as input operand to `asm'" +#~ msgstr "hardware-register '%s' angivet som inddataoperand til 'asm'" + +#~ msgid "output pipe has been closed" +#~ msgstr "uddataledningen er blevet lukket" + +#~ msgid "Errors detected in input file (your bison.simple is out of date)\n" +#~ msgstr "Fandt fejl i inddatafilen (din bison.simple er forldet)\n" + +#~ msgid "Data size %ld.\n" +#~ msgstr "Datastrrelse %ld.\n" + +#~ msgid "Unknown stab %s: : 0x%x\n" +#~ msgstr "Ukendt stab %s: : 0x%x\n" + +#~ msgid "__builtin_trap not supported by this target" +#~ msgstr "__builtin_trap understttes ikke p denne mlarkitektur" + +#~ msgid "`%s' previously defined here" +#~ msgstr "'%s' tidligere defineret her" + +#~ msgid "`%s' previously declared here" +#~ msgstr "'%s' tidligere erklret her" + +#~ msgid "profiling does not support code models other than medlow" +#~ msgstr "profilgenerering understtter ikke andre kodemodeller end medlow" + +#~ msgid "Control allocation order of integer registers" +#~ msgstr "Kontrollr tildelingsordenen for heltalsregistrene" diff --git a/libcpp/po/de.gmo b/libcpp/po/de.gmo new file mode 100644 index 000000000..14a1962eb Binary files /dev/null and b/libcpp/po/de.gmo differ diff --git a/libcpp/po/de.po b/libcpp/po/de.po new file mode 100644 index 000000000..92b32abad --- /dev/null +++ b/libcpp/po/de.po @@ -0,0 +1,6607 @@ +# 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 , 2002, 2003. +# Roland Stigge , 2003, 2004, 2005, 2006, 2007, 2008, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.6-b20101113\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-12-12 11:11+0100\n" +"Last-Translator: Roland Stigge \n" +"Language-Team: German \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:1041 +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 " +msgstr "#%s erwartet \"DATEINAME\" oder " + +#: 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "ungültige #%s-Direktive" + +#: directives.c:1156 +#, 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:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s ist bereits registriert" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s ist bereits registriert" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "Pragma mit NULL-Handler wird registriert" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once in Hauptdatei" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "ungültige #pragma push_macro Direktive" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "ungültige #pragma pop_macro Direktive" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "ungültige #pragma GCC Poison Direktive" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "schlechtes existierendes Makro »%s«" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header außerhalb include-Datei ignoriert" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "Quelldatei %s kann nicht gefunden werden" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "aktuelle Datei ist älter als %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else ohne #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else hinter #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "die Bedingung begann hier" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif ohne #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif hinter #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif ohne #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "fehlendes '(' hinter Prädikat" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "fehlendes ')', um Antwort abzuschließen" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "Prädikatantwort ist leer" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "Behauptung ohne Prädikat" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "Prädikat muss ein Bezeichner sein" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "»%s« wieder behauptet" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "unbeendetes #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "zu viele Dezimalpunkte in Zahl" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "Festkommakonstanten sind eine GCC-Erweiterung" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "ungültige Ziffer »%c« in binärer Konstante" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "ungültige Ziffer »%c« in Oktal-Konstante" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "ungültiger Prefix »0b« für Gleitkommakonstante" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "keine Ziffern in hexadezimaler Gleitkommakonstante" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "Verwendung von hexadezimaler C99-Gleitkommakonstante" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "Exponent hat keine Ziffern" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "hexadezimale Gleitkommakonstanten benötigen Exponenten" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "ungültiger Suffix »%.*s« an Gleitkommakonstante" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "traditionelles C lehnt den Suffix »%.*s« ab" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "Suffix an Gleitkommakonstante ist eine GCC-Erweiterung" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "ungültiger Suffix »%.*s« mit hexadezimaler Gleitkommakonstante" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "dezimale Gleitkommakonstanten sind eine GCC-Erweiterung" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "ungültiger Suffix »%.*s« an Ganzzahlkonstante" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "C++0x long long Ganzzahlkonstante verwendet" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "C99 long long Ganzzahlkonstante verwendet" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "imaginäre Konstanten sind eine GCC-Erweiterung" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "binäre Konstanten sind eine GCC-Erweiterung" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "Ganzzahlkonstante ist zu groß für ihren Typ" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "Ganzzahlkonstante ist so groß, dass sie vorzeichenlos ist" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "fehlendes ')' hinter »defined«" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "Operator »defined« erfordert einen Bezeichner" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(»%s« ist ein alternatives Token for »%s« in C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "diese Verwendung von »defined« könnte nicht portierbar sein" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "Gleitkommakonstante in Präprozessorausdruck" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "imaginäre Zahl in Präprozessorausdruck" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "»%s« ist nicht definiert" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "Assertions sind eine GCC-Erweiterung" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "Assertions sind eine veraltete Erweiterung" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "fehlender binärer Operator vor Token »%s«" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "fehlender Ausdruck zwischen '(' und ')'" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s ohne Ausdruck" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "Operator »%s« hat keinen rechten Operanden" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "Operator »%s« hat keinen linken Operanden" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ':' ohne vorangehendes '?'" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "unausgeglichener Keller in %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "unmöglicher Operator '%u'" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "fehlendes ')' in Ausdruck" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' ohne folgendes ':'" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "Ganzzahlüberlauf in Präprozessorausdruck" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "fehlendes '(' in Ausdruck" + +#: expr.c:1256 +#, 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:1261 +#, 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:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "traditionelles C weist den unären Plus-Operator zurück" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "Kommaoperator in Operand von #if" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t muss ein vorzeichenloser Typ sein" + +#: init.c:493 +#, 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:500 +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:503 +msgid "target char is less than 8 bits wide" +msgstr "Ziel-char ist weniger als 8 Bits breit" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "Ziel-wchar_t ist schmaler als Ziel char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "Ziel-int ist schmaler als Ziel-char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "Backslash und Newline durch Leerzeichen getrennt" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "Backslash-Newline am Dateiende" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "Trigraph ??%c in %c konvertiert" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "Trigraph ??%c ignoriert, -trigraphs zum Aktivieren verwenden" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "»/*« innerhalb des Kommentars" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s in Präprozessordirektive" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "Null-Zeichen ignoriert" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "»%.*s« ist nicht in NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "»%.*s« ist nicht in NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "Versuch, schlechtes »%s« zu verwenden" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "Bezeichner »%s« ist ein besonderer Operatorname in C++" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "Roh-Zeichenketten-Trennsymbol länger als 16 Zeichen" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "ungültiges Zeichen '%c' in Roh-Zeichenketten-Trennsymbol" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "unbeendete Roh-Zeichenkette" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "Null-Zeichen im Literal erhalten" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "fehlendes abschließendes Zeichen %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "mehrzeiliger Kommentar" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "nicht buchstabierbares Token %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "Makro »%s« wird nicht benutzt" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "ungültiges eingebautes Makro »%s«" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "Datum und Zeit der Datei konnten nicht bestimmt werden" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "Datum und Zeit konnten nicht bestimmt werden" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ innerhalb von Anweisung mit -fdirectives-only expandiert" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "ungültiges Zeichenkettenliteral, abschließendes '\\' wird ignoriert" + +#: macro.c:490 +#, 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:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO-C99 erfordert, dass Restargumente verwendet werden" + +#: macro.c:570 +#, 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:575 +#, 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:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "unvollendete Argumentliste beim Makroaufruf »%s«" + +#: macro.c:866 +#, 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:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "doppelter Makroparameter »%s«" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "»%s« darf nicht in Makroparameterliste auftreten" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "Makroparameter müssen mit Komma getrennt sein" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "Parametername fehlt" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "anonyme variadische Makros wurden in C99 eingeführt" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO-C erlaubt keine benannten variadischen Makros" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "fehlendes ')' in Makroparameterliste" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' kann nicht an den Enden einer Makroexpansion auftreten" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO-C99 erfordert Whitespace hinter Makroname" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "Whitespace hinter Makroname fehlt" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' wird nicht von einem Makroparameter gefolgt" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "»%s« redefiniert" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "dies ist die Stelle der vorherigen Definition" + +#: macro.c:1977 +#, 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:2004 +#, 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:891 +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 "" +#~ msgstr "" + +#~ 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 "" +#~ msgstr "" + +#~ msgid "" +#~ msgstr "" + +#~ 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, )" +#~ msgstr "#pragma pack (pop) gefunden ohne passendes #pragma pack (push, )" + +#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, )" +#~ msgstr "#pragma pack(pop, %s) gefunden ohne passendes #pragma pack(push, %s, )" + +#~ msgid "#pragma pack(push[, id], ) is not supported on this target" +#~ msgstr "#pragma pack(push[, id], ) wird von diesem Ziel nicht unterstützt" + +#~ msgid "#pragma pack(pop[, id], ) is not supported on this target" +#~ msgstr "#pragma pack(pop[, id], ) 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], )' - ignored" +#~ msgstr "falsch geformtes »#pragma pack(push[, id], )« - 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= Display the full path to library \n" +#~ msgstr " -print-file-name= Vollen Pfad zur Bibliothek anzeigen\n" + +#~ msgid " -print-prog-name= Display the full path to compiler component \n" +#~ msgstr " -print-prog-name= Vollen Pfad zur Compilerkomponente 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, Pass comma-separated on to the assembler\n" +#~ msgstr " -Wa, Komma-getrennte an Assembler übergeben\n" + +#~ msgid " -Wp, Pass comma-separated on to the preprocessor\n" +#~ msgstr " -Wp, Komma-getrennte an Präprozessor übergeben\n" + +#~ msgid " -Wl, Pass comma-separated on to the linker\n" +#~ msgstr " -Wl, Komma-getrennte an Linker übergeben\n" + +#~ msgid " -Xassembler Pass on to the assembler\n" +#~ msgstr " -Xassembler an den Assembler übergeben\n" + +#~ msgid " -Xpreprocessor Pass on to the preprocessor\n" +#~ msgstr " -Xpreprocessor an den Präprozessor übergeben\n" + +#~ msgid " -Xlinker Pass on to the linker\n" +#~ msgstr " -Xlinker 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= Override built-in specs with the contents of \n" +#~ msgstr "" +#~ " -specs= Eingebaute Spezifikationen mit Inhalt der \n" +#~ " überschreiben\n" + +#~ msgid " -std= Assume that the input sources are for \n" +#~ msgstr " -std= Annehmen, dass die Eingabequellen für sind\n" + +#~ msgid " -B Add to the compiler's search paths\n" +#~ msgstr " -B zum Suchpfad des Compilers hinzufügen\n" + +#~ msgid " -b Run gcc for target , if installed\n" +#~ msgstr "" +#~ " -b GCC für die Ziel- laufen lassen, falls\n" +#~ " installiert\n" + +#~ msgid " -V Run gcc version number , if installed\n" +#~ msgstr " -V GCC 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 Place the output into \n" +#~ msgstr " -o Ausgabe in schreiben\n" + +#~ msgid "" +#~ " -x 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 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 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 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 ] [ filename ... ]'\n" +#~ msgstr "%s: Aufruf '%s [ -VqfnkN ] [ -i ] [ Dateiname ... ]'\n" + +#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B ] [ filename ... ]'\n" +#~ msgstr "%s: Aufruf '%s [ -VqfnkNlgC ] [ -B ] [ 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 \tPlace output into " +#~ msgstr "-o \tAusgabe in 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 Include the contents of before other files\n" +#~ " -imacros Accept definition of macros in \n" +#~ " -iprefix Specify as a prefix for next two options\n" +#~ " -iwithprefix Add to the end of the system include path\n" +#~ " -iwithprefixbefore Add to the end of the main include path\n" +#~ " -isystem Add to the start of the system include path\n" +#~ msgstr "" +#~ "Optionen:\n" +#~ " -include Inhalt von vor anderen Dateien einfügen\n" +#~ " -imacros die Definition von Makros in akzeptieren\n" +#~ " -iprefix als Präfix für die nächsten beiden Optionen\n" +#~ " angeben\n" +#~ " -iwithprefix zum Ende des System-Einfüge-Pfades\n" +#~ " hinzufügen\n" +#~ " -iwithprefixbefore zum das Ende des Haupt-Einfüge-Pfades\n" +#~ " hinzufügen\n" +#~ " -isystem zum Anfang des System-Einfüge-Pfades\n" +#~ " hinzufügen\n" + +#~ msgid "" +#~ " -idirafter Add to the end of the system include path\n" +#~ " -I Add 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 Put output into \n" +#~ msgstr "" +#~ " -idirafter zum Ende des System-Einfüge-Pfades\n" +#~ " hinzufügen\n" +#~ " -I 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 Ausgabe in leiten\n" + +#~ msgid "" +#~ " -trigraphs Support ISO C trigraphs\n" +#~ " -std= 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= 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 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 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 Add a MAKE-quoted target\n" +#~ " -MT Add an unquoted target\n" +#~ msgstr "" +#~ " -MP\t\t\t Generiere falsche (phony) Ziele für Header\n" +#~ " -MQ MAKE-zitiertes Ziel hinzufügen\n" +#~ " -MT ein unzitiertes Ziel hinzufügen\n" + +#~ msgid "" +#~ " -D Define a with string '1' as its value\n" +#~ " -D= Define a with as its value\n" +#~ " -A= Assert the to \n" +#~ " -A-= Disable the to \n" +#~ " -U Undefine \n" +#~ " -v Display the version number\n" +#~ msgstr "" +#~ " -D mit Wert \"1\" definieren\n" +#~ " -D= mit Wert definieren\n" +#~ " -A= die auf annehmen\n" +#~ " -A-= die auf abschalten\n" +#~ " -U 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= 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= 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/libcpp/po/el.gmo b/libcpp/po/el.gmo new file mode 100644 index 000000000..fb2642333 Binary files /dev/null and b/libcpp/po/el.gmo differ diff --git a/libcpp/po/el.po b/libcpp/po/el.po new file mode 100644 index 000000000..fd37b55f3 --- /dev/null +++ b/libcpp/po/el.po @@ -0,0 +1,5313 @@ +# Greek translation of gcc. +# Copyright (C) 2001, 2002 Free Software Foundation, Inc. +# Simos Xenitellis , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2002-08-18 15:46+0100\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \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:1041 +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 " +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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, fuzzy, c-format +msgid "invalid #%s directive" +msgstr "%%%c: ." + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "" + +#: directives.c:1189 +#, fuzzy, c-format +msgid "#pragma %s is already registered" +msgstr " `%s' " + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "" + +#: directives.c:1454 +#, fuzzy +msgid "invalid #pragma push_macro directive" +msgstr "%%%c: ." + +#: directives.c:1509 +#, fuzzy +msgid "invalid #pragma pop_macro directive" +msgstr "%%%c: ." + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "" + +#: directives.c:1617 +#, fuzzy, c-format +msgid "cannot find source file %s" +msgstr " : %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "" + +#: directives.c:2145 +#, fuzzy +msgid "assertion without predicate" +msgstr " " + +#: directives.c:2148 +#, fuzzy +msgid "predicate must be an identifier" +msgstr " " + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "" + +#: directives.c:2525 +#, fuzzy, c-format +msgid "unterminated #%s" +msgstr " o " + +#: directives-only.c:222 lex.c:2077 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:282 +#, fuzzy +msgid "too many decimal points in number" +msgstr " " + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "" + +#: expr.c:324 +#, fuzzy, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr " `%s'" + +#: expr.c:326 +#, fuzzy, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr " `%s'" + +#: expr.c:334 +#, fuzzy +msgid "invalid prefix \"0b\" for floating constant" +msgstr " : %s" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "" + +#: expr.c:365 +#, fuzzy, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr " : %s" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "" + +#: expr.c:389 +#, fuzzy, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr " : %s" + +#: expr.c:400 +#, fuzzy +msgid "decimal float constants are a GCC extension" +msgstr "%s: %s " + +#: expr.c:410 +#, fuzzy, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr " `%s'" + +#: expr.c:433 +#, fuzzy +msgid "use of C++0x long long integer constant" +msgstr " `%s'" + +#: expr.c:434 +#, fuzzy +msgid "use of C99 long long integer constant" +msgstr " `%s'" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "" + +#: expr.c:544 +#, fuzzy +msgid "integer constant is too large for its type" +msgstr "%s: %s " + +#: expr.c:575 +#, fuzzy +msgid "integer constant is so large that it is unsigned" +msgstr "%s: %s " + +#: expr.c:670 +#, fuzzy +msgid "missing ')' after \"defined\"" +msgstr " " + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "" + +#: expr.c:756 +#, fuzzy +msgid "floating constant in preprocessor expression" +msgstr " " + +#: expr.c:762 +#, fuzzy +msgid "imaginary number in preprocessor expression" +msgstr " " + +#: expr.c:809 +#, fuzzy, c-format +msgid "\"%s\" is not defined" +msgstr " `%s' " + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, fuzzy, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "%s: .\n" + +#: expr.c:977 +#, fuzzy, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "%s: : %s" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "" + +#: expr.c:997 +#, fuzzy, c-format +msgid "%s with no expression" +msgstr "%s' ." + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "" + +#: expr.c:1031 +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:1059 +#, fuzzy, c-format +msgid "unbalanced stack in %s" +msgstr " [" + +#: expr.c:1079 +#, fuzzy, c-format +msgid "impossible operator '%u'" +msgstr "RPC: RPC" + +#: expr.c:1180 +#, fuzzy +msgid "missing ')' in expression" +msgstr " " + +#: expr.c:1209 +#, fuzzy +msgid "'?' without following ':'" +msgstr " : %s" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "" + +#: expr.c:1224 +#, fuzzy +msgid "missing '(' in expression" +msgstr " " + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "" + +#: expr.c:1739 +#, 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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "" + +#: init.c:489 +#, fuzzy +msgid "cppchar_t must be an unsigned type" +msgstr " " + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "" + +#: init.c:520 +#, c-format +msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" +msgstr "" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "" + +#: lex.c:840 +#, fuzzy +msgid "backslash-newline at end of file" +msgstr " " + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "" + +#: lex.c:980 +#, fuzzy +msgid "null character(s) ignored" +msgstr " : " + +#: lex.c:1017 +#, fuzzy, c-format +msgid "`%.*s' is not in NFKC" +msgstr " `%s' " + +#: lex.c:1020 +#, fuzzy, c-format +msgid "`%.*s' is not in NFC" +msgstr " `%s' " + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, fuzzy, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr " `%c' `%s'" + +#: lex.c:1450 lex.c:1472 +#, fuzzy +msgid "unterminated raw string" +msgstr " o " + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr " %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "" + +#: lex.c:2415 +#, fuzzy, c-format +msgid "unspellable token %s" +msgstr "%s: %s: %m\n" + +#: macro.c:87 +#, fuzzy, c-format +msgid "macro \"%s\" is not used" +msgstr " `%s' " + +#: macro.c:126 macro.c:321 +#, fuzzy, c-format +msgid "invalid built-in macro \"%s\"" +msgstr " : %s" + +#: macro.c:160 +#, fuzzy +msgid "could not determine file timestamp" +msgstr " %s" + +#: macro.c:256 +#, fuzzy +msgid "could not determine date and time" +msgstr " %s" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +#, fuzzy +msgid "invalid string literal, ignoring final '\\'" +msgstr " : `%s'" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "" + +#: macro.c:565 +#, fuzzy +msgid "ISO C99 requires rest arguments to be used" +msgstr " " + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "" + +#: macro.c:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, fuzzy, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr " `%s'" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "" + +#: macro.c:1694 +#, fuzzy +msgid "ISO C99 requires whitespace after the macro name" +msgstr " " + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "" + +#: macro.c:1910 +#, fuzzy, c-format +msgid "\"%s\" redefined" +msgstr "" + +#: macro.c:1916 +#, fuzzy +msgid "this is the location of the previous definition" +msgstr " " + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "" + +#: macro.c:2004 +#, 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:891 +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], ) is not supported on this target" +#~ msgstr ": --pid=PID " + +#, fuzzy +#~ msgid "#pragma pack(pop[, id], ) 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= Display the full path to library \n" +#~ msgstr " -print-file-name=<> <>\n" + +#~ msgid " -print-prog-name= Display the full path to compiler component \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, Pass comma-separated on to the assembler\n" +#~ msgstr " -Wa,<> <> \n" + +#~ msgid " -Wp, Pass comma-separated on to the preprocessor\n" +#~ msgstr " -Wp,<> <> -\n" + +#~ msgid " -Wl, Pass comma-separated on to the linker\n" +#~ msgstr " -Wl,<> <> \n" + +#~ msgid " -Xlinker Pass 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= Override built-in specs with the contents of \n" +#~ msgstr " -specs=<> <> \n" + +#~ msgid " -std= Assume that the input sources are for \n" +#~ msgstr "" +#~ " -std=<> <>\n" +#~ "\n" + +#~ msgid " -B Add to the compiler's search paths\n" +#~ msgstr " -B <> <> \n" + +#~ msgid " -b Run gcc for target , if installed\n" +#~ msgstr " -b <> gcc <>, \n" + +#~ msgid " -V Run gcc version number , 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 Place the output into \n" +#~ msgstr " -o <> <>\n" + +#~ msgid "" +#~ " -x 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 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 ] [ filename ... ]'\n" +#~ msgstr "%s: %s [ -v ] [ -c ] ...\n" + +#, fuzzy +#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B ] [ 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/libcpp/po/es.gmo b/libcpp/po/es.gmo new file mode 100644 index 000000000..43cf46b3e Binary files /dev/null and b/libcpp/po/es.gmo differ diff --git a/libcpp/po/es.po b/libcpp/po/es.po new file mode 100644 index 000000000..eab4736d2 --- /dev/null +++ b/libcpp/po/es.po @@ -0,0 +1,976 @@ +# Mensajes en espaol para cpplib-4.6-b20101113. +# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the gcc package. +# Cristian Othn Martnez Vera , 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.6-b20101113\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-11-18 17:40-0600\n" +"Last-Translator: Cristian Othn Martnez Vera \n" +"Language-Team: Spanish \n" +"Language: es\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 admite la conversin 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 implementacin 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 carcter 0x%lx no est en el conjunto bsico de caracteres fuente\n" + +#: charset.c:798 charset.c:1444 +msgid "converting to execution character set" +msgstr "convirtiendo al conjunto de caracteres de ejecucin" + +#: charset.c:804 +#, c-format +msgid "character 0x%lx is not unibyte in execution character set" +msgstr "el carcter 0x%lx no es unibyte en el conjunto de caracteres de ejecucin" + +#: charset.c:928 +#, c-format +msgid "Character %x might not be NFKC" +msgstr "El carcter %x puede no ser NFKC" + +#: charset.c:994 +msgid "universal character names are only valid in C++ and C99" +msgstr "los nombres universales de carcter slo son vlidos 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 carcter %.*s incompleto" + +#: charset.c:1046 +#, c-format +msgid "%.*s is not a valid universal character" +msgstr "%.*s no es un carcter universal vlido" + +#: charset.c:1056 lex.c:1041 +msgid "'$' in identifier or number" +msgstr "'$' en el identificador o nmero" + +#: charset.c:1066 +#, c-format +msgid "universal character %.*s is not valid in an identifier" +msgstr "el carcter universal %.*s no es vlido en un identificador" + +#: charset.c:1070 +#, c-format +msgid "universal character %.*s is not valid at the start of an identifier" +msgstr "el carcter universal %.*s no es vlido 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 ejecucin" + +#: 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 dgitos hexadecimales a continuacin" + +#: 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 estndard 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 ejecucin" + +#: charset.c:1509 charset.c:1573 +msgid "character constant too long for its type" +msgstr "constante de carcter demasiado grande para su tipo" + +#: charset.c:1512 +msgid "multi-character character constant" +msgstr "constante de carcter con mltiples caracteres" + +#: charset.c:1612 +msgid "empty character constant" +msgstr "constante de carcter vaca" + +#: 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 extensin de GCC" + +#: directives.c:361 +#, c-format +msgid "#%s is a deprecated GCC extension" +msgstr "#%s es una extensin 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 lnea es una extensin de GCC" + +#: directives.c:482 +#, c-format +msgid "invalid preprocessing directive #%s" +msgstr "directiva de preprocesamiento #%s invlida" + +#: 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 definicin de \"%s\"" + +#: directives.c:666 +msgid "missing terminating > character" +msgstr "falta el carcter de terminacin >" + +#: directives.c:725 +#, c-format +msgid "#%s expects \"FILENAME\" or " +msgstr "#%s espera \"NOMBRE_ARCHIVO\" " + +#: directives.c:771 +#, c-format +msgid "empty filename in #%s" +msgstr "nombre de fichero vaco 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 cdigo fuente" + +#: directives.c:848 +#, c-format +msgid "invalid flag \"%s\" in line directive" +msgstr "indicador \"%s\" invlido en la lnea de la directiva" + +#: directives.c:908 +msgid "unexpected end of file after #line" +msgstr "fin de fichero inesperado despus de #line" + +#: directives.c:911 +#, c-format +msgid "\"%s\" after #line is not a positive integer" +msgstr "\"%s\" despus de #line no es un entero positivo" + +#: directives.c:917 directives.c:919 +msgid "line number out of range" +msgstr "nmero de lnea 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 vlido" + +#: directives.c:972 +#, c-format +msgid "\"%s\" after # is not a positive integer" +msgstr "\"%s\" despus de # no es un entero positivo" + +#: directives.c:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "directiva #%s invlida" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "se registran pragmas en el espacio de nombres \"%s\" con una expansin de nombre que no coincide" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "se registra el pragma \"%s\" con expansin de nombre y sin un espacio de nombres" + +#: directives.c:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s ya est registrado" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s ya est registrado" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "se registra un pragma con manejador NULL" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma una vez en el fichero principal" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "directiva #pragma push_macro invlida" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "directiva #pragma pop_macro invlida" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "directiva #pragma de GCC envenenada invlida" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "se envenena la macro existente \"%s\"" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header ignorado fuera del fichero a incluir" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "no se puede encontrar el fichero fuente %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "el fichero actual es ms antiguo que %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma lleva una cadena literal entre parntesis" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else sin #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else despus de #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "el condicional empez aqu" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif sin #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif despus de #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif sin #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "falta '(' antes del predicado" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "falta ')' para completar la respuesta" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "la respuesta del predicado est vaca" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "afirmacin sin predicado" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "el predicado debe ser un identificador" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" reafirmado" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "#%s sin terminar" + +#: directives-only.c:222 lex.c:2077 traditional.c:163 +msgid "unterminated comment" +msgstr "comentario sin terminar" + +#: errors.c:235 +msgid "stdout" +msgstr "salida estndard" + +#: errors.c:237 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: expr.c:282 +msgid "too many decimal points in number" +msgstr "demasiados puntos decimales en el nmero" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "las constantes de coma fija son una extensin GCC" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "dgito \"%c\" invlido en la constante binaria" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "dgito \"%c\" invlido en la constante octal" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "prefijo \"0b\" invlido en la constante de coma flotante" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "no hay dgitos en la constante de coma flotante hexadecimal" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "uso de una constante de coma flotante hexadecimal C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "el exponente no tiene dgitos" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "las constantes de coma flotante hexadecimal requieren un exponente" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "sufijo \"%.*s\" invlido en la constante de coma flotante" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "C tradicional rechaza el sufijo \"%.*s\"" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "el sufijo para una constante doble es una extensin GCC" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "sufijo \"%.*s\" invlido en la constante de coma flotante hexadecimal" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "las constantes de coma flotante decimal son una extensin GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "sufijo \"%.*s\" invlido en la constante entera" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "uso de una constante entera long long C++0x" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "uso de una constante entera long long C99" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "las constantes imaginarias son una extensin GCC" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "las constantes binarias son una extensin GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "la constante entera es demasiado grande para su tipo" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "la constante entera es tan grande que es unsigned" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "falta ')' despus de \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "el operador \"defined\" requiere un identificador" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(\"%s\" es un elemento alternativo para \"%s\" en C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "este uso de \"defined\" puede no ser transportable" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "constante de coma flotante en una expresin del preprocesador" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "nmero imaginario en una expresin del preprocesador" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" no est definido" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "las aserciones son una extensin GCC" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "las aserciones son una extensin obsoleta" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "falta un operador binario antes del elemento \"%s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "el elemento \"%s\" no es vlido en las expresiones del preprocesador" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "falta una expresin entre '(' y ')'" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s sin expresin" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "el operador '%s' no tiene operando derecho" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "el operador '%s' no tiene operando izquierdo" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ':' sin una '?' precedente" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "pila desbalanceada en %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "operador '%u' imposible" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "falta un ')' en la expresin" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' sin ':' a continuacin" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "desbordamiento entero en expresin del preprocesador" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "falta un '(' en la expresin" + +#: expr.c:1256 +#, 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:1261 +#, 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:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "C tradicional rechaza el operador unario mas" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "operador coma en operando de #if" + +#: expr.c:1739 +msgid "division by zero in #if" +msgstr "divisin 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 ms ficheros PCH, pero eran invlidos" + +#: files.c:503 +msgid "use -Winvalid-pch for more information" +msgstr "use -Winvalid-pch para ms informacin" + +#: 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 ms corto de lo esperado" + +#: files.c:881 +#, c-format +msgid "no include path in which to search for %s" +msgstr "no hay ruta de inclusin en la cual se pueda buscar %s" + +#: files.c:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Guardias mltiples de include pueden ser tiles para:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t debe ser de un tipo unsigned" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "la aritmtica del preprocesador tiene una precisin mxima de %lu bits; el objetivo requiere de %lu bits" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "la aritmtica de CPP debe se al menos tan precisa como un int del objetivo" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "el char del objetivo tiene menos de 8 bits de ancho" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "el wchar_t del objetivo es ms estrecho que el char del objetivo" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "el int del objetivo es ms estrecho que el char del objetivo" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "el medio-entero de CPP es ms estrecho que el carcter de CPP" + +#: init.c:520 +#, 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 carcter anchas ms all de %lu bits en este objetivo, pero el objetivo requiere %lu bits" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "caracteres de barra invertida y fin de lnea separados por espacio" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "no hay caractr de barra invertida o fin de lnea al final del fichero" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "se convierte el trigrafo ??%c a %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "se ignora el trigrafo ??%c, use -trigraphs para reconocerlo" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" dentro de un comentario" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s en la directiva de preprocesamiento" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "caracter(es) nulo(s) ignorados" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "`%.*s' no est en NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "`%.*s' no est en NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "intento de usar \"%s\" envenenado" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ solamente puede aparecer en la expansin de una macro variadic C99" + +#: lex.c:1102 lex.c:1179 +#, 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:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "el delimitador de cadena cruda es ms largo que 16 caracteres" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "carcter invlido '%c' en un delimitador de cadena cruda" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "cadena cruda sin terminar" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "caracter(es) nulo(s) preservados en la literal" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "falta el carcter de terminacin %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "los comentarios de estilo C++ no se permiten en ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(esto se reportar solamente una vez por cada fichero de entrada)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "comentario en mltiples lneas" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "elemento %s impronunciable" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "la macro \"%s\" no se utiliza" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "macro interna \"%s\" invlida" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "no se puede determinar la marca de fecha del fichero" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "no se puede determinar la fecha y la hora" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "se expande __COUNTER__ dentro de una directiva con -fdirectives-only" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "cadena literal invlida, se ignora el '\\' final" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "pegar \"%s\" y \"%s\" no da un elemento vlido de preprocesamiento" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 requiere que el resto de los argumentos sea usado" + +#: macro.c:570 +#, 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:575 +#, 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:734 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:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "la funcin de macro \"%s\" se debe usar con argumentos en C tradicional" + +#: macro.c:1040 +#, 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 vacos estn indefinidos en ISO C90 y en ISO C++98" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "parmetro de macro \"%s\" duplicado" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" podra faltar en la lista de parmetro de macro" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "los parmetros de macro deben ser separados por comas" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "falta el nombre del parmetro" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "los macros variadic annimos se introdujeron en C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C no permite macros variadic nombrados" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "falta ')' en la lista de parmetros de macro" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' no puede aparece en o al final de una expansin de macro" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 requiere espacios en blanco despus del nombre de macro" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "faltan espacios en blanco despus del nombre de macro" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' no es seguido por un parmetro de macro" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "se redefini \"%s\"" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "esta es la ubicacin de la definicin previa" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "el argumento de macro \"%s\" debera ser convertido a cadena en C tradicional" + +#: macro.c:2004 +#, c-format +msgid "invalid hash type %d in cpp_macro_definition" +msgstr "tipo de hash %d invlido 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 invlido" + +#: pch.c:712 pch.c:891 +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 recursin al expandir la macro \"%s\"" + +#: traditional.c:969 +msgid "syntax error in macro parameter list" +msgstr "error de sintaxis en la lista de parmetros 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 includo de %s:%u" + +#~ msgid "" +#~ ",\n" +#~ " from %s:%u" +#~ msgstr "" +#~ ",\n" +#~ " de %s:%u" + +#~ msgid "no newline at end of file" +#~ msgstr "no hay caractr de fin de lnea al final del fichero" + +#~ msgid "unknown escape sequence: '\\%03o'" +#~ msgstr "secuencia de escape desconocida: '\\%03o'" diff --git a/libcpp/po/fi.gmo b/libcpp/po/fi.gmo new file mode 100644 index 000000000..f15a49336 Binary files /dev/null and b/libcpp/po/fi.gmo differ diff --git a/libcpp/po/fi.po b/libcpp/po/fi.po new file mode 100644 index 000000000..84dd96aba --- /dev/null +++ b/libcpp/po/fi.po @@ -0,0 +1,962 @@ +# Finnish messages for cpplib. +# Copyright © 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the gcc package. +# Jorma Karvonen , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.6-b20101218\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-12-19 21:07+0200\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \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:1041 +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 " +msgstr "#%s odottaa ”TIEDOSTONIMI” tai " + +#: 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "virheellinen #%s-direktiivi" + +#: directives.c:1156 +#, 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:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "rekisteröidään pragma ”%s” nimilaajennuksella ja ilman nimiavaruutta" + +#: directives.c:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s on jo rekisteröity" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s on jo rekisteröity" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "rekisteröidään pragma NULL-käsittelijällä" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once main-tiedostossa" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "virheellinen #pragma push_macro-direktiivi" + +#: directives.c:1509 +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:1564 +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:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "kielletään olemassaoleva makro ”%s”" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header ohitetaan include-tiedoston ulkopuolella" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "ei voi löytää lähdetiedostoa %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "nykyinen tiedosto on vanhempi kuin %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma ottaa sulkumerkkeillä ympäröidyn merkkijonoliteraalin" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else ilman #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else jälkeen #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "ehdollinen alkoi tässä" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif ilman #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif jälkeen #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif ilman #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "merkki ’(’ puuttuu predikaatin jälkeen" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "merkki ’)’ puuttuu täydelliseen vastaukseen" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "predikaatin vastaus on tyhjä" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "assertion-toiminto ilman predikaattia" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "predikaatin on oltava tunniste" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "”%s” uudelleen assert-toimintoon" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "päättämätön #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "liian monta desimaalipistettä numerossa" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "kiintopistevakiot ovat GCC-laajennus" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "virheellinen numero ”%c” binäärivakiossa" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "virheellinen numero ”%c” oktaalivakiossa" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "virheellinen etuliite ”0b” liukulukuvakiolle" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "ei lukuja heksadesimaalisessa liukulukuvakiossa" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "käytä C99 heksadesimaaliliukulukuvakiota" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "eksponentilla ei ole numeoita" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "heksadesimaalinen liukulukuvakio vaatii eksponentin" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "virheellinen loppuliite ”%.*s” liukulukuvakiossa" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "perinteinen C hylkää ”%.*s”-loppuliitteen" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "loppuliite double-vakiolle on GCC-laajennus" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "virheellinen loppuliite ”%.*s” heksadesimaalisessa liukulukuvakiossa" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "desimaaliliukulukuvakiot ovat GCC-laajennus" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "virheellinen loppuliite ”%.*s” kokonaislukuvakiossa" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "käytä ”C++0x long long”-kokonaislukuvakiota" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "käytä ”C99 long long”-kokonaislukuvakiota" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "imaginaarivakiot ovat GCC-laajennus" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "binäärivakiot ovat GCC-laajennus" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "kokonaislukuvakio on liian iso sen tyypiksi" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "kokonaislukuvakio on niin iso, että se on etumerkitön" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "merkki ’)’ puuttuu ”defined”-merkkijonon jäljestä" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "operaattori ”defined” vaatii tunnisteen" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(”%s” on vaihtoehtoinen merkkijono ”%s” C++:ssa)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "tämä ”defined”-käyttö ei ehkä ole siirrettävä" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "liukulukuvakio esikäsittelijälausekkeessa" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "imaginaariluku esikääntäjälausekkeessa" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "”%s” ei ole määritelty" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "assertion-toiminnot ovat GCC-laajennus" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "assertion-toiminnot ovat vanhentunut laajennus" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "puuttua binäärioperaattori ennen merkkijonoa ”%s”" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "merkkijono ”%s” ei ole kelvollinen esikäsittelijälausekkeissa" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "puuttuva lauseke merkkien ’(’ ja ’)’ välillä" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s ilman lauseketta" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "operaattorilla ’%s’ ei ole oikeaa operandia" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "operaattorilla ’%s’ ei ole vasenta operandia" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ’:’ ilman edeltävää ’?’" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "tasapainoton pino kohteessa %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "mahdoton operaattori ’%u’" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "merkki ’)’ puuttuu lausekkeessa" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "’?’ ilman seuraavaa ’:’" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "kokonaislukuylivuoto esikääntäjälausekkeessa" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "merkki ’(’ puuttuu lausekkeessa" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "vasen ”%s”-operandi vaihtaa merkkiä, kun korotettiin" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "oikea ”%s”-operandi vaihtaa merkkiä, kun korotettiin" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "perinteinen C hylkää unaariplus-operaattorin" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "pilkkuoperaattori #if-operandissa" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Useat include-vartijat saattavat olla hyödyllisiä kohteelle:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t on oltava etumerkitön tyyppi" + +#: init.c:493 +#, 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:500 +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:503 +msgid "target char is less than 8 bits wide" +msgstr "kohdemerkki on pienempi kuin 8 bittiä leveä" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "kohteen wchar_t-tyyppi on kapeampi kuin kohteen char-tyyppi" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "kohteen kokonaislukutyyppi on kapeampi kuin kohteen char-tyyppi" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP-puolikokonaisluku on kapeampi kuin CPP-merkki" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "kenoviiva ja rivinvaihtomerkki eroteltu välilyönnillä" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "kenoviiva-rivinvaihto tiedoston lopussa" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigraph-merkki ??%c muunnettu merkiksi %c" + +#: lex.c:864 +#, 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:913 +msgid "\"/*\" within comment" +msgstr "”/*” kommentin sisällä" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s esikäsittelijädirektiivissä" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "null-merkkejä ei oteta huomioon" + +# NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "”%.*s” ei ole Unicode-normalisointimerkkijonomuodossa NFKC" + +# NFC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla +#: lex.c:1020 +#, 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:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "yritys käyttää poison-kiellettyä makroa ”%s”" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "tunniste ”%s” on erikoisoperaattorinimi C++:ssa" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "raakamerkkijonoerotin pitempi kuin 16 merkkiä" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "virheellinen merkki ’%c’ raakamerkkijonoerottimessa" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "päättämätön raakamerkkijono" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "null-merkit säilytetään literaaleissa" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "puuttuva päättymismerkki %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90-standardissa" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(tästä ilmoitetaan vain kerran per syötetiedosto)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "monirivinen kommentti" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "tavaamaton merkkijono %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "makroa ”%s” ei ole käytetty" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "virheellinen sisäinen makro ”%s”" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "ei voitu ottaa selvää tiedoston aikaleimasta" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "ei voitu ottaa selvää päivämäärästä ja ajasta" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ laajennettu direktiivin sisällä valitsimella -fdirectives-only" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "virheellinen merkijonoliteraali, ei oteta huomioon lopun ’\\’ merkkejä" + +#: macro.c:490 +#, 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:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 vaatii, että loput argumentit käytetään" + +#: macro.c:570 +#, 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:575 +#, 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:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "päättämätön argumenttiluettelo kutsuttaessa makroa ”%s”" + +#: macro.c:866 +#, 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:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "kaksoiskappale makroparametri ”%s”" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "”%s” ei ehkä ilmene makroparametriluettelossa" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "makroparametrien on oltava pilkulla eroteltuja" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "parametrinimi puuttuu" + +# Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella. +#: macro.c:1596 +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:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C ei salli nimettyjä variadic-makroja" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "puuttuu ’)’ makroparametriluettelosta" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "’##’ ei voi esiintyä makrolaajennuksen kummassakaan päässä" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 vaatii tyhjemerkin makronimen jälkeen" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "puuttuu tyhjemerkki makronimen jälkeen" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "’#’-merkkiä seuraa makroparametri" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "”%s” on määritelty uudelleen" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "tämä on edellisen määrittelyn sijainti" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "makroargumentti ”%s” muunnettaisiin merkkijonoksi perinteisessä C:ssä" + +#: macro.c:2004 +#, 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:891 +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/libcpp/po/fr.gmo b/libcpp/po/fr.gmo new file mode 100644 index 000000000..1a086fe55 Binary files /dev/null and b/libcpp/po/fr.gmo differ diff --git a/libcpp/po/fr.po b/libcpp/po/fr.po new file mode 100644 index 000000000..9d5b97cd1 --- /dev/null +++ b/libcpp/po/fr.po @@ -0,0 +1,20029 @@ +# Messages franais pour GNU concernant cpplib. +# Copyright 2001, 2008 Free Software Foundation, Inc. +# Michel Robitaille , traducteur depuis/since 1996. +# Franois-Xavier Coudert +# +# Vocabulaire utilis +# lvalue = membre gauche +# deprecated = obsolte +# out of range = hors des limites +# range = gamme +# scope = port, champ +# shadowing = masquer +# embedded PIC = PIC enchss +# CPU = processeur +# structure with flexible member +# = structure ayant un membre flexible +# flag = fanion +# forward declaration +# = dclaration anticipe +# token = lment lexical (dans le contexte du parsing) +# to subscript = indicer +# top-level = hors de toute fonction +# member function = fonction membre +# +# Pas traduit: +# thread +# +# J'ai des doutes pour : +# inline = enligne (pas systmatiquement) +# oui dans le contexte du langage C par exemple MR +# non autrement ...de manire gnrale MR +# section attribute attribut de section OK MR +# wide char caractre long ...non mieux caractre large MR +# plus conforme l'esprit. +# +# ------ +# literals littral, ou mot compos ? +# msgid "ISO C89 forbids compound literals" +# msgstr "le C89 ISO interdit les mots composs" +# +# symbol table table des symboles ou table de symbole +# command map carte des commandes +# Combiner combinateur +# msgid "" +# ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +# ";; %d successes.\n" +# "\n" +# msgstr "" +# ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requrant un nouvel espace),\n" +# ";; %d succs.\n" +# "\n" +# +# promote promouvoir +# msgid "the left operand of \"%s\" changes sign when promoted" +# msgstr "L'oprande gauche de %s change de signe lors de sa promotion" +# +# include guards ??? +# msgid "Multiple include guards may be useful for:\n" +# msgstr "De multiples balises pour les inclusions peuvent tre utiles pour :\n" +# +# +# universal-character-name ??? +# msgid "incomplete universal-character-name" +# msgid "non-hex digit '%c' in universal-character-name" +# msgid "universal-character-name on EBCDIC target" +# +# poisoning empoisonnement +# msgid "poisoning existing macro \"%s\"" +# msgstr "empoisonnement de la macro existente %s " +# MR 9-jan 2004: poisoning etc... transform par corruption corrompu etc.. +# MR 24-mai 2004: poison etc...suite au msg concernant le #pragma once et #pragma poison +# +# Autres rgles: +# - j'ai ajout un adjectif par rapport l'anglais si le message est +# une phrase avec verbe conjug. +# - ISO est considr comme un adjectif dans C ISO +# +# Erreurs corriges: +# librairies, assumer +# +# A faire: +# - s/en ligne/en-ligne/ modifi 9-janv-2004 MR +# - s/en-ligne/enligne/ modifi 18-fvrier-2004 MR pcq expression ou terme enlignage vs inlining +# - hors gamme a t chang pour hors limite ...MR 09-jan-2004 +# - literal +# - chane de format => formatage +# - scope +# - support est un faux ami +# +# A rapporter upstream: +# <<<<<<<< +# In c-opts.c, begining line 1732, a lot of options are of the kind: +# " -W[no-]trigraphs Warn if trigraphs are encountered\n" +# I guess it would be better to change them all to something like +# " -W[no-]trigraphs Warn [or not] if trigraphs are encountered\n" +# +# +# #: c-opts.c:1759 +# " -MP\t\t\t Generate phony targets for all headers\n" +# you may want to change the \t to spaces, as it is done for the other lines. +# +# #: c-typeck.c:3166 c-typeck.c:4632 c-typeck.c:4648 c-typeck.c:4664 +# #: final.c:3146 final.c:3148 gcc.c:4397 rtl-error.c:122 toplev.c:1694 +# #: config/cris/cris.c:529 cp/typeck.c:4341 java/expr.c:364 java/verify.c:1467 +# #: java/verify.c:1468 java/verify.c:1483 +# #, c-format +# msgid "%s" +# msgstr "%s" +# +# Are you sure you want to translate the messages in cfgrtl.c, or are they +# debugging informations ? +# +# You may want to use ngettext instead of putting (s) in text. +# msgid "null character(s) preserved in literal" +# +# >>>>>>>>> +# +msgid "" +msgstr "" +"Project-Id-Version: GNU cpplib 4.3.0\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2008-03-27 22:46+0000\n" +"Last-Translator: Franois-Xavier Coudert \n" +"Language-Team: French \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 "caractre 0x%lx n'est pas dans le jeu de caractres de base\n" + +#: charset.c:798 charset.c:1444 +msgid "converting to execution character set" +msgstr "conversion vers un jeu d'excution de caractres" + +#: charset.c:804 +#, c-format +msgid "character 0x%lx is not unibyte in execution character set" +msgstr "caractre 0x%lx n'est pas unibyte dans le jeu de caractres d'excution" + +#: charset.c:928 +#, c-format +msgid "Character %x might not be NFKC" +msgstr "Le charactre %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 caractre 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 diffrente 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 caractre universel incomplet %.*s" + +#: charset.c:1046 +#, c-format +msgid "%.*s is not a valid universal character" +msgstr "%.*s n'est pas un caractre universel valide" + +#: charset.c:1056 lex.c:1041 +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 "caractre 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 "caractre universel %.*s n'est pas valide au dbut d'un identificcateur" + +#: charset.c:1102 charset.c:1674 +msgid "converting UCN to source character set" +msgstr "conversion UCN vers le jeu source de caractres" + +#: charset.c:1106 +msgid "converting UCN to execution character set" +msgstr "conversion UCN vers le jeu d'excution de caractres" + +#: charset.c:1178 +msgid "the meaning of '\\x' is different in traditional C" +msgstr "la signification de \\x est diffrente en C traditionel" + +#: charset.c:1195 +msgid "\\x used with no following hex digits" +msgstr "\\x utilis sans tre suivi de chiffres en hexdcimal" + +#: charset.c:1202 +msgid "hex escape sequence out of range" +msgstr "squence d'chappement hexadcimale hors limite" + +#: charset.c:1240 +msgid "octal escape sequence out of range" +msgstr "squence d'chappement octale hors limite" + +#: charset.c:1306 +msgid "the meaning of '\\a' is different in traditional C" +msgstr "la signification de \\a est diffrente en C traditionel" + +#: charset.c:1313 +#, c-format +msgid "non-ISO-standard escape sequence, '\\%c'" +msgstr "squence 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 "squence d'chappement \\%c inconnue" + +#: charset.c:1329 +#, c-format +msgid "unknown escape sequence: '\\%s'" +msgstr "squence d'chappement \\%s inconnue" + +#: charset.c:1336 +msgid "converting escape sequence to execution character set" +msgstr "conversion d'une squence d'chappement vers un jeu d'excution de caractres" + +#: charset.c:1509 charset.c:1573 +msgid "character constant too long for its type" +msgstr "constante caractre trop longue pour son type" + +#: charset.c:1512 +msgid "multi-character character constant" +msgstr "constante caractre multi-caractres" + +#: charset.c:1612 +msgid "empty character constant" +msgstr "constante caractre 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 "lments 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 suggr 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 caractre # est indent" + +#: directives.c:381 +#, c-format +msgid "suggest hiding #%s from traditional C with an indented #" +msgstr "il est suggr de cacher #%s au C traditionel en indentant le # " + +#: directives.c: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 oprateur 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 "indfinition de %s " + +#: directives.c:666 +msgid "missing terminating > character" +msgstr "caractre > de terminaison manquant" + +#: directives.c:725 +#, c-format +msgid "#%s expects \"FILENAME\" or " +msgstr "#%s attend \"NOM_DE_FICHIER\" ou " + +#: 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 profondment" + +#: 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 aprs #ligne" + +#: directives.c:911 +#, c-format +msgid "\"%s\" after #line is not a positive integer" +msgstr " %s aprs #ligne n'est pas un nombre entier positif" + +#: directives.c:917 directives.c:919 +msgid "line number out of range" +msgstr "numro 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 aprs # n'est pas un nombre entier positif" + +#: directives.c:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "directive #%s invalide" + +#: directives.c:1156 +#, 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:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "la #pragma %s %s est dj enregistre" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "la #pragma %s est dj enregistre" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "enregistrement d'un pragma avec un handler gal NULL" + +# FIXME +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once utilise une seule fois dans le fichier principal" + +# FIXME +#: directives.c:1454 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma push_macro directive" +msgstr "la directive GCC #pragma poison est invalide" + +# FIXME +#: directives.c:1509 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma pop_macro directive" +msgstr "la directive GCC #pragma poison est invalide" + +# FIXME +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "la directive GCC #pragma poison est invalide" + +# FIXME +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "limination de la macro existente %s " + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header ignore en dehors du fichier d'inclusion" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "impossible de trouver le fichier source %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "le fichier courant est plus vieux que %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma prend une chane entoure de parenthrese" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else sans #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else aprs #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "la condition dbute ici" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif sans #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif aprs #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif sans #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr " ( manquante aprs le prdicat" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr " ) manquante pour completer la rponse" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "la rponse du prdicat est vide" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "assertion sans prdicat" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "le prdicat doit tre un identificateur" + +# FIXME +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr " %s re-asserti" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "#%s non termin" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "trop de points dcimaux dans le nombre" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "les constantes virgule fixe sont une extension GCC" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "chiffre %c invalide dans la constante binaire" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "chiffre %c invalide dans la constante en base 8" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "prfixe 0b invalide pour une constante flottante" + +#: expr.c:339 +#, fuzzy +#| msgid "use of C99 hexadecimal floating constant" +msgid "no digits in hexadecimal floating constant" +msgstr "usage d'une constante hexadcimale constante la C99" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "usage d'une constante hexadcimale constante la C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "l'exposant n'a pas de chiffre" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "la contante hexadcimale flottante require un exposant" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "suffixe %.*s invalide pour une constante flottante" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "le C traditionnel interdit le suffixe %.*s " + +#: expr.c:383 +#, 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:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "suffixe %.*s invalide pour une constante flottante hexadcimale" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "les constantes flottantes dcimales sont une extension GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "suffixe %.*s invalide pour une constante entire" + +#: expr.c:433 +#, fuzzy +#| msgid "use of C99 long long integer constant" +msgid "use of C++0x long long integer constant" +msgstr "usage d'une constante entire long long la C99" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "usage d'une constante entire long long la C99" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "les constantes imaginaires sont une extension GCC" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "les constantes binaires sont une extension GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "constante entire trop grande pour tenir dans son type" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "cette constante entire est si grande qu'elle ne peut tre signe" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr " ) manquant aprs defined " + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "l'oprateur defined requiert un identificateur" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "( %s est un lment lexical alternatif pour %s en C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "cette utilisation de defined peut ne pas tre portable" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "constante flottante dans une expresion pour le prprocesseur" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "constante complexe dans une expresion pour le prprocesseur" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr " %s n'est pas dfini" + +#: expr.c:821 +#, fuzzy +#| msgid "binary constants are a GCC extension" +msgid "assertions are a GCC extension" +msgstr "les constantes binaires sont une extension GCC" + +#: expr.c:824 +#, fuzzy +#| msgid "binary constants are a GCC extension" +msgid "assertions are a deprecated extension" +msgstr "les constantes binaires sont une extension GCC" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "oprateur binaire manquant avant l'lment lexical %s " + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "l'lment lexical %s n'est pas valide dans les expressions pour le prprocesseur" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "expression manquante entre '(' et ')'" + +#: expr.c:997 +#, fuzzy, c-format +#| msgid "#if with no expression" +msgid "%s with no expression" +msgstr "#if sans expression" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "l'oprateur %s n'a pas d'oprande droite" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "oprateur %s n'a pas d'oprande gauche" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " : n'est pas prcd de ? " + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced stack in #if" +msgid "unbalanced stack in %s" +msgstr "pile non balance dans #if" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "oprateur impossible %u " + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr " ) manquante dans l'expresion" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr " ? n'est pas suivi de : " + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "dbordement d'entier dans l'expresion pour le prprocesseur" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr " ( manquante dans l'expresion" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "L'oprande gauche de %s change de signe lors de sa promotion" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "L'oprande droite de %s change de signe lors de sa promotion" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "le C traditionnel rejette le plus unaire" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "oprateur virgule dans l'oprande de #if" + +#: expr.c:1739 +msgid "division by zero in #if" +msgstr "division par zro dans #if" + +#: files.c:463 +msgid "NULL directory in find_file" +msgstr "rpertoire 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 reprs, 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 priphrique 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 prvu" + +#: files.c:881 +#, c-format +msgid "no include path in which to search for %s" +msgstr "aucun chemin d'inclusion dans lequel on pourrait reprer %s" + +# FIXME +#: files.c:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "De multiples balises pour les inclusions peuvent tre utiles pour:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t doit tre d'un type non sign" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "l'arithmtique du prprocesseur a une prcision maximale de %lu bits ; la cible require %lu bits" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "l'arithmtique de CPP doit tre au moins aussi prcise que le type int de la cible" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "sur la cible, char fait moins de 8 bits" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "sur la cible, wchar_t est plus petit que char " + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "sur la cible, int est plus petit que char " + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "les demi-entiers de CPP sont plus petit que les caractres de CPP" + +#: init.c:520 +#, c-format +msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" +msgstr "CPP sur cette machine ne peut grer les constantes larges de caractres de plus de %lu bits, mais la cible require %lu bits" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr " \\ et retour de chariot spars par un blanc" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr " \\ en fin de ligne la fin du fichier" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigraphe ??%c converti en %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "trigraphe ??%c ignor, utilisez -trigraphs pour le permettre" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr " /* l'intrieur d'un commentaire" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s dans la directive du prprocesseur" + +# I18N +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "caractre(s) nul(s) ignor(s)" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr " %.*s n'est pas dans la normalisation NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr " %.*s n'est pas dans la normalisation NFC" + +# FIXME +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "tentative d'utilisation d'un %s corrompu" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr " __VA_ARGS__ peut seulement appratre dans l'expansion des macros C99 nombre variable d'arguments" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, fuzzy, c-format +#| msgid "invalid character '%c' in #if" +msgid "invalid character '%c' in raw string delimiter" +msgstr "caractre %c invalide dans #if" + +#: lex.c:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated format string" +msgid "unterminated raw string" +msgstr "chane de format non termine" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "caractre(s) nul prserv(s) dans la chane" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "caractre %c de terminaison manquant" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "Les commentaires la C++ ne sont pas permis en C89 ISO" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(ceci sera rapport une seule fois seulement par fichier d'entre)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "commentaire multi-lignes" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "l'lment lexical %s ne peut tre pel" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "la macro %s n'est pas utilise" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "macro interne invalide %s " + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "ne peut dterminer la date de modification du fichier" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "ne peut dterminer la date et l'heure" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "Expansion de __COUNTER__ l'intrieur d'une directive avec -fdirectives-only" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "chane invalide, \\ final ignor" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "le collage de %s et de %s ne donne pas d'lment lexical de pr-traitement valide" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 requiert que tous les arguments soient utiliss" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "macro %s requiert %u arguments, mais seulement %u ont t passs" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "la macro %s a reu %u arguments, mais elle n'en prend que %u" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "liste d'arguments non termine invoquant la macro %s " + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "la macro %s ressemblant une fonction doit utilise avec des arguments en C traditionnel" + +#: macro.c:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "paramtre de macro %s en double" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr " %s peut ne pas apparatre parmi les paramtres de macros" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "les paramtres de macro doivent tre spars par des virgules" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "nom de paramtre manquant" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "les macros anonymes nombre variable d'arguments ont t introduites avec le C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C ne permet pas les macros nommes nombre variable d'arguments" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr " ) manquante dans la liste des paramtres de macros" + +# FIXME +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr " ## ne peut apparatre chacune des fins de l'expansion de macros" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 requiert un blanc aprs le nom de la macro" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "blanc d'espacement manquant aprs le nom de la macro" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr " # n'est pas suivi d'un paramtre de macro" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr " %s redfini" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "ceci est la localisation d'une prcdente dfinition" + +#: macro.c:1977 +#, 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:2004 +#, 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-tte pr-compile" + +#: 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 dfini" + +#: 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 dfinie" + +#: 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 dfini 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 dfini" + +#: 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:891 +msgid "while reading precompiled header" +msgstr "lors de la lecture de l'en-tte pr-compile" + +#: traditional.c:751 +#, c-format +msgid "detected recursion whilst expanding macro \"%s\"" +msgstr "rcursion dtecte 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 paramtres 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 "squence d'chappement \\%03o inconnue" + +#~ msgid "no newline at end of file" +#~ msgstr "pas de retour chariot la fin du fichier" + +#~ msgid "`%s' attribute directive ignored" +#~ msgstr "attribut de directive %s ignor" + +#~ msgid "wrong number of arguments specified for `%s' attribute" +#~ msgstr "nombre erron d'arguments spcifi pour l'attribut %s " + +#~ msgid "`%s' attribute does not apply to types" +#~ msgstr "l'attribut %s ne s'applique pas aux types" + +#~ msgid "`%s' attribute only applies to function types" +#~ msgstr "l'attribut %s ne s'applique qu' des types de fonction" + +#~ msgid "`%s' attribute ignored" +#~ msgstr "attribut %s ignor" + +#~ msgid "offset outside bounds of constant string" +#~ msgstr "dcalage hors des limites d'une chane de constante" + +#~ msgid "second arg to `__builtin_prefetch' must be a constant" +#~ msgstr "second argument de __builtin_prefetch doit tre une constante" + +#~ msgid "invalid second arg to __builtin_prefetch; using zero" +#~ msgstr "second argument invalide de __builtin_prefetch ; utilisation de zro" + +#~ msgid "third arg to `__builtin_prefetch' must be a constant" +#~ msgstr "troisime argument de __builtin_prefetch doit tre une constante" + +#~ msgid "invalid third arg to __builtin_prefetch; using zero" +#~ msgstr "troisime argument invalide de __builtin_prefetch ; utilisation de zro" + +#~ msgid "argument of `__builtin_args_info' must be constant" +#~ msgstr "argument de __builtin_args_info doit tre une constante" + +#~ msgid "argument of `__builtin_args_info' out of range" +#~ msgstr "argument de __builtin_args_info hors des limites" + +#~ msgid "missing argument in `__builtin_args_info'" +#~ msgstr "argument manquant dans __builtin_args_info " + +#~ msgid "`va_start' used in function with fixed args" +#~ msgstr " va_start utilis dans une fonction ayant des arguments fixes" + +#~ msgid "second parameter of `va_start' not last named argument" +#~ msgstr "second paramtre de va_start n'est pas le dernier argument nomm" + +#~ msgid "`__builtin_next_arg' called without an argument" +#~ msgstr " __builtin_next_arg appel sans argument" + +#~ msgid "too many arguments to function `va_start'" +#~ msgstr "trop d'arguments pour la function va_start " + +#~ msgid "first argument to `va_arg' not of type `va_list'" +#~ msgstr "premier argument de va_arg n'est pas de type va_list " + +#~ msgid "`%s' is promoted to `%s' when passed through `...'" +#~ msgstr " %s a t promu %s lors du passage travers ... " + +#~ msgid "(so you should pass `%s' not `%s' to `va_arg')" +#~ msgstr "(vous devriez donc passer %s et non %s va_arg )" + +#~ msgid "if this code is reached, the program will abort" +#~ msgstr "si ce code est atteint, le programme s'arrtera" + +#~ msgid "invalid arg to `__builtin_frame_address'" +#~ msgstr "argument de __builtin_frame_address invalide" + +#~ msgid "invalid arg to `__builtin_return_address'" +#~ msgstr "argument de __builtin_return_address invalide" + +#~ msgid "unsupported arg to `__builtin_frame_address'" +#~ msgstr "argument de __builtin_frame_address non support" + +#~ msgid "unsupported arg to `__builtin_return_address'" +#~ msgstr "argument de __builtin_return_address non support" + +#~ msgid "second arg to `__builtin_expect' must be a constant" +#~ msgstr "le second argument de __builtin_expect doit tre une constante" + +#~ msgid "__builtin_longjmp second argument must be 1" +#~ msgstr "le second argument de __builtin_longjmp doit tre 1" + +#~ msgid "built-in function `%s' not currently supported" +#~ msgstr "fonction interne %s n'est pas actuellement supporte" + +#~ msgid "target format does not support infinity" +#~ msgstr "le format cible ne supporte pas l'infini" + +#~ msgid "%Hsuggest explicit braces to avoid ambiguous `else'" +#~ msgstr "%Hon vous suggre des accolades explicitement pour viter des else ambigus" + +#~ msgid "%J'%D' is not defined outside of function scope" +#~ msgstr "%J %D n'est pas dfini l'extrieur de la porte de la fonction" + +#~ msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" +#~ msgstr "longueur de la chane %d plus grande que la longueur %d que les compilateurs ISO C%d doivent supporter" + +#~ msgid "overflow in constant expression" +#~ msgstr "dbordement dans l'expression de la constante" + +#~ msgid "integer overflow in expression" +#~ msgstr "dbordement d'entier dans l'expression" + +#~ msgid "floating point overflow in expression" +#~ msgstr "dbordement d'un nombre en virgule flottante dans l'expression" + +#~ msgid "vector overflow in expression" +#~ msgstr "dbordement du vecteur dans l'expression" + +#~ msgid "large integer implicitly truncated to unsigned type" +#~ msgstr "grand entier implicitement tronqu pour un type non sign" + +#~ msgid "negative integer implicitly converted to unsigned type" +#~ msgstr "entier ngatif implicitement converti en un type non sign" + +#~ msgid "overflow in implicit constant conversion" +#~ msgstr "dbordement dans la conversion implicte de la constante" + +#~ msgid "operation on `%s' may be undefined" +#~ msgstr "l'opration portant sur %s est peut tre indfinie" + +#~ msgid "expression statement has incomplete type" +#~ msgstr "la dclaration de l'expression a un type incomplet" + +#~ msgid "case label does not reduce to an integer constant" +#~ msgstr "l'tiquette du case ne se rduit pas en une constante entire" + +#~ msgid "invalid truth-value expression" +#~ msgstr "expression valeur de vrit invalide" + +#~ msgid "invalid operands to binary %s" +#~ msgstr "oprandes invalides pour le binaire %s" + +#~ msgid "comparison is always false due to limited range of data type" +#~ msgstr "comparaison est toujours fausse en raison d'une gamme limite de type de donnes" + +#~ msgid "comparison is always true due to limited range of data type" +#~ msgstr "comparaison est toujours vraie en raison d'une gamme limite de type de donnes" + +#~ msgid "comparison of unsigned expression >= 0 is always true" +#~ msgstr "comparaison d'une expression non signe >=0 est toujours vraie" + +#~ msgid "comparison of unsigned expression < 0 is always false" +#~ msgstr "comparaison d'une expression non signe < 0 est toujours fausse" + +#~ msgid "pointer of type `void *' used in arithmetic" +#~ msgstr "usage en arithmtique d'un pointeur de type void * " + +#~ msgid "pointer to a function used in arithmetic" +#~ msgstr "usage en arithmtique d'un pointeur vers une fonction" + +#~ msgid "pointer to member function used in arithmetic" +#~ msgstr "usage en arithmtique d'un pointeur vers une fonction membre" + +#~ msgid "struct type value used where scalar is required" +#~ msgstr "valeur de type struct utilis l o un scalaire est attendu" + +#~ msgid "union type value used where scalar is required" +#~ msgstr "valeur de type union utilis l o un scalaire est attendu" + +#~ msgid "array type value used where scalar is required" +#~ msgstr "valeur de type array utilis l o un scalaire est attendu" + +#~ msgid "the address of `%D', will always evaluate as `true'" +#~ msgstr "l'adresse de %D sera toujours value comme tant true " + +#~ msgid "suggest parentheses around assignment used as truth value" +#~ msgstr "parenthses suggres autour de l'affectation utilise comme valeur de vrit" + +#~ msgid "invalid use of `restrict'" +#~ msgstr "usage de restrict invalide" + +#~ msgid "invalid application of `sizeof' to a function type" +#~ msgstr "application de sizeof sur un type de fonction invalide" + +#~ msgid "invalid application of `%s' to a void type" +#~ msgstr "application invalide de %s sur un type void" + +#~ msgid "invalid application of `%s' to an incomplete type" +#~ msgstr "application invalide de %s sur un type incomplet" + +#~ msgid "`__alignof' applied to a bit-field" +#~ msgstr " __alignof appliqu sur un champ de bits" + +#~ msgid "cannot disable built-in function `%s'" +#~ msgstr "ne peut dsactiver la fonction interne %s " + +#~ msgid "too few arguments to function `%s'" +#~ msgstr "pas assez d'arguments pour la fonction %s " + +#~ msgid "too many arguments to function `%s'" +#~ msgstr "trop d'arguments pour la fonction %s " + +#~ msgid "non-floating-point argument to function `%s'" +#~ msgstr "argument pour la fonction %s n'tant pas en virgule flottante" + +#~ msgid "pointers are not permitted as case values" +#~ msgstr "les pointeurs ne sont pas permis comme valeurs de case " + +#~ msgid "range expressions in switch statements are non-standard" +#~ msgstr "l'tendue des expressions dans les dclarations switch ne sont pas standard" + +#~ msgid "empty range specified" +#~ msgstr "intervalle vide spcifi" + +#~ msgid "duplicate (or overlapping) case value" +#~ msgstr "valeur du case dupplique (ou en chevauchant une autre)" + +#~ msgid "%Jthis is the first entry overlapping that value" +#~ msgstr "%Jest la premire entre chevauchant cette valeur" + +#~ msgid "duplicate case value" +#~ msgstr "valeur du case dupplique" + +#~ msgid "%Jpreviously used here" +#~ msgstr "%Jprcdemment utilis ici" + +#~ msgid "multiple default labels in one switch" +#~ msgstr "plusieurs tiquettes par dfaut dans un switch " + +#~ msgid "%Jthis is the first default label" +#~ msgstr "%Jest la premire tiquette par dfaut" + +#~ msgid "taking the address of a label is non-standard" +#~ msgstr "prendre l'adresse d'une tiquette n'est pas standard" + +#~ msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" +#~ msgstr "%Hvaleur retourner %D ignore, dclare avec l'attribut warn_unused_result" + +#~ msgid "%Hignoring return value of function declared with attribute warn_unused_result" +#~ msgstr "%Hvaleur retourner ignore de la fonction dclare avec l'attribut warn_unused_result" + +#~ msgid "unknown machine mode `%s'" +#~ msgstr "mode machine %s inconnu" + +#~ msgid "no data type for mode `%s'" +#~ msgstr "aucun type de donnes pour le mode %s " + +#~ msgid "invalid pointer mode `%s'" +#~ msgstr "mode pointeur invalide %s " + +#~ msgid "unable to emulate '%s'" +#~ msgstr "impossible d'muler %s " + +#~ msgid "%Jsection attribute cannot be specified for local variables" +#~ msgstr "%Jl'attribut de section ne peut tre spcifi pour des variables locales" + +#~ msgid "%Jsection of '%D' conflicts with previous declaration" +#~ msgstr "%Jsection de %D en conflit avec une dclaration prcdente" + +#~ msgid "%Jsection attribute not allowed for '%D'" +#~ msgstr "%Jattribut de section n'est pas permis pour %D " + +#~ msgid "%Jsection attributes are not supported for this target" +#~ msgstr "%Jattributs de section ne sont pas supports pour la cible" + +#~ msgid "requested alignment is not a constant" +#~ msgstr "l'alignement demand n'est pas une constante" + +#~ msgid "requested alignment is not a power of 2" +#~ msgstr "l'alignement demand n'est pas une puissance de 2" + +#~ msgid "requested alignment is too large" +#~ msgstr "l'alignement demand est trop grand" + +#~ msgid "%Jalignment may not be specified for '%D'" +#~ msgstr "%Jl'alignement ne peut pas tre spcifi pour %D " + +#~ msgid "%J'%D' defined both normally and as an alias" +#~ msgstr "%J'%D dfini la fois normalement et en tant qu'alias" + +#~ msgid "alias arg not a string" +#~ msgstr "l'argument d'alias n'est pas une chane" + +#~ msgid "visibility arg not a string" +#~ msgstr "l'argument de visibilit n'est pas une chane" + +#~ msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" +#~ msgstr "l'argument de visibilit doit tre l'un de default (par dfaut), hidden (masqu), protected (protg) ou internal (interne)" + +#~ msgid "tls_model arg not a string" +#~ msgstr "l'argument de tls_model n'est pas une chane" + +#~ msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" +#~ msgstr "l'argument de tls_model doit tre l'un de local-exec , initial-exec , local-dynamic or global-dynamic " + +#~ msgid "%J'%E' attribute applies only to functions" +#~ msgstr "%J'%E l'attribut ne s'applique seulement qu' des fonctions" + +#~ msgid "%Jcan't set '%E' attribute after definition" +#~ msgstr "%Jne peut initialiser l'attribut %E aprs dfinition" + +#~ msgid "`%s' attribute ignored for `%s'" +#~ msgstr "attribut %s ignor pour %s " + +#~ msgid "invalid vector type for attribute `%s'" +#~ msgstr "type de vecteur invalide pour l'attribut %s " + +#~ msgid "no vector mode with the size and type specified could be found" +#~ msgstr "aucun mode vecteur avec la taille et le type spcifi n'a t trouv" + +#~ msgid "nonnull attribute without arguments on a non-prototype" +#~ msgstr "attribut non nul sans argument sur un non-prototype" + +#~ msgid "nonnull argument has invalid operand number (arg %lu)" +#~ msgstr "un argument non nul a un nombre d'oprande invalide (argument %lu)" + +#~ msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" +#~ msgstr "un argument non nul a un nombre d'oprande hors des bornes (arg %lu, oprande %lu)" + +#~ msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" +#~ msgstr "un argument non nul rfrence une oprande qui n'est pas un pointeur (arg %lu, oprande %lu)" + +#~ msgid "null argument where non-null required (arg %lu)" +#~ msgstr "argument nul l o un non-nul est requis (arg %lu)" + +#~ msgid "cleanup arg not an identifier" +#~ msgstr "argument de nettoyage n'est pas un identificateur" + +#~ msgid "cleanup arg not a function" +#~ msgstr "argument de nettoyage n'est pas une fonction" + +#~ msgid "%s at end of input" +#~ msgstr "%s la fin de l'entre" + +#~ msgid "%s before %s'%c'" +#~ msgstr "%s avant %s %c " + +#~ msgid "%s before %s'\\x%x'" +#~ msgstr "%s avant %s'\\x%x'" + +#~ msgid "%s before string constant" +#~ msgstr "%s avant une chane constante" + +#~ msgid "%s before numeric constant" +#~ msgstr "%s avant une constante numrique" + +#~ msgid "%s before \"%s\"" +#~ msgstr "%s avant %s " + +#~ msgid "%s before '%s' token" +#~ msgstr "%s avant un lment lexical %s " + +#~ msgid "void value not ignored as it ought to be" +#~ msgstr "valeur void n'a pas t ignore comme elle aurait d l'tre" + +#~ msgid "conversion to non-scalar type requested" +#~ msgstr "conversion vers un type non scalaire demande" + +#~ msgid "%Jarray '%D' assumed to have one element" +#~ msgstr "%Jon assume que le tableau %D n'a qu'un seul lment" + +#~ msgid "%Jlabel `%D' used but not defined" +#~ msgstr "%Jtiquette %D utilise mais non dfinie" + +#~ msgid "%Jlabel `%D' defined but not used" +#~ msgstr "%Jtiquette %D dfinie mais non utilise" + +#~ msgid "%Jlabel `%D' declared but not defined" +#~ msgstr "%Jtiquette %D utilise mais non dfinie" + +#~ msgid "%Junused variable `%D'" +#~ msgstr "%Jvariable inutilise %D " + +#~ msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration" +#~ msgstr "un paramtre de la liste avec une ellipse ne peut concorder une dclaration vide de liste de noms de paramtres" + +#~ msgid "an argument type that has a default promotion can't match an empty parameter name list declaration" +#~ msgstr "un type d'argument ayant une promotion par dfaut ne peut concorder avec une dclaration vide de noms de paramtres" + +#~ msgid "%Jprototype for '%D' declares more arguments than previous old-style definition" +#~ msgstr "%Jprototype pour %D dclare plus d'arguments que la dfinition prcdente de style ancien" + +#~ msgid "%Jprototype for '%D' declares fewer arguments than previous old-style definition" +#~ msgstr "%Jprototype pour %D dclare moins d'arguments que la dfinition prcdente de style ancien" + +#~ msgid "%Jprototype for '%D' declares arg %d with incompatible type" +#~ msgstr "%Jprototype pour %D dclare l'arguments %d avec un type incompatible" + +#~ msgid "%Jprototype for '%D' follows non-prototype definition" +#~ msgstr "%Jprototype pour %D suit la dfinition d'un non prototype" + +#~ msgid "%Jprevious definition of '%D' was here" +#~ msgstr "%Jdfinition prcdente de %D tait ici" + +#~ msgid "%Jprevious implicit declaration of '%D' was here" +#~ msgstr "%Jdclaration prcdente implicite de %D tait ici" + +#~ msgid "%Jprevious declaration of '%D' was here" +#~ msgstr "%Jdclaration prcdente de %D tait ici" + +#~ msgid "%J'%D' redeclared as different kind of symbol" +#~ msgstr "%J %D redclar comme une sorte diffrente de symbole" + +#~ msgid "%Jbuilt-in function '%D' declared as non-function" +#~ msgstr "%Jfonction interne %D n'est pas dclare comme une fonction" + +#~ msgid "%Jshadowing built-in function '%D'" +#~ msgstr "%Jmasquage de la fonction interne %D " + +#~ msgid "%Jconflicting types for built-in function '%D'" +#~ msgstr "%Jtypes conflictuels pour la fonction interne %D " + +#~ msgid "%Jconflicting types for '%D'" +#~ msgstr "%Jtypes conflictuels pour %D " + +#~ msgid "%Jredefinition of typedef '%D'" +#~ msgstr "%Jredfinition de %D " + +#~ msgid "%Jredefinition of '%D'" +#~ msgstr "%Jredfinition de %D " + +#~ msgid "%Jstatic declaration of '%D' follows non-static declaration" +#~ msgstr "%Jdclaration statique de %D suit une dclaration non statique" + +#~ msgid "%Jnon-static declaration of '%D' follows static declaration" +#~ msgstr "%Jdclaration non statique de %D suite une dclaration statique" + +#~ msgid "%Jthread-local declaration of '%D' follows non-thread-local declaration" +#~ msgstr "%Jdclaration de thread local de %D suit une dclaration non thread-local" + +#~ msgid "%Jnon-thread-local declaration of '%D' follows thread-local declaration" +#~ msgstr "%Jdclaration non thread local de %D suit une dclaration de thread local" + +#~ msgid "%Jextern declaration of '%D' follows declaration with no linkage" +#~ msgstr "%Jdclaration externe de %D suit une dclaraion sans lien" + +#~ msgid "%Jdeclaration of '%D' with no linkage follows extern declaration" +#~ msgstr "%Jdclaration de %D sasn lien suivant une dclaration externe" + +#~ msgid "%Jredeclaration of '%D' with no linkage" +#~ msgstr "%Jredclaration de %D sans lien" + +#~ msgid "%Jredeclaration of '%D' with different visibility (old visibility preserved)" +#~ msgstr "%Jredclaration de %D avec une visibilit diffrente (visibilit prcdente conserve)" + +#~ msgid "%Jinline declaration of '%D' follows declaration with attribute noinline" +#~ msgstr "%Jdclaration enligne de %D suit la dclaration avec un attribut non enligne" + +#~ msgid "%Jdeclaration of '%D' with attribute noinline follows inline declaration " +#~ msgstr "%Jclaration de %D avec un attribut non enligne suit une dclaration enligne" + +#~ msgid "%J'%D' declared inline after being called" +#~ msgstr "%J %D dclar enligne aprs avoir t appel" + +#~ msgid "%J'%D' declared inline after its definition" +#~ msgstr "%J %D dclar enligne aprs sa dfinition" + +#~ msgid "%Jredefinition of parameter '%D'" +#~ msgstr "%Jredfinition du paramtre %D " + +#~ msgid "%Jvolatile declaration of '%D' follows non-volatile declaration" +#~ msgstr "%Jdclaration volatile de %D suit une dclaration non volatile" + +#~ msgid "%Jnon-volatile declaration of '%D' follows volatile declaration" +#~ msgstr "%Jdclaration non volatile de %D suit une dclaration volatile" + +#~ msgid "%Jconst declaration of '%D' follows non-const declaration" +#~ msgstr "%Jdclaration de constante de %D suit une dclaration de non constante" + +#~ msgid "%Jnon-const declaration of '%D' follows const declaration" +#~ msgstr "%Jdclaration de non constante de %D suit une dclaration de constante" + +#~ msgid "%Jredundant redeclaration of '%D'" +#~ msgstr "%Jdclaration redondante de %D " + +#~ msgid "%Jdeclaration of '%D' shadows a parameter" +#~ msgstr "%Jdclaration de %D masque un paramtre" + +#~ msgid "%Jdeclaration of '%D' shadows a global declaration" +#~ msgstr "%Jdclaration de %D masque une dclaration globale" + +#~ msgid "%Jdeclaration of '%D' shadows a previous local" +#~ msgstr "%Jdclaration de %D masque la dclaration d'un local prcdent" + +#~ msgid "%Jshadowed declaration is here" +#~ msgstr "%Jdclaration est masque ici" + +#~ msgid "nested extern declaration of `%s'" +#~ msgstr "dclaration de %s externe imbrique" + +#~ msgid "%Jprevious declaration of '%D'" +#~ msgstr "%Jdclaration prcdente de %D " + +#~ msgid "implicit declaration of function `%s'" +#~ msgstr "dclaration implicite de la fonction %s " + +#~ msgid "`%s' undeclared here (not in a function)" +#~ msgstr " %s non dclar ici (hors de toute fonction)" + +#~ msgid "`%s' undeclared (first use in this function)" +#~ msgstr " %s non dclar (premire utilisation dans cette fonction)" + +#~ msgid "(Each undeclared identifier is reported only once" +#~ msgstr "(Chaque identificateur non dclar est rapport une seule fois" + +#~ msgid "for each function it appears in.)" +#~ msgstr "pour chaque fonction dans laquelle il apparat.)" + +#~ msgid "label %s referenced outside of any function" +#~ msgstr "tiquette %s rfrence l'extrieur de toute fonction" + +#~ msgid "duplicate label declaration `%s'" +#~ msgstr "dclaration de l'tiquette %s en double" + +#~ msgid "%Jthis is a previous declaration" +#~ msgstr "%Jest la dclaration prcdente" + +#~ msgid "%Hduplicate label `%D'" +#~ msgstr "%Htiquette %D apparat en double" + +#~ msgid "%J`%D' previously defined here" +#~ msgstr "%J %D prcdemment dfini ici" + +#~ msgid "%J`%D' previously declared here" +#~ msgstr "%J %D prcdemment dclar ici" + +#~ msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" +#~ msgstr "%HC traditionnel manque d'un espace nom spar pour les tiquettes, identificateur %D est en conflit" + +#~ msgid "%H`%s' defined as wrong kind of tag" +#~ msgstr "%H %s dfini incorrectement comme une mauvais sorte d'tiquette" + +#~ msgid "unnamed struct/union that defines no instances" +#~ msgstr "struct/union sans nom ne dfinissant aucune instance" + +#~ msgid "useless keyword or type name in empty declaration" +#~ msgstr "mot cl ou nom de type inutile dans une dclaration vide" + +#~ msgid "two types specified in one empty declaration" +#~ msgstr "deux types spcifis dans une dclaration vide" + +#~ msgid "empty declaration" +#~ msgstr "dclaration vide" + +#~ msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" +#~ msgstr "ISO C90 ne supporte pas static ou les qualificateurs de type dans les dclarateurs de tableau de paramtres" + +#~ msgid "ISO C90 does not support `[*]' array declarators" +#~ msgstr "ISO C90 ne supporte pas [*] dans les dclarateurs de tableau" + +#~ msgid "GCC does not yet properly implement `[*]' array declarators" +#~ msgstr "GCC n'implmente pas encore correctement les dclarateurs de tableau [*] " + +#~ msgid "static or type qualifiers in abstract declarator" +#~ msgstr "static ou qualificateurs de type dans un dclarateur abstrait" + +#~ msgid "%J'%D' is usually a function" +#~ msgstr "%J %D est habituellement une fonction" + +#~ msgid "typedef `%s' is initialized (use __typeof__ instead)" +#~ msgstr "typedef %s est initialis (utilisez __typeof__ la place)" + +#~ msgid "function `%s' is initialized like a variable" +#~ msgstr "la fonction %s est initialise comme une variable" + +#~ msgid "parameter `%s' is initialized" +#~ msgstr "le paramtre %s est initialis" + +#~ msgid "variable-sized object may not be initialized" +#~ msgstr "un objet de taille variable peut ne pas tre initialis" + +#~ msgid "variable `%s' has initializer but incomplete type" +#~ msgstr "la variable %s est initialise alors qu'elle est de type incomplet" + +#~ msgid "elements of array `%s' have incomplete type" +#~ msgstr "les lments du tableau %s ont des types incomplets" + +#~ msgid "%Jinline function '%D' given attribute noinline" +#~ msgstr "%J fonction enligne %D a reu l'attribut non enligne" + +#~ msgid "%Jinitializer fails to determine size of '%D'" +#~ msgstr "%Jinitialisateur a chou dterminer la taille de %D " + +#~ msgid "%Jarray size missing in '%D'" +#~ msgstr "%Jtaille du tableau est manquante dans %D " + +#~ msgid "%Jzero or negative size array '%D'" +#~ msgstr "%Jtableau %D de taille zro ou ngative" + +#~ msgid "%Jstorage size of '%D' isn't known" +#~ msgstr "%Jtaille de stockage de %D n'est pas connue" + +#~ msgid "%Jstorage size of '%D' isn't constant" +#~ msgstr "%Jtaille de stockage de %D n'est pas une constante" + +#~ msgid "%Jignoring asm-specifier for non-static local variable '%D'" +#~ msgstr "%Jspcificateur asm ignor pour la variable locale non statique %D " + +#~ msgid "ISO C forbids forward parameter declarations" +#~ msgstr "ISO C interdit la dclaration anticipe de paramtres" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "bit-field `%s' width not an integer constant" +#~ msgstr "la largeur du champ de bits %s n'est pas une constante entire" + +#~ msgid "negative width in bit-field `%s'" +#~ msgstr "largeur ngative du champ de bits %s " + +#~ msgid "zero width for bit-field `%s'" +#~ msgstr "largeur nulle pour le champ de bits %s " + +#~ msgid "bit-field `%s' has invalid type" +#~ msgstr "le champ de bits %s a un type invalide" + +#~ msgid "type of bit-field `%s' is a GCC extension" +#~ msgstr "le type de champ de bit %s est une extension GCC" + +#~ msgid "width of `%s' exceeds its type" +#~ msgstr "la largeur de %s excde son type" + +#~ msgid "`%s' is narrower than values of its type" +#~ msgstr " %s est plus troit que les valeurs de son type" + +#~ msgid "`long long long' is too long for GCC" +#~ msgstr " long long long est trop long pour GCC" + +#~ msgid "ISO C90 does not support `long long'" +#~ msgstr "ISO C90 ne permet pas long long " + +#~ msgid "duplicate `%s'" +#~ msgstr " %s apparat en double" + +#~ msgid "`__thread' before `extern'" +#~ msgstr " __thread avant extern " + +#~ msgid "`__thread' before `static'" +#~ msgstr " __thread avant static " + +#~ msgid "two or more data types in declaration of `%s'" +#~ msgstr "deux types de donnes ou plus dans la dclaration de %s " + +#~ msgid "`%s' fails to be a typedef or built in type" +#~ msgstr " %s n'a pu devenir un typedef ou un type construit" + +#~ msgid "type defaults to `int' in declaration of `%s'" +#~ msgstr "dans la dclaration de %s , utilisation de int par dfaut pour le type" + +#~ msgid "both long and short specified for `%s'" +#~ msgstr " long et short spcifis la fois pour %s " + +#~ msgid "long or short specified with char for `%s'" +#~ msgstr " long ou short spcifi avec char pour %s " + +#~ msgid "long or short specified with floating type for `%s'" +#~ msgstr " long ou short spcifi avec un type flottant pour %s " + +#~ msgid "the only valid combination is `long double'" +#~ msgstr "la seule combinaison valide est long double " + +#~ msgid "both signed and unsigned specified for `%s'" +#~ msgstr " %s est la fois sign et non sign" + +#~ msgid "long, short, signed or unsigned invalid for `%s'" +#~ msgstr " long , short , signed ou unsigned invalide pour %s " + +#~ msgid "long, short, signed or unsigned used invalidly for `%s'" +#~ msgstr " long , short , signed ou unsigned utilis incorrectement pour %s " + +#~ msgid "complex invalid for `%s'" +#~ msgstr " complex invalide pour %s " + +#~ msgid "ISO C90 does not support complex types" +#~ msgstr "ISO C90 ne permet pas les types complex " + +#~ msgid "ISO C does not support plain `complex' meaning `double complex'" +#~ msgstr "ISO C ne permet pas d'utiliser complex la place de double complex " + +#~ msgid "ISO C does not support complex integer types" +#~ msgstr "ISO C interdit le type d'entiers complexes" + +#~ msgid "duplicate `const'" +#~ msgstr " const apparat en double" + +#~ msgid "duplicate `restrict'" +#~ msgstr " restrict apparat en double" + +#~ msgid "duplicate `volatile'" +#~ msgstr " volatile apparat en double" + +#~ msgid "multiple storage classes in declaration of `%s'" +#~ msgstr "multiples classes de stockage dans la dclaration de %s " + +#~ msgid "function definition declared `auto'" +#~ msgstr "dfinition de fonction dclar auto " + +#~ msgid "function definition declared `register'" +#~ msgstr "dfinition de fonction dclare register " + +#~ msgid "function definition declared `typedef'" +#~ msgstr "dfinition de fonction dclare typedef " + +#~ msgid "function definition declared `__thread'" +#~ msgstr "dfinition de fonction dclare __thread " + +#~ msgid "storage class specified for structure field `%s'" +#~ msgstr "classe de stockage spcifie pour le champ de structure %s " + +#~ msgid "storage class specified for parameter `%s'" +#~ msgstr "classe de stockage spcifie pour le paramtre %s " + +#~ msgid "storage class specified for typename" +#~ msgstr "classe de stockage spcifi pour un typename" + +#~ msgid "`%s' initialized and declared `extern'" +#~ msgstr " %s initialis et dclar extern " + +#~ msgid "`%s' has both `extern' and initializer" +#~ msgstr " %s a les deux extern et initialisateur" + +#~ msgid "file-scope declaration of `%s' specifies `auto'" +#~ msgstr "la dclaration de l'tendue de fichier %s spcifie auto " + +#~ msgid "nested function `%s' declared `extern'" +#~ msgstr "fonction imbrique %s dclare extern " + +#~ msgid "function-scope `%s' implicitly auto and declared `__thread'" +#~ msgstr " %s dans le champ de la fonction est implicitement dclar auto, et dclar __thread " + +#~ msgid "static or type qualifiers in non-parameter array declarator" +#~ msgstr "static ou qualificateurs de type dans un dclarateur de tableau n'tant pas un paramtre" + +#~ msgid "declaration of `%s' as array of voids" +#~ msgstr "dclaration de %s comme un tableau de void " + +#~ msgid "declaration of `%s' as array of functions" +#~ msgstr "dclaration de %s comme un tableau de fonctions" + +#~ msgid "invalid use of structure with flexible array member" +#~ msgstr "utilisation invalide d'une structure ayant un membre flexible" + +#~ msgid "size of array `%s' has non-integer type" +#~ msgstr "la taille du tableau %s n'est pas de type entier" + +#~ msgid "ISO C forbids zero-size array `%s'" +#~ msgstr "ISO C interdit le tableau de taille zro %s " + +#~ msgid "size of array `%s' is negative" +#~ msgstr "la taille du tableau %s est ngative" + +#~ msgid "ISO C90 forbids array `%s' whose size can't be evaluated" +#~ msgstr "ISO C90 interdit le tableau %s dont la taille ne peut tre value" + +#~ msgid "ISO C90 forbids variable-size array `%s'" +#~ msgstr "ISO C90 interdit le tableau %s de taille variable" + +#~ msgid "size of array `%s' is too large" +#~ msgstr "la taille du tableau %s est trop grande" + +#~ msgid "ISO C90 does not support flexible array members" +#~ msgstr "ISO C90 interdit les tableaux ayant des membres flexibles" + +#~ msgid "array type has incomplete element type" +#~ msgstr "les lments du tableau sont de type incomplet" + +#~ msgid "`%s' declared as function returning a function" +#~ msgstr " %s dclar comme une fonction retournant une fonction" + +#~ msgid "`%s' declared as function returning an array" +#~ msgstr " %s dclar comme une fonction retournant un tableau" + +#~ msgid "ISO C forbids qualified void function return type" +#~ msgstr "ISO C interdit d'utiliser un void qualifi en valeur retourner par la fonction" + +#~ msgid "type qualifiers ignored on function return type" +#~ msgstr "qualificateurs de type ignors pour le type retourner par la fonction" + +#~ msgid "ISO C forbids qualified function types" +#~ msgstr "ISO C interdit les types de fonction qualifis" + +#~ msgid "invalid type modifier within pointer declarator" +#~ msgstr "modificateur de type invalide dans la dclaration de pointeur" + +#~ msgid "ISO C forbids const or volatile function types" +#~ msgstr "ISO C interdit les fonction de type volatile ou constante" + +#~ msgid "variable or field `%s' declared void" +#~ msgstr "variable ou champ %s dclar void " + +#~ msgid "attributes in parameter array declarator ignored" +#~ msgstr "les attributs dans un dclarateur de tableau de paramtres sont ignors" + +#~ msgid "invalid type modifier within array declarator" +#~ msgstr "modificateur invalide de type l'intrieur d'un dclarateur de tableau" + +#~ msgid "field `%s' declared as a function" +#~ msgstr "champ %s dclar comme une fonction" + +#~ msgid "field `%s' has incomplete type" +#~ msgstr "champ %s est de type incomplet" + +#~ msgid "invalid storage class for function `%s'" +#~ msgstr "classe de stockage invalide pour la fonction %s " + +#~ msgid "`noreturn' function returns non-void value" +#~ msgstr "fonction marque noreturn retourne une valeur n'tant pas de type void " + +#~ msgid "cannot inline function `main'" +#~ msgstr "ne peut transformer main en fonction enligne" + +#~ msgid "variable previously declared `static' redeclared `extern'" +#~ msgstr "variable prcdemment dclare static redclare extern " + +#~ msgid "%Jvariable '%D' declared `inline'" +#~ msgstr "%Jvariable %D dclare inline " + +#~ msgid "thread-local storage not supported for this target" +#~ msgstr "cette cible ne permet pas le stockage en local au thread" + +#~ msgid "function declaration isn't a prototype" +#~ msgstr "la dclaration de fonction n'est pas un prototype valide" + +#~ msgid "parameter names (without types) in function declaration" +#~ msgstr "noms de paramtres (sans type) dans la dclaration de fonction" + +#~ msgid "parameter `%s' has incomplete type" +#~ msgstr "le paramtre %s a un type incomplet" + +#~ msgid "parameter has incomplete type" +#~ msgstr "le paramtre a un type incomplet" + +#~ msgid "\"void\" as only parameter may not be qualified" +#~ msgstr "\"void\" comme seul paramtre ne peut tre qualifi" + +#~ msgid "\"void\" must be the only parameter" +#~ msgstr "\"void\" doit tre le seul paramtre" + +#~ msgid "%Jparameter \"%D\" has just a forward declaration" +#~ msgstr "%Jparamtre %D n'a qu'une dclaration anticipe" + +#~ msgid "\"%s %s\" declared inside parameter list" +#~ msgstr "\"%s %s\" dclare l'intrieur de la liste de paramtres" + +#~ msgid "anonymous %s declared inside parameter list" +#~ msgstr "structure anonyme %s dclare l'intrieur de la liste des paramtres" + +#~ msgid "its scope is only this definition or declaration, which is probably not what you want" +#~ msgstr "visible uniquement depuis cette dfinition ou dclaration, ce qui n'est probablement pas ce que vous dsirez" + +#~ msgid "redefinition of `union %s'" +#~ msgstr "redfinition de union %s " + +#~ msgid "redefinition of `struct %s'" +#~ msgstr "redfinition de struct %s " + +#~ msgid "declaration does not declare anything" +#~ msgstr "dclaration ne dclarant rien du tout" + +#~ msgid "%Jduplicate member '%D'" +#~ msgstr "%Jmembre %D est double" + +#~ msgid "%s defined inside parms" +#~ msgstr "%s dfini l'intrieur des paramtres" + +#~ msgid "union" +#~ msgstr "union" + +#~ msgid "structure" +#~ msgstr "structure" + +#~ msgid "%s has no %s" +#~ msgstr "%s n'a pas de %s" + +#~ msgid "struct" +#~ msgstr "struct" + +#~ msgid "named members" +#~ msgstr "membres nomms" + +#~ msgid "members" +#~ msgstr "membres" + +#~ msgid "nested redefinition of `%s'" +#~ msgstr "redfinition imbrique de %s " + +#~ msgid "%Jflexible array member in union" +#~ msgstr "%Jmembre flexible de tableau dans l'union" + +#~ msgid "%Jflexible array member not at end of struct" +#~ msgstr "%Jle membre flexible de tableau n'est pas la fin de la structure" + +#~ msgid "%Jflexible array member in otherwise empty struct" +#~ msgstr "%Jmembre flexible de tableau dans une structure vide par ailleurs" + +#~ msgid "%Jinvalid use of structure with flexible array member" +#~ msgstr "%Jutilisation invalide d'une structure ayant un membre flexible" + +#~ msgid "union cannot be made transparent" +#~ msgstr "union ne peut pas tre rendu transparente" + +#~ msgid "redeclaration of `enum %s'" +#~ msgstr "redclaration de enum %s " + +#~ msgid "enum defined inside parms" +#~ msgstr "enum dfini l'intrieur des paramtres" + +#~ msgid "enumeration values exceed range of largest integer" +#~ msgstr "valeurs d'numration excde les bornes du plus grand entier" + +#~ msgid "enumerator value for `%s' not integer constant" +#~ msgstr "valeur de l'numrateur pour %s n'est pas une constante entire" + +#~ msgid "overflow in enumeration values" +#~ msgstr "dbordement dans les valeurs de l'numration" + +#~ msgid "ISO C restricts enumerator values to range of `int'" +#~ msgstr "ISO C restreint les valeurs de l'numrateur aux bornes d'un int " + +#~ msgid "return type is an incomplete type" +#~ msgstr "le type du retour est incomplet" + +#~ msgid "return type defaults to `int'" +#~ msgstr "le type du retour est int par dfaut" + +#~ msgid "%Jno previous prototype for '%D'" +#~ msgstr "%Jaucun prototype prcdent pour %D " + +#~ msgid "%J'%D' was used with no prototype before its definition" +#~ msgstr "%J %D a t utilis sans prototype avant sa dfinition" + +#~ msgid "%Jno previous declaration for '%D'" +#~ msgstr "%Jaucune dclaration prcdente pour %D " + +#~ msgid "%J`%D' was used with no declaration before its definition" +#~ msgstr "%J %D a t utilis sans dclaration avant sa dfinition" + +#~ msgid "%Jreturn type of '%D' is not `int'" +#~ msgstr "%Jle type de retour de %D n'est pas int " + +#~ msgid "%Jfirst argument of '%D' should be `int'" +#~ msgstr "%Jle premier argument de %D devrait tre int " + +#~ msgid "%Jsecond argument of '%D' should be 'char **'" +#~ msgstr "%Jle second argument de %D devrait tre char ** " + +#~ msgid "%Jthird argument of '%D' should probably be 'char **'" +#~ msgstr "%Jle troisime argument de %D devrait probablement tre char ** " + +#~ msgid "%J'%D' takes only zero or two arguments" +#~ msgstr "%J %D prend soit aucun argument ou soit deux arguments" + +#~ msgid "%J'%D' is normally a non-static function" +#~ msgstr "%J %D n'est pas normalement une fonction statique" + +#~ msgid "%Jold-style parameter declarations in prototyped function definition" +#~ msgstr "%Jdclaration de paramtre d'ancien style dans la dfinition prototype de fonction" + +#~ msgid "%Jparameter name omitted" +#~ msgstr "%Jnom de paramtre omis" + +#~ msgid "%Jparameter name missing from parameter list" +#~ msgstr "%Jnom du paramtre manquant dans la liste des paramtres" + +#~ msgid "%J\"%D\" declared as a non-parameter" +#~ msgstr "%J\"%D\" dclar comme un non paramtre" + +#~ msgid "%Jmultiple parameters named \"%D\"" +#~ msgstr "%Jplusieurs paramtres nomms %D " + +#~ msgid "%Jparameter \"%D\" declared void" +#~ msgstr "%Jparamtre \"%D\" dclar void " + +#~ msgid "%Jtype of \"%D\" defaults to \"int\"" +#~ msgstr "%Jtype de %D est int par dfaut" + +#~ msgid "%Jparameter \"%D\" has incomplete type" +#~ msgstr "%Jparamtre \"%D\" a un type incomplet" + +#~ msgid "%Jdeclaration for parameter \"%D\" but no such parameter" +#~ msgstr "%Jdclaration du paramtre %D mais pas de tel paramtre" + +#~ msgid "number of arguments doesn't match prototype" +#~ msgstr "le nombre d'arguments ne concorde pas avec celui du prototype" + +#~ msgid "%Hprototype declaration" +#~ msgstr "%Hdclaration de prototype" + +#~ msgid "promoted argument \"%D\" doesn't match prototype" +#~ msgstr "argument promu \"%D\" ne concorde pas avec le prototype" + +#~ msgid "argument \"%D\" doesn't match prototype" +#~ msgstr "argument \"%D\" ne concorde pas avec le prototype" + +#~ msgid "no return statement in function returning non-void" +#~ msgstr " return manquant dans une fonction devant retourner une valeur" + +#~ msgid "this function may return with or without a value" +#~ msgstr "cette fonction devrait finir en retournant ou non une valeur" + +#~ msgid "'for' loop initial declaration used outside C99 mode" +#~ msgstr "dclaration initiale de la boucle for utilise en dehors du mode C99" + +#~ msgid "'struct %s' declared in 'for' loop initial declaration" +#~ msgstr " struct %s dclare dans la dclaration initiale de la boucle for " + +#~ msgid "'union %s' declared in 'for' loop initial declaration" +#~ msgstr " union %s dclare dans la dclaration initiale de la boucle for " + +#~ msgid "'enum %s' declared in 'for' loop initial declaration" +#~ msgstr " enum %s dclare dans la dclaration initiale de la boucle for " + +#~ msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" +#~ msgstr "%Jdclaration de %D (qui n'est pas une variable) dans la dclaration initiale de for " + +#~ msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" +#~ msgstr "%Jdclaration de la variable statique %D dans la dclaration initiale de la boucle for " + +#~ msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" +#~ msgstr "%Jdclaration de la variable externe %D dans la dclaration initiale for " + +#~ msgid "%Jredefinition of global '%D'" +#~ msgstr "%Jredfinition globale de %D " + +#~ msgid "%J'%D' previously defined here" +#~ msgstr "%J %D prcdemment dfini ici" + +#~ msgid "format string has invalid operand number" +#~ msgstr "la chane de format a un nombre invalide d'oprandes" + +#~ msgid "function does not return string type" +#~ msgstr "fonction ne retourne pas un type string " + +#~ msgid "format string arg not a string type" +#~ msgstr "l'argument de la chane de format n'est pas de type string " + +#~ msgid "unrecognized format specifier" +#~ msgstr "spcificateur de format non reconnu" + +#~ msgid "`%s' is an unrecognized format function type" +#~ msgstr " %s a un format de type de fonction non reconnu" + +#~ msgid "'...' has invalid operand number" +#~ msgstr " ... a un nombre invalide d'oprandes" + +#~ msgid "format string arg follows the args to be formatted" +#~ msgstr "l'argument de la chane de format suit les arguments devant tre formats" + +#~ msgid "` ' flag" +#~ msgstr "fanion " + +#~ msgid "the ` ' printf flag" +#~ msgstr "le fanion de printf" + +#~ msgid "`+' flag" +#~ msgstr "fanion + " + +#~ msgid "the `+' printf flag" +#~ msgstr "le fanion + de printf" + +#~ msgid "`#' flag" +#~ msgstr "fanion # " + +#~ msgid "the `#' printf flag" +#~ msgstr "le fanion # de printf" + +#~ msgid "`0' flag" +#~ msgstr "fanion 0 " + +#~ msgid "the `0' printf flag" +#~ msgstr "le fanion 0 de printf" + +#~ msgid "`-' flag" +#~ msgstr "fanion - " + +#~ msgid "the `-' printf flag" +#~ msgstr "le fanion - de printf" + +#~ msgid "`'' flag" +#~ msgstr "fanion ' " + +#~ msgid "the `'' printf flag" +#~ msgstr "le fanion ' de printf" + +#~ msgid "`I' flag" +#~ msgstr "fanion I " + +#~ msgid "the `I' printf flag" +#~ msgstr "le fanion I de printf" + +#~ msgid "field width" +#~ msgstr "largeur de champ" + +#~ msgid "field width in printf format" +#~ msgstr "largeur de champ dans le format de printf" + +#~ msgid "precision" +#~ msgstr "prcision" + +#~ msgid "precision in printf format" +#~ msgstr "prcision dans le format de printf" + +#~ msgid "length modifier" +#~ msgstr "modificateur de longueur" + +#~ msgid "length modifier in printf format" +#~ msgstr "modificateur de longueur dans le format printf" + +#~ msgid "assignment suppression" +#~ msgstr "suppression d'affectation" + +#~ msgid "the assignment suppression scanf feature" +#~ msgstr "options de scanf pour la suppression d'affectation" + +#~ msgid "`a' flag" +#~ msgstr "fanion a " + +#~ msgid "the `a' scanf flag" +#~ msgstr "le fanion a de scanf" + +#~ msgid "field width in scanf format" +#~ msgstr "largeur de champ dans le format de scanf" + +#~ msgid "length modifier in scanf format" +#~ msgstr "modificateur de longueur dans le format de scanf" + +#~ msgid "the `'' scanf flag" +#~ msgstr "la fanion ' de scanf" + +#~ msgid "the `I' scanf flag" +#~ msgstr "le fanion I de scanf" + +#~ msgid "`_' flag" +#~ msgstr "fanion _ " + +#~ msgid "the `_' strftime flag" +#~ msgstr "le fanion _ de strftime" + +#~ msgid "the `-' strftime flag" +#~ msgstr "le fanion - de strftime" + +#~ msgid "the `0' strftime flag" +#~ msgstr "le fanion 0 de strftime" + +#~ msgid "`^' flag" +#~ msgstr "fanion ^ " + +#~ msgid "the `^' strftime flag" +#~ msgstr "la fanion ^ de strftime" + +#~ msgid "the `#' strftime flag" +#~ msgstr "le fanion # de strftime" + +#~ msgid "field width in strftime format" +#~ msgstr "largeur de champ dans le format de strftime" + +#~ msgid "`E' modifier" +#~ msgstr "modificateur E " + +#~ msgid "the `E' strftime modifier" +#~ msgstr "le modificateur E de strftime" + +#~ msgid "`O' modifier" +#~ msgstr "modificateur O " + +#~ msgid "the `O' strftime modifier" +#~ msgstr "le modificateur O de strftime" + +#~ msgid "the `O' modifier" +#~ msgstr "le modificateur O " + +#~ msgid "fill character" +#~ msgstr "caractre de remplissage" + +#~ msgid "fill character in strfmon format" +#~ msgstr "caractre de remplissage dans le format de strfmon" + +#~ msgid "the `^' strfmon flag" +#~ msgstr "le fanion ^ de strfmon" + +#~ msgid "the `+' strfmon flag" +#~ msgstr "le fanion + de strfmon" + +#~ msgid "`(' flag" +#~ msgstr "fanion ( " + +#~ msgid "the `(' strfmon flag" +#~ msgstr "le fanion ( de strfmon" + +#~ msgid "`!' flag" +#~ msgstr "fanion ! " + +#~ msgid "the `!' strfmon flag" +#~ msgstr "le fanion ! de strfmon" + +#~ msgid "the `-' strfmon flag" +#~ msgstr "le fanion - de strfmon" + +#~ msgid "field width in strfmon format" +#~ msgstr "largeur de champ dans le format de strfmon" + +#~ msgid "left precision" +#~ msgstr "prcision de gauche" + +#~ msgid "left precision in strfmon format" +#~ msgstr "prcision de gauche dans le format de strfmon" + +#~ msgid "right precision" +#~ msgstr "prcision de droite" + +#~ msgid "right precision in strfmon format" +#~ msgstr "prcision de droite dans le format de strfmon" + +#~ msgid "length modifier in strfmon format" +#~ msgstr "modificateur de longueur dans le format de strfmon" + +#~ msgid "function might be possible candidate for `%s' format attribute" +#~ msgstr "la fonction est peut tre candidate pour l'attribut de format de %s " + +#~ msgid "missing $ operand number in format" +#~ msgstr "$ manquant dans le format pour l'oprande du nombre" + +#~ msgid "%s does not support %%n$ operand number formats" +#~ msgstr "%s ne permet pas le format d'oprande de nombre %%n$" + +#~ msgid "operand number out of range in format" +#~ msgstr "oprande de nombre au del de la limite dans le format" + +#~ msgid "format argument %d used more than once in %s format" +#~ msgstr "argument de format %d utilis plus d'une fois dans le format %s" + +#~ msgid "format argument %d unused before used argument %d in $-style format" +#~ msgstr "argument de format %d inutilis avant l'utilisation de l'argument %d dans le format de style $" + +#~ msgid "format not a string literal, format string not checked" +#~ msgstr "le format n'est pas une chane littrale, le format n'est pas vrif" + +#~ msgid "format not a string literal and no format arguments" +#~ msgstr "le format n'est pas une chane littrale et pas d'argument de format" + +#~ msgid "format not a string literal, argument types not checked" +#~ msgstr "le format n'est pas une chane littrale, le type des arguments n'est pas vrifi" + +#~ msgid "too many arguments for format" +#~ msgstr "trop d'arguments pour le format" + +#~ msgid "unused arguments in $-style format" +#~ msgstr "arguments inutiliss dans le format de style $" + +#~ msgid "zero-length %s format string" +#~ msgstr "chane de format de longueur nulle %s" + +#~ msgid "format is a wide character string" +#~ msgstr "le format est une chane large de caractres" + +#~ msgid "embedded `\\0' in format" +#~ msgstr " \\0 inclu dans le format" + +#~ msgid "spurious trailing `%%' in format" +#~ msgstr "des caractres %% douteux tranent dans le format" + +#~ msgid "repeated %s in format" +#~ msgstr "%s rpt dans le format" + +#~ msgid "missing fill character at end of strfmon format" +#~ msgstr "caractre de remplissage manquant la fin du format pour strfmon" + +#~ msgid "too few arguments for format" +#~ msgstr "trop peu d'arguments dans le format" + +#~ msgid "zero width in %s format" +#~ msgstr "largeur zro dans le format %s" + +#~ msgid "empty left precision in %s format" +#~ msgstr "prcision de gauche vide dans le format %s" + +#~ msgid "field precision" +#~ msgstr "champ de prcision" + +#~ msgid "empty precision in %s format" +#~ msgstr "prcision vide dans le format %s" + +#~ msgid "%s does not support the `%s' %s length modifier" +#~ msgstr "%s ne supporte pas %s %s comme modificateur de longueur" + +#~ msgid "conversion lacks type at end of format" +#~ msgstr "il manque un type pour la conversion la fin du format" + +#~ msgid "unknown conversion type character `%c' in format" +#~ msgstr "type de caractre de conversion inconnu %c dans le format" + +#~ msgid "unknown conversion type character 0x%x in format" +#~ msgstr "type de caractre de conversion inconnu 0x%x dans le format" + +#~ msgid "%s does not support the `%%%c' %s format" +#~ msgstr "%s ne supporte pas le format %%%c %s" + +#~ msgid "%s used with `%%%c' %s format" +#~ msgstr "%s utilis avec le format %%%c %s" + +#~ msgid "%s does not support %s" +#~ msgstr "%s ne supporte pas %s" + +#~ msgid "%s does not support %s with the `%%%c' %s format" +#~ msgstr "%s ne supporte pas %s avec le format %%%c %s " + +#~ msgid "%s ignored with %s and `%%%c' %s format" +#~ msgstr "%s ignor avec %s et le format %%%c %s" + +#~ msgid "%s ignored with %s in %s format" +#~ msgstr "%s ignor avec %s dans le format %s" + +#~ msgid "use of %s and %s together with `%%%c' %s format" +#~ msgstr "utilisation de %s et de %s ensemble dans le format %%%c %s" + +#~ msgid "use of %s and %s together in %s format" +#~ msgstr "utilisation de %s et de %s ensemble dans le format %s" + +#~ msgid "`%%%c' yields only last 2 digits of year in some locales" +#~ msgstr " %%%c laisse seulement les 2 derniers chiffres de l'anne avec certaines locales" + +#~ msgid "`%%%c' yields only last 2 digits of year" +#~ msgstr " %%%c laisse seulement les 2 derniers chiffres de l'anne" + +#~ msgid "no closing `]' for `%%[' format" +#~ msgstr "pas de ] fermant pour le format %%[ " + +#~ msgid "use of `%s' length modifier with `%c' type character" +#~ msgstr "utilisation du modificateur de longueur %s avec le type de caractre %c " + +#~ msgid "%s does not support the `%%%s%c' %s format" +#~ msgstr "%s ne supporte par le format %%%s%c %s" + +#~ msgid "operand number specified with suppressed assignment" +#~ msgstr "nombre d'oprandes spcifi avec des affectations suprimes" + +#~ msgid "operand number specified for format taking no argument" +#~ msgstr "nombre d'oprandes spcifi pour un format n'acceptant aucun argument" + +#~ msgid "writing through null pointer (arg %d)" +#~ msgstr "criture travers un pointeur nul (arg %d)" + +#~ msgid "reading through null pointer (arg %d)" +#~ msgstr "lecture l'aide d'un pointeur nul (arg %d)" + +#~ msgid "writing into constant object (arg %d)" +#~ msgstr "criture dans un objet constant (arg %d)" + +#~ msgid "extra type qualifiers in format argument (arg %d)" +#~ msgstr "qualificateur de type additionnel dans l'argument du format (arg %d)" + +#~ msgid "format argument is not a pointer (arg %d)" +#~ msgstr "l'argument de format n'est pas un pointeur (arg %d)" + +#~ msgid "format argument is not a pointer to a pointer (arg %d)" +#~ msgstr "l'argument de format n'est pas un pointeur de pointeur (arg %d)" + +#~ msgid "pointer" +#~ msgstr "pointeur" + +#~ msgid "different type" +#~ msgstr "type diffrent" + +#~ msgid "%s is not type %s (arg %d)" +#~ msgstr "%s n'est pas de type %s (arg %d)" + +#~ msgid "%s format, %s arg (arg %d)" +#~ msgstr "format %s, arg %s (arg %d)" + +#~ msgid "args to be formatted is not '...'" +#~ msgstr "les arguments devant tre formats ne sont pas ... " + +#~ msgid "strftime formats cannot format arguments" +#~ msgstr "Les formats de strftime ne peuvent pas formater d'argument" + +#~ msgid "ignoring duplicate directory \"%s\"\n" +#~ msgstr "le rpertoire %s est ignor car prsent deux fois\n" + +#~ msgid " as it is a non-system directory that duplicates a system directory\n" +#~ msgstr " car il s'agit d'un rpertoire non systme dupliquant un rpertoire systme\n" + +#~ msgid "ignoring nonexistent directory \"%s\"\n" +#~ msgstr "le rpertoire %s est ignor car inexistant\n" + +#~ msgid "#include \"...\" search starts here:\n" +#~ msgstr "la recherche pour #include \"...\" dbute ici :\n" + +#~ msgid "#include <...> search starts here:\n" +#~ msgstr "la recherche pour #include <...> dbute ici:\n" + +#~ msgid "End of search list.\n" +#~ msgstr "Fin de la liste de recherche.\n" + +#~ msgid "badly nested C headers from preprocessor" +#~ msgstr "en-ttes C du prprocesseur incorrectement imbriqus" + +#~ msgid "ignoring #pragma %s %s" +#~ msgstr "#pragma %s %s ignor" + +#~ msgid "%Hstray '@' in program" +#~ msgstr "%H @ perdu dans le programme" + +#~ msgid "stray '%c' in program" +#~ msgstr " %c perdu dans le programme" + +#~ msgid "stray '\\%o' in program" +#~ msgstr " \\%o perdu dans le programme" + +#~ msgid "this decimal constant is unsigned only in ISO C90" +#~ msgstr "cette constante dcimale est unsigned seulement en C90 ISO" + +#~ msgid "this decimal constant would be unsigned in ISO C90" +#~ msgstr "cette constante dcimale serait unsigned en C90 ISO" + +#~ msgid "integer constant is too large for \"%s\" type" +#~ msgstr "constante entire trop grande pour le type %s " + +#~ msgid "floating constant exceeds range of \"%s\"" +#~ msgstr "constante en nombre flottant excdant les limites de %s " + +#~ msgid "traditional C rejects string constant concatenation" +#~ msgstr "le C traditionel rejette la concatnation de chanes de constantes" + +#~ msgid "%Jfunction '%F' can never be inlined because it is suppressed using -fno-inline" +#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle supprime l'utilisation de -fno-inline" + +#~ msgid "%Jfunction '%F' can never be inlined because it might not be bound within this unit of translation" +#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle ne peut tre li dans cette unit de traduction" + +#~ msgid "%Jfunction '%F' can never be inlined because it uses attributes conflicting with inlining" +#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle utilise un attribut en conflit avec l'enlignage" + +#~ msgid "%Jfunction '%F' can never be inlined because it has pending sizes" +#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle a des tailles en attente" + +#~ msgid "%Jnested function '%F' can never be inlined because it has possibly saved pending sizes" +#~ msgstr "%Jfonction imbriqu %F ne peut jamais tre enligne parce qu'ella possiblement sauvegard des tailles en attente" + +#~ msgid "no class name specified with \"%s\"" +#~ msgstr "aucun nom de classe spcifi avec \"%s\"" + +#~ msgid "assertion missing after \"%s\"" +#~ msgstr "assertion manquante aprs \"%s\"" + +#~ msgid "macro name missing after \"%s\"" +#~ msgstr "nom de macro manquant aprs \"%s\"" + +#~ msgid "missing path after \"%s\"" +#~ msgstr "cible manquante aprs \"%s\"" + +#~ msgid "missing filename after \"%s\"" +#~ msgstr "nom de fichier manquant aprs \"%s\"" + +#~ msgid "missing makefile target after \"%s\"" +#~ msgstr "cible manquante dans le makefile aprs \"%s\"" + +#~ msgid "-I- specified twice" +#~ msgstr "-I- spcifi deux fois" + +#~ msgid "switch \"%s\" is no longer supported" +#~ msgstr "l'option %s n'est plus supporte" + +#~ msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" +#~ msgstr "-fhandle-exceptions a t renomm -fexceptions (et est maintenant utilis par dfaut)" + +#~ msgid "output filename specified twice" +#~ msgstr "nom du fichier de sortie spcifi deux fois" + +#~ msgid "-Wformat-y2k ignored without -Wformat" +#~ msgstr "-Wformat-y2k ignore sans -Wformat" + +#~ msgid "-Wformat-extra-args ignored without -Wformat" +#~ msgstr "-Wformat-extra-args ignore sans -Wformat" + +#~ msgid "-Wformat-zero-length ignored without -Wformat" +#~ msgstr "-Wformat-zero-length ignore sans -Wformat" + +#~ msgid "-Wformat-nonliteral ignored without -Wformat" +#~ msgstr "-Wformat-nonliteral ignore sans -Wformat" + +#~ msgid "-Wformat-security ignored without -Wformat" +#~ msgstr "-Wformat-security ignore sans -Wformat" + +#~ msgid "-Wmissing-format-attribute ignored without -Wformat" +#~ msgstr "-Wmissing-format-attribute ignore sans -Wformat" + +#~ msgid "opening output file %s: %m" +#~ msgstr "ouverture du fichier de sortie %s: %m" + +#~ msgid "too many filenames given. Type %s --help for usage" +#~ msgstr "trop de noms de fichiers. Taper %s --help pour en connatre l'usage" + +#~ msgid "YYDEBUG not defined" +#~ msgstr "YYDEBUG n'est pas dfini" + +#~ msgid "opening dependency file %s: %m" +#~ msgstr "ouverture du fichier de dpendances %s: %m" + +#~ msgid "closing dependency file %s: %m" +#~ msgstr "fermeture du fichier de dpendances %s: %m" + +#~ msgid "when writing output to %s: %m" +#~ msgstr "lors de l'criture de la sortie dans %s: %m" + +#~ msgid "to generate dependencies you must specify either -M or -MM" +#~ msgstr "pour gnrer les dpendances, vous devez spcifier -M ou -MM" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "too late for # directive to set debug directory" +#~ msgstr "il est trop tard pour la directive # pour fixer un rpertoire de mise au point" + +#~ msgid "syntax error" +#~ msgstr "erreur de syntaxe" + +# FIXME +#~ msgid "syntax error: cannot back up" +#~ msgstr "erreur de syntaxe : impossible de reculer" + +#~ msgid "ISO C forbids an empty source file" +#~ msgstr "ISO C interdit un fichier source vide" + +#~ msgid "argument of `asm' is not a constant string" +#~ msgstr "l'argument de asm n'est pas une chane de constante" + +#~ msgid "ISO C forbids data definition with no type or storage class" +#~ msgstr "ISO C interdit la dfinition de donnes sans type ni classe de stockage" + +#~ msgid "data definition has no type or storage class" +#~ msgstr "la dfinition de donnes n'a pas de type ni de classe de stockage" + +#~ msgid "ISO C does not allow extra `;' outside of a function" +#~ msgstr "ISO C ne permet pas de ; additionnel en dehors d'une fonction" + +#~ msgid "`sizeof' applied to a bit-field" +#~ msgstr " sizeof appliqu un champ de bits" + +#~ msgid "ISO C forbids omitting the middle term of a ?: expression" +#~ msgstr "ISO C interdit l'omission du terme central de l'expression ?:" + +# FIXME +#~ msgid "ISO C90 forbids compound literals" +#~ msgstr "ISO C90 interdit les mots composs" + +#~ msgid "ISO C forbids braced-groups within expressions" +#~ msgstr "ISO C interdit les groupes d'accolades l'intrieur d'expressions" + +#~ msgid "first argument to __builtin_choose_expr not a constant" +#~ msgstr "le premier argument de __builtin_choose_expr n'est pas une constante" + +#~ msgid "traditional C rejects ISO C style function definitions" +#~ msgstr "le C traditionel rejette les dfinitions de fonction de style ISO C" + +#~ msgid "old-style parameter declaration" +#~ msgstr "dclaration de paramtre d'un style dsuet" + +#~ msgid "`%s' is not at beginning of declaration" +#~ msgstr " %s n'est pas au dbut de la dclaration" + +#~ msgid "`typeof' applied to a bit-field" +#~ msgstr " typeof appliqu un champ de bits" + +#~ msgid "ISO C forbids empty initializer braces" +#~ msgstr "ISO C interdit d'initialiser avec des accolades vides" + +#~ msgid "ISO C90 forbids specifying subobject to initialize" +#~ msgstr "ISO C90 interdit de spcifier des sous-objets initialiser" + +#~ msgid "obsolete use of designated initializer without `='" +#~ msgstr "utilisation obsolte d'une initialisation dsigne sans = " + +#~ msgid "obsolete use of designated initializer with `:'" +#~ msgstr "utilisation obsolte d'une initialisation dsigne avec : " + +#~ msgid "ISO C forbids specifying range of elements to initialize" +#~ msgstr "ISO C interdit de spcifier les bornes des lments initaliser" + +#~ msgid "ISO C forbids nested functions" +#~ msgstr "ISO C interdit les fonctions imbriques" + +#~ msgid "ISO C forbids forward references to `enum' types" +#~ msgstr "ISO C interdit les rfrences anticipe vers un type enum " + +#~ msgid "comma at end of enumerator list" +#~ msgstr "virgule la fin de liste d'numerateurs" + +#~ msgid "no semicolon at end of struct or union" +#~ msgstr "pas de point virgule la fin de la structure ou de l'union" + +#~ msgid "extra semicolon in struct or union specified" +#~ msgstr "point virgule superflu dans la structure ou dans l'union" + +#~ msgid "ISO C doesn't support unnamed structs/unions" +#~ msgstr "ISO C ne permet pas les structures et unions sans nom" + +#~ msgid "ISO C forbids member declarations with no members" +#~ msgstr "ISO C interdit les dclarations de membre sans aucun membre" + +#~ msgid "label at end of compound statement" +#~ msgstr "tiquette la fin d'une dclaration compose" + +#~ msgid "ISO C90 forbids mixed declarations and code" +#~ msgstr "ISO C89 interdit les mlanges de dclarations et de code" + +#~ msgid "ISO C forbids label declarations" +#~ msgstr "ISO C interdit la dclaration d'tiquette" + +#~ msgid "braced-group within expression allowed only inside a function" +#~ msgstr "groupe entre accolades l'intrieur d'expression permis seulement l'intrieur d'une fonction" + +#~ msgid "empty body in an else-statement" +#~ msgstr "le corps du else est vide" + +#~ msgid "%Hempty body in an if-statement" +#~ msgstr "%Hle corps de la dclaration du if est vide" + +#~ msgid "break statement not within loop or switch" +#~ msgstr "mot-cl break l'extrieur de toute boucle ou switch " + +#~ msgid "continue statement not within a loop" +#~ msgstr "mot-cl continue l'extrieur de toute boucle" + +#~ msgid "ISO C forbids `goto *expr;'" +#~ msgstr "ISO C interdit goto *expr; " + +#~ msgid "ISO C requires a named argument before `...'" +#~ msgstr "ISO C requiert un argument nomm devant ... " + +#~ msgid "`...' in old-style identifier list" +#~ msgstr " ... dans une liste d'identificateurs de style ancien" + +#~ msgid "parse error; also virtual memory exhausted" +#~ msgstr "erreur d'analyse syntaxique; et la mmoire virtuelle est puise" + +#~ msgid "parse error" +#~ msgstr "erreur d'analyse syntaxique" + +#~ msgid "parser stack overflow" +#~ msgstr "dbordement de la pile de l'analyseur syntaxique" + +#~ msgid "syntax error at '%s' token" +#~ msgstr "erreur de syntaxe l'lment lexical %s " + +#~ msgid "can't create precompiled header %s: %m" +#~ msgstr "ne peut crer une en-tte prcompile %s: %m" + +#~ msgid "can't write to %s: %m" +#~ msgstr "ne peut crire dans %s: %m" + +#~ msgid "`%s' is not a valid output file" +#~ msgstr " %s n'est pas un nom de fichier valide" + +#~ msgid "can't write %s: %m" +#~ msgstr "ne peut crire dans %s: %m" + +#~ msgid "can't seek in %s: %m" +#~ msgstr "ne peut se positionner dans %s: %m" + +#~ msgid "can't read %s: %m" +#~ msgstr "ne peut lire %s: %m" + +#~ msgid "%s: not compatible with this GCC version" +#~ msgstr "%s: n'est pas compatible avec cette version de GCC" + +#~ msgid "%s: not for %s" +#~ msgstr "%s: non pour %s" + +#~ msgid "%s: not a PCH file" +#~ msgstr "%s: n'est pas un fichier PCH" + +#~ msgid "%s: created on host `%.*s', but used on host `%s'" +#~ msgstr "%s: cr sur l'hte %.*s , mais utilis sur l'hte %s " + +#~ msgid "%s: created for target `%.*s', but used for target `%s'" +#~ msgstr "%s: cr pour la cible %.*s , mais utilis pour la cible %s " + +#~ msgid "%s: created by version `%.*s', but this is version `%s'" +#~ msgstr "%s: cr pour la version %.*s , mais utilis avec la version %s " + +#~ msgid "%s: created using different flags" +#~ msgstr "%s: cr en utilisant des fanions diffrents" + +#~ msgid "%s: created with -g%s, but used with -g%s" +#~ msgstr "%s: cr avec -g%s, mais utilis avec -g%s" + +#~ msgid "%s: had text segment at different address" +#~ msgstr "%s: a un segment texte une adresse diffrente" + +# I18N +#~ msgid "calling fdopen" +#~ msgstr "appel de fdopen()" + +#~ msgid "reading" +#~ msgstr "en lecture" + +#~ msgid "#pragma pack (pop) encountered without matching #pragma pack (push, )" +#~ msgstr "#pragma pack (pop) rencontr sans #pragma pack (push, ) correspondant" + +#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, )" +#~ msgstr "#pragma pack(pop, %s) rencontr sans #pragma pack(push, %s, ) correspondant" + +#~ msgid "#pragma pack(push[, id], ) is not supported on this target" +#~ msgstr "#pragma pack(push[, id], ) n'est pas permis sur cette cible" + +#~ msgid "#pragma pack(pop[, id], ) is not supported on this target" +#~ msgstr "#pragma pack(pop[, id], ) n'est pas permis sur cette cible" + +#~ msgid "missing '(' after '#pragma pack' - ignored" +#~ msgstr " ( manquante aprs #pragma pack - ignor" + +#~ msgid "malformed '#pragma pack' - ignored" +#~ msgstr " #pragma pack mal compose - ignor" + +#~ msgid "malformed '#pragma pack(push[, id], )' - ignored" +#~ msgstr " #pragma pack(push[, id], ) mal compose - ignor" + +#~ msgid "malformed '#pragma pack(pop[, id])' - ignored" +#~ msgstr " #pragma pack(pop[, id]) mal compose, ignor" + +#~ msgid "unknown action '%s' for '#pragma pack' - ignored" +#~ msgstr "action %s inconnue pour #pragma pack - ignor" + +#~ msgid "junk at end of '#pragma pack'" +#~ msgstr "rebut la fin de #pragma pack " + +#~ msgid "alignment must be a small power of two, not %d" +#~ msgstr "l'alignement doit tre une petite puissance de 2, pas %d" + +#~ msgid "%Japplying #pragma weak '%D' after first use results in unspecified behavior" +#~ msgstr "%Japplication de la #pragma weak %D aprs la premire utilisation conduit un comportement non spcifi" + +#~ msgid "malformed #pragma weak, ignored" +#~ msgstr "#pragma weak mal compose, ignor" + +#~ msgid "junk at end of #pragma weak" +#~ msgstr "rebut la fin de #pragma weak" + +#~ msgid "malformed #pragma redefine_extname, ignored" +#~ msgstr "#pragma redefine_extname mal compose, ignor" + +#~ msgid "junk at end of #pragma redefine_extname" +#~ msgstr "rebut la fin de #pragma redefine_extname" + +#~ msgid "#pragma redefine_extname conflicts with declaration" +#~ msgstr "#pragma redefine_extname en conflit avec la dclaration" + +#~ msgid "malformed #pragma extern_prefix, ignored" +#~ msgstr "#pragma extern_prefix mal compose, ignor" + +#~ msgid "junk at end of #pragma extern_prefix" +#~ msgstr "rebut la fin de #pragma extern_prefix" + +#~ msgid "asm declaration conflicts with previous rename" +#~ msgstr "dclaration asm en conflit avec le changement de nom prcdent" + +#~ msgid "destructor needed for `%D'" +#~ msgstr "destructeur requis pour %D " + +#~ msgid "where case label appears here" +#~ msgstr "o les tiquettes de case apparaissent ici" + +# FIXME +#~ msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" +#~ msgstr "(les actions dans les case prcdents requierent des destructeurs dans leur propre champ.)" + +#~ msgid "%s qualifier ignored on asm" +#~ msgstr "%s qualificateur ignor avec asm" + +# FIXME: c'est de l'assembleur ? +#~ msgid "will never be executed" +#~ msgstr "ne sera jamais excut" + +#~ msgid "`%s' has an incomplete type" +#~ msgstr " %s a un type incomplet" + +#~ msgid "invalid use of void expression" +#~ msgstr "utilisation invalide d'expression void" + +#~ msgid "invalid use of flexible array member" +#~ msgstr "utilisation invalide d'un membre flexible de tableau" + +#~ msgid "invalid use of array with unspecified bounds" +#~ msgstr "utilisation invalide d'un tableau sans borne spcifie" + +#~ msgid "invalid use of undefined type `%s %s'" +#~ msgstr "utilisation invalide d'un type indfini %s %s " + +#~ msgid "invalid use of incomplete typedef `%s'" +#~ msgstr "utilisation invalide d'un typedef incomplet %s " + +#~ msgid "function types not truly compatible in ISO C" +#~ msgstr "types de fonction pas vraiment compatibles en C ISO" + +#~ msgid "types are not quite compatible" +#~ msgstr "les types ne sont pas vraiment compatibles" + +#~ msgid "function return types not compatible due to `volatile'" +#~ msgstr "les types retourns d'une fonction ne sont pas compatibles en raison de volatile " + +#~ msgid "arithmetic on pointer to an incomplete type" +#~ msgstr "arithmtique sur un pointeur vers un type incomplet" + +#~ msgid "%s has no member named `%s'" +#~ msgstr "%s n'a pas de membre nomm %s " + +#~ msgid "request for member `%s' in something not a structure or union" +#~ msgstr "requte du membre %s dans quelque chose n'tant ni une structure ni une union" + +#~ msgid "dereferencing pointer to incomplete type" +#~ msgstr "drfrencement d'un pointeur de type incomplet" + +#~ msgid "dereferencing `void *' pointer" +#~ msgstr "drfrencement d'un pointeur void * " + +#~ msgid "invalid type argument of `%s'" +#~ msgstr "type d'argument invalide pour %s " + +#~ msgid "subscript missing in array reference" +#~ msgstr "indice manquant dans la rfrence du tableau" + +#~ msgid "array subscript has type `char'" +#~ msgstr "l'indice du tableau est de type char " + +#~ msgid "array subscript is not an integer" +#~ msgstr "l'indice du tableau n'est pas un entier" + +#~ msgid "ISO C forbids subscripting `register' array" +#~ msgstr "ISO C interdit de sous-indicer des tableaux register " + +#~ msgid "ISO C90 forbids subscripting non-lvalue array" +#~ msgstr "ISO C90 interdit d'indicer de tableau n'tant pas membre gauche" + +#~ msgid "subscript has type `char'" +#~ msgstr "indice de type char " + +#~ msgid "subscripted value is neither array nor pointer" +#~ msgstr "la valeur indice n'est ni un tableau ni un pointeur" + +#~ msgid "local declaration of `%s' hides instance variable" +#~ msgstr "la dclaration locale de %s masque l'instance d'une variable" + +#~ msgid "called object is not a function" +#~ msgstr "l'objet appel n'est pas une fonction" + +#~ msgid "function called through a non-compatible type" +#~ msgstr "fonction appelle travers un type non compatible" + +#~ msgid "too many arguments to function" +#~ msgstr "trop d'arguments pour la fonction" + +#~ msgid "type of formal parameter %d is incomplete" +#~ msgstr "le type du paramtre formel %d est incomplet" + +#~ msgid "%s as integer rather than floating due to prototype" +#~ msgstr "%s est entier plutt que flottant en raison du prototype" + +#~ msgid "%s as integer rather than complex due to prototype" +#~ msgstr "%s est entier plutt que complexe en raison du prototype" + +#~ msgid "%s as complex rather than floating due to prototype" +#~ msgstr "%s est complexe plutt que flottant en raison du prototype" + +#~ msgid "%s as floating rather than integer due to prototype" +#~ msgstr "%s est flottant plutt qu'entier en raison du prototype" + +#~ msgid "%s as complex rather than integer due to prototype" +#~ msgstr "%s est complexe plutt qu'entier en raison du prototype" + +#~ msgid "%s as floating rather than complex due to prototype" +#~ msgstr "%s est flottant plutt que complexe en raison du prototype" + +#~ msgid "%s as `float' rather than `double' due to prototype" +#~ msgstr "%s est float plutt qu'un double en raison du prototype" + +#~ msgid "%s with different width due to prototype" +#~ msgstr "%s a une largeur diffrente en raison du prototype" + +#~ msgid "%s as unsigned due to prototype" +#~ msgstr "%s est non sign en raison du prototype" + +#~ msgid "%s as signed due to prototype" +#~ msgstr "%s est sign en raison du prototype" + +#~ msgid "too few arguments to function" +#~ msgstr "trop peu d'arguments pour la fonction" + +#~ msgid "suggest parentheses around + or - inside shift" +#~ msgstr "parenthses suggres autour de + ou - l'intrieur du dcalage" + +#~ msgid "suggest parentheses around && within ||" +#~ msgstr "parenthses suggres autour de && l'intrieur de ||" + +#~ msgid "suggest parentheses around arithmetic in operand of |" +#~ msgstr "parenthses suggres autour de l'arithmtique dans l'oprande de |" + +#~ msgid "suggest parentheses around comparison in operand of |" +#~ msgstr "parenthses suggres autour de la comparaison dans l'oprande de |" + +#~ msgid "suggest parentheses around arithmetic in operand of ^" +#~ msgstr "parenthses suggres autour de l'arithmtique dans l'oprande de ^" + +#~ msgid "suggest parentheses around comparison in operand of ^" +#~ msgstr "parenthses suggres autour de la comparaison dans l'oprande de ^" + +#~ msgid "suggest parentheses around + or - in operand of &" +#~ msgstr "parenthses suggres autour de + ou - dans l'oprande de &" + +#~ msgid "suggest parentheses around comparison in operand of &" +#~ msgstr "parenthses suggres autour de la comparaison dans l'oprande de &" + +#~ msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" +#~ msgstr "les comparaisons telles que X<=Y<=Z n'ont pas de signification mathmatique" + +#~ msgid "pointer of type `void *' used in subtraction" +#~ msgstr "pointeur de type void * utilis dans une soustraction" + +#~ msgid "pointer to a function used in subtraction" +#~ msgstr "pointeur vers un fonction utilis dans une soustraction" + +#~ msgid "wrong type argument to unary plus" +#~ msgstr "type d'argument erron pour le plus unaire" + +#~ msgid "wrong type argument to unary minus" +#~ msgstr "type d'argument erron pour le moins unaire" + +#~ msgid "ISO C does not support `~' for complex conjugation" +#~ msgstr "ISO C ne permet pas d'utiliser ~ pour le complexe conjugu" + +#~ msgid "wrong type argument to bit-complement" +#~ msgstr "type d'argument erron pour un complment de bit" + +#~ msgid "wrong type argument to abs" +#~ msgstr "type d'argument erron pour abs" + +#~ msgid "wrong type argument to conjugation" +#~ msgstr "type d'argument erron pour la conjugaison" + +#~ msgid "wrong type argument to unary exclamation mark" +#~ msgstr "type d'argument erron pour le point d'exclamation unaire" + +#~ msgid "ISO C does not support `++' and `--' on complex types" +#~ msgstr "ISO C ne permet pas ++ ni -- sur les types complexes" + +#~ msgid "wrong type argument to increment" +#~ msgstr "type d'argument erron pour un incrment" + +#~ msgid "wrong type argument to decrement" +#~ msgstr "type d'argument erron pour un dcrment" + +#~ msgid "increment of pointer to unknown structure" +#~ msgstr "incrment d'un pointeur vers une structure inconnue" + +#~ msgid "decrement of pointer to unknown structure" +#~ msgstr "dcrment d'un pointeur vers une structure inconnue" + +#~ msgid "invalid lvalue in unary `&'" +#~ msgstr "membre gauche invalide pour le & unaire" + +#~ msgid "attempt to take address of bit-field structure member `%s'" +#~ msgstr "tentative pour prendre l'adresse du membre %s d'une structure de champ de bits" + +#~ msgid "use of conditional expressions as lvalues is deprecated" +#~ msgstr "utilisation d'expressions conditionnelles comme lvalues est obsolte" + +#~ msgid "use of compound expressions as lvalues is deprecated" +#~ msgstr "utilisation d'expressions composes comme lvalues est obsolte" + +#~ msgid "use of cast expressions as lvalues is deprecated" +#~ msgstr "utilisation de transtypage d'expressions comme lvalues est obsolte" + +#~ msgid "%s of read-only member `%s'" +#~ msgstr "%s d'un membre en lecture seule %s " + +#~ msgid "%s of read-only variable `%s'" +#~ msgstr "%s d'une variable en lecture seule %s " + +#~ msgid "%s of read-only location" +#~ msgstr "%s d'une position en lecture seule" + +#~ msgid "cannot take address of bit-field `%s'" +#~ msgstr "ne peut prendre l'adresse du champ de bits %s " + +#~ msgid "global register variable `%s' used in nested function" +#~ msgstr "variable globale de registre %s utilise dans une fonction imbrique" + +#~ msgid "register variable `%s' used in nested function" +#~ msgstr "variable de registre %s utilise dans une fonction imbrique" + +#~ msgid "address of global register variable `%s' requested" +#~ msgstr "adresse d'une variable registre globale %s requise" + +#~ msgid "cannot put object with volatile field into register" +#~ msgstr "impossible de mettre un objet avec un champ volatile dans un registre" + +#~ msgid "address of register variable `%s' requested" +#~ msgstr "adresse d'une variable registre %s requise" + +#~ msgid "signed and unsigned type in conditional expression" +#~ msgstr "type sign et non sign dans une expression conditionnelle" + +#~ msgid "ISO C forbids conditional expr with only one void side" +#~ msgstr "ISO C interdit une expression conditionnelle dont un seul ct est void " + +#~ msgid "ISO C forbids conditional expr between `void *' and function pointer" +#~ msgstr "ISO C interdit une expression conditionnelle entre void * et un pointeur de fonction" + +#~ msgid "pointer type mismatch in conditional expression" +#~ msgstr "non concordance de type de pointeurs dans un expression conditionnelle" + +#~ msgid "pointer/integer type mismatch in conditional expression" +#~ msgstr "non concordance entre pointeur et entier dans une expression conditionnelle" + +#~ msgid "type mismatch in conditional expression" +#~ msgstr "non concordance de type dans une expression conditionnelle" + +#~ msgid "left-hand operand of comma expression has no effect" +#~ msgstr "l'oprande gauche de la virgule n'a pas d'effet" + +#~ msgid "cast specifies array type" +#~ msgstr "le transtypage spcifie un type de tableau" + +#~ msgid "cast specifies function type" +#~ msgstr "le transtypage spcifie un type de fonction" + +#~ msgid "ISO C forbids casting nonscalar to the same type" +#~ msgstr "ISO C interdit le transtypage d'un type non scalaire vers lui-mme" + +#~ msgid "ISO C forbids casts to union type" +#~ msgstr "ISO C interdit le transtypage vers un type union" + +#~ msgid "cast to union type from type not present in union" +#~ msgstr "transtypage vers un type union depuis un type absent de l'union" + +#~ msgid "cast adds new qualifiers to function type" +#~ msgstr "le transtypage ajoute un nouveau qualificateur au type de la fonction" + +#~ msgid "cast discards qualifiers from pointer target type" +#~ msgstr "le transtypage annule des qualificateurs du type pointeur cibl" + +#~ msgid "cast increases required alignment of target type" +#~ msgstr "le transtypage augmente l'alignement requis pour le type cibl" + +#~ msgid "cast from pointer to integer of different size" +#~ msgstr "transtypage d'un pointeur vers un entier de taille diffrente" + +#~ msgid "cast does not match function type" +#~ msgstr "le transtypage ne concorde pas avec le type de la fonction" + +#~ msgid "cast to pointer from integer of different size" +#~ msgstr "transtypage vers un pointeur depuis un entier de taille diffrente" + +# FIXME +#~ msgid "type-punning to incomplete type might break strict-aliasing rules" +#~ msgstr "type-punning vers un type incomplet peut briser les rgles stricte d'aliases" + +# FIXME +#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules" +#~ msgstr "drfrencement du pointeur type-punned brisera les strictes d'aliases" + +#~ msgid "ISO C forbids conversion of function pointer to object pointer type" +#~ msgstr "ISO C interdit la conversion d'un pointeur de fonction en un type pointeur d'objet" + +#~ msgid "ISO C forbids conversion of object pointer to function pointer type" +#~ msgstr "ISO C interdit la conversion d'un pointeur d'objet vers un type de pointeur une fonction" + +#~ msgid "invalid lvalue in assignment" +#~ msgstr "membre gauche de l'affectation invalide" + +#~ msgid "assignment" +#~ msgstr "affectation" + +#~ msgid "cannot pass rvalue to reference parameter" +#~ msgstr "impossible de passer un membre droit en paramtre par rfrence" + +#~ msgid "%s makes qualified function pointer from unqualified" +#~ msgstr "%s qualifie un pointeur de fonction non qualifi" + +#~ msgid "%s discards qualifiers from pointer target type" +#~ msgstr "%s annule des qualificateurs du type du pointeur cible" + +#~ msgid "ISO C prohibits argument conversion to union type" +#~ msgstr "ISO C interdit la conversion d'argument en type union" + +#~ msgid "ISO C forbids %s between function pointer and `void *'" +#~ msgstr "ISO C interdit %s entre pointeur de fonction et void * " + +#~ msgid "pointer targets in %s differ in signedness" +#~ msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe" + +#~ msgid "%s from incompatible pointer type" +#~ msgstr "%s d'un type pointeur incompatible" + +#~ msgid "invalid use of non-lvalue array" +#~ msgstr "utilisation invalide d'un tableau n'tant pas membre gauche" + +#~ msgid "%s makes pointer from integer without a cast" +#~ msgstr "%s transforme un entier en pointeur sans transtypage" + +#~ msgid "%s makes integer from pointer without a cast" +#~ msgstr "%s transforme un pointeur en entier sans transtypage" + +#~ msgid "incompatible type for argument %d of `%s'" +#~ msgstr "type incompatible pour l'argument n%d de %s " + +#~ msgid "incompatible type for argument %d of indirect function call" +#~ msgstr "type incompatible pour l'argument n%d de l'appel indirect de fonction" + +#~ msgid "incompatible types in %s" +#~ msgstr "type incompatibles dans %s" + +#~ msgid "passing arg of `%s'" +#~ msgstr "passage des arguments de %s " + +#~ msgid "passing arg of pointer to function" +#~ msgstr "passage des arguments au pointeur de fonction" + +#~ msgid "passing arg %d of `%s'" +#~ msgstr "passage de l'argument n%d de %s " + +#~ msgid "passing arg %d of pointer to function" +#~ msgstr "passage de l'argument n%d au pointeur de fonction" + +#~ msgid "traditional C rejects automatic aggregate initialization" +#~ msgstr "le C traditionel rejette l'initialisation automatique d'aggrgats" + +#~ msgid "(near initialization for `%s')" +#~ msgstr "(prs de l'initialisation de %s )" + +#~ msgid "char-array initialized from wide string" +#~ msgstr "tableau de caractres initialis l'aide d'une chane large de caractres" + +#~ msgid "int-array initialized from non-wide string" +#~ msgstr "tableau d'entier initialis l'aide d'une chane non-large" + +#~ msgid "initializer-string for array of chars is too long" +#~ msgstr "la chane d'initialisation est trop longue pour le tableau de caractres" + +#~ msgid "array initialized from non-constant array expression" +#~ msgstr "tableau initialis l'aide de l'expression de tableau non constante" + +#~ msgid "initializer element is not constant" +#~ msgstr "un lment de l'initialisation n'est pas une constante" + +#~ msgid "initialization" +#~ msgstr "initialisation" + +#~ msgid "initializer element is not computable at load time" +#~ msgstr "un lment de l'initialisation n'est pas valuable lors du chargement" + +#~ msgid "invalid initializer" +#~ msgstr "initialisation invalide" + +#~ msgid "opaque vector types cannot be initialized" +#~ msgstr "type de vecteur opaque ne peut tre initialis" + +#~ msgid "extra brace group at end of initializer" +#~ msgstr "groupe d'accolades superflu la fin de l'initialisation" + +#~ msgid "missing braces around initializer" +#~ msgstr "accolades manquantes autour de l'initialisation" + +#~ msgid "braces around scalar initializer" +#~ msgstr "accolades autour d'une initialisation de scalaire" + +#~ msgid "initialization of flexible array member in a nested context" +#~ msgstr "initialisation d'un membre de tableau flexible dans un contexte imbriqu" + +#~ msgid "initialization of a flexible array member" +#~ msgstr "initialisation d'un membre de tableau flexible" + +#~ msgid "missing initializer" +#~ msgstr "initialisation manquante" + +#~ msgid "empty scalar initializer" +#~ msgstr "initialisation vide de scalaire" + +#~ msgid "extra elements in scalar initializer" +#~ msgstr "lments superflus dans l'initialisation de scalaire" + +#~ msgid "initialization designators may not nest" +#~ msgstr "l'initialisation des dsignateurs ne doit pas tre imbrique" + +#~ msgid "array index in non-array initializer" +#~ msgstr "index de tableau dans l'initialisation de quelque chose n'tant pas un tableau" + +#~ msgid "field name not in record or union initializer" +#~ msgstr "nom de champ dans l'initialisation de quelque chose n'tant ni un enregistrement ni une union" + +#~ msgid "nonconstant array index in initializer" +#~ msgstr "index de tableau non constant dans l'initialisation" + +#~ msgid "array index in initializer exceeds array bounds" +#~ msgstr "index de tableau hors limites lors de l'initialisation" + +#~ msgid "empty index range in initializer" +#~ msgstr "borne d'index vide lors de l'initialisation" + +#~ msgid "array index range in initializer exceeds array bounds" +#~ msgstr "plage d'index du tableau excdant les bornes lors de l'initialisation" + +#~ msgid "unknown field `%s' specified in initializer" +#~ msgstr "champ inconnu %s spcifi lors de l'initialisation" + +#~ msgid "initialized field with side-effects overwritten" +#~ msgstr "le champ initialis par effet de bord a t cras" + +#~ msgid "excess elements in char array initializer" +#~ msgstr "lments en excs dans l'initialisation de tableau de caractres" + +#~ msgid "excess elements in struct initializer" +#~ msgstr "lments en excs dans l'initialisation de la structure" + +#~ msgid "non-static initialization of a flexible array member" +#~ msgstr "initialisation non statique d'un membre de tableau flexible" + +#~ msgid "excess elements in union initializer" +#~ msgstr "lments en excs dans l'initialisation d'union" + +#~ msgid "traditional C rejects initialization of unions" +#~ msgstr "le C traditionel rejette l'initialisation d'union" + +#~ msgid "excess elements in array initializer" +#~ msgstr "lments en excs dans l'initialisation de tableau" + +#~ msgid "excess elements in vector initializer" +#~ msgstr "lments en excs dans l'initialisation du vecteur" + +#~ msgid "excess elements in scalar initializer" +#~ msgstr "lments en excs dans l'initialisation d'un scalaire" + +#~ msgid "asm template is not a string constant" +#~ msgstr "le canevas asm n'est pas une chane de constante" + +#~ msgid "invalid lvalue in asm statement" +#~ msgstr "membre gauche invalide avec asm" + +#~ msgid "modification by `asm'" +#~ msgstr "modification par asm " + +#~ msgid "function declared `noreturn' has a `return' statement" +#~ msgstr "fonction dclare avec noreturn utilisant le mot-cl return " + +#~ msgid "`return' with no value, in function returning non-void" +#~ msgstr " return sans valeur dans une fonction retournant autre chose que void" + +#~ msgid "`return' with a value, in function returning void" +#~ msgstr " return avec une valeur dans une fonction retournant un void" + +#~ msgid "return" +#~ msgstr "return" + +#~ msgid "function returns address of local variable" +#~ msgstr "cette fonction retourne l'adresse d'une variable locale" + +#~ msgid "switch quantity not an integer" +#~ msgstr "quantit du switch n'est pas un entier" + +#~ msgid "`long' switch expression not converted to `int' in ISO C" +#~ msgstr "expression long du switch non convertie en int par ISO C" + +#~ msgid "case label not within a switch statement" +#~ msgstr "tiquette de case en dehors de tout switch" + +#~ msgid "`default' label not within a switch statement" +#~ msgstr "tiquette default en dehors de tout switch" + +#~ msgid "division by zero" +#~ msgstr "division par zro" + +#~ msgid "right shift count is negative" +#~ msgstr "le compteur de dcalage vers la droite est ngatif" + +#~ msgid "right shift count >= width of type" +#~ msgstr "compteur de dcalage vers la droite >= la largeur du type" + +#~ msgid "left shift count is negative" +#~ msgstr "le compteur de dcalage vers la gauche est ngatif" + +#~ msgid "left shift count >= width of type" +#~ msgstr "compteur de dcalage vers la gauche >= la largeur du type" + +#~ msgid "shift count is negative" +#~ msgstr "le compteur de dcalage est ngatif" + +#~ msgid "shift count >= width of type" +#~ msgstr "compteur de dcalage >= la largeur du type" + +#~ msgid "comparing floating point with == or != is unsafe" +#~ msgstr "comparer des nombres flottants l'aide de == ou != n'est pas sr" + +#~ msgid "ISO C forbids comparison of `void *' with function pointer" +#~ msgstr "ISO C interdit la comparaison de void * avec un pointeur de fonction" + +#~ msgid "comparison of distinct pointer types lacks a cast" +#~ msgstr "il manque un transtypage pour comparer des types distincts de pointeur" + +#~ msgid "comparison between pointer and integer" +#~ msgstr "comparaison entre un pointeur et un entier" + +#~ msgid "ISO C forbids ordered comparisons of pointers to functions" +#~ msgstr "ISO C interdit les comparaisons ordonnes de pointeurs vers des fonctions" + +#~ msgid "comparison of complete and incomplete pointers" +#~ msgstr "comparaison de pointeurs complet et incomplet" + +#~ msgid "ordered comparison of pointer with integer zero" +#~ msgstr "comparaison ordonne de pointeur avec le zro entier" + +#~ msgid "unordered comparison on non-floating point argument" +#~ msgstr "comparaison non ordonne sur un argument n'tant pas en virgule flottante" + +#~ msgid "comparison between signed and unsigned" +#~ msgstr "comparaison entre lment sign et lment non sign" + +#~ msgid "comparison of promoted ~unsigned with constant" +#~ msgstr "comparaison entre lment promu ~unsigned et une constante" + +#~ msgid "comparison of promoted ~unsigned with unsigned" +#~ msgstr "comparaison entre lment promu ~unsigned et un lment non sign" + +#~ msgid "%Jinlining failed in call to '%F'" +#~ msgstr "%Jenlignage a chou dans l'appel %F " + +#~ msgid "called from here" +#~ msgstr "appel d'ici" + +#~ msgid "%Jcan't inline call to '%F'" +#~ msgstr "%Jimpossible d'enligner l'appel %F " + +#~ msgid "ignoring return value of `%D', declared with attribute warn_unused_result" +#~ msgstr "valeur retourner %D ignore, dclar avec l'attribut warn_unused_result" + +#~ msgid "ignoring return value of function declared with attribute warn_unused_result" +#~ msgstr "valeur retourner d'une fonction ignore, dclar avec l'attribut warn_unused_result" + +#~ msgid "function call has aggregate value" +#~ msgstr "l'appel de fonction a une valeur d'aggrgat" + +#~ msgid "bb %d on wrong place" +#~ msgstr "bb %d au mauvais endroit" + +#~ msgid "prev_bb of %d should be %d, not %d" +#~ msgstr "prev_bb de %d devrait tre %d, pas %d" + +#~ msgid "verify_flow_info: Wrong count of block %i %i" +#~ msgstr "verify_flow_info: Nombre de blocs erron %i %i" + +#~ msgid "verify_flow_info: Wrong frequency of block %i %i" +#~ msgstr "verify_flow_info: Frquence de blocs errone %i %i" + +#~ msgid "verify_flow_info: Duplicate edge %i->%i" +#~ msgstr "verify_flow_info: arrte duplique %i->%i" + +#~ msgid "verify_flow_info: Wrong probability of edge %i->%i %i" +#~ msgstr "verify_flow_info: probabilit de l'arrte %i->%i %i errone" + +#~ msgid "verify_flow_info: Wrong count of edge %i->%i %i" +#~ msgstr "verify_flow_info: Mauvais nombre d'arrte %i->%i %i" + +#~ msgid "verify_flow_info: Basic block %d succ edge is corrupted" +#~ msgstr "verify_flow_info: l'arrte succ du bloc de base %d est corrompue" + +#~ msgid "Wrong amount of branch edges after unconditional jump %i" +#~ msgstr "Mauvais nombre d'arrtes de branchement aprs le branchement inconditionnel %i" + +#~ msgid "basic block %d pred edge is corrupted" +#~ msgstr "arrte pred du bloc de base %d corrompue" + +#~ msgid "basic block %i edge lists are corrupted" +#~ msgstr "les listes d'arrtes du bloc de base %i sont corrompues" + +#~ msgid "verify_flow_info failed" +#~ msgstr "verify_flow_info a chou" + +#~ msgid "Size of loop %d should be %d, not %d." +#~ msgstr "La taille de la boucle %d devrait tre %d, et non %d." + +# FIXME +#~ msgid "Bb %d do not belong to loop %d." +#~ msgstr "Bb %d n'appartient pas la boucle %d." + +#~ msgid "Loop %d's header does not have exactly 2 entries." +#~ msgstr "L'en-tte de la boucle %d n'a pas exactement 2 entres." + +#~ msgid "Loop %d's latch does not have exactly 1 successor." +#~ msgstr "Le verrou %d de la boucle n'a pas exactement 1 successeur." + +#~ msgid "Loop %d's latch does not have header as successor." +#~ msgstr "Le verrou %d de la boucle n'a pas une en-tte comme successeur." + +#~ msgid "Loop %d's latch does not belong directly to it." +#~ msgstr "Le verrou %d de la boucle ne lui appartient pas directement." + +#~ msgid "Loop %d's header does not belong directly to it." +#~ msgstr "L'entte de la boucle %d ne lui appartient pas directement." + +#~ msgid "Loop %d's latch is marked as part of irreducible region." +#~ msgstr "Le verrou %d de la boucle est dfini comme faisant partie d'une zone irrductible" + +#~ msgid "Basic block %d should be marked irreducible." +#~ msgstr "bloc de base %d devrait tre marqu irrductible." + +#~ msgid "Basic block %d should not be marked irreducible." +#~ msgstr "bloc de base %d ne devrait pas tre marqu irrductible." + +#~ msgid "Edge from %d to %d should be marked irreducible." +#~ msgstr "Bordures partir de %d %d devraient tre marqus irrductibles." + +#~ msgid "Edge from %d to %d should not be marked irreducible." +#~ msgstr "Bordures partir de %d %d ne devraient tre marques irrductibles." + +#~ msgid "end insn %d for block %d not found in the insn stream" +#~ msgstr "fin insn %d du bloc %d n'a pas t repr dans le flot insn" + +#~ msgid "insn %d is in multiple basic blocks (%d and %d)" +#~ msgstr "insn %d est dans de multiples blocs de base (%d et %d)" + +#~ msgid "head insn %d for block %d not found in the insn stream" +#~ msgstr "en-tte insn %d du bloc %d n'a pas t repre dans le flot insn" + +#~ msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" +#~ msgstr "verify_flow_info: REG_BR_PROB ne correspond pas la config %wi %i" + +#~ msgid "Missing REG_EH_REGION note in the end of bb %i" +#~ msgstr "REG_EH_REGION note manquante la fin du bb %i" + +#~ msgid "Too many outgoing branch edges from bb %i" +#~ msgstr "Trop d'arrtes de branchement sortantes dans le bb %i" + +#~ msgid "Fallthru edge after unconditional jump %i" +#~ msgstr "Arrte fallthru aprs le branchement inconditionnel %i" + +#~ msgid "Wrong amount of branch edges after conditional jump %i" +#~ msgstr "Mauvais nombre d'arrtes de branchement aprs le branchement conditionnel %i" + +#~ msgid "Call edges for non-call insn in bb %i" +#~ msgstr "Arrtes d'appel pour un insn n'tant pas d'appel dans le bb %i" + +#~ msgid "Abnormal edges for no purpose in bb %i" +#~ msgstr "Arrte anormale sans but dans le bb %i" + +#~ msgid "insn %d inside basic block %d but block_for_insn is NULL" +#~ msgstr "insn %d l'intrieur du bloc de base %d mais block_for_insn est NULL" + +#~ msgid "insn %d inside basic block %d but block_for_insn is %i" +#~ msgstr "insn %d l'intrieur du bloc de base %d mais block_for_insn est %i" + +#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" +#~ msgstr "NOTE_INSN_BASIC_BLOCK manquant pour le bloc %d" + +#~ msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" +#~ msgstr "NOTE_INSN_BASIC_BLOCK %d au milieu du bloc de base %d" + +#~ msgid "in basic block %d:" +#~ msgstr "dans le bloc de base %d :" + +#~ msgid "flow control insn inside a basic block" +#~ msgstr "insn de contrle de flot l'intrieur d'un bloc de base" + +#~ msgid "missing barrier after block %i" +#~ msgstr "barrire manquante aprs le boc %i" + +#~ msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" +#~ msgstr "verify_flow_info: blocs incorrects pour le fallthru %i->%i" + +#~ msgid "verify_flow_info: Incorrect fallthru %i->%i" +#~ msgstr "verify_flow_info: fallthru incorrect %i->%i" + +#~ msgid "wrong insn in the fallthru edge" +#~ msgstr "insn errone dans l'arrte fallthru" + +#~ msgid "basic blocks not laid down consecutively" +#~ msgstr "les blocs de base ne se suivent pas conscutivement" + +#~ msgid "insn outside basic block" +#~ msgstr "insn l'extrieur de tout bloc de base" + +#~ msgid "return not followed by barrier" +#~ msgstr "return n'est pas suivi d'une barrire" + +# FIXME +# bb est une abrviation courante dans cette partie du fichier pour basic block +#~ msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" +#~ msgstr "nombre de bb not dans la chane d'insn (%d) != n_basic_blocks (%d)" + +#~ msgid "function body not available" +#~ msgstr "corps de la fonction n'est pas disponible" + +#~ msgid "redefined extern inline functions are not considered for inlining" +#~ msgstr "fonctions externes enlignes redfinies n'ont pas t retenues pour l'enlignage" + +#~ msgid "function not considered for inlining" +#~ msgstr "fonction n'a pas t retenue pour l'enlignage" + +#~ msgid "function not inlinable" +#~ msgstr "fonction ne peut tre enligne" + +#~ msgid "%D renamed after being referenced in assembly" +#~ msgstr " %D renomm aprs avoir t rfrenc durant l'assemblage" + +#~ msgid "--param large-function-growth limit reached" +#~ msgstr "--param large-function-growth limite atteinte" + +#~ msgid "--param large-function-growth limit reached while inlining the caller" +#~ msgstr "--param large-function-growth limite atteinte lors de l'enlignage de l'appelant" + +#~ msgid "--param max-inline-insns-single limit reached" +#~ msgstr "--param max-inline-insns-single limite atteinte" + +#~ msgid "--param max-inline-insns-single limit reached after inlining into the callee" +#~ msgstr "--param max-inline-insns-single limite atteinte aprs l'enlignage dans l'appell" + +#~ msgid "--param inline-unit-growth limit reached" +#~ msgstr "--param inline-unit-growth limite atteinte" + +#~ msgid "recursive inlining" +#~ msgstr "enlignage rcursif" + +#~ msgid "internal error" +#~ msgstr "erreur interne" + +#~ msgid "no arguments" +#~ msgstr "pas d'argument" + +# I18N +#~ msgid "fopen %s" +#~ msgstr "fopen() %s" + +# I18N +#~ msgid "fclose %s" +#~ msgstr "fclose() %s" + +#~ msgid "collect2 version %s" +#~ msgstr "collect2 version %s" + +#~ msgid "%d constructor(s) found\n" +#~ msgstr "%d constructeur(s) trouv(s)\n" + +#~ msgid "%d destructor(s) found\n" +#~ msgstr "%d destructeur(s) trouv(s)\n" + +#~ msgid "%d frame table(s) found\n" +#~ msgstr "%d table(s) de trame trouve(s)\n" + +#~ msgid "%s terminated with signal %d [%s]%s" +#~ msgstr "%s termin par le signal %d [%s]%s" + +#~ msgid "%s returned %d exit status" +#~ msgstr "%s a retourn %d comme valeur de sortie" + +#~ msgid "[cannot find %s]" +#~ msgstr "[%s introuvable]" + +#~ msgid "cannot find `%s'" +#~ msgstr " %s introuvable" + +#~ msgid "redirecting stdout: %s" +#~ msgstr "redirection de stdout : %s" + +# FIXME +#~ msgid "[Leaving %s]\n" +#~ msgstr "[Laissant %s]\n" + +#~ msgid "" +#~ "\n" +#~ "write_c_file - output name is %s, prefix is %s\n" +#~ msgstr "" +#~ "\n" +#~ "write_c_file - le nom de sortie est %s, le prfixe est %s\n" + +#~ msgid "cannot find `nm'" +#~ msgstr " nm introuvable" + +# I18N +#~ msgid "pipe" +#~ msgstr "pipe" + +# I18N +#~ msgid "fdopen" +#~ msgstr "fdopen" + +# I18N +#~ msgid "dup2 %d 1" +#~ msgstr "dup2 %d 1" + +# I18N +#~ msgid "close %d" +#~ msgstr "close %d" + +# I18N +#~ msgid "execv %s" +#~ msgstr "execv %s" + +#~ msgid "init function found in object %s" +#~ msgstr "fonction init trouve dans l'objet %s" + +#~ msgid "fini function found in object %s" +#~ msgstr "fonction fini() trouve dans l'objet %s" + +# I18N +#~ msgid "fclose" +#~ msgstr "fclose" + +#~ msgid "unable to open file '%s'" +#~ msgstr "impossible d'ouvrir le fichier %s " + +#~ msgid "unable to stat file '%s'" +#~ msgstr "impossible d'analyser le fichier %s avec stat()" + +#~ msgid "unable to mmap file '%s'" +#~ msgstr "incpable de projeter en mmoire le fichier %s avec nmap()" + +#~ msgid "not found\n" +#~ msgstr "introuvable\n" + +#~ msgid "dynamic dependency %s not found" +#~ msgstr "dpendance dynamique %s introuvable" + +#~ msgid "bad magic number in file '%s'" +#~ msgstr "le nombre magique du fichier %s est erron" + +#~ msgid "dynamic dependencies.\n" +#~ msgstr "dpendances dynamiques.\n" + +#~ msgid "cannot find `ldd'" +#~ msgstr " ldd introuvable" + +#~ msgid "" +#~ "\n" +#~ "ldd output with constructors/destructors.\n" +#~ msgstr "" +#~ "\n" +#~ "sortie de ldd avec constructeurs/destructeurs.\n" + +#~ msgid "unable to open dynamic dependency '%s'" +#~ msgstr "incapable d'ouvrir la dpendance dynamique %s " + +#~ msgid "%s: not a COFF file" +#~ msgstr "%s : n'est pas un fichier COFF" + +#~ msgid "%s: cannot open as COFF file" +#~ msgstr "%s : ne peut ouvrir en tant que fichier COFF" + +# I18N +#~ msgid "library lib%s not found" +#~ msgstr "bibliothque lib%s introuvable" + +#~ msgid "" +#~ ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +#~ ";; %d successes.\n" +#~ "\n" +#~ msgstr "" +#~ ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requrant un nouvel espace),\n" +#~ ";; %d succs.\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ ";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n" +#~ ";; %d successes.\n" +#~ msgstr "" +#~ "\n" +#~ ";; Totaux du combinateur : %d tentatives, %d substitutions (%d requrant un nouvel espace),\n" +#~ ";; %d succs.\n" +#~ "\n" + +#~ msgid "cannot convert to a pointer type" +#~ msgstr "ne peut convertir en un type pointeur" + +#~ msgid "pointer value used where a floating point value was expected" +#~ msgstr "valeur de pointeur utilise l o une valeur virgule flottante tait attendue" + +#~ msgid "aggregate value used where a float was expected" +#~ msgstr "valeur d'aggrgat utilise l o un flottant tait attendu" + +#~ msgid "conversion to incomplete type" +#~ msgstr "conversion vers un type incomplet" + +#~ msgid "can't convert between vector values of different size" +#~ msgstr "ne peut convertir entre des valeurs de vecteurs de tailles diffrentes" + +#~ msgid "aggregate value used where an integer was expected" +#~ msgstr "valeur d'aggrgat utilise l o un entier tait attendu" + +#~ msgid "pointer value used where a complex was expected" +#~ msgstr "valeur de pointeur utilise l o un complexe tait attendu" + +#~ msgid "aggregate value used where a complex was expected" +#~ msgstr "valeur d'aggrgat utilise l o un complexe tait attendu" + +#~ msgid "can't convert value to a vector" +#~ msgstr "ne peut convertir une valeur en vecteur" + +#~ msgid "`%s' is not a gcov data file" +#~ msgstr " %s n'est pas un fichier de donnes gcov" + +#~ msgid "`%s' is version `%.4s', expected version `%.4s'" +#~ msgstr " %s est de version %.4s , version %.4s attendue" + +#~ msgid "coverage mismatch for function %u while reading execution counters." +#~ msgstr "non concordance de la couverture pour la fonction %u lors de la lecture des compteurs d'excution" + +#~ msgid "checksum is %x instead of %x" +#~ msgstr "somme de contrle est %x au lieu de %x" + +#~ msgid "number of counters is %d instead of %d" +#~ msgstr "nombre de compteurs est %d au lieu de %d" + +#~ msgid "cannot merge separate %s counters for function %u" +#~ msgstr "ne peut faire la fusion spare des compteurs %s pour la fonction %u" + +#~ msgid "`%s' has overflowed" +#~ msgstr " %s a dborb" + +#~ msgid "`%s' is corrupted" +#~ msgstr " %s est corrompu" + +#~ msgid "file %s not found, execution counts assumed to be zero" +#~ msgstr "fichier %s non repr, compteur d'excution assum tre zro" + +#~ msgid "no coverage for function '%s' found." +#~ msgstr "pas de couverture repre pour la fonction %s " + +#~ msgid "coverage mismatch for function '%s' while reading counter '%s'." +#~ msgstr "non concordance de la couverture pour la fonction %s lors de la lecture des compteurs d'excution %s " + +#~ msgid "cannot open %s" +#~ msgstr "ne peut ouvrir %s" + +#~ msgid "error writing `%s'" +#~ msgstr "erreur d'criture dans %s" + +#~ msgid "\"%s\" is not a valid option to the preprocessor" +#~ msgstr " %s n'est pas une option valide pour le prprocesseur" + +#~ msgid "too many input files" +#~ msgstr "trop de fichiers d'entre" + +# FIXME: Initialis, ou ensembles? +#~ msgid ";; Processing block from %d to %d, %d sets.\n" +#~ msgstr ";; traitement du bloc de %d %d, %d initialiss.\n" + +#~ msgid "%s:%d: confused by earlier errors, bailing out\n" +#~ msgstr "%s:%d: embrouill par les erreurs prcdentes, abandon\n" + +#~ msgid "compilation terminated.\n" +#~ msgstr "compilation termine.\n" + +# FIXME +#~ msgid "Internal compiler error: Error reporting routines re-entered.\n" +#~ msgstr "erreur interne au compilateur : routine de rapport d'erreur prempte.\n" + +#~ msgid "in %s, at %s:%d" +#~ msgstr "dans %s, %s:%d" + +# FIXME +#~ msgid "dominator of %d should be %d, not %d" +#~ msgstr "le dominateur de %d devrait tre %d, et non %d" + +#~ msgid "DW_LOC_OP %s not implemented\n" +#~ msgstr "DW_LOC_OP %s n'est pas implant\n" + +#~ msgid "can't access real part of complex value in hard register" +#~ msgstr "ne peut accder la partie relle d'une valeur complexe dans un registre matriel" + +#~ msgid "can't access imaginary part of complex value in hard register" +#~ msgstr "ne peut accder la partie imaginaire d'une valeur complexe dans un registre matriel" + +#~ msgid "Invalid rtl sharing found in the insn" +#~ msgstr "partage rtl invalide repr dans l'insn" + +#~ msgid "Shared rtx" +#~ msgstr "rtx partag" + +#~ msgid "ICE: emit_insn used where emit_jump_insn needed:\n" +#~ msgstr "ICE : emit_insn utilis l o emit_jump_insn tait attendu :\n" + +#~ msgid "abort in %s, at %s:%d" +#~ msgstr "abandon dans %s, %s:%d" + +#~ msgid "exception handling disabled, use -fexceptions to enable" +#~ msgstr "traitement des exceptions dsactiv, utiliser -fexceptions pour l'activer" + +#~ msgid "argument of `__builtin_eh_return_regno' must be constant" +#~ msgstr "l'argument de __builtin_eh_return_regno doit tre une constante" + +#~ msgid "__builtin_eh_return not supported on this target" +#~ msgstr " __builtin_eh_return n'est pas possible sur cette cible" + +# FIXME +#~ msgid "stack limits not supported on this target" +#~ msgstr "les limites de la pile ne sont pas supportes sur cette cible" + +#~ msgid "function using short complex types cannot be inline" +#~ msgstr "un foncton utilisant un type complex short ne peut tre enligne" + +#~ msgid "%Jprior parameter's size depends on '%D'" +#~ msgstr "%Jtaille du paramtre prcdent dpend de %D " + +#~ msgid "returned value in block_exit_expr" +#~ msgstr "valeur retourne dans block_exit_expr" + +#~ msgid "cannot take the address of an unaligned member" +#~ msgstr "ne peut prendre l'adresse d'un membre non align" + +#~ msgid "negative insn length" +#~ msgstr "longueur ngative insn" + +#~ msgid "could not split insn" +#~ msgstr "n'a pu sparer insn" + +#~ msgid "invalid `asm': " +#~ msgstr " asm invalide: " + +#~ msgid "nested assembly dialect alternatives" +#~ msgstr "assemblage de dialectes alternatifs imbriqus" + +#~ msgid "unterminated assembly dialect alternative" +#~ msgstr "assemblage de dialectes alternatifs non termin" + +#~ msgid "operand number missing after %%-letter" +#~ msgstr "numro d'oprande manquant aprs %%-letter" + +#~ msgid "operand number out of range" +#~ msgstr "nombre d'oprandes hors limite" + +#~ msgid "invalid %%-code" +#~ msgstr "%%-code est invalide" + +#~ msgid "`%%l' operand isn't a label" +#~ msgstr "oprande %%l n'est pas une tiquette" + +#~ msgid "floating constant misused" +#~ msgstr "constante flottante mal utilise" + +#~ msgid "invalid expression as operand" +#~ msgstr "expression invalide comme oprande" + +#~ msgid "function might be possible candidate for attribute `noreturn'" +#~ msgstr "fonction peut tre une possible candidate pour l'attribut norreturn " + +#~ msgid "`noreturn' function does return" +#~ msgstr "fonction avec noreturn effectue des retour" + +#~ msgid "control reaches end of non-void function" +#~ msgstr "contrle a atteint la fin non void de la fonction" + +#~ msgid "Attempt to delete prologue/epilogue insn:" +#~ msgstr "Tentative pour dtruire le prologue/pilogue insn:" + +#~ msgid "comparison is always %d due to width of bit-field" +#~ msgstr "comparaison est toujours %d en raison de la largeur du champ de bits" + +#~ msgid "comparison is always %d" +#~ msgstr "comparaison est toujours %d" + +#~ msgid "`or' of unmatched not-equal tests is always 1" +#~ msgstr " or de tests non pair de non galit est troujours 1" + +#~ msgid "`and' of mutually exclusive equal-tests is always 0" +#~ msgstr " and de tests d'galit mutuellement exclusifs est toujours 0" + +#~ msgid "fold check: original tree changed by fold" +#~ msgstr "vrification fold: arbre originale modifi par fold" + +#~ msgid "%Jsize of variable '%D' is too large" +#~ msgstr "%Jtaille de la variable %D est trop grande" + +#~ msgid "impossible constraint in `asm'" +#~ msgstr "contrainte impossible dans asm " + +#~ msgid "%J'%D' might be used uninitialized in this function" +#~ msgstr "%J %D pourrait tre utilis sans tre initialis dans cette fonction" + +#~ msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" +#~ msgstr "%Jvariable %D pourrait tre maltraite par un longjmp ou un vfork " + +#~ msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" +#~ msgstr "%Jargument %D pourrait tre maltraite par un longjmp ou un vfork " + +#~ msgid "function returns an aggregate" +#~ msgstr "fonction retourne un aggrgat" + +#~ msgid "%Junused parameter '%D'" +#~ msgstr "%Jparamtre %D inutilis" + +#~ msgid "ambiguous abbreviation %s" +#~ msgstr "abrviation %s est ambigu" + +#~ msgid "incomplete `%s' option" +#~ msgstr "option %s est incomplte" + +#~ msgid "missing argument to `%s' option" +#~ msgstr "argument manquant l'option %s " + +#~ msgid "extraneous argument to `%s' option" +#~ msgstr "argument superflu l'option %s " + +#~ msgid "Using built-in specs.\n" +#~ msgstr "Utilisation des specs internes.\n" + +#~ msgid "" +#~ "Setting spec %s to '%s'\n" +#~ "\n" +#~ msgstr "" +#~ "Initialisation des spec %s %s \n" +#~ "\n" + +#~ msgid "Reading specs from %s\n" +#~ msgstr "Lecture des spcification partir de %s\n" + +#~ msgid "specs %%include syntax malformed after %ld characters" +#~ msgstr "syntaxe des specs %%include mal compose aprs %ld caractres" + +#~ msgid "could not find specs file %s\n" +#~ msgstr "ne peut reprer le fichiers des specs %s\n" + +#~ msgid "specs %%rename syntax malformed after %ld characters" +#~ msgstr "specs de la syntaxe %%rename mal composes aprs %ld caractres" + +#~ msgid "specs %s spec was not found to be renamed" +#~ msgstr "specs de la spcification %s n'a pas t trouv pour tre renommer" + +#~ msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" +#~ msgstr "%s: tentative pour renommner la spcification %s un spcification %s dj dfinie" + +#~ msgid "rename spec %s to %s\n" +#~ msgstr "renomm les specs %s %s\n" + +#~ msgid "" +#~ "spec is '%s'\n" +#~ "\n" +#~ msgstr "" +#~ "spec est %s \n" +#~ "\n" + +#~ msgid "specs unknown %% command after %ld characters" +#~ msgstr "specs inconnus de la commande %% aprs %ld caractres" + +#~ msgid "specs file malformed after %ld characters" +#~ msgstr "fichier de specs mal compos aprs %ld caractres" + +#~ msgid "spec file has no spec for linking" +#~ msgstr "fichier de specs n'a pas de spcification pour l'dition de liens" + +#~ msgid "-pipe not supported" +#~ msgstr "-pipe n'est pas support" + +#~ msgid "" +#~ "\n" +#~ "Go ahead? (y or n) " +#~ msgstr "" +#~ "\n" +#~ "Aller de l'avant? (y ou n) " + +#~ msgid "" +#~ "Internal error: %s (program %s)\n" +#~ "Please submit a full bug report.\n" +#~ "See %s for instructions." +#~ msgstr "" +#~ "Erreur internal error: %s (programme %s)\n" +#~ "SVP soumettre un rapport complet d'anomalies.\n" +#~ "Consulter %s pour les instructions." + +#~ msgid "# %s %.2f %.2f\n" +#~ msgstr "# %s %.2f %.2f\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Usage: %s [options] fichier...\n" + +#~ msgid "Options:\n" +#~ msgstr "Options:\n" + +#~ msgid " -pass-exit-codes Exit with highest error code from a phase\n" +#~ msgstr " -pass-exit-codes quitter avec le plus grand code d'erreur de la phase\n" + +#~ msgid " --help Display this information\n" +#~ msgstr " --help afficher l'aide mmoire\n" + +#~ msgid " --target-help Display target specific command line options\n" +#~ msgstr " --target-help afficher les options spcifiques de la ligne de commande\n" + +#~ msgid " (Use '-v --help' to display command line options of sub-processes)\n" +#~ msgstr " (Utiliser -v --help pour afficher les options de la ligne de commande des sous-processus)\n" + +#~ msgid " -dumpspecs Display all of the built in spec strings\n" +#~ msgstr " -dumpspecs afficher tous les construits des chanes de specs\n" + +#~ msgid " -dumpversion Display the version of the compiler\n" +#~ msgstr " -dumpversion afficher la version du compilateur\n" + +#~ msgid " -dumpmachine Display the compiler's target processor\n" +#~ msgstr " -dumpmachine afficher le processeur cibl par le compilateur\n" + +#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n" +#~ msgstr " -print-search-dirs afficher les rpertoires du chemin de recherche du compiltateur\n" + +#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" +#~ msgstr " -print-libgcc-file-name afficher le nom de la bibliothque compagne du compilateur\n" + +#~ msgid " -print-file-name= Display the full path to library \n" +#~ msgstr " -print-file-name= afficher le chemin d'accs complet vers la bibliothque \n" + +#~ msgid " -print-prog-name= Display the full path to compiler component \n" +#~ msgstr " -print-prog-name= afficher le chemin d'accs complet vers le composant du compilateur \n" + +#~ msgid " -print-multi-directory Display the root directory for versions of libgcc\n" +#~ msgstr " -print-multi-directory afficher la racine du rpertoire des version libgcc\n" + +#~ msgid "" +#~ " -print-multi-lib Display the mapping between command line options and\n" +#~ " multiple library search directories\n" +#~ msgstr "" +#~ " -print-multi-lib Afficher la table de projection entre les options de\n" +#~ " la ligne de commande et les multiples rpertoires de\n" +#~ " recherches des bibliothques\n" + +#~ msgid " -print-multi-os-directory Display the relative path to OS libraries\n" +#~ msgstr " -print-multi-os-directory afficher le chemin relatif du rpertoire vers les librairies de l'OS\n" + +#~ msgid " -Wa, Pass comma-separated on to the assembler\n" +#~ msgstr " -Wa, passer les spares par des virgules l'assembleur\n" + +#~ msgid " -Wp, Pass comma-separated on to the preprocessor\n" +#~ msgstr " -Wp, passer les spares par des virgules au prprocesseur\n" + +#~ msgid " -Wl, Pass comma-separated on to the linker\n" +#~ msgstr " -Wl, passer les spares par des virgules l'diteur de liens\n" + +#~ msgid " -Xassembler Pass on to the assembler\n" +#~ msgstr " -Xassembler passer l'ument l'assembleur\n" + +#~ msgid " -Xpreprocessor Pass on to the preprocessor\n" +#~ msgstr " -Xpreprocessor passer l'ument au pr-processeur\n" + +#~ msgid " -Xlinker Pass on to the linker\n" +#~ msgstr " -Xlinker passer l' l'diteur de liens\n" + +#~ msgid " -save-temps Do not delete intermediate files\n" +#~ msgstr " -save-temps ne pas dtruire les fichiers intermdiaires\n" + +#~ msgid " -pipe Use pipes rather than intermediate files\n" +#~ msgstr " -pipe utiliser des pipes au lieu de fichiers intermdiares\n" + +#~ msgid " -time Time the execution of each subprocess\n" +#~ msgstr " -time mesurer le temps d'excution de chaque sous-processus\n" + +#~ msgid " -specs= Override built-in specs with the contents of \n" +#~ msgstr " -specs= craser les specs internes l'aide du contenu du \n" + +#~ msgid " -std= Assume that the input sources are for \n" +#~ msgstr " -std= Prsumer que les fichiers sources respectent le \n" + +#~ msgid " -B Add to the compiler's search paths\n" +#~ msgstr " -B ajouter le aux chemins de recherche du compilateur\n" + +#~ msgid " -b Run gcc for target , if installed\n" +#~ msgstr " -b excuter gcc pour la cible, si install\n" + +#~ msgid " -V Run gcc version number , if installed\n" +#~ msgstr " -V excuter le numro de de gcc, si installe\n" + +#~ msgid " -v Display the programs invoked by the compiler\n" +#~ msgstr " -v afficher les programmes invoqus par le compilateur\n" + +#~ msgid " -### Like -v but options quoted and commands not executed\n" +#~ msgstr " -### identique -v mais les options et les commandes entre guillemets ne sont pas excutes\n" + +#~ msgid " -E Preprocess only; do not compile, assemble or link\n" +#~ msgstr " -E pr-traiter seulement; ne pas compiler, assembler ou diter les liens\n" + +#~ msgid " -S Compile only; do not assemble or link\n" +#~ msgstr " -S compiler seulement; ne pas assembler ou diter les liens\n" + +#~ msgid " -c Compile and assemble, but do not link\n" +#~ msgstr " -S compiler et assembler, mais ne pas diter les liens\n" + +#~ msgid " -o Place the output into \n" +#~ msgstr " -o placer la sortie dans le \n" + +#~ msgid "" +#~ " -x 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 spcifier le langage des fichiers suivants d'entre\n" +#~ " Les langages permis sont: c c++ assembler none\n" +#~ " none signifiant d'utiliser le comportement par dfaut\n" +#~ " en tentant d'identifier le langage par l'extension du fichier\n" + +#~ msgid "" +#~ "\n" +#~ "Options starting with -g, -f, -m, -O, -W, or --param are automatically\n" +#~ " passed on to the various sub-processes invoked by %s. In order to pass\n" +#~ " other options on to these processes the -W options must be used.\n" +#~ msgstr "" +#~ "\n" +#~ "Options dbutant par -g, -f, -m, -O, -W, ou --param sont automatiquement\n" +#~ " passs aux divers sous-processus invoqus par %s. Afin de passer\n" +#~ " les autres options ces processus l'option -W doit tre utilis.\n" + +#~ msgid "`-%c' option must have argument" +#~ msgstr "l'option -%c require un argument" + +#~ msgid "couldn't run `%s': %s" +#~ msgstr "impossible d'excuter %s : %s" + +#~ msgid "%s (GCC) %s\n" +#~ msgstr "%s (GCC) %s\n" + +#~ msgid "(C)" +#~ msgstr "" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +#~ "\n" +#~ msgstr "" +#~ "Ce logiciel est libre; voir les sources pour les conditions de copie. Il n'y a PAS\n" +#~ "GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.\n" +#~ "\n" + +#~ msgid "argument to `-Xlinker' is missing" +#~ msgstr "argument de -Xlinker est manquant" + +#~ msgid "argument to `-Xpreprocessor' is missing" +#~ msgstr "argument de -Xpreprocessor est manquant" + +#~ msgid "argument to `-Xassembler' is missing" +#~ msgstr "argument de -Xassembler est manquant" + +#~ msgid "argument to `-l' is missing" +#~ msgstr "argument pour -l est manquant" + +#~ msgid "argument to `-specs' is missing" +#~ msgstr "argument de -specs est manquant" + +#~ msgid "argument to `-specs=' is missing" +#~ msgstr "argument de -specs= est manquant" + +#~ msgid "`-%c' must come at the start of the command line" +#~ msgstr " -%c doit apparatre au dbut de la ligne de commande" + +#~ msgid "argument to `-B' is missing" +#~ msgstr "argument de -B est manquant" + +#~ msgid "warning: -pipe ignored because -save-temps specified" +#~ msgstr "AVERTISSEMENT: -pipe ignor parce que -save-temps a t spcifi" + +#~ msgid "warning: -pipe ignored because -time specified" +#~ msgstr "AVERTISSEMENT: -pipe ignor parce que -time a t spcifi" + +#~ msgid "argument to `-x' is missing" +#~ msgstr "argument pour -x est manquant" + +#~ msgid "argument to `-%s' is missing" +#~ msgstr "argument pour -%s est manquant" + +#~ msgid "warning: `-x %s' after last input file has no effect" +#~ msgstr "AVERTISSEMENT: -x %s aprs le dernier fichier d'entre n'a pas d'effet" + +#~ msgid "invalid specification! Bug in cc" +#~ msgstr "spcification invalide! Bug dans cc." + +#~ msgid "%s\n" +#~ msgstr "%s\n" + +#~ msgid "spec failure: '%%*' has not been initialized by pattern match" +#~ msgstr "chec du spec: %%* n'a pas t initialis par concordance du canevas" + +#~ msgid "warning: use of obsolete %%[ operator in specs" +#~ msgstr "AVERTISSEMENT: utilisation obsolte de l'oprateur %%[ dans les specs" + +#~ msgid "Processing spec %c%s%c, which is '%s'\n" +#~ msgstr "Traitement du spec %c%s%c, lequel est %s \n" + +#~ msgid "spec failure: unrecognized spec option '%c'" +#~ msgstr "chec de spec: option %c de spec non reconnue" + +#~ msgid "unknown spec function `%s'" +#~ msgstr "spcification de fonction inconnue %s :" + +#~ msgid "error in args to spec function `%s'" +#~ msgstr "ERREUR d'arguments pour la spcification de fonction %s " + +#~ msgid "malformed spec function name" +#~ msgstr "nom de spcification de fonction mal compos" + +#~ msgid "no arguments for spec function" +#~ msgstr "aucun argument pour la spcification de fonction" + +#~ msgid "malformed spec function arguments" +#~ msgstr "arguments de spcification de fonction mal composs" + +#~ msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." +#~ msgstr "chec de spcification: plus d'un argument SYSROOT_SUFFIX_SPEC." + +#~ msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." +#~ msgstr "chec de spcification: plus d'un argument SYSROOT_HEADERS_SUFFIX_SPEC." + +#~ msgid "unrecognized option `-%s'" +#~ msgstr "option -%s non reconnue" + +#~ msgid "install: %s%s\n" +#~ msgstr "installs: %s%s\n" + +#~ msgid "programs: %s\n" +#~ msgstr "programmes: %s\n" + +#~ msgid "libraries: %s\n" +#~ msgstr "libraries: %s\n" + +#~ msgid "" +#~ "\n" +#~ "For bug reporting instructions, please see:\n" +#~ msgstr "" +#~ "\n" +#~ "Pour les instructons afin de rapporter des anomales, SVP consulter:\n" + +#~ msgid "Configured with: %s\n" +#~ msgstr "Configur avec: %s\n" + +#~ msgid "Thread model: %s\n" +#~ msgstr "Modle de thread: %s\n" + +#~ msgid "gcc version %s\n" +#~ msgstr "version gcc %s\n" + +#~ msgid "gcc driver version %s executing gcc version %s\n" +#~ msgstr "version du pilote gcc %s excutant le version %s de gcc\n" + +#~ msgid "no input files" +#~ msgstr "pas de fichier l'entre" + +#~ msgid "%s: linker input file unused because linking not done" +#~ msgstr "%s: fichier d'entre d'dition de liens n'est pas utilis parce l'dition de lien n'a pas t faite" + +#~ msgid "cannot specify -o with -c or -S and multiple languages" +#~ msgstr "ne peut spcifier -o avec -c ou -S et de multiples langages" + +#~ msgid "%s: %s compiler not installed on this system" +#~ msgstr "%s: %s compilateur n'est pas install sur ce systme" + +#~ msgid "language %s not recognized" +#~ msgstr "language %s n'est pas reconnu" + +#~ msgid "internal gcc abort" +#~ msgstr "abandon interne de gcc" + +#~ msgid "Internal gcov abort.\n" +#~ msgstr "Abandon interne de gcov.\n" + +#~ msgid "" +#~ "Usage: gcov [OPTION]... SOURCEFILE\n" +#~ "\n" +#~ msgstr "" +#~ "Usage: gcov [OPTION]... FICHIER-SOURCE\n" +#~ "\n" + +#~ msgid "" +#~ "Print code coverage information.\n" +#~ "\n" +#~ msgstr "" +#~ "Produire les informations de la couverture du code.\n" +#~ "\n" + +#~ msgid " -h, --help Print this help, then exit\n" +#~ msgstr " -h, --help afficher l'aide mmoire\n" + +#~ msgid " -v, --version Print version number, then exit\n" +#~ msgstr " -v, --version excuter le numro de de gcc, si installe\n" + +#~ msgid " -a, --all-blocks Show information for every basic block\n" +#~ msgstr " -a, --all-blocks afficher l'information pour chaque bloc de base\n" + +#~ msgid " -b, --branch-probabilities Include branch probabilities in output\n" +#~ msgstr " -b, --branch-probabilities inclure les probabilits de branchement dans la sortie\n" + +#~ msgid "" +#~ " -c, --branch-counts Given counts of branches taken\n" +#~ " rather than percentages\n" +#~ msgstr "" +#~ " -c, --branch-counts donner le dcompte de branchements pris\n" +#~ " plutt que les pourcentages\n" + +#~ msgid " -n, --no-output Do not create an output file\n" +#~ msgstr " -n, --no-output ne crer de fichier de sortie\n" + +#~ msgid "" +#~ " -l, --long-file-names Use long output file names for included\n" +#~ " source files\n" +#~ msgstr "" +#~ " -l, --long-file-names utiliser des longs noms de fichiers pour\n" +#~ " les fichier sources d'inclusion\n" + +#~ msgid " -f, --function-summaries Output summaries for each function\n" +#~ msgstr " -f, --function-summaries produire un sommaire pour chaque fonction\n" + +#~ msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n" +#~ msgstr " -o, --object-directory RP|FICHIERS rechercher les fichiers objets dans le RPertoire ou appells FICHIERS\n" + +#~ msgid " -p, --preserve-paths Preserve all pathname components\n" +#~ msgstr " -p, --preserve-paths prserver tous les composants des chemins d'accs\n" + +#~ msgid " -u, --unconditional-branches Show unconditional branch counts too\n" +#~ msgstr " -u, --unconditional-branches afficher les compteurs de branchement inconditionnel aussi\n" + +#~ msgid "" +#~ "\n" +#~ "For bug reporting instructions, please see:\n" +#~ "%s.\n" +#~ msgstr "" +#~ "\n" +#~ "Pour les instructons afin de rapporter des anomales, SVP consulter:\n" +#~ "%s.\n" + +#~ msgid "gcov (GCC) %s\n" +#~ msgstr "gcov (GCC) %s\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions.\n" +#~ "There is NO warranty; not even for MERCHANTABILITY or \n" +#~ "FITNESS FOR A PARTICULAR PURPOSE.\n" +#~ "\n" +#~ msgstr "" +#~ "Ce logiciel est libre; voir les sources pour les conditions de copie. \n" +#~ "Il n'y a PAS GARANTIE; ni implicite pour le MARCHANDAGE ou\n" +#~ "pour un BUT PARTICULIER.\n" +#~ "\n" + +#~ msgid "%s:no functions found\n" +#~ msgstr "%s: aucune fonction repre\n" + +# I18N +#~ msgid "\n" +#~ msgstr "\n" + +#~ msgid "%s:creating `%s'\n" +#~ msgstr "%s: cration de %s \n" + +#~ msgid "%s:error writing output file `%s'\n" +#~ msgstr "%s: ERREUR d'criture dans le fichier de sortie %s .\n" + +#~ msgid "%s:could not open output file `%s'\n" +#~ msgstr "%s: ne peut ouvrir le fichier de sortie %s .\n" + +#~ msgid "%s:cannot open graph file\n" +#~ msgstr "%s: ne peut ouvrir le fichier de graphe\n" + +#~ msgid "%s:not a gcov graph file\n" +#~ msgstr "%s: n'est pas un fichier de graphe gcov\n" + +#~ msgid "%s:version `%.4s', prefer `%.4s'\n" +#~ msgstr "%s:version %.4s , prfre %.4s \n" + +#~ msgid "%s:already seen blocks for `%s'\n" +#~ msgstr "%s:blocs dj vus pour %s \n" + +#~ msgid "%s:corrupted\n" +#~ msgstr "%s:corrompu\n" + +#~ msgid "%s:cannot open data file\n" +#~ msgstr "%s: ne peut ouvrir le fichier de donnes\n" + +#~ msgid "%s:not a gcov data file\n" +#~ msgstr "%s: n'est pas un fichier de donnes gcov\n" + +#~ msgid "%s:version `%.4s', prefer version `%.4s'\n" +#~ msgstr "%s:version %.4s , prfre la version %.4s \n" + +#~ msgid "%s:stamp mismatch with graph file\n" +#~ msgstr "%s: estampille ne concorde par avec le fichier de graphe\n" + +#~ msgid "%s:unknown function `%u'\n" +#~ msgstr "%s: fonction inconnue %u \n" + +#~ msgid "%s:profile mismatch for `%s'\n" +#~ msgstr "%s: profile ne concorde pas pour %s \n" + +#~ msgid "%s:overflowed\n" +#~ msgstr "%s: dbordement\n" + +#~ msgid "%s:`%s' lacks entry and/or exit blocks\n" +#~ msgstr "%s: %s manque de blocs d'entre et/ou de sortie\n" + +#~ msgid "%s:`%s' has arcs to entry block\n" +#~ msgstr "%s: %s possde des arcs vers un bloc d'entre\n" + +#~ msgid "%s:`%s' has arcs from exit block\n" +#~ msgstr "%s: %s possdes des arcs partir du bloc de sortie\n" + +#~ msgid "%s:graph is unsolvable for `%s'\n" +#~ msgstr "%s: graphe n'a pas de solution pour %s \n" + +#~ msgid "%s `%s'\n" +#~ msgstr "%s %s \n" + +#~ msgid "Lines executed:%s of %d\n" +#~ msgstr "Lignes excutes: %s de %d\n" + +#~ msgid "No executable lines" +#~ msgstr "Auncue ligne excutable" + +#~ msgid "Branches executed:%s of %d\n" +#~ msgstr "Branchements excuts: %s de %d\n" + +#~ msgid "Taken at least once:%s of %d\n" +#~ msgstr "Branchements pris au moins une fois: %s de %d\n" + +#~ msgid "No branches\n" +#~ msgstr "Pas de branchement\n" + +#~ msgid "Calls executed:%s of %d\n" +#~ msgstr "Appels excuts: %s de %d\n" + +#~ msgid "No calls\n" +#~ msgstr "Pas d'appel\n" + +#~ msgid "%s:no lines for `%s'\n" +#~ msgstr "%s: pas de ligne pour %s \n" + +#~ msgid "call %2d returned %s\n" +#~ msgstr "appel %2d a retourn %s\n" + +# FIXME: c'est de l'assembleur ? +#~ msgid "call %2d never executed\n" +#~ msgstr "call %2d n'est jamais t excut\n" + +#~ msgid "branch %2d taken %s%s\n" +#~ msgstr "branchement %2d a pris %s%s\n" + +#~ msgid "branch %2d never executed\n" +#~ msgstr "branchement %2d n'a jamais t excut\n" + +#~ msgid "unconditional %2d taken %s\n" +#~ msgstr "inconditionnel %2d a pris %s\n" + +# FIXME: c'est de l'assembleur ? +#~ msgid "unconditional %2d never executed\n" +#~ msgstr "inconditionnel %2d n'a jamais t excut\n" + +#~ msgid "%s:cannot open source file\n" +#~ msgstr "%s: ne peut ouvrir le fichier source\n" + +#~ msgid "%s:source file is newer than graph file `%s'\n" +#~ msgstr "%s: fichier source est plus rcent que le fichier graphe %s \n" + +#~ msgid "GCSE disabled" +#~ msgstr "GCSE dsactiv" + +#~ msgid "NULL pointer checks disabled" +#~ msgstr "vrification des pointeurs NULS dsactive" + +#~ msgid "jump bypassing disabled" +#~ msgstr "saut d'vitement dsactiv" + +#~ msgid "%s: %d basic blocks and %d edges/basic block" +#~ msgstr "%s: %d blocs de base et %d blocs edges/basic" + +#~ msgid "%s: %d basic blocks and %d registers" +#~ msgstr "%s: %d blocs basic et %d registres" + +#~ msgid "can't write PCH file: %m" +#~ msgstr "ne peut crire le fichier PCH: %m" + +#~ msgid "can't get position in PCH file: %m" +#~ msgstr "ne peut obtenir la position dans le fichier PCH: %m" + +#~ msgid "can't write padding to PCH file: %m" +#~ msgstr "ne peut crire de remplissage dans le fichier PCH: %m" + +#~ msgid "can't read PCH file: %m" +#~ msgstr "ne peut lire le fichier PCH: %m" + +#~ msgid "had to relocate PCH" +#~ msgstr "a d relocaliser PCH" + +#~ msgid "open /dev/zero: %m" +#~ msgstr "ouverture de /dev/zero: %m" + +#~ msgid "can't write PCH file" +#~ msgstr "ne peut crire dans le fichier PCH" + +#~ msgid "Generating PCH files is not supported when using ggc-simple.c" +#~ msgstr "Gnration des ficheirs PCH n'est pas support lors de l'utilisation de ggc-simple.c" + +#~ msgid "%s cannot be used in asm here" +#~ msgstr "%s ne peut tre utilis dans asm ici" + +#~ msgid "can't open %s: %m" +#~ msgstr "ne peut ouvrir %s: %m" + +#~ msgid "fix_sched_param: unknown param: %s" +#~ msgstr "fix_sched_param: paramtre inconnu: %s" + +#~ msgid "function cannot be inline" +#~ msgstr "fonction ne pas pas tre enligne" + +#~ msgid "varargs function cannot be inline" +#~ msgstr "varargs de fonction ne peuvent par tre enligne" + +#~ msgid "function using alloca cannot be inline" +#~ msgstr "fonction utilisant alloca ne pas pas tre enligne" + +#~ msgid "function using longjmp cannot be inline" +#~ msgstr "fonction utilisant longjmp ne peut pas tre enligne" + +#~ msgid "function using setjmp cannot be inline" +#~ msgstr "fonction utilisant setjmp ne peut pas tre enligne" + +#~ msgid "function uses __builtin_eh_return" +#~ msgstr "fonction utilise __builtin_eh_return " + +#~ msgid "function with nested functions cannot be inline" +#~ msgstr "fonction avec fonctions imbriques ne peut pas tre enligne" + +#~ msgid "function with label addresses used in initializers cannot inline" +#~ msgstr "un fonction avec tiquette d'adresses utilise pour l'initialisation ne peut pas tre enligne (inline)" + +#~ msgid "function too large to be inline" +#~ msgstr "fonction trop grande pour tre enligne" + +#~ msgid "no prototype, and parameter address used; cannot be inline" +#~ msgstr "pas de prototpe, et de adresse de paramtre utilise; ne peut pas tre enligne" + +#~ msgid "inline functions not supported for this return value type" +#~ msgstr "fonctions enligne ne peuvent pas tre supportes pour ce type de valeur retourne" + +#~ msgid "function with varying-size return value cannot be inline" +#~ msgstr "fonction avec une valeur retourne de taille variable ne peut pas tre enligne" + +#~ msgid "function with varying-size parameter cannot be inline" +#~ msgstr "fonction avec un paramtre de taille variable ne peut pas tre enligne" + +#~ msgid "function with transparent unit parameter cannot be inline" +#~ msgstr "fonction avec une unit transparente de paramtre ne peut pas tre enligne" + +#~ msgid "function with computed jump cannot inline" +#~ msgstr "fonction avec un saut calcul ne peut pas tre enligne" + +#~ msgid "function with nonlocal goto cannot be inline" +#~ msgstr "fonction avec un goto non local ne peut pas tre enligne" + +#~ msgid "function with target specific attribute(s) cannot be inlined" +#~ msgstr "fonction avec des attributs spcifiques la cible ne peut pas tre enligne" + +# FIXME: c'est de l'assembleur ? +#~ msgid "%Hwill never be executed" +#~ msgstr "%Hne sera jamais excut" + +#~ msgid "This switch lacks documentation" +#~ msgstr "Cette option manque de documentation" + +#~ msgid "command line option \"%s\" is valid for %s but not for %s" +#~ msgstr "l'option de la ligne de commande \"%s\" est valide pour %s mais pas pour %s" + +#~ msgid "missing argument to \"%s\"" +#~ msgstr "argument manquant \"%s\"" + +#~ msgid "argument to \"%s\" should be a non-negative integer" +#~ msgstr "argument de \"%s\" doit tre un entier non ngatif" + +#~ msgid "unrecognized command line option \"%s\"" +#~ msgstr "option \"%s\" de la ligne de commande non reconnue" + +#~ msgid "-Wuninitialized is not supported without -O" +#~ msgstr "-Wuninitialized n'est pas support sans -O" + +#~ msgid "unrecognized register name \"%s\"" +#~ msgstr "nom de registre non reconnue \"%s\"" + +#~ msgid "unknown tls-model \"%s\"" +#~ msgstr "tls-model \"%s\" inconnu" + +#~ msgid "-fwritable-strings is deprecated; see documentation for details" +#~ msgstr "-fwritable-strings est obsolte, voir la documentation pour les dtails" + +#~ msgid "%s: --param arguments should be of the form NAME=VALUE" +#~ msgstr "%s: arguments de --param devrait tre de la forme NOM=VALEUR" + +#~ msgid "invalid --param value `%s'" +#~ msgstr "valeur de --param invalide %s " + +#~ msgid "target system does not support debug output" +#~ msgstr "le ssytme cible ne supporte pas la sortie pour mise au point" + +#~ msgid "debug format \"%s\" conflicts with prior selection" +#~ msgstr "le format de mise au point \"%s\" entre en conflit avec une slection prcdente" + +#~ msgid "unrecognised debug output level \"%s\"" +#~ msgstr "niveau de sortie de mise au point non reconnu \"%s\"" + +#~ msgid "debug output level %s is too high" +#~ msgstr "niveau de sortie de mise au point %s est trop lev" + +#~ msgid "The following options are language-independent:\n" +#~ msgstr "Les options suivantes sont indpendantes du langage:\n" + +#~ msgid "" +#~ "The %s front end recognizes the following options:\n" +#~ "\n" +#~ msgstr "" +#~ "L'interface %s reconnat les options suivantes:\n" +#~ "\n" + +#~ msgid "The --param option recognizes the following as parameters:\n" +#~ msgstr "L'option --param reconnat les paramtres suivant:\n" + +#~ msgid "invalid parameter `%s'" +#~ msgstr "paramtre invalide %s " + +#~ msgid "corrupted profile info: run_max * runs < sum_max" +#~ msgstr "profile info corrompu: run_max * runs < sum_max" + +#~ msgid "corrupted profile info: sum_all is smaller than sum_max" +#~ msgstr "info profile corrompu: sum_all est plus petit que sum_max" + +#~ msgid "corrupted profile info: edge from %i to %i exceeds maximal count" +#~ msgstr "info de profilage corrompu: bordure (edge) %i %i excde le compte maximal" + +#~ msgid "corrupted profile info: number of iterations for basic block %d thought to be %i" +#~ msgstr "info de profilage corrompu: nombre d'itrations pour un bloc basic %d devrait tre %i" + +#~ msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i" +#~ msgstr "info de profilage corrompu: nombre d'excutions pour bordures (edge) %d-%d devrait tre %i" + +#~ msgid "%s: internal abort\n" +#~ msgstr "%s: abandon interne\n" + +#~ msgid "%s: error writing file `%s': %s\n" +#~ msgstr "%s: erreur d'criture au fichier %s : %s\n" + +#~ msgid "%s: usage '%s [ -VqfnkN ] [ -i ] [ filename ... ]'\n" +#~ msgstr "%s: usage %s [ -VqfnkN ] [ -i ] [ nom-de-fichier ... ] \n" + +#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B ] [ filename ... ]'\n" +#~ msgstr "%s: usage %s [ -VqfnkNlgC ] [ -B ] [ nom-de-fichier ... ] \n" + +#~ msgid "%s: warning: no read access for file `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: aucun accs en lecture du fichier %s \n" + +#~ msgid "%s: warning: no write access for file `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: aucun accs en criture du fichier %s \n" + +#~ msgid "%s: warning: no write access for dir containing `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: aucun accs en criture du rpertoire contenant %s \n" + +#~ msgid "%s: invalid file name: %s\n" +#~ msgstr "%s: nom de fichier invalide: %s\n" + +#~ msgid "%s: %s: can't get status: %s\n" +#~ msgstr "%s: %s: ne peut obtenir l'tat: %s\n" + +#~ msgid "" +#~ "\n" +#~ "%s: fatal error: aux info file corrupted at line %d\n" +#~ msgstr "" +#~ "\n" +#~ "%s: erreur fatale: fichier auxiliaire d'infos la ligne %d\n" + +#~ msgid "%s:%d: declaration of function `%s' takes different forms\n" +#~ msgstr "%s:%d: dclaration de fonction %s prend diffrentes formes\n" + +#~ msgid "%s: compiling `%s'\n" +#~ msgstr "%s: en compilation %s \n" + +#~ msgid "%s: wait: %s\n" +#~ msgstr "%s: en attente: %s\n" + +#~ msgid "%s: subprocess got fatal signal %d\n" +#~ msgstr "%s: sous-processus a reu le signal fatal %d\n" + +#~ msgid "%s: %s exited with status %d\n" +#~ msgstr "%s: %s a termin avec le statut %d\n" + +#~ msgid "%s: warning: missing SYSCALLS file `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: fichier des SYSCALLS %s est manquant\n" + +#~ msgid "%s: can't read aux info file `%s': %s\n" +#~ msgstr "%s: ne peut lire le fichier auxiliaire d'infos %s : %s\n" + +#~ msgid "%s: can't get status of aux info file `%s': %s\n" +#~ msgstr "%s: ne peut obtenir l'tat du fichier auxiliaire d'infos %s : %s\n" + +#~ msgid "%s: can't open aux info file `%s' for reading: %s\n" +#~ msgstr "%s: ne peut ouvrir le fichier auxiliaire d'infos %s en lecture: %s\n" + +#~ msgid "%s: error reading aux info file `%s': %s\n" +#~ msgstr "%s: erreur lors de la lecture du fichier auxilaire d'infos %s : %s\n" + +#~ msgid "%s: error closing aux info file `%s': %s\n" +#~ msgstr "%s: erreur lors de la fermeture du fichier auxiliaire d'infos %s : %s\n" + +#~ msgid "%s: can't delete aux info file `%s': %s\n" +#~ msgstr "%s: ne peut dtruire le fichier auxiliaire d'infos %s : %s\n" + +#~ msgid "%s: can't delete file `%s': %s\n" +#~ msgstr "%s: ne peut dtruire le fichier %s : %s\n" + +#~ msgid "%s: warning: can't rename file `%s' to `%s': %s\n" +#~ msgstr "%s: AVERTISSEMENT: ne peut renommer le fichier %s %s : %s\n" + +#~ msgid "%s: conflicting extern definitions of '%s'\n" +#~ msgstr "%s: dfinitions externes conflictuelles de %s \n" + +#~ msgid "%s: declarations of '%s' will not be converted\n" +#~ msgstr "%s: dclarations de %s ne seront pas converties\n" + +#~ msgid "%s: conflict list for '%s' follows:\n" +#~ msgstr "%s: liste conflictuelle pour %s suit:\n" + +#~ msgid "%s: warning: using formals list from %s(%d) for function `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: using la liste des formels de %s(%d) pour la fonction %s \n" + +#~ msgid "%s: %d: `%s' used but missing from SYSCALLS\n" +#~ msgstr "%s: %d: %s utilis mais manquant dans les SYSCALLS\n" + +#~ msgid "%s: %d: warning: no extern definition for `%s'\n" +#~ msgstr "%s: %d: AVERTISSEMENT: pas de dfinition externe pour %s \n" + +#~ msgid "%s: warning: no static definition for `%s' in file `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: pas de dfinition statique pour %s dans le fichier %s \n" + +#~ msgid "%s: multiple static defs of `%s' in file `%s'\n" +#~ msgstr "%s: multiples dfinitions statiques de %s dans le fichier %s \n" + +#~ msgid "%s: %d: warning: source too confusing\n" +#~ msgstr "%s: %d: AVERTISSEMENT: trop de confusions dans le source\n" + +#~ msgid "%s: %d: warning: varargs function declaration not converted\n" +#~ msgstr "%s: %d: AVERTISSEMENT: dclaration de varargs de fonction non convertis\n" + +#~ msgid "%s: declaration of function `%s' not converted\n" +#~ msgstr "%s: dclaration de la fonction %s non convertie\n" + +#~ msgid "%s: warning: too many parameter lists in declaration of `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: trop de paramtres de listes dans la dclaration de %s \n" + +#~ msgid "" +#~ "\n" +#~ "%s: warning: too few parameter lists in declaration of `%s'\n" +#~ msgstr "" +#~ "\n" +#~ "%s: AVERTISSEMENT: trop peu de paramtres de listes dans la dclaration de %s \n" + +#~ msgid "%s: %d: warning: found `%s' but expected `%s'\n" +#~ msgstr "%s: %d: AVERTISSEMENT: a obtenu %s mais attendait %s \n" + +#~ msgid "%s: local declaration for function `%s' not inserted\n" +#~ msgstr "%s: dclaration locale pour la fonction %s n'a pas t insre\n" + +#~ msgid "" +#~ "\n" +#~ "%s: %d: warning: can't add declaration of `%s' into macro call\n" +#~ msgstr "" +#~ "\n" +#~ "%s: %d: AVERTISSEMENT: ne peut ajouter une dclaration de %s dans l'appel macro\n" + +#~ msgid "%s: global declarations for file `%s' not inserted\n" +#~ msgstr "%s: dclarations globale du fichier %s n'ont pas t insres\n" + +#~ msgid "%s: definition of function `%s' not converted\n" +#~ msgstr "%s: dfinition de la fonction %s n'a pas t convertie\n" + +#~ msgid "%s: %d: warning: definition of %s not converted\n" +#~ msgstr "%s: %d: AVERTISSEMENT: dfinition de %s n'a pas t convertie\n" + +#~ msgid "%s: found definition of `%s' at %s(%d)\n" +#~ msgstr "%s: dfinition de %s trouv %s(%d)\n" + +#~ msgid "%s: %d: warning: `%s' excluded by preprocessing\n" +#~ msgstr "%s: %d: AVERTISSEMENT: %s exclu par le prprocesseur\n" + +#~ msgid "%s: function definition not converted\n" +#~ msgstr "%s: dfinition de fonction n'a pas t convertie\n" + +#~ msgid "%s: `%s' not converted\n" +#~ msgstr "%s: %s n'a pas t converti\n" + +#~ msgid "%s: would convert file `%s'\n" +#~ msgstr "%s: devrait convertir le fichier %s \n" + +#~ msgid "%s: converting file `%s'\n" +#~ msgstr "%s: conversion du fichier %s \n" + +#~ msgid "%s: can't get status for file `%s': %s\n" +#~ msgstr "%s: ne peut obtenur l'tat du fichier %s : %s\n" + +#~ msgid "%s: can't open file `%s' for reading: %s\n" +#~ msgstr "%s: ne peut ouvrir le fichier %s en lecture: %s\n" + +#~ msgid "" +#~ "\n" +#~ "%s: error reading input file `%s': %s\n" +#~ msgstr "" +#~ "\n" +#~ "%s: erreur de lecture du fichier d'entre %s : %s\n" + +#~ msgid "%s: can't create/open clean file `%s': %s\n" +#~ msgstr "%s: ne peut crer/ouvrir un fichier propre %s : %s\n" + +#~ msgid "%s: warning: file `%s' already saved in `%s'\n" +#~ msgstr "%s: AVERTISSEMENT: fichier %s est dj sauvegard dans %s \n" + +#~ msgid "%s: can't link file `%s' to `%s': %s\n" +#~ msgstr "%s: ne peut lier le fichier %s %s : %s\n" + +#~ msgid "%s: can't create/open output file `%s': %s\n" +#~ msgstr "%s: ne peut crer/ouvrier le fichier de sortie %s : %s\n" + +#~ msgid "%s: can't change mode of file `%s': %s\n" +#~ msgstr "%s: ne peut changer le mode du fichier %s : %s\n" + +#~ msgid "%s: cannot get working directory: %s\n" +#~ msgstr "%s: ne peut reprer le rpertoire de travail: %s\n" + +#~ msgid "%s: input file names must have .c suffixes: %s\n" +#~ msgstr "%s: noms de fichiers d'entre doivent avoir le suffixe .c: %s\n" + +#~ msgid "Didn't find a coloring.\n" +#~ msgstr "N'a pas repr une coloration.\n" + +#~ msgid "output constraint %d must specify a single register" +#~ msgstr "Contrainte de sortie %d doit spcifier un simple registre" + +#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber" +#~ msgstr "contrainte de sortie %d ne doit pas tre spcifi avec %s clobber" + +#~ msgid "output regs must be grouped at top of stack" +#~ msgstr "registres de sortie doivent tre regroups au haut de la pile" + +#~ msgid "implicitly popped regs must be grouped at top of stack" +#~ msgstr "les registres implicitement dpils doivent tre groups au haut de la pile" + +#~ msgid "output operand %d must use `&' constraint" +#~ msgstr "oprande de sortie %d doit utiliser la contrainte & " + +#~ msgid "can't use '%s' as a %s register" +#~ msgstr "ne peut utiliser %s comme le registre %s" + +#~ msgid "unknown register name: %s" +#~ msgstr "nom de registre inconnu: %s" + +#~ msgid "global register variable follows a function definition" +#~ msgstr "variable registre globale suit la dfinition d'une fonction" + +#~ msgid "register used for two global register variables" +#~ msgstr "registre utilis pour deux variables registres globales" + +#~ msgid "call-clobbered register used for global register variable" +#~ msgstr "registre maltrait par un appel utilis par un variable registre globale" + +#~ msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)" +#~ msgstr "validate_value_data: [%u] next_regno erron pour une chane vide (%u)" + +#~ msgid "validate_value_data: Loop in regno chain (%u)" +#~ msgstr "validate_value_data: boucle dans la chane regno (%u)" + +#~ msgid "validate_value_data: [%u] Bad oldest_regno (%u)" +#~ msgstr "validate_value_data: [%u] oldest_regno erron (%u)" + +#~ msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)" +#~ msgstr "validate_value_data: [%u] registre non vide dans la chane (%s %u %i)" + +#~ msgid "cannot reload integer constant operand in `asm'" +#~ msgstr "ne peut recharger l'oprande de constante entire dans asm " + +#~ msgid "impossible register constraint in `asm'" +#~ msgstr "impossible de contraindre les registres en asm " + +#~ msgid "`&' constraint used with no register class" +#~ msgstr "contrainte & utilis sans classe registre" + +#~ msgid "unable to generate reloads for:" +#~ msgstr "incapable de gnrer des recharges pour:" + +#~ msgid "inconsistent operand constraints in an `asm'" +#~ msgstr "contrainte d'oprande inconsistente en asm " + +#~ msgid "frame size too large for reliable stack checking" +#~ msgstr "taille de trame trop grande pour une vrification fiable de la pile" + +#~ msgid "try reducing the number of local variables" +#~ msgstr "essayer de rduire le nombre de variables locales" + +#~ msgid "can't find a register in class `%s' while reloading `asm'" +#~ msgstr "ne peut reprer un registre dans la classe %s durant le rechargement asm " + +#~ msgid "unable to find a register to spill in class `%s'" +#~ msgstr "incapable de trouver un registre de dversement dans la classe %s " + +#~ msgid "this is the insn:" +#~ msgstr "ceci est le insn:" + +#~ msgid "`asm' operand requires impossible reload" +#~ msgstr "oprande asm requiert une recharge impossible" + +#~ msgid "could not find a spill register" +#~ msgstr "ne peut reprer un registre de dversement" + +#~ msgid "`asm' operand constraint incompatible with operand size" +#~ msgstr "contrainte de l'oprande asm incompatible avec la taille de l'oprande" + +#~ msgid "VOIDmode on an output" +#~ msgstr "mode VOID sur une sortie" + +#~ msgid "output operand is constant in `asm'" +#~ msgstr "oprande de sortie est une constante dans asm " + +#~ msgid "unrecognizable insn:" +#~ msgstr "insn non reconnaissable:" + +#~ msgid "insn does not satisfy its constraints:" +#~ msgstr "insn ne satisfait pas ses contraintes:" + +#~ msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d" +#~ msgstr "vrification RTL: accs de elt %d de %s avec le dernier elt %d dans %s, %s:%d" + +#~ msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d" +#~ msgstr "vrification RTL: attendu elt %d de type %c , a %c (rtx %s) dans %s, %s:%d" + +#~ msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d" +#~ msgstr "vrification RTL: attendu elt %d de type %c ou %c , a %c (rtx %s) dans %s, %s:%d" + +#~ msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d" +#~ msgstr "vrification RTL: code attendu %s , a %s dans %s, %s:%d" + +#~ msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d" +#~ msgstr "vrification RTL: code attendu %s ou %s , a %s dans %s, %s:%d" + +#~ msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d" +#~ msgstr "vrification RTL: accs de elt %d du vecteur avec le dernier elt %d dans %s, %s:%d" + +#~ msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d" +#~ msgstr "vrification du fanion RTL: %s utilis avec un code rtx inattendu, %s dans %s, %s:%d" + +#~ msgid "jump to `%s' invalidly jumps into binding contour" +#~ msgstr "saut vers %s saute de manire invalide dans un contour de liaison" + +#~ msgid "%Jlabel '%D' used before containing binding contour" +#~ msgstr "%Jtiquette %D utilis avant de contenir le contour de liaison" + +#~ msgid "output operand constraint lacks `='" +#~ msgstr "contrainte de sortie de l'oprande manque = " + +#~ msgid "output constraint `%c' for operand %d is not at the beginning" +#~ msgstr "contrainte de sortie %c pour l'oprande %d n'est pas au dbut" + +#~ msgid "operand constraint contains incorrectly positioned '+' or '='" +#~ msgstr "contrainte de l'oprande contient + ou - incorrectement positionn" + +#~ msgid "`%%' constraint used with last operand" +#~ msgstr "contrainte %% utilise avec la dernire oprande" + +#~ msgid "matching constraint not valid in output operand" +#~ msgstr "contrainte concordante n'est pas valide dans une oprande de sortie" + +#~ msgid "read-write constraint does not allow a register" +#~ msgstr "contrainte de lecture-ccriture ne permet pas de registre" + +#~ msgid "input operand constraint contains `%c'" +#~ msgstr "contrainte d'entre de l'oprande contient %c " + +#~ msgid "matching constraint references invalid operand number" +#~ msgstr "nombre d'oprandes invalides pour rfrences de containte concordantes" + +#~ msgid "invalid punctuation `%c' in constraint" +#~ msgstr "ponctuation invalide %c dans la contrainte" + +#~ msgid "matching constraint does not allow a register" +#~ msgstr "contrainte de concordance ne permet pas de reigstre" + +#~ msgid "asm-specifier for variable `%s' conflicts with asm clobber list" +#~ msgstr "asm-specifier pour la variable %s est en conflit avec la liste asm clobber" + +#~ msgid "unknown register name `%s' in `asm'" +#~ msgstr "nom de registre inconnu %s dans asm " + +#~ msgid "PIC register `%s' clobbered in `asm'" +#~ msgstr "registre PIC %s est maltrait dans asm " + +#~ msgid "more than %d operands in `asm'" +#~ msgstr "plus que %d oprandes dans asm " + +#~ msgid "output number %d not directly addressable" +#~ msgstr "nombre de sortie %d n,est pas directement adressable" + +#~ msgid "asm operand %d probably doesn't match constraints" +#~ msgstr "oprande asm %d ne concorde pas probablement avec les contraintes" + +#~ msgid "use of memory input without lvalue in asm operand %d is deprecated" +#~ msgstr "utilisation de l'entr mmoire sans lvalue dans l'oprande asm %d est obsolte" + +#~ msgid "asm clobber conflict with output operand" +#~ msgstr "asm clobber est en conflit sans oprande de sortie" + +#~ msgid "asm clobber conflict with input operand" +#~ msgstr "asm globber est en conflit avec l'oprande d'entre" + +#~ msgid "too many alternatives in `asm'" +#~ msgstr "trop d'alternatives dans asm " + +#~ msgid "operand constraints for `asm' differ in number of alternatives" +#~ msgstr "contraintes de l'oprande pour asm diffrent en nombre d'alternatives" + +#~ msgid "duplicate asm operand name '%s'" +#~ msgstr "nom d'oprande asm %s apparat en double" + +#~ msgid "missing close brace for named operand" +#~ msgstr "accolade de fermeture manquante pour l'oprand nomme" + +#~ msgid "undefined named operand '%s'" +#~ msgstr "oprande nomme %s indfinie" + +#~ msgid "%Hstatement with no effect" +#~ msgstr "%Hdclaration sasn effet" + +#~ msgid "%Hvalue computed is not used" +#~ msgstr "%Hvaleur calcule n'est pas utilise" + +#~ msgid "%Junused variable '%D'" +#~ msgstr "%Jvariable %D inutilise" + +#~ msgid "%Hunreachable code at beginning of %s" +#~ msgstr "%Hcode inatteignable au dbut de %s" + +#~ msgid "enumeration value `%s' not handled in switch" +#~ msgstr "valeur d'numration %s n'est pas traite dans le switch" + +#~ msgid "case value `%ld' not in enumerated type" +#~ msgstr "valeur du case %ld n'est pas dans le type numr" + +#~ msgid "case value `%ld' not in enumerated type `%s'" +#~ msgstr "valeur du case %ld n'est pas dans le type numr %s " + +#~ msgid "switch missing default case" +#~ msgstr "switch n'a pas de case par dfaut" + +#~ msgid "type size can't be explicitly evaluated" +#~ msgstr "taille du type ne peut tre explicitement value" + +#~ msgid "variable-size type declared outside of any function" +#~ msgstr "type de taille variable dclar l'extrieur den'importe quelle fonction" + +#~ msgid "%Jsize of '%D' is %d bytes" +#~ msgstr "%Jtaille de %D est de %d octets" + +#~ msgid "%Jsize of '%D' is larger than %d bytes" +#~ msgstr "%Jtaille de %D est plus grande que %d octets" + +#~ msgid "%Jpacked attribute causes inefficient alignment for '%D'" +#~ msgstr "%Jattribut empaquet provoque un alignement inefficient pour %D " + +#~ msgid "%Jpacked attribute is unnecessary for '%D'" +#~ msgstr "%Jattribut empaquet n'est pas ncessaire pour %D " + +#~ msgid "%Jpadding struct to align '%D'" +#~ msgstr "%Jremplissage du struct pour aligner %D " + +#~ msgid "padding struct size to alignment boundary" +#~ msgstr "remplissage la taille du struct pour aligner les frontires" + +#~ msgid "packed attribute causes inefficient alignment for `%s'" +#~ msgstr "attribut empaquet provoque un alignement inefficient pour %s " + +#~ msgid "packed attribute is unnecessary for `%s'" +#~ msgstr "attribut empaquet n'est pas ncessaire pour %s " + +#~ msgid "packed attribute causes inefficient alignment" +#~ msgstr "attribut empaquet provoque un alignement inefficient" + +#~ msgid "packed attribute is unnecessary" +#~ msgstr "attribut empaquet n'est pas ncessaire" + +#~ msgid "__builtin_saveregs not supported by this target" +#~ msgstr " __builtin_saveregs n'est pas support par cette cible" + +#~ msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'" +#~ msgstr "ne peut faire timevar_pop %s lorsque le haut de la pile timevars est %s " + +#~ msgid "" +#~ "\n" +#~ "Execution times (seconds)\n" +#~ msgstr "" +#~ "\n" +#~ "Temps d'excution (secondes)\n" + +#~ msgid " TOTAL :" +#~ msgstr " TOTAL :" + +#~ msgid "time in %s: %ld.%06ld (%ld%%)\n" +#~ msgstr "temps pass dans %s: %ld.%06ld (%ld%%)\n" + +#~ msgid "collect: reading %s\n" +#~ msgstr "collect: lecture de %s\n" + +#~ msgid "collect: recompiling %s\n" +#~ msgstr "collect: recompilation de %s\n" + +#~ msgid "collect: tweaking %s in %s\n" +#~ msgstr "collect: tordage de %s dans %s\n" + +#~ msgid "collect: relinking\n" +#~ msgstr "collect: r-dition des liens\n" + +#~ msgid "ld returned %d exit status" +#~ msgstr "ld a retourn %d code d'tat d'excution" + +# I18N +#~ msgid "%s " +#~ msgstr "%s " + +# I18N +#~ msgid " %s" +#~ msgstr " %s" + +#~ msgid "invalid option argument `%s'" +#~ msgstr "argument de l'option invalide %s " + +#~ msgid "getting core file size maximum limit: %m" +#~ msgstr "limite maximale obtenue de la taille du fichier de vidange (core file): %m" + +#~ msgid "setting core file size limit to maximum: %m" +#~ msgstr "initialisation de la limite maximal de la taille du fichier de vidance (core file): %m" + +#~ msgid "%J'%F' used but never defined" +#~ msgstr "%J %F utilis mais n'a jamais t dfini" + +#~ msgid "%J'%F' declared `static' but never defined" +#~ msgstr "%J %F dclar static mais n'a jamais t dfinie" + +#~ msgid "%J'%D' defined but not used" +#~ msgstr "%J %F dfini mais n'a pas t utilis" + +#~ msgid "`%s' is deprecated (declared at %s:%d)" +#~ msgstr " %s est obsolte (dclar %s:%d)" + +#~ msgid "`%s' is deprecated" +#~ msgstr " %s est obsolte" + +#~ msgid "type is deprecated (declared at %s:%d)" +#~ msgstr "type est obsolte (dclar %s:%d)" + +#~ msgid "type is deprecated" +#~ msgstr "type est obsolte" + +#~ msgid "invalid register name `%s' for register variable" +#~ msgstr "nom de registre invalide %s pour un variable registre" + +#~ msgid "branch target register load optimization is not intended to be run twice" +#~ msgstr "optimisation du chargement du registre cible de branchement est pas prvu pour tre excut deux fois" + +#~ msgid "" +#~ "\n" +#~ "Target specific options:\n" +#~ msgstr "" +#~ "\n" +#~ "Options spcifiques la cible:\n" + +#~ msgid " -m%-23s [undocumented]\n" +#~ msgstr " -m%-23s [non document]\n" + +#~ msgid "" +#~ "\n" +#~ "There are undocumented target specific options as well.\n" +#~ msgstr "" +#~ "\n" +#~ "Il y a des options spcifiques la cible qui ne sont pas documents aussi.\n" + +#~ msgid " They exist, but they are not documented.\n" +#~ msgstr " Ils existent, mais ils ne sont pas documents.\n" + +#~ msgid "unrecognized gcc debugging option: %c" +#~ msgstr "option gcc de mise au point non reconnue: %c" + +#~ msgid "invalid option `%s'" +#~ msgstr "option invalide %s " + +#~ msgid "" +#~ "%s%s%s version %s (%s)\n" +#~ "%s\tcompiled by GNU C version %s.\n" +#~ "%s%s%s version %s (%s) compiled by CC.\n" +#~ msgstr "" +#~ "%s%s%s version %s (%s)\n" +#~ "%s\tcompil par GNU C version %s.\n" +#~ "%s%s%s version %s (%s) compil par CC.\n" + +#~ msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" +#~ msgstr "heuristiques %s%sGGC: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +#~ msgid "options passed: " +#~ msgstr "options passes: " + +#~ msgid "options enabled: " +#~ msgstr "options autorises: " + +#~ msgid "can't open %s for writing: %m" +#~ msgstr "ne peut ouvrir %s en criture: %m" + +#~ msgid "created and used with different settings of -fpic" +#~ msgstr "cr et utilis avec des configurations diffrentes de -fpic" + +#~ msgid "created and used with different settings of -fpie" +#~ msgstr "cr et utilis avec des configurations diffrentes de -fpie" + +#~ msgid "created and used with differing settings of `-m%s'" +#~ msgstr "cr et utilis avec des configurations diffrentes de -m%s " + +#~ msgid "out of memory" +#~ msgstr "mmoire puise" + +#~ msgid "instruction scheduling not supported on this target machine" +#~ msgstr "instruction d'ordonnancement n'est pas supporte sur cette machine cible" + +#~ msgid "this target machine does not have delayed branches" +#~ msgstr "cette machine cible n'a pas de branchments avec dlais" + +#~ msgid "-f%sleading-underscore not supported on this target machine" +#~ msgstr "-f%sleading-underscore n'est pas support sur cette machine cible" + +#~ msgid "target system does not support the \"%s\" debug format" +#~ msgstr "systme cible ne supporte par le format \"%s\" de mise au point" + +#~ msgid "-ffunction-sections not supported for this target" +#~ msgstr "-ffunction-sections n'est pas support pour cette cible" + +#~ msgid "-fdata-sections not supported for this target" +#~ msgstr "-fdata-sections n'est pas support pour cette machine cible" + +#~ msgid "-ffunction-sections disabled; it makes profiling impossible" +#~ msgstr "-ffunction-sections dsactiv; cela rend le profilage impossible" + +#~ msgid "-fprefetch-loop-arrays not supported for this target" +#~ msgstr "-fprefetch-loop-arrays n'est pas support pour cette machine cible" + +#~ msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" +#~ msgstr "-fprefetch-loop-arrays n'est pas support sur cette machine cible (essayer -march options)" + +#~ msgid "-fprefetch-loop-arrays is not supported with -Os" +#~ msgstr "-fprefetch-loop-arrays n'est pas support avec -Os" + +#~ msgid "-ffunction-sections may affect debugging on some targets" +#~ msgstr "-ffunction-sections peut affecter la mise au point sur quelques machines cibles." + +#~ msgid "error writing to %s: %m" +#~ msgstr "erreur d'criture dans %s: %m" + +#~ msgid "error closing %s: %m" +#~ msgstr "erreur de fermeture %s: %m" + +#~ msgid "could not open dump file `%s'" +#~ msgstr "ne peut ouvrir le fichier de vidange %s " + +#~ msgid "ignoring unknown option `%.*s' in `-fdump-%s'" +#~ msgstr "option inconnue %.*s ignore dans -fdump-%s " + +#~ msgid "%Jfunction '%F' can never be inlined because it uses alloca (override using the always_inline attribute)" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise alloca (crasant l'utiliastion de l'attribut always_inline)" + +#~ msgid "%Jfunction '%F' can never be inlined because it uses setjmp" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise setjmp" + +#~ msgid "%Jfunction '%F' can never be inlined because it uses variable argument lists" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise une liste variable d'arguments" + +#~ msgid "%Jfunction '%F' can never be inlined because it uses setjmp-longjmp exception handling" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise le traitement d'exception setjmp-longjmp" + +#~ msgid "%Jfunction '%F' can never be inlined because it contains a nested function" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle contient une fonction imbrique" + +#~ msgid "%Jfunction '%F' can never be inlined because it contains a computed goto" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle contient un goto calcul" + +#~ msgid "%Jfunction '%F' can never be inlined because it contains a nonlocal goto" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle contient un goto qui n'est pas local" + +#~ msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" +#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise une taille variable de variables" + +#~ msgid "%Jinlining failed in call to '%F': %s" +#~ msgstr "%Jl'enlignage de l'appel %F : %s a chou" + +#~ msgid "%Jsize of return value of '%D' is %u bytes" +#~ msgstr "%Jtaille de la valeur retourne par %D est %u octets" + +#~ msgid "%Jsize of return value of '%D' is larger than %wd bytes" +#~ msgstr "%Jtaille de la valeur retourne par %D suprieure %wd octets" + +#~ msgid "arrays of functions are not meaningful" +#~ msgstr "tableaux de fonctions n'a pas grand sens" + +#~ msgid "function return type cannot be function" +#~ msgstr "Le type retourn d'une fonction ne peut tre une fonction" + +#~ msgid "invalid initializer for bit string" +#~ msgstr "initialisation invalide pour une chane de bits" + +#~ msgid "tree check: expected %s, have %s in %s, at %s:%d" +#~ msgstr "vrification de l'arbre: attendait %s, obtenu %s dans %s, %s:%d" + +#~ msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" +#~ msgstr "vrification de l'arbre: attendait classe %c , obtenu %c (%s) dans %s, %s:%d" + +#~ msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" +#~ msgstr "vrification de l'arbre: accs de elt %d de tree-vec avec %d elts dans %s, %s:%d" + +#~ msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" +#~ msgstr "vrification de l'arbre: oprande accd %d de %s avec %d oprandes dans %s, %s:%d" + +#~ msgid "%J%D causes a section type conflict" +#~ msgstr "%J%D cause un conflit du type de section" + +#~ msgid "%Jregister name not specified for '%D'" +#~ msgstr "%Jnom de registre n'est pas spcifi pour %D " + +#~ msgid "%Jinvalid register name for '%D'" +#~ msgstr "%Jnom de registre invalide pour %D " + +#~ msgid "%Jdata type of '%D' isn't suitable for a register" +#~ msgstr "%Jtype de donnes de %D n'est pas applicable pour un registre" + +#~ msgid "%Jregister specified for '%D' isn't suitable for data type" +#~ msgstr "%Jregistre spcifi pour %D n'est applicable un type de donnes" + +#~ msgid "global register variable has initial value" +#~ msgstr "variable globale registre a une valeur initiale" + +#~ msgid "volatile register variables don't work as you might wish" +#~ msgstr "variables resgistres volatiles ne fonctionne pas comme vous le souhaiteriez" + +#~ msgid "%Jregister name given for non-register variable '%D'" +#~ msgstr "%Jnom de registre donn pour une variable non registre %D " + +#~ msgid "%Jstorage size of `%D' isn't known" +#~ msgstr "%Jtaille de stockage de %D n'est pas connue" + +#~ msgid "%Jalignment of '%D' is greater than maximum object file alignment. Using %d" +#~ msgstr "%Jalignement de %D est plus grand que l'alignement maximal du fichier objet. %d est utilis." + +#~ msgid "thread-local COMMON data not implemented" +#~ msgstr "thread-local COMMON data n'est pas implant" + +#~ msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" +#~ msgstr "%Jrequte d'alignement pour '%D' est plus grand que l'alignement implant de %d" + +#~ msgid "initializer for integer value is too complicated" +#~ msgstr "initialisation d'entier trop complique" + +#~ msgid "initializer for floating value is not a floating constant" +#~ msgstr "l'initialisation d'une valeur virgule flottante n'est pas une constante virgule flottante" + +#~ msgid "unknown set constructor type" +#~ msgstr "type de jeu de constructeurs inconnu" + +#~ msgid "invalid initial value for member `%s'" +#~ msgstr "valeur initiale invalide pour le membre %s " + +#~ msgid "%Jweak declaration of '%D' must precede definition" +#~ msgstr "%Jdclaration faible de %D qui doit tre prcde d'une dfinition" + +#~ msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" +#~ msgstr "%Jdclaration faible de %D aprs une premire utilisation des rsultats d'un comportement non spcifi" + +#~ msgid "%Jweak declaration of '%D' must be public" +#~ msgstr "%Jdclaration faible de %D doit tre publique" + +#~ msgid "%Jweak declaration of '%D' not supported" +#~ msgstr "%Jdclaration faible de %D n'est pas supporte" + +#~ msgid "only weak aliases are supported in this configuration" +#~ msgstr "seulement les alias faibles sont supports dans cette configuration" + +#~ msgid "alias definitions not supported in this configuration; ignored" +#~ msgstr "dfinitions d'alias ne sont pas supports dans cette configuration; ignor" + +#~ msgid "visibility attribute not supported in this configuration; ignored" +#~ msgstr "visibilit de l'attribut n'est pas support dans cette configuration; ignor" + +#~ msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d" +#~ msgstr "tableau virtuel %s[%lu]: lment %lu hors limite dans %s, %s:%d" + +#~ msgid "underflowed virtual array %s in %s, at %s:%d" +#~ msgstr "sous dbordement du tableau virtuele %s dans %s, %s:%d" + +#~ msgid "no sclass for %s stab (0x%x)\n" +#~ msgstr "pas de sclass pour le stab %s (0x%x)\n" + +#~ msgid "fatal error: " +#~ msgstr "erreur fatale: " + +#~ msgid "internal compiler error: " +#~ msgstr "erreur interne du compilateur: " + +#~ msgid "sorry, unimplemented: " +#~ msgstr "dsol, pas implant: " + +#~ msgid "anachronism: " +#~ msgstr "anachronisme: " + +#~ msgid "note: " +#~ msgstr "note: " + +#~ msgid "debug: " +#~ msgstr "mise au point: " + +#~ msgid "The maximum number of instructions in a single function eligible for inlining" +#~ msgstr "Le nombre maximum d'instructions dans une fonction simple ligible au type enligne" + +#~ msgid "The maximum number of instructions when automatically inlining" +#~ msgstr "Le nombre maximum d'instructions lorsqu'automatiquement de type enligne" + +#~ msgid "The maximum number of instructions for the RTL inliner" +#~ msgstr "Le nombre maximum d'instructions pour la fonction d'enlignage RTL" + +#~ msgid "The maximum number of instructions to consider to fill a delay slot" +#~ msgstr "Le nombre maximum d'instructions considrer pour remplir une slot dlai" + +#~ msgid "The maximum number of instructions to consider to find accurate live register information" +#~ msgstr "Le nombre maximum d'instructions considrer pour reprer un registre d'information actif et prcis" + +#~ msgid "The maximum length of scheduling's pending operations list" +#~ msgstr "La longueur maximale de la liste des opration en attente d'ordonnancement" + +#~ msgid "The size of function body to be considered large" +#~ msgstr "La taille du corps de la fonction est considr comme tant grande" + +#~ msgid "Maximal growth due to inlining of large function (in percent)" +#~ msgstr "Croissance maximal en raison de l'enlignage d'une grande fonction (en pourcent)" + +#~ msgid "how much can given compilation unit grow because of the inlining (in percent)" +#~ msgstr "quelle croissance d'une unit de compilation peut tre tolre en raison de l'enlignage (en pourcent)" + +#~ msgid "The maximum amount of memory to be allocated by GCSE" +#~ msgstr "La taille maximale de mmoire tre allou par GCSE" + +#~ msgid "The maximum number of passes to make when doing GCSE" +#~ msgstr "Le nombre maxium de passes effectuer lors de l'excution de GCSE" + +#~ msgid "The maximum number of instructions to consider to unroll in a loop" +#~ msgstr "Le nombre maximum d'instructions considrer inclure dans une boucle" + +#~ msgid "The maximum number of instructions to consider to unroll in a loop on average" +#~ msgstr "Le nombre maximum d'instructions considrer inclure dans une boucle en moyenne" + +#~ msgid "The maximum number of unrollings of a single loop" +#~ msgstr "Le nombre maximum d'instructions inclure dans une boucle simple" + +#~ msgid "The maximum number of insns of a peeled loop" +#~ msgstr "Le nombre maximum d'insns de boucle rduite" + +#~ msgid "The maximum number of peelings of a single loop" +#~ msgstr "Le nombre maxium de passes de rduction d'une boucle simple" + +#~ msgid "The maximum number of insns of a completely peeled loop" +#~ msgstr "Le nombre maximum d'insns d'une boucle compltement rduite" + +#~ msgid "The maximum number of peelings of a single loop that is peeled completely" +#~ msgstr "Le nombre maximum de rductions d'une boucle simple qui a t compltement rduite" + +#~ msgid "The maximum number of insns of a peeled loop that rolls only once" +#~ msgstr "Le nombre maximum d'insns d'une boucle rduite qui tourne une seule fois" + +#~ msgid "The maximum number of insns of an unswitched loop" +#~ msgstr "Le nombre maximum d'insns d'une boucle sans branchement" + +#~ msgid "The maximum number of unswitchings in a single loop" +#~ msgstr "Le nombre maximum de non branchement dans une boucle simple" + +#~ msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot" +#~ msgstr "Slectionner la fraction du dcompte maximal de rptition du bloc de base dans le programme selon le bloc de bsae donn doit tre considr comme chaud hot " + +#~ msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot" +#~ msgstr "Slectionner la fraction de la frquence maximale d'excutions du bloc de base dans la fonction selon le bloc de bsae donn doit tre considr comme chaud hot " + +#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available" +#~ msgstr "Le pourcentage de fonction, pondr par la frquence d'excutions, qui doit tre couvert la formation de la trace. Utilis lorsque le feedback par profile est disponible" + +#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available" +#~ msgstr "Le pourcentage de fonction, pondr par la frquence d'excutions, qui doit tre couvert la formation de la trace. Utilis lorsque le feedback par profilage n'est disponible" + +#~ msgid "Maximal code growth caused by tail duplication (in percent)" +#~ msgstr "Croissance maximal du code en raison de duplication de queue (en pourcent)" + +#~ msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)" +#~ msgstr "Stopper la croissance renverse si la probabilit inverse des meilleures bordures est infrieure ce seuil (en pourcent)" + +#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available" +#~ msgstr "Stopper la croissance anticipe si la probabilit des meilleures bordures est infrieure ce seuil (en pourcent). Utilis lorsque le feedback par profilage est disponible" + +#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available" +#~ msgstr "Stopper la croissance anticipe si la probabilit des meilleures bordures est infrieure ce seuil (en pourcent). Utilis lorsque le feedback par profilage n'est pas disponible" + +#~ msgid "The maximum number of incoming edges to consider for crossjumping" +#~ msgstr "Le nombre maximum de bordures considrer pour les sauts croiss" + +#~ msgid "The maximum length of path considered in cse" +#~ msgstr "La longueur maximale des chemins considrs dans cse" + +#~ msgid "The maximum memory locations recorded by cselib" +#~ msgstr "Le nombre maximum de localisations mmoire enregistres par cselib" + +#~ msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap" +#~ msgstr "L'expansion minimale des tas pour lancer la collecte des rebuts, en pourcentage de la taille totale du tas." + +#~ msgid "Minimum heap size before we start collecting garbage, in kilobytes" +#~ msgstr "La taille minimale du tas avant de lancer la collecte des rebuts, en kilo-octets." + +#~ msgid "The maximum number of instructions to search backward when looking for equivalent reload" +#~ msgstr "Le nombre maximum d'instructions rechercher antrieurement lors d'une recherche d'une recharge quivalente" + +#~ msgid "too many #pragma options align=reset" +#~ msgstr "trop d'options pour #pragma pour align=reset" + +#~ msgid "malformed '#pragma options', ignoring" +#~ msgstr " #pragma options mal compos, ignor" + +#~ msgid "junk at end of '#pragma options'" +#~ msgstr "rebut la fin de #pragma options " + +#~ msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring" +#~ msgstr " #pragma options align={mac68k|power|reset} mal compos, ignor" + +#~ msgid "missing '(' after '#pragma unused', ignoring" +#~ msgstr " ( manquante aprs #pragma unused , ignor" + +#~ msgid "missing ')' after '#pragma unused', ignoring" +#~ msgstr " ( manquante aprs #pragma unused , ignor" + +#~ msgid "junk at end of '#pragma unused'" +#~ msgstr "rebut la fin de #pragma unused " + +#~ msgid "internal and protected visibility attributes not supportedin this configuration; ignored" +#~ msgstr "visibilit des attributs internes et protges n'est pas supporte dans cette configuration; ignor" + +#~ msgid "-msystem-v and -p are incompatible" +#~ msgstr "-msystem-v et -p sont incompatibles" + +#~ msgid "-msystem-v and -mthreads are incompatible" +#~ msgstr "-msystem-v et -mthreads sont incompatibles" + +#~ msgid "profiler support for WindISS" +#~ msgstr "support du profileur pour WindISS" + +#~ msgid "-f%s ignored for Unicos/Mk (not supported)" +#~ msgstr "-f%s ignor pour Unicos/Mk (non support)" + +#~ msgid "-mieee not supported on Unicos/Mk" +#~ msgstr "-mieee n'est pas support sur Unicos/Mk" + +#~ msgid "-mieee-with-inexact not supported on Unicos/Mk" +#~ msgstr "-mieee-with-inexact n'est pas support sur Unicos/Mk" + +#~ msgid "bad value `%s' for -mtrap-precision switch" +#~ msgstr "valeur %s errone pour l'option -mtrap-precision" + +#~ msgid "bad value `%s' for -mfp-rounding-mode switch" +#~ msgstr "valeur %s errone pour l'option -mfp-rounding-mode" + +#~ msgid "bad value `%s' for -mfp-trap-mode switch" +#~ msgstr "valeur %s errone pour l'option -mfp-trap-mode" + +#~ msgid "bad value `%s' for -mtls-size switch" +#~ msgstr "valeur %s errone pour l'option -mtls-size" + +#~ msgid "bad value `%s' for -mcpu switch" +#~ msgstr "valeur %s errone pour l'option -mcpu" + +#~ msgid "trap mode not supported on Unicos/Mk" +#~ msgstr "mode trappe n'est pas support sur Unicos/Mk" + +#~ msgid "fp software completion requires -mtrap-precision=i" +#~ msgstr "compltion logicielle FP requiert -mtrap-precision=i" + +#~ msgid "rounding mode not supported for VAX floats" +#~ msgstr "mode d'arondissement n'est pas support pour les flottants sur VAX" + +#~ msgid "trap mode not supported for VAX floats" +#~ msgstr "mode trappe n'est pas support avec les flottants sur VAX" + +#~ msgid "128-bit long double not supported for VAX floats" +#~ msgstr "long double de 128 bits ne sont pas support pour les flottants sur VAX" + +#~ msgid "L%d cache latency unknown for %s" +#~ msgstr "latence de la cache L%d inconnue pour %s" + +#~ msgid "bad value `%s' for -mmemory-latency" +#~ msgstr "valeur %s errone pour -mmemory-latency" + +#~ msgid "invalid %%H value" +#~ msgstr "valeur %%H invalide" + +#~ msgid "invalid %%J value" +#~ msgstr "valeur %%J invalide" + +#~ msgid "invalid %%r value" +#~ msgstr "valeur %%r invalide" + +#~ msgid "invalid %%R value" +#~ msgstr "valeur %%R invalide" + +#~ msgid "invalid %%N value" +#~ msgstr "valeur %%N invalide" + +#~ msgid "invalid %%P value" +#~ msgstr "valeur %%P invalide" + +#~ msgid "invalid %%h value" +#~ msgstr "valeur %%h invalide" + +#~ msgid "invalid %%L value" +#~ msgstr "valeur %%L invalide" + +#~ msgid "invalid %%m value" +#~ msgstr "valeur %%m invalide" + +#~ msgid "invalid %%M value" +#~ msgstr "valeur %%M invalide" + +#~ msgid "invalid %%U value" +#~ msgstr "valeur %%U invalide" + +#~ msgid "invalid %%s value" +#~ msgstr "valeur %%s invalide" + +#~ msgid "invalid %%C value" +#~ msgstr "valeur %%C invalide" + +#~ msgid "invalid %%E value" +#~ msgstr "valeur %%E invalide" + +#~ msgid "unknown relocation unspec" +#~ msgstr "relocalisation unspec inconnue" + +#~ msgid "invalid %%xn code" +#~ msgstr "valeur %%xn invalide" + +#~ msgid "bad builtin fcode" +#~ msgstr "construit interne erron de fcode" + +#~ msgid "Use hardware fp" +#~ msgstr "Utiliser le FP matriel" + +#~ msgid "Do not use hardware fp" +#~ msgstr "Ne pas utiliser l'unit FP matrielle" + +#~ msgid "Use fp registers" +#~ msgstr "Utiliser les registres FP" + +#~ msgid "Do not use fp registers" +#~ msgstr "Ne pas utiliser les registres FP" + +#~ msgid "Do not assume GAS" +#~ msgstr "Ne pas prsumer la prsence de GAS" + +#~ msgid "Assume GAS" +#~ msgstr "Prsumer la prsence de GAS" + +#~ msgid "Request IEEE-conformant math library routines (OSF/1)" +#~ msgstr "Requte des routine de la bibliothque mathmatique conforme IEEE (OSF/1)" + +#~ msgid "Emit IEEE-conformant code, without inexact exceptions" +#~ msgstr "Produire du code conforme IEEE, sans exceptions inexactes" + +#~ msgid "Emit IEEE-conformant code, with inexact exceptions" +#~ msgstr "Produire du code conforme IEEE, avec exceptions inexactes" + +#~ msgid "Do not emit complex integer constants to read-only memory" +#~ msgstr "Ne pas produire des constantes entires complexes en mmoire en mode lecture seulement" + +#~ msgid "Use VAX fp" +#~ msgstr "Utiliser les registres FP sur VAX" + +#~ msgid "Do not use VAX fp" +#~ msgstr "Ne pas utiliser les registres FP sur VAX" + +#~ msgid "Emit code for the byte/word ISA extension" +#~ msgstr "Produire du code pour les octets/mots des extensions ISA" + +#~ msgid "Emit code for the motion video ISA extension" +#~ msgstr "Produire du code pour les extensions vido ISA" + +#~ msgid "Emit code for the fp move and sqrt ISA extension" +#~ msgstr "Produire du code pour les dplacements FP et sqrt des extensions ISA" + +#~ msgid "Emit code for the counting ISA extension" +#~ msgstr "Produire du code pour les extensions ISA de comptage" + +#~ msgid "Emit code using explicit relocation directives" +#~ msgstr "Produire du code utilisant des directives explicites de relocalisation" + +#~ msgid "Emit 16-bit relocations to the small data areas" +#~ msgstr "Produire du code de 16 bits pour le relocalisation des petites zones de donnes" + +#~ msgid "Emit 32-bit relocations to the small data areas" +#~ msgstr "Produire du code de 32 bits pour le relocalisation des petites zones de donnes" + +#~ msgid "Emit direct branches to local functions" +#~ msgstr "Omettre le branchement direct aux fonctions locales" + +#~ msgid "Emit rdval instead of rduniq for thread pointer" +#~ msgstr "Produire rdval au lieu de rduniq pour le pointeur de thread" + +#~ msgid "Use 128-bit long double" +#~ msgstr "Utiliser un long double de 128 bits" + +#~ msgid "Use 64-bit long double" +#~ msgstr "Utiliser un long double de 64 bits" + +#~ msgid "Use features of and schedule given CPU" +#~ msgstr "Utiliser les options et ordonnancer pour le processeur donn " + +#~ msgid "Schedule given CPU" +#~ msgstr "Ordonnancer le processeur donn" + +#~ msgid "Control the generated fp rounding mode" +#~ msgstr "Contrler le mode d'arondissement FP gnr" + +#~ msgid "Control the IEEE trap mode" +#~ msgstr "Contrler le mode trappe IEEE" + +#~ msgid "Control the precision given to fp exceptions" +#~ msgstr "Contrler la prcision donne des exceptions FP" + +#~ msgid "Specify bit size of immediate TLS offsets" +#~ msgstr "Spcifier la taille de bit des dcalages immdiats TLS" + +#~ msgid "bad value (%s) for -mcpu switch" +#~ msgstr "valeur (%s) errone pour l'option -mcpu" + +#~ msgid "argument of `%s' attribute is not a string constant" +#~ msgstr "argument de l'attribut %s n'est pas une chane de constante" + +#~ msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" +#~ msgstr "l'argument de l'attribut %s n'est pas ilink1 ou ilink2 " + +#~ msgid "invalid operand to %%R code" +#~ msgstr "oprande invalide pour le code %%R" + +#~ msgid "invalid operand to %%H/%%L code" +#~ msgstr "oprande invalide pour le code %%H/%%L" + +#~ msgid "invalid operand to %%U code" +#~ msgstr "oprande invalide pour le code %%U" + +#~ msgid "invalid operand to %%V code" +#~ msgstr "oprande invalide pour le code %%V" + +#~ msgid "invalid operand output code" +#~ msgstr "oprande invalide pour le code de sortie" + +#~ msgid "switch -mcpu=%s conflicts with -march= switch" +#~ msgstr "l'option -mcpu=%s est en conflit avec l'option -march= " + +#~ msgid "bad value (%s) for %s switch" +#~ msgstr "valeur (%s) errone pour l'option %s" + +#~ msgid "target CPU does not support APCS-32" +#~ msgstr "le processeur cible ne supporte pas APCS-32" + +#~ msgid "target CPU does not support APCS-26" +#~ msgstr "le processeur cible ne supporte pas APCS-26" + +#~ msgid "target CPU does not support interworking" +#~ msgstr "le processeur cible ne supporte pas l'inter-rseautage" + +#~ msgid "target CPU does not support THUMB instructions" +#~ msgstr "le processeur cible ne supporte pas les instructions THUMB" + +#~ msgid "future releases of GCC will not support -mapcs-26" +#~ msgstr "les prochaines versions de GCC ne supporteront pas -mapcs-26" + +#~ msgid "enabling backtrace support is only meaningful when compiling for the Thumb" +#~ msgstr "autoriser le support de pistage arrire si seulement significatif lors de la compilation pour le Thumb" + +#~ msgid "enabling callee interworking support is only meaningful when compiling for the Thumb" +#~ msgstr "autoriser le support d'inter-rseautage des appels si seulement significatif lors de la compilation pour le Thumb" + +#~ msgid "enabling caller interworking support is only meaningful when compiling for the Thumb" +#~ msgstr "autoriser le support d'inter-rseautage des appelants si seulement significatif lors de la compilation pour le Thumb" + +#~ msgid "interworking forces APCS-32 to be used" +#~ msgstr "l'inter-rseautage force l'utilisation de APCS-32" + +#~ msgid "-mapcs-stack-check incompatible with -mno-apcs-frame" +#~ msgstr "-mapcs-stack-check incompatible avec -mno-apcs-frame" + +#~ msgid "-fpic and -mapcs-reent are incompatible" +#~ msgstr "-fpic et -mapcs-reent sont incompatibles" + +#~ msgid "APCS reentrant code not supported. Ignored" +#~ msgstr "Code rentrant APCS n'est pas support. Ignor" + +#~ msgid "-g with -mno-apcs-frame may not give sensible debugging" +#~ msgstr "-g avec -mno-apcs-frame peut ne pas donner une mise au point sense" + +#~ msgid "passing floating point arguments in fp regs not yet supported" +#~ msgstr "passage d'argument en virgule flottante dans les registres FP n'est pas encore support" + +#~ msgid "invalid floating point emulation option: -mfpe-%s" +#~ msgstr "option d'mulation en virgule flottante invalide: -mfpe-%s" + +#~ msgid "-mfpe switch not supported by ep9312 target cpu - ignored." +#~ msgstr "opeion -mfpe n'est pas supporte par le processeur cible ep9312 - ignor" + +#~ msgid "structure size boundary can only be set to 8 or 32" +#~ msgstr "taille des bornes de la structure peut seulement tre 8 ou 32" + +#~ msgid "-mpic-register= is useless without -fpic" +#~ msgstr "-mpic-register= est inutile sans -fpic" + +#~ msgid "unable to use '%s' for PIC register" +#~ msgstr "incapable d'utiliser %s pour un registre PIC" + +#~ msgid "`%s' attribute only applies to functions" +#~ msgstr "attribut %s s'applique seulement aux fonctions" + +#~ msgid "unable to compute real location of stacked parameter" +#~ msgstr "incapable de calculer la localisation relle de la pile de paramtres" + +#~ msgid "selector must be an immediate" +#~ msgstr "slecteur doit tre un immdiat" + +#~ msgid "mask must be an immediate" +#~ msgstr "masque doit tre un immdiat" + +#~ msgid "no low registers available for popping high registers" +#~ msgstr "pas de registre bas disponible pour faire ressortir les registres du haut" + +#~ msgid "interrupt Service Routines cannot be coded in Thumb mode" +#~ msgstr "routines d'interruption de service ne peuvent tre codes en mode THUMB" + +#~ msgid "%Jinitialized variable '%D' is marked dllimport" +#~ msgstr "%Jvariable initialis %D est marque dllimport" + +#~ msgid "%Jstatic variable '%D' is marked dllimport" +#~ msgstr "%Jvariable statique %D est marque dllimport" + +#~ msgid "Generate APCS conformant stack frames" +#~ msgstr "Gnrer des trames de pile conformes APCS" + +#~ msgid "Store function names in object code" +#~ msgstr "Sotcker les noms de fonctions dans le code objet" + +#~ msgid "Use the 32-bit version of the APCS" +#~ msgstr "Utilise la version 32 bts de APCS" + +#~ msgid "Pass FP arguments in FP registers" +#~ msgstr "Passer les arguments FP par les registres FP" + +#~ msgid "Generate re-entrant, PIC code" +#~ msgstr "Gnrer du code PIC r-entrant" + +#~ msgid "The MMU will trap on unaligned accesses" +#~ msgstr "Le MMU va intercepter les accs mal aligns" + +#~ msgid "Use library calls to perform FP operations" +#~ msgstr "Utiliser les appels de bibliothque pour excuter les oprations FP" + +#~ msgid "Use hardware floating point instructions" +#~ msgstr "Utiliser les instructions matrielles en virgule flottante" + +#~ msgid "Assume target CPU is configured as big endian" +#~ msgstr "Prsumer que le processeur cible est un systme octets de poids fort" + +#~ msgid "Assume target CPU is configured as little endian" +#~ msgstr "Prsumer que le processeur cible est un systme octets de poids faible" + +#~ msgid "Assume big endian bytes, little endian words" +#~ msgstr "Prsumer un systme octets de poids fort pour les octets et faible pour les mots" + +#~ msgid "Support calls between Thumb and ARM instruction sets" +#~ msgstr "Supporter les appels des jeux d'instructions THUMB et ARM" + +#~ msgid "Generate a call to abort if a noreturn function returns" +#~ msgstr "Gnrer un appel pour stopper si une fonction sans retour retourne un rsultat" + +#~ msgid "Do not move instructions into a function's prologue" +#~ msgstr "Ne pas dplacer les instruction dans le prologue de fonction" + +#~ msgid "Do not load the PIC register in function prologues" +#~ msgstr "Ne pas charger le registre PIC dans les prologue de fonction" + +#~ msgid "Generate call insns as indirect calls, if necessary" +#~ msgstr "Gnrer l'appel insn comme un appel indirect, si ncessaire" + +#~ msgid "Compile for the Thumb not the ARM" +#~ msgstr "Compiler pour le THUMB et non pas le ARM" + +#~ msgid "Thumb: Generate (non-leaf) stack frames even if not needed" +#~ msgstr "Thumb: gnrer (non feuilles) trames de pile mme si non ncessaire" + +#~ msgid "Thumb: Generate (leaf) stack frames even if not needed" +#~ msgstr "Thumb : Gnrer (feuilles) trames de pile mme si non ncessaire" + +#~ msgid "Thumb: Assume non-static functions may be called from ARM code" +#~ msgstr "Thumb : Prsumer que les fonctions non statiques peuvent tre appeles du code ARM" + +#~ msgid "Thumb: Assume function pointers may go to non-Thumb aware code" +#~ msgstr "Thumb : Prsumer que les pointeurs de fonction peuvent tomber dans le code en dehors non sensible au Thumb" + +#~ msgid "Cirrus: Place NOPs to avoid invalid instruction combinations" +#~ msgstr "Cirrus: insrer des NOP pour viter un combinaison d'instructions invalides" + +#~ msgid "Cirrus: Do not break up invalid instruction combinations with NOPs" +#~ msgstr "Cirrus: ne pas briser la combinaison d'instructions invalides avec des NOP" + +#~ msgid "Specify the name of the target CPU" +#~ msgstr "Spcifier le nom du processeur cible" + +#~ msgid "Specify the name of the target architecture" +#~ msgstr "Spcifier le nom de l'architecture cible" + +#~ msgid "Specify the version of the floating point emulator" +#~ msgstr "Spcifier la version de l'mulateur en virgule flottante" + +#~ msgid "Specify the minimum bit alignment of structures" +#~ msgstr "Spcifier le minimum de bits pour l'alignement de structures" + +#~ msgid "Specify the register to be used for PIC addressing" +#~ msgstr "Spcifier le registre utiliser pour l'adressage PIC" + +#~ msgid "Ignore dllimport attribute for functions" +#~ msgstr "Ignorer l'attribut dllimport pour les fonctions" + +#~ msgid "large frame pointer change (%d) with -mtiny-stack" +#~ msgstr "grand pointeur de trames change (%d) avec -mtiny-stack" + +#~ msgid "bad address, not (reg+disp):" +#~ msgstr "adresse errone, pas (reg+disp):" + +#~ msgid "internal compiler error. Bad address:" +#~ msgstr "erreur internal du compilateur. Adresse errone:" + +#~ msgid "internal compiler error. Unknown mode:" +#~ msgstr "erreur internal du compilateur. Mode inconnu:" + +#~ msgid "invalid insn:" +#~ msgstr "insn invalide:" + +#~ msgid "incorrect insn:" +#~ msgstr "insn incoorect:" + +#~ msgid "unknown move insn:" +#~ msgstr "insn de dplacement inconnu:" + +#~ msgid "bad shift insn:" +#~ msgstr "dcalage insn erron:" + +#~ msgid "internal compiler error. Incorrect shift:" +#~ msgstr "erreur internal du compilateur. Dcalage incorrect:" + +#~ msgid "only initialized variables can be placed into program memory area" +#~ msgstr "seules les variables initialises peuvent tre places dans la zone mmoire du programme" + +#~ msgid "only uninitialized variables can be placed in the .noinit section" +#~ msgstr "seuls les variables non initialises peuvent tre places dans une section .noinit" + +#~ msgid "MCU `%s' supported for assembler only" +#~ msgstr "MCU %s est support pour l'assembleur seulement" + +#~ msgid "Assume int to be 8 bit integer" +#~ msgstr "Prsumer que les int sont des entiers de 8 bits" + +#~ msgid "Change the stack pointer without disabling interrupts" +#~ msgstr "Changer le pointeur de pile sans dsactiver les interruptions" + +#~ msgid "Use subroutines for function prologue/epilogue" +#~ msgstr "Utiliser des sous-routines pour le prologue/epilogue de fonction" + +#~ msgid "Change only the low 8 bits of the stack pointer" +#~ msgstr "Changer seulement les 8 bits du bas du pointeur de pile" + +#~ msgid "Do not generate tablejump insns" +#~ msgstr "Ne pas gnrer les sauts de table insns" + +#~ msgid "Use rjmp/rcall (limited range) on >8K devices" +#~ msgstr "Utiliser rjpm/rcall (tendue limite) sur des priphriques >8K" + +#~ msgid "Output instruction sizes to the asm file" +#~ msgstr "Produire les tailles d'instructions dans le fichier asm" + +#~ msgid "Specify the initial stack address" +#~ msgstr "Spcifier l'adresse initiale de la pile" + +#~ msgid "Specify the MCU name" +#~ msgstr "Spcifier le nom du MCU" + +#~ msgid "trampolines not supported" +#~ msgstr "trampolines ne sont pas supportes" + +#~ msgid "missing '(' after '#pragma %s' - ignored" +#~ msgstr "( manquante aprs #pragma %s - ignor" + +#~ msgid "missing function name in '#pragma %s' - ignored" +#~ msgstr "nom de fonction manquant dans #pragma %s - ignor" + +#~ msgid "malformed '#pragma %s' - ignored" +#~ msgstr "#pragma %s mal compos - ignor" + +#~ msgid "missing section name in '#pragma %s' - ignored" +#~ msgstr "nom de section manquant dans #pragma %s - ignor" + +#~ msgid "missing ')' for '#pragma %s' - ignored" +#~ msgstr ") manquante pour #pragma %s - ignor" + +#~ msgid "junk at end of '#pragma %s'" +#~ msgstr "rebut la fin de #pragma %s'" + +#~ msgid "unknown CPU version %d, using 40.\n" +#~ msgstr "version de processeur %d inconnue, 40 est utilis.\n" + +#~ msgid "ISR %s requires %d words of local vars, max is 32767" +#~ msgstr "ISR %s requiert %d mots de var. locales, max est 32767." + +#~ msgid "using CONST_DOUBLE for address" +#~ msgstr "CONST_DOUBLE utilis pour l'adresse" + +#~ msgid "c4x_address_cost: Invalid addressing mode" +#~ msgstr "c4x_address_cost: mode d'adressage invalide" + +#~ msgid "c4x_print_operand: %%L inconsistency" +#~ msgstr "c4x_print_operand: %%L inconsistent" + +#~ msgid "c4x_print_operand: %%N inconsistency" +#~ msgstr "c4x_print_operand: %%N inconsistent" + +#~ msgid "c4x_print_operand: %%O inconsistency" +#~ msgstr "c4x_print_operand: %%O inconsisten" + +#~ msgid "c4x_print_operand: Bad operand case" +#~ msgstr "c4x_print_operand: oprande errone pour un case" + +#~ msgid "c4x_print_operand_address: Bad post_modify" +#~ msgstr "c4x_print_operand_address: post-modification errone" + +#~ msgid "c4x_print_operand_address: Bad pre_modify" +#~ msgstr "c4x_print_operand_address: pr-modification errone" + +#~ msgid "c4x_print_operand_address: Bad operand case" +#~ msgstr "c4x_print_operand_address: oprande errone pour un case" + +#~ msgid "c4x_rptb_insert: Cannot find start label" +#~ msgstr "c4x_rptb_insert: ne peut reprer l'tiquette de dpart" + +#~ msgid "mode not QImode" +#~ msgstr "mode n'est pas QImode" + +#~ msgid "invalid indirect memory address" +#~ msgstr "adresse mmoire d'indirection invalide" + +#~ msgid "invalid indirect (S) memory address" +#~ msgstr "adresse mmoire (S) d'indirection invalide" + +#~ msgid "c4x_valid_operands: Internal error" +#~ msgstr "c4x_valid_operands: erreur interne" + +#~ msgid "c4x_operand_subword: invalid mode" +#~ msgstr "c4x_oprande_subword: mode invalide" + +#~ msgid "c4x_operand_subword: invalid operand" +#~ msgstr "c4x_operand_subword: oprande invalide" + +#~ msgid "c4x_operand_subword: invalid autoincrement" +#~ msgstr "c4x_operand_subword: autoincrement invalide" + +#~ msgid "c4x_operand_subword: invalid address" +#~ msgstr "c4x_operand_subword: adresse invalide" + +#~ msgid "c4x_operand_subword: address not offsettable" +#~ msgstr "c4x_operand_subword: un dcalage d'adresse ne peut s'appliquer sur cette adresse" + +#~ msgid "c4x_rptb_rpts_p: Repeat block top label moved\n" +#~ msgstr "c4x_rptb_rpts_p: tiquette suprieur de bloc de rptition dplace\n" + +#~ msgid "Small memory model" +#~ msgstr "Modle de mmoire petite" + +#~ msgid "Big memory model" +#~ msgstr "Modle de mmoire grande" + +#~ msgid "Use MPYI instruction for C3x" +#~ msgstr "Utiliser les instructions MPYI pour C3x" + +#~ msgid "Do not use MPYI instruction for C3x" +#~ msgstr "Ne pas utiliser les instructions MPYI pour C3x" + +#~ msgid "Use fast but approximate float to integer conversion" +#~ msgstr "Utiliser le mode rapide mais approximatif de conversion de flottant entier" + +#~ msgid "Use slow but accurate float to integer conversion" +#~ msgstr "Utiliser le mode lent mais prcis de conversion de flottant entier" + +#~ msgid "Enable use of RTPS instruction" +#~ msgstr "Autoriser l'utilisation de l'instruction RTPS" + +#~ msgid "Disable use of RTPS instruction" +#~ msgstr "Interdire l'utilisation de l'instruction RTPS" + +#~ msgid "Enable use of RTPB instruction" +#~ msgstr "Autoriser l'utilisation de l'instruction RTPB" + +#~ msgid "Disable use of RTPB instruction" +#~ msgstr "Interdire l'utilisation de l'instruction RTPB" + +#~ msgid "Generate code for C30 CPU" +#~ msgstr "Gnrer du code pour processeur C30" + +#~ msgid "Generate code for C31 CPU" +#~ msgstr "Gnrer du code pour processeur C31" + +#~ msgid "Generate code for C32 CPU" +#~ msgstr "Gnrer du code pour processeur C32" + +#~ msgid "Generate code for C33 CPU" +#~ msgstr "Gnrer du code pour processeur C33" + +#~ msgid "Generate code for C40 CPU" +#~ msgstr "Gnrer du code pour processeur C40" + +#~ msgid "Generate code for C44 CPU" +#~ msgstr "Gnrer du code pour processeur C44" + +#~ msgid "Emit code compatible with TI tools" +#~ msgstr "Produire du code compatible avec les outils TI" + +#~ msgid "Emit code to use GAS extensions" +#~ msgstr "Produire du code pour utiliser les extensions GAS" + +#~ msgid "Save DP across ISR in small memory model" +#~ msgstr "Sauvegarder DP travers ISR dans le modle de mmoire restreinte" + +#~ msgid "Don't save DP across ISR in small memory model" +#~ msgstr "Ne pas sauvegarder DP travers ISR dans le modle de mmoire restreinte" + +#~ msgid "Pass arguments on the stack" +#~ msgstr "Passer les arguments sur la pile" + +#~ msgid "Pass arguments in registers" +#~ msgstr "Passer les arguments par les registres" + +#~ msgid "Enable new features under development" +#~ msgstr "Autoriser les nouvelles options en dveloppement" + +#~ msgid "Disable new features under development" +#~ msgstr "Dsactiver les nouvelles options en dveloppement" + +#~ msgid "Use the BK register as a general purpose register" +#~ msgstr "Utiliser le registre BK comme registre gnral tout usage" + +#~ msgid "Do not allocate BK register" +#~ msgstr "Ne pas allouer de registre BK" + +#~ msgid "Enable use of DB instruction" +#~ msgstr "Activer l'utilisation d'instruction DB" + +#~ msgid "Disable use of DB instruction" +#~ msgstr "Dsactiver l'utilisation d'instruction DB" + +#~ msgid "Enable debugging" +#~ msgstr "Permettre la mise au point" + +#~ msgid "Disable debugging" +#~ msgstr "Dsactiver la mise au point" + +#~ msgid "Force constants into registers to improve hoisting" +#~ msgstr "Forcer les constantes dans les registres pour amliorer la monte" + +#~ msgid "Don't force constants into registers" +#~ msgstr "Ne pas forcer les constantes dans les registres" + +#~ msgid "Force RTL generation to emit valid 3 operand insns" +#~ msgstr "Forcer la gnration RTL pour produire des oprandes insn 3 valides" + +#~ msgid "Allow RTL generation to emit invalid 3 operand insns" +#~ msgstr "Autoriser la gnration RTL pour produire des oprandes insn 3 invalides" + +#~ msgid "Allow unsigned iteration counts for RPTB/DB" +#~ msgstr "Autoriser un compteur non sign d'itrations pour RPTB/DB" + +#~ msgid "Disallow unsigned iteration counts for RPTB/DB" +#~ msgstr "Interdire un compteur non sign d'itration pour RPTB/DB" + +#~ msgid "Preserve all 40 bits of FP reg across call" +#~ msgstr "Prserver tous les 40 bits du registre FP travers les appels" + +#~ msgid "Only preserve 32 bits of FP reg across call" +#~ msgstr "Prserver seulement 32 bits du registre FP travers les appels" + +#~ msgid "Enable parallel instructions" +#~ msgstr "Autoriser les instructions parallles" + +#~ msgid "Disable parallel instructions" +#~ msgstr "Interdire les instructions parallles" + +#~ msgid "Enable MPY||ADD and MPY||SUB instructions" +#~ msgstr "Autoriser les instructions MPY||ADD et MPY||SUB" + +#~ msgid "Disable MPY||ADD and MPY||SUB instructions" +#~ msgstr "Interdire les instructions MPY||ADD et MPY||SUB" + +#~ msgid "Assume that pointers may be aliased" +#~ msgstr "Prsumer que les pointeurs peuvent tre aliass" + +#~ msgid "Assume that pointers not aliased" +#~ msgstr "Prsumer que les pointeurs ne peuvent pas tre aliass" + +#~ msgid "Specify maximum number of iterations for RPTS" +#~ msgstr "Spcifier le nombre maximum d'itrations pour RPTS" + +#~ msgid "Select CPU to generate code for" +#~ msgstr "Slectionner le processeur pour lequel le code doit tre gnr" + +#~ msgid "unexpected index-type in cris_print_index" +#~ msgstr "type d'index inattendu dans cris_print_index" + +#~ msgid "unexpected base-type in cris_print_base" +#~ msgstr "type de base inattendu dans cris_print_base" + +#~ msgid "stackframe too big: %d bytes" +#~ msgstr "trame de pile trop grande: %d octets" + +#~ msgid "allocated but unused delay list in epilogue" +#~ msgstr "allou mais liste de dlai non utilise dans l'pilogue" + +#~ msgid "unexpected function type needing stack adjustment for __builtin_eh_return" +#~ msgstr "type de fonction inattendue ajustement de la pile ncessaire pour __builtin_eh_return " + +#~ msgid "invalid operand for 'b' modifier" +#~ msgstr "oprande invalide pour le modificateur b " + +#~ msgid "invalid operand for 'v' modifier" +#~ msgstr "oprande invalide pour le modificateur v " + +#~ msgid "invalid operand for 'P' modifier" +#~ msgstr "oprande invalide pour le modificateur P " + +#~ msgid "invalid operand for 'p' modifier" +#~ msgstr "oprande invalide pour le modificateur p " + +#~ msgid "invalid operand for 'z' modifier" +#~ msgstr "oprande invalide pour le modificateur z " + +#~ msgid "invalid operand for 'H' modifier" +#~ msgstr "oprande invalide pour le modificateur H " + +#~ msgid "bad register" +#~ msgstr "registre erron" + +#~ msgid "invalid operand for 'e' modifier" +#~ msgstr "oprande invalide pour le modificateur e " + +#~ msgid "invalid operand for 'm' modifier" +#~ msgstr "oprande invalide pour le modificateur m " + +#~ msgid "invalid operand for 'A' modifier" +#~ msgstr "oprande invalide pour le modificateur A " + +#~ msgid "invalid operand for 'D' modifier" +#~ msgstr "oprande invalide pour le modificateur D " + +#~ msgid "invalid operand for 'T' modifier" +#~ msgstr "oprande invalide pour le modificateur T " + +#~ msgid "invalid operand modifier letter" +#~ msgstr "oprande invalide pour le modificateur de lettre" + +#~ msgid "internal error: bad register: %d" +#~ msgstr "erreur interne: registre erron: %d" + +#~ msgid "unexpected multiplicative operand" +#~ msgstr "oprande multiplicative inattendue" + +#~ msgid "unexpected operand" +#~ msgstr "oprande inattendue" + +#~ msgid "unrecognized address" +#~ msgstr "adresse non reconnue" + +#~ msgid "internal error: sideeffect-insn affecting main effect" +#~ msgstr "erreur interne: effet de bord de insn sideeffect-insn ayant un effet principal" + +#~ msgid "internal error: cris_side_effect_mode_ok with bad operands" +#~ msgstr "erreur interne: cris_side_effect_mode_ok avec des oprandes errones" + +#~ msgid "unrecognized supposed constant" +#~ msgstr "suppose constante non reconnue" + +#~ msgid "unrecognized supposed constant in cris_global_pic_symbol" +#~ msgstr "suppose constante non reconnue dans cris_global_pic_symbol" + +#~ msgid "-max-stackframe=%d is not usable, not between 0 and %d" +#~ msgstr "-max-stackframe=%d n'est pas utilisable, n'est pas entre 0 et %d" + +#~ msgid "unknown CRIS version specification in -march= or -mcpu= : %s" +#~ msgstr "spcification de version CRIS inconnue dans -march= ou -mcpu= : %s" + +#~ msgid "unknown CRIS cpu version specification in -mtune= : %s" +#~ msgstr "spcification de version CRIS inconnue dans -mtune= : %s" + +#~ msgid "-fPIC and -fpic are not supported in this configuration" +#~ msgstr "-fPIC et -fpic ne sont pas supportes par cette configuration" + +#~ msgid "that particular -g option is invalid with -maout and -melinux" +#~ msgstr "l'option particulire -g est invalide avec -maout et -melinux" + +#~ msgid "unexpected side-effects in address" +#~ msgstr "effets de bord inattendue dans l'adresse" + +#~ msgid "unexpected PIC symbol" +#~ msgstr "symbole PIC inattendue" + +#~ msgid "PIC register isn't set up" +#~ msgstr "le registre n'est pas initialis" + +#~ msgid "unexpected address expression" +#~ msgstr "expression d'adresse inattendue" + +#~ msgid "emitting PIC operand, but PIC register isn't set up" +#~ msgstr "gnration d'une oprande PIC mais le registre PIC n'est pas initialis" + +#~ msgid "unexpected NOTE as addr_const:" +#~ msgstr "NOTE inattendu comme addr_conts:" + +#~ msgid "Compile for the MMU-less Etrax 100-based elinux system" +#~ msgstr "Compiler pour le MMU-less Etrax 100-based de systme elinux" + +#~ msgid "For elinux, request a specified stack-size for this program" +#~ msgstr "Pour elinux, faire la requte pour un taille de pile spcifique pour ce programme" + +#~ msgid "Work around bug in multiplication instruction" +#~ msgstr "Travailler autour de l'anomalie dans l'instructions de multiplication" + +#~ msgid "Compile for ETRAX 4 (CRIS v3)" +#~ msgstr "Compil pour ETRAX 4 (CRIS v3)" + +#~ msgid "Compile for ETRAX 100 (CRIS v8)" +#~ msgstr "Compile pour ETRAX 100 (CRIS v8)" + +#~ msgid "Emit verbose debug information in assembly code" +#~ msgstr "Produire des informations de mise au point dans le code assembl" + +#~ msgid "Do not use condition codes from normal instructions" +#~ msgstr "Ne pas utiliser du code conditionnel pour des instructions normales" + +#~ msgid "Do not emit addressing modes with side-effect assignment" +#~ msgstr "Ne pas produire de modes d'adressage avec des affectations avec effet de bord" + +#~ msgid "Do not tune stack alignment" +#~ msgstr "Ne pas ajuster l'alignement de la pile" + +#~ msgid "Do not tune writable data alignment" +#~ msgstr "Ne pas ajuster l'alignement les sections de donnes dynamiques" + +#~ msgid "Do not tune code and read-only data alignment" +#~ msgstr "Ne pas ajuster l'alignement du code et des sections de donnes statiques" + +#~ msgid "Align code and data to 32 bits" +#~ msgstr "Aligner le code et les donnes sur 32 bits" + +#~ msgid "Don't align items in code or data" +#~ msgstr "Ne pas aligner les items dans le code ou les donnes" + +#~ msgid "Do not emit function prologue or epilogue" +#~ msgstr "Ne pas gnrer de prologue ou d'pilogue de fonction" + +#~ msgid "Use the most feature-enabling options allowed by other options" +#~ msgstr "Utiliser le plus d'options autorisant autorisant des options permises par les autres options" + +#~ msgid "Override -mbest-lib-options" +#~ msgstr "craser -mbest-lib-options" + +#~ msgid "Generate code for the specified chip or CPU version" +#~ msgstr "Gnrer le code pour la version de processeur ou de circuit spcifie" + +#~ msgid "Tune alignment for the specified chip or CPU version" +#~ msgstr "Ajuster l'alignement pour la version de processeur ou de circuit spcifie" + +#~ msgid "Warn when a stackframe is larger than the specified size" +#~ msgstr "Avertir lorsqu'une trame de pile est plus grande que la taille spcifie" + +#~ msgid "no FUNCTION_PROFILER for CRIS" +#~ msgstr "pas de FUNCTION_PROFILER pour CRIS" + +#~ msgid "Together with -fpic and -fPIC, do not use GOTPLT references" +#~ msgstr "ensemble avec -fpic et -fPIC, ne pas utiliser les rfrences GOTPLT" + +#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s" +#~ msgstr "modes_tieable_p errone pour le registre %s, mode1 %s, mode2 %s" + +#~ msgid "bad insn to d30v_print_operand_address:" +#~ msgstr "insn erron pour d30v_print_operand_addresse:" + +#~ msgid "bad insn to d30v_print_operand_memory_reference:" +#~ msgstr "insn erron pour d30v_print_operand_memory_reference:" + +#~ msgid "bad insn to d30v_print_operand, 'f' modifier:" +#~ msgstr "insn erron pour d30v_print_operand, modificateur f :" + +#~ msgid "bad insn to d30v_print_operand, 'A' modifier:" +#~ msgstr "insn erron pour d30v_print_operand, modificateur A :" + +#~ msgid "bad insn to d30v_print_operand, 'M' modifier:" +#~ msgstr "insn erron pour d30v_print_operand, modificateur M :" + +#~ msgid "bad insn to print_operand, 'F' or 'T' modifier:" +#~ msgstr "insn erron pour print_operand, modificateur F ou T :" + +#~ msgid "bad insn to print_operand, 'B' modifier:" +#~ msgstr "insn erron pour print_operand, modificateur B :" + +#~ msgid "bad insn to print_operand, 'E' modifier:" +#~ msgstr "insn erron pour print_operand, modificateur E :" + +#~ msgid "bad insn to print_operand, 'R' modifier:" +#~ msgstr "insn erron to print_operand, modificateur R :" + +#~ msgid "bad insn to print_operand, 's' modifier:" +#~ msgstr "insn erron to print_operand, modificateur s :" + +#~ msgid "bad insn in d30v_print_operand, 0 case" +#~ msgstr "insn erron dans d30v_print_operand, cas 0" + +#~ msgid "d30v_emit_comparison" +#~ msgstr "d30v_emit_comparison" + +#~ msgid "bad call to d30v_move_2words" +#~ msgstr "appel erron d30v_move_2words" + +#~ msgid "Enable use of conditional move instructions" +#~ msgstr "Autoriser l'utilisation des instructions conditionnelles move" + +#~ msgid "Disable use of conditional move instructions" +#~ msgstr "Interdire l'utilisation des instructions conditionnelles move" + +#~ msgid "Debug argument support in compiler" +#~ msgstr "Mettre au point le support d'argument dans le compilateur" + +#~ msgid "Debug stack support in compiler" +#~ msgstr "Mettre au point le support de la pile dans le compilateur" + +#~ msgid "Debug memory address support in compiler" +#~ msgstr "Mettre au point le support d'adresses dans le compilateur" + +#~ msgid "Make adjacent short instructions parallel if possible" +#~ msgstr "Rendre adjacentes les instructions short en instructions parallles si possible" + +#~ msgid "Do not make adjacent short instructions parallel" +#~ msgstr "Ne pas rendre adjacentes les instructions short en instructions parallles" + +#~ msgid "Link programs/data to be in external memory by default" +#~ msgstr "Faire l'dition de lien des programmes/donnes comme tant externe la mmoire par dfaut" + +#~ msgid "Link programs/data to be in onchip memory by default" +#~ msgstr "Faire l'dition de lien des programmes/donnes comme tant interne dans la circuiterie de la mmoire par dfaut" + +#~ msgid "Change the branch costs within the compiler" +#~ msgstr "Changer les cots de branchement l'intrieur du compilateur" + +#~ msgid "Change the threshold for conversion to conditional execution" +#~ msgstr "Changer le seuil pour la conversion en une excution conditionnelle" + +#~ msgid "stack size > 32k" +#~ msgstr "taille de la pile > 32k" + +#~ msgid "invalid addressing mode" +#~ msgstr "mode d'adressage invalide" + +#~ msgid "bad register extension code" +#~ msgstr "code d'extension de registre erron" + +#~ msgid "invalid offset in ybase addressing" +#~ msgstr "dcalage invalide dans l'adresse ybase" + +#~ msgid "invalid register in ybase addressing" +#~ msgstr "registre invalide dans l'adressage ybase" + +#~ msgid "invalid shift operator in emit_1600_core_shift" +#~ msgstr "oprateur de dcalage invalide dans emit_1600_core_shift" + +#~ msgid "invalid mode for gen_tst_reg" +#~ msgstr "mode invalide pour gen_tst_reg" + +#~ msgid "invalid mode for integer comparison in gen_compare_reg" +#~ msgstr "mode invalide pour la comparaison d'entiers dans gen_compare_reg" + +#~ msgid "Pass parameters in registers (default)" +#~ msgstr "Passer les paramtres par les registres (par dfaut)" + +#~ msgid "Don't pass parameters in registers" +#~ msgstr "Ne pas passer les paramtres par les registres" + +#~ msgid "Generate code for near calls" +#~ msgstr "Gnrer du code pour les appels proches" + +#~ msgid "Don't generate code for near calls" +#~ msgstr "Ne pas gnrer du code pour les appels proches" + +#~ msgid "Generate code for near jumps" +#~ msgstr "Gnrer du code pour les sauts proches" + +#~ msgid "Don't generate code for near jumps" +#~ msgstr "Ne pas gnrer du code pour les sauts proches" + +#~ msgid "Generate code for a bit-manipulation unit" +#~ msgstr "Gnrer du code pour une unit de manipulation de bits" + +#~ msgid "Don't generate code for a bit-manipulation unit" +#~ msgstr "Ne pas gnrer du code pour une unit de manipulation de bits" + +#~ msgid "Generate code for memory map1" +#~ msgstr "Gnrer du code pour la mmoire map1" + +#~ msgid "Generate code for memory map2" +#~ msgstr "Gnrer du code pour la mmoire map2" + +#~ msgid "Generate code for memory map3" +#~ msgstr "Gnrer du code pour la mmoire map3" + +#~ msgid "Generate code for memory map4" +#~ msgstr "Gnrer du code pour la mmoire map4" + +#~ msgid "Ouput extra code for initialized data" +#~ msgstr "Produire du code additionnel pour les donnes initialises" + +#~ msgid "Don't let reg. allocator use ybase registers" +#~ msgstr "Ne pas laisser l'allocateur de registres utiliser les registres ybase" + +#~ msgid "Output extra debug info in Luxworks environment" +#~ msgstr "Produire des informations supplmentaires de mise au point dans l'environnement Luxworks" + +#~ msgid "Save temp. files in Luxworks environment" +#~ msgstr "Sauvegarder les fichiers temporaires dans l'environnement Luxworks" + +#~ msgid "Specify alternate name for text section" +#~ msgstr "Spcifier un nom alternatif pour la section texte" + +#~ msgid "Specify alternate name for data section" +#~ msgstr "Spcifier un nom alternatif pour la section donnes" + +#~ msgid "Specify alternate name for bss section" +#~ msgstr "Spcifier un nom alternatif pour la section bss" + +#~ msgid "Specify alternate name for constant section" +#~ msgstr "Spcifier un nom alternatif pour la section des constantes" + +#~ msgid "Specify alternate name for dsp16xx chip" +#~ msgstr "Spcifier un nom alternatif pour le cirsuit dsp16xx" + +#~ msgid "profiling not implemented yet" +#~ msgstr "profilage n'est pas implant encore" + +#~ msgid "trampolines not yet implemented" +#~ msgstr "trampolines ne sont pas encore implantes" + +#~ msgid "fr30_print_operand_address: unhandled address" +#~ msgstr "fr30_print_operand_address: adresse non traite" + +#~ msgid "fr30_print_operand: unrecognized %%p code" +#~ msgstr "fr30_print_operand: code %%p non reconnue" + +#~ msgid "fr30_print_operand: unrecognized %%b code" +#~ msgstr "fr30_print_operand: code %%b non reconnue" + +#~ msgid "fr30_print_operand: unrecognized %%B code" +#~ msgstr "fr30_print_operand: code %%B non reconnu" + +#~ msgid "fr30_print_operand: invalid operand to %%A code" +#~ msgstr "fr30_print_operand: oprande invalide pour code %%A" + +#~ msgid "fr30_print_operand: invalid %%x code" +#~ msgstr "fr30_print_operand: code %%x invalide" + +#~ msgid "fr30_print_operand: invalid %%F code" +#~ msgstr "fr30_print_operand: code %%F invalide" + +#~ msgid "fr30_print_operand: unknown code" +#~ msgstr "fr30_print_operand: code inconnu" + +#~ msgid "fr30_print_operand: unhandled MEM" +#~ msgstr "fr30_print_operand: MEM non trait" + +#~ msgid "Assume small address space" +#~ msgstr "Prsumer un petit espace d'adressage" + +#~ msgid "Unknown cpu: -mcpu=%s" +#~ msgstr "Processeur inconnu : -mcpu=%s" + +#~ msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)" +#~ msgstr "-fpic et -gdwarf sont incompatibles (-fpic et -g/-gdwarf-2 sont acceptables)" + +#~ msgid "Bad insn to frv_print_operand_address:" +#~ msgstr "insn erron pour frv_print_operand_addresse:" + +#~ msgid "Bad register to frv_print_operand_memory_reference_reg:" +#~ msgstr "registre erron pour frv_print_operand_memory_reference_reg:" + +#~ msgid "Bad insn to frv_print_operand_memory_reference:" +#~ msgstr "insn erron pour frv_print_operand_memory_reference:" + +#~ msgid "Bad insn in frv_print_operand, bad const_double" +#~ msgstr "insn erron dans frv_print_operand, bad const_double" + +#~ msgid "Bad insn to frv_print_operand, 'C' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur C :" + +#~ msgid "Bad insn to frv_print_operand, 'c' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur c :" + +#~ msgid "Bad insn to frv_print_operand, 'e' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur e :" + +#~ msgid "Bad insn to frv_print_operand, 'F' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur F :" + +#~ msgid "Bad insn to frv_print_operand, 'f' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur f :" + +#~ msgid "Bad insn to frv_print_operand, 'L' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur L :" + +#~ msgid "Bad insn to frv_print_operand, 'M/N' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur M/N :" + +#~ msgid "Bad insn to frv_print_operand, 'O' modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur O :" + +#~ msgid "Bad insn to frv_print_operand, P modifier:" +#~ msgstr "insn erron pour frv_print_operand, modificateur P :" + +#~ msgid "Bad insn in frv_print_operand, z case" +#~ msgstr "insn erron dans frv_print_operand, case z" + +#~ msgid "Bad insn in frv_print_operand, 0 case" +#~ msgstr "insn erron dans frv_print_operand, case 0" + +#~ msgid "frv_print_operand: unknown code" +#~ msgstr "frv_print_operand: code inconnu" + +#~ msgid "Bad output_move_single operand" +#~ msgstr "oprande output_move_single errone" + +#~ msgid "Bad output_move_double operand" +#~ msgstr "oprande output_move_double errone" + +#~ msgid "Bad output_condmove_single operand" +#~ msgstr "oprande output_condmove_single errone" + +#~ msgid "frv_registers_update" +#~ msgstr "frv_registers_update" + +#~ msgid "frv_registers_used_p" +#~ msgstr "frv_registers_used_p" + +#~ msgid "frv_registers_set_p" +#~ msgstr "frv_registers_set_p" + +#~ msgid "accumulator is not a constant integer" +#~ msgstr "accumulateur n'est pas une constante en entier" + +#~ msgid "accumulator number is out of bounds" +#~ msgstr "numro de l'accumulateur est hors limite" + +#~ msgid "inappropriate accumulator for `%s'" +#~ msgstr "accumulateur inappropri pour %s " + +#~ msgid "`%s' expects a constant argument" +#~ msgstr " %s attend un argument de constante" + +#~ msgid "constant argument out of range for `%s'" +#~ msgstr "argument de constante hors limite pour %s " + +#~ msgid "media functions are not available unless -mmedia is used" +#~ msgstr "fonctions mdia ne sont pas disponibles mois que -mmedia soit utilis" + +#~ msgid "this media function is only available on the fr500" +#~ msgstr "cette fonction mdia est seulement disponible sur le fr500" + +#~ msgid "this media function is only available on the fr400" +#~ msgstr "cette fonction mdia est seulement disponible sur le fr400" + +#~ msgid " (frv)" +#~ msgstr " (frv)" + +#~ msgid "-ms2600 is used without -ms" +#~ msgstr "-ms2600 est utilis sans -ms" + +#~ msgid "-mn is used without -mh or -ms" +#~ msgstr "-mm est utilis sans -mh ou -ms" + +#~ msgid "Generate H8S code" +#~ msgstr "Gnrer du code H8S" + +#~ msgid "Do not generate H8S code" +#~ msgstr "Ne pas gnrer du code H8S" + +#~ msgid "Generate H8S/2600 code" +#~ msgstr "Gnrer du code H8S/S2600" + +#~ msgid "Do not generate H8S/2600 code" +#~ msgstr "Ne pas gnrer du code H8S/2600" + +#~ msgid "Make integers 32 bits wide" +#~ msgstr "Rendre les entiers larges de 32 bits" + +#~ msgid "Use registers for argument passing" +#~ msgstr "Utiliser les registres pour le passage d'arguments" + +#~ msgid "Do not use registers for argument passing" +#~ msgstr "Ne pas utiliser les registres pour le passage d'arguments" + +#~ msgid "Consider access to byte sized memory slow" +#~ msgstr "Considrer l'accs mmoire lent pour la taille d'octets" + +#~ msgid "Enable linker relaxing" +#~ msgstr "Activer la rlche par l'diteur de liens" + +#~ msgid "Generate H8/300H code" +#~ msgstr "Gnrer du code H8/300H" + +#~ msgid "Enable the normal mode" +#~ msgstr "Activer le mode normal" + +#~ msgid "Do not generate H8/300H code" +#~ msgstr "Ne pas gnrer du code H8/300H" + +#~ msgid "Use H8/300 alignment rules" +#~ msgstr "Utiliser les rgles d'alignement H8/300" + +#~ msgid "junk at end of #pragma map" +#~ msgstr "rebut la fin de #pragma map" + +#~ msgid "malformed #pragma map, ignored" +#~ msgstr "#pragma map mal compos, ignor" + +#~ msgid "real name is too long - alias ignored" +#~ msgstr "nom rel est trop long - alias ignor" + +#~ msgid "alias name is too long - alias ignored" +#~ msgstr "nom d'alias est trop long - alias ignor" + +#~ msgid "internal error--no jump follows compare:" +#~ msgstr "erreur interne--pas de saut suivant la comparaison:" + +#~ msgid "Generate char instructions" +#~ msgstr "Gnrer des instructions char " + +#~ msgid "Do not generate char instructions" +#~ msgstr "Ne pas gnrer des instructions char " + +#~ msgid "code model %s not supported in PIC mode" +#~ msgstr "model de code %s n'est pas support en mode PIC" + +#~ msgid "bad value (%s) for -mcmodel= switch" +#~ msgstr "valeur errone (%s) pour l'opton -mcmodel=" + +#~ msgid "bad value (%s) for -masm= switch" +#~ msgstr "valeur errone (%s) pour l'option -masm" + +#~ msgid "code model `%s' not supported in the %s bit mode" +#~ msgstr "model de code %s n'est pas support dans le mode %s bits" + +#~ msgid "code model `large' not supported yet" +#~ msgstr "model de code large n'est pas support encore" + +#~ msgid "%i-bit mode not compiled in" +#~ msgstr "mode %i bits pas compil en" + +#~ msgid "CPU you selected does not support x86-64 instruction set" +#~ msgstr "le processeur slectionn ne supporte pas le jeu d'instructions x86-64" + +#~ msgid "bad value (%s) for -march= switch" +#~ msgstr "valeur errone (%s) pour l'option -march=" + +#~ msgid "bad value (%s) for -mtune= switch" +#~ msgstr "valeur errone (%s) pour l'option -mtune=" + +#~ msgid "-mregparm=%d is not between 0 and %d" +#~ msgstr "-mregparm=%d n'est pas entre 0 et %d" + +#~ msgid "-malign-loops is obsolete, use -falign-loops" +#~ msgstr "-malign-loops est obsolte, utiliser -falign-loops" + +#~ msgid "-malign-loops=%d is not between 0 and %d" +#~ msgstr "-malign-loops=%d n'est pas entre 0 et %d" + +#~ msgid "-malign-jumps is obsolete, use -falign-jumps" +#~ msgstr "-malign-jumps est obsolte, utiliser -falign-loops" + +#~ msgid "-malign-functions is obsolete, use -falign-functions" +#~ msgstr "-malign-functions est obsolte, utiliser -falign-loops" + +#~ msgid "-mpreferred-stack-boundary=%d is not between %d and 12" +#~ msgstr "-mpreferred-stack-boundary=%d n'est pas entre %d et 12" + +#~ msgid "-mbranch-cost=%d is not between 0 and 5" +#~ msgstr "-mbranch-cost=%d n'est pas entre 0 et 5" + +#~ msgid "bad value (%s) for -mtls-dialect= switch" +#~ msgstr "valeur errone (%s) pour l'option -mtls-dialect" + +#~ msgid "-malign-double makes no sense in the 64bit mode" +#~ msgstr "-malign-double n'a aucun sens en mode 64 bits" + +#~ msgid "-mrtd calling convention not supported in the 64bit mode" +#~ msgstr "la conversion d'appel -mrtd n'est pas support en mode 64 bits" + +#~ msgid "SSE instruction set disabled, using 387 arithmetics" +#~ msgstr "jeu d'instructions SSE dsactiv, arithmtique 387 est utilis" + +#~ msgid "387 instruction set disabled, using SSE arithmetics" +#~ msgstr "jeu d'instructions 387 dsactiv, arithmtique SSE est utilis" + +#~ msgid "bad value (%s) for -mfpmath= switch" +#~ msgstr "valeur errone (%s) pour l'option -mfpmath" + +#~ msgid "fastcall and stdcall attributes are not compatible" +#~ msgstr "les attributs fastcall et stdcall ne sont pas compatibles" + +#~ msgid "fastcall and regparm attributes are not compatible" +#~ msgstr "les attributs fastcall et regparm ne sont pas compatibles" + +#~ msgid "`%s' attribute requires an integer constant argument" +#~ msgstr "l'attribut %s requiert un argument de type constante entire" + +#~ msgid "argument to `%s' attribute larger than %d" +#~ msgstr "l'argument pour l'attribut %s est plus grand que %d" + +#~ msgid "SSE vector argument without SSE enabled changes the ABI" +#~ msgstr "l'argument vecteur SSE sans autorisation SSE modifie l'ABI " + +#~ msgid "MMX vector argument without MMX enabled changes the ABI" +#~ msgstr "l'argument vecteur SSE sans autorisation MXX modifie l'ABI " + +#~ msgid "SSE vector return without SSE enabled changes the ABI" +#~ msgstr "vecteur SSE retourn sans autorisation SSE des changements de l'ABI " + +#~ msgid "invalid UNSPEC as operand" +#~ msgstr "UNSPEC invalide comme oprande" + +#~ msgid "extended registers have no high halves" +#~ msgstr "registres tendus n'a pas de demis hauts" + +#~ msgid "unsupported operand size for extended register" +#~ msgstr "taille d'oprande non supporte pour un registre tendu" + +#~ msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" +#~ msgstr "l'oprande n'est ni une constante ni du code de condition, code d'oprande invalide c " + +#~ msgid "invalid operand code `%c'" +#~ msgstr "oprande invalide pour %c " + +#~ msgid "invalid constraints for operand" +#~ msgstr "contrainte invalide pour l'oprande" + +#~ msgid "unknown insn mode" +#~ msgstr "mode insn inconnu" + +#~ msgid "selector must be an integer constant in the range 0..%i" +#~ msgstr "le slecteur doit tre une constante entire entre les bornes 0..%i" + +#~ msgid "shift must be an immediate" +#~ msgstr "dcalage doit tre un immdiat" + +#~ msgid "`%s' incompatible attribute ignored" +#~ msgstr "attribut %s incompatible ignor" + +#~ msgid "%Jfunction `%D' definition is marked dllimport." +#~ msgstr "%Jdfinition de la fonction %D est marque dllimport" + +#~ msgid "%Jvariable `%D' definition is marked dllimport." +#~ msgstr "%Jdfinition de la variable %D est marque dllimport" + +#~ msgid "%Jexternal linkage required for symbol '%D' because of '%s' attribute." +#~ msgstr "%Jdition de lien externe requise pour le symbole %D en raison de l'attribut %s " + +#~ msgid "`%s' attribute only applies to variables" +#~ msgstr "attribut %s s'applique seulement aux variables" + +#~ msgid "%Jfunction '%D' is defined after prior declaration as dllimport: attribute ignored" +#~ msgstr "%Jfonction %D est dfinie aprs un dclaration antrieure en tant que dllimport: attribut ignor" + +#~ msgid "%Jinline function '%D' is declared as dllimport: attribute ignored." +#~ msgstr "%Jfonction enligne %D est dclare en tant que dllimport: attribut ignor." + +#~ msgid "%Jdefinition of static data member '%D' of dllimport'd class." +#~ msgstr "%Jdfinition d'un membre statique de donnes %D de la classe dllimport" + +#~ msgid "%Jinconsistent dll linkage for '%D', dllexport assumed." +#~ msgstr "%Jdition de lien dll inconsistent pour %D : dllexport assum." + +#~ msgid "`%s' declared as both exported to and imported from a DLL" +#~ msgstr " %s dclar la fois comme export et import d'une DLL" + +#~ msgid "%Jfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage." +#~ msgstr "%Jchec dans la redclation de %D : symbol dllimport manque de liens externes." + +#~ msgid "%J'%D' defined locally after being referenced with dllimport linkage" +#~ msgstr "%J %D dfini localement aprs avoir t rfrenc avec lien dllimport." + +#~ msgid "%J'%D' redeclared without dllimport attribute after being referenced with dllimport linkage" +#~ msgstr "%J %D redclar sans attribut dllimport aprs avoir t rfrenc avec lien dllimport." + +#~ msgid "%J'%D' causes a section type conflict" +#~ msgstr "%J %D cause un conflit du type de section" + +#~ msgid "Use the Cygwin interface" +#~ msgstr "Utiliser l'interface Cygwin" + +#~ msgid "Use the Mingw32 interface" +#~ msgstr "Utiliser l'interface Mingw32" + +#~ msgid "Create GUI application" +#~ msgstr "Crer une application de type GUI" + +#~ msgid "Don't set Windows defines" +#~ msgstr "Ne pas initialiser les dfinitions Windows" + +#~ msgid "Set Windows defines" +#~ msgstr "Initialiser les dfinitions Windows" + +#~ msgid "Create console application" +#~ msgstr "Crer une application de type console" + +#~ msgid "Generate code for a DLL" +#~ msgstr "Gnrer le code pour un DLL" + +#~ msgid "Ignore dllimport for functions" +#~ msgstr "Ignorer dllimport pour fonctions" + +#~ msgid "Use Mingw-specific thread support" +#~ msgstr "Utilise le support de thread spcifique Mingw" + +#~ msgid "-f%s ignored for target (all code is position independent)" +#~ msgstr "-f%s ignor pour la cible (tout le code set indpendant de la position)" + +#~ msgid "-mbnu210 is ignored (option is obsolete)" +#~ msgstr "-mbnu210 est ignor (option obsolte)" + +#~ msgid "ms-bitfields not supported for objc" +#~ msgstr "ms-bitfields n'est pas support pour objc" + +#~ msgid "Alternate calling convention" +#~ msgstr "Convention alternative d'appels" + +#~ msgid "Use normal calling convention" +#~ msgstr "Utiliser la convention normale d'appels" + +#~ msgid "Align some doubles on dword boundary" +#~ msgstr "Aligner quelques doubles sur des frontires de mots doubles" + +#~ msgid "Align doubles on word boundary" +#~ msgstr "Aligner les doubles sur des frontires de mots" + +#~ msgid "Uninitialized locals in .bss" +#~ msgstr "Var. locales non initialises dans .bss" + +#~ msgid "Uninitialized locals in .data" +#~ msgstr "Var. locales non initialises dans .data" + +#~ msgid "Use IEEE math for fp comparisons" +#~ msgstr "Utiliser les mathmatiques IEEE pour les comparaisons FP" + +#~ msgid "Do not use IEEE math for fp comparisons" +#~ msgstr "Ne pas utiliser les mathmatiques IEEE pour les comparaisons FP" + +#~ msgid "Return values of functions in FPU registers" +#~ msgstr "Retourner les valeurs de fonctions dans les registres FPU" + +#~ msgid "Do not return values of functions in FPU registers" +#~ msgstr "Ne pas retourner les valeurs de fonctions dans les registres FPU" + +#~ msgid "Do not generate sin, cos, sqrt for FPU" +#~ msgstr "Ne pas gnrer sin, cos, sqrt pour le FPU" + +#~ msgid "Generate sin, cos, sqrt for FPU" +#~ msgstr "Gnrer sin, cos, sqrt pour le FPU" + +#~ msgid "Omit the frame pointer in leaf functions" +#~ msgstr "Omettre le pointeur de trame dans les fonctions feuilles" + +#~ msgid "Enable stack probing" +#~ msgstr "Autoriser le sondage de la pile" + +#~ msgid "Align destination of the string operations" +#~ msgstr "Aligner la destination des oprations sur les chanes" + +#~ msgid "Do not align destination of the string operations" +#~ msgstr "Ne pas aligner la destination des oprations sur les chanes" + +#~ msgid "Inline all known string operations" +#~ msgstr "Permettre l'enlignage dans toutes les oprations portant sur les chanes" + +#~ msgid "Do not inline all known string operations" +#~ msgstr "Ne pas permettre l'enlignage dans toutes les oprations portant sur les chanes" + +#~ msgid "Use push instructions to save outgoing arguments" +#~ msgstr "Utiliser les instructions push pour sauvegardes les arguments sortants" + +#~ msgid "Do not use push instructions to save outgoing arguments" +#~ msgstr "Ne pas utiliser les instructions push pour sauvegardes les arguments sortants" + +#~ msgid "Support MMX built-in functions" +#~ msgstr "Supporte les fonctions internes MMX" + +#~ msgid "Do not support MMX built-in functions" +#~ msgstr "Ne supporte pas les fonctions internes MMX" + +#~ msgid "Support 3DNow! built-in functions" +#~ msgstr "Supporte les fonctions internes 3DNOW!" + +#~ msgid "Do not support 3DNow! built-in functions" +#~ msgstr "Ne supporte pas les fonctions internes 3DNOW!" + +#~ msgid "Support MMX and SSE built-in functions and code generation" +#~ msgstr "Supporte les fonctions internes MMX et SSE et la gnration de code" + +#~ msgid "Do not support MMX and SSE built-in functions and code generation" +#~ msgstr "Ne supporte pas les fonctions internes MMX et SSE et la gnration de code" + +#~ msgid "Support MMX, SSE and SSE2 built-in functions and code generation" +#~ msgstr "Supporte les fonctions internes MMX, SSE et SSE2 et la gnration de code" + +#~ msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation" +#~ msgstr "Ne supporte pas les fonctions internes MMX, SSE et SSE2 et la gnration de code" + +#~ msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation" +#~ msgstr "Supporte les fonctions internes MMX, SSE, SSE2 et SSE3 et la gnration de code" + +#~ msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation" +#~ msgstr "Ne supporte pas les fonctions internes MMX, SSE, SSE2 et SSE3 et la gnration de code" + +#~ msgid "sizeof(long double) is 16" +#~ msgstr "sizeof(long double) est 16" + +#~ msgid "sizeof(long double) is 12" +#~ msgstr "sizeof(long double) est 12" + +#~ msgid "Generate 64bit x86-64 code" +#~ msgstr "Gnrer du code 64 bits pour x86-64" + +#~ msgid "Generate 32bit i386 code" +#~ msgstr "Gnrer du code 32 bits pour i386" + +#~ msgid "Use native (MS) bitfield layout" +#~ msgstr "Utiliser une configuration de champ de bits native (MS)" + +#~ msgid "Use gcc default bitfield layout" +#~ msgstr "Utiliser la configuration par dfaut de gcc pour les champs de bits" + +#~ msgid "Use red-zone in the x86-64 code" +#~ msgstr "Utiliser la zone-rouge pour le code x86-64" + +#~ msgid "Do not use red-zone in the x86-64 code" +#~ msgstr "Ne pas utiliser la zone-rouge pour le code x86-64" + +#~ msgid "Use direct references against %gs when accessing tls data" +#~ msgstr "Utiliser la rfrence directe envers %gs lors de l'accs des donnes tls" + +#~ msgid "Do not use direct references against %gs when accessing tls data" +#~ msgstr "Ne pas utiliser la rfrence directe envers %gs lors de l'accs des donnes tls" + +#~ msgid "Schedule code for given CPU" +#~ msgstr "Ordonnancer le code pour le processeur donn" + +#~ msgid "Generate floating point mathematics using given instruction set" +#~ msgstr "Gnrer les mathmatiques en virgule flottante avec le jeu d'instructions donnes" + +#~ msgid "Generate code for given CPU" +#~ msgstr "Gnrer le code pour le processeur donn" + +#~ msgid "Number of registers used to pass integer arguments" +#~ msgstr "Nombre de registres utiliss pour passer les arguments entiers" + +#~ msgid "Loop code aligned to this power of 2" +#~ msgstr "Codes de boucles aligns selon une puissance de 2" + +#~ msgid "Jump targets are aligned to this power of 2" +#~ msgstr "Sauts de cibles aligns selon une puissance de 2" + +#~ msgid "Function starts are aligned to this power of 2" +#~ msgstr "Dbuts des fonction aligns selon une puissance de 2" + +#~ msgid "Attempt to keep stack aligned to this power of 2" +#~ msgstr "Tentative de conservation de la pile aligne selon une puissance de 2" + +#~ msgid "Branches are this expensive (1-5, arbitrary units)" +#~ msgstr "Branchements coteux ce point (1-4, units arbitraires)" + +#~ msgid "Use given x86-64 code model" +#~ msgstr "Utiliser le modle de x86-64 donn" + +#~ msgid "Use given assembler dialect" +#~ msgstr "Utiliser la syntaxe de l'assembleur donn" + +#~ msgid "Use given thread-local storage dialect" +#~ msgstr "Utiliser le dialecte de stockage du thread local fourni" + +#~ msgid "Generate ELF output" +#~ msgstr "Gnrer la sortie ELF" + +#~ msgid "environment variable DJGPP not defined" +#~ msgstr "variable d'environment DJGPP non dfinie" + +#~ msgid "environment variable DJGPP points to missing file '%s'" +#~ msgstr "variable d'environment DJGPP pointe sur un fichier manquant %s " + +#~ msgid "environment variable DJGPP points to corrupt file '%s'" +#~ msgstr "variable d'environment DJGPP pointe vers un fichier corrompu %s " + +#~ msgid "Generate code which uses the FPU" +#~ msgstr "Gnrer du code qui utilise le FPU" + +#~ msgid "Do not generate code which uses the FPU" +#~ msgstr "Ne pas gnrer du code qui utilise le FPU" + +#~ msgid "sorry, not implemented: #pragma align NAME=SIZE" +#~ msgstr "dsol, pas implant: #pragma align NOM=TAILLE" + +#~ msgid "malformed #pragma align - ignored" +#~ msgstr "#pragma align mal compos - ignor" + +#~ msgid "sorry, not implemented: #pragma noalign NAME" +#~ msgstr "dsol, pas implant: #pragma noalign NOM" + +#~ msgid "conflicting architectures defined - using C series" +#~ msgstr "architectures conflictuelles dfinies - utilise les sries C" + +#~ msgid "conflicting architectures defined - using K series" +#~ msgstr "architectures conflictuelles dfinies - utilise les sries K" + +#~ msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" +#~ msgstr "iC2.0 et iC3.0 sont incompatibles - utilise iC3.0" + +#~ msgid "stack limit expression is not supported" +#~ msgstr "expression limitant la pile n'est pas supporte" + +#~ msgid "Generate SA code" +#~ msgstr "Gnrer du code SA" + +#~ msgid "Generate SB code" +#~ msgstr "Gnrer du code SB" + +#~ msgid "Generate KA code" +#~ msgstr "Gnrer du code KA" + +#~ msgid "Generate KB code" +#~ msgstr "Gnrer du code KB" + +#~ msgid "Generate JA code" +#~ msgstr "Gnrer du code JA" + +#~ msgid "Generate JD code" +#~ msgstr "Gnrer du code JD" + +#~ msgid "Generate JF code" +#~ msgstr "Gnrer du code JF" + +#~ msgid "generate RP code" +#~ msgstr "Gnrer du code RP" + +#~ msgid "Generate MC code" +#~ msgstr "Gnrer du code MC" + +#~ msgid "Generate CA code" +#~ msgstr "Gnrer du code CA" + +#~ msgid "Generate CF code" +#~ msgstr "Gnrer du code CF" + +#~ msgid "Use software floating point" +#~ msgstr "Utiliser le traitement par logiciel des nombres flottants" + +#~ msgid "Use alternate leaf function entries" +#~ msgstr "Utiliser les entres alternatives pour les fonctions de feuilles" + +#~ msgid "Do not use alternate leaf function entries" +#~ msgstr "Ne pas utiliser les entres alternatives pour les fonctions de feuilles" + +#~ msgid "Perform tail call optimization" +#~ msgstr "Effectuer une optimisation sur mesure des appels" + +#~ msgid "Do not perform tail call optimization" +#~ msgstr "Ne pas effectuer une optimisation sur mesure des appels" + +#~ msgid "Use complex addressing modes" +#~ msgstr "Utiliser les modes d'adressage complexes" + +#~ msgid "Do not use complex addressing modes" +#~ msgstr "Ne pas utiliser les modes d'adressage complexes" + +#~ msgid "Align code to 8 byte boundary" +#~ msgstr "Aligner le code sur des frontires de 8 octets" + +#~ msgid "Do not align code to 8 byte boundary" +#~ msgstr "Ne pas aligner le code sur des frontires de 8 octets" + +#~ msgid "Enable compatibility with iC960 v2.0" +#~ msgstr "Autoriser la compatibilit avec iC960 v2.0" + +#~ msgid "Enable compatibility with iC960 v3.0" +#~ msgstr "Autoriser la compatibilit avec iC960 v3.0" + +#~ msgid "Enable compatibility with ic960 assembler" +#~ msgstr "Autoriser la compatibilit avec l'assembleur iC960" + +#~ msgid "Do not permit unaligned accesses" +#~ msgstr "Ne pas permettre les accs non aligns" + +#~ msgid "Permit unaligned accesses" +#~ msgstr "Permettre les accs non aligns" + +#~ msgid "Layout types like Intel's v1.3 gcc" +#~ msgstr "Utiliser une disposition de type Intel's v1.3 gcc" + +#~ msgid "Do not layout types like Intel's v1.3 gcc" +#~ msgstr "Ne pas utiliser une disposition de type Intel's v1.3 gcc" + +#~ msgid "Use 64 bit long doubles" +#~ msgstr "Utiliser les doubles longs de 64 bits" + +#~ msgid "Enable linker relaxation" +#~ msgstr "Autoriser la relche par l'diteur de liens" + +#~ msgid "Do not enable linker relaxation" +#~ msgstr "Ne pas autoriser la relche par l'diteur de liens" + +#~ msgid "malformed #pragma builtin" +#~ msgstr "construit #pragma mal compos" + +#~ msgid "invalid argument of `%s' attribute" +#~ msgstr "type d'argument invalide pour l'attribut %s " + +#~ msgid "%Jan address area attribute cannot be specified for local variables" +#~ msgstr "%Jun attribut d'adresse de zone de donnes ne peut pas tre spcifi pour des variables locales" + +#~ msgid "%Jaddress area of '%s' conflicts with previous declaration" +#~ msgstr "%Jl'adresse de la zone %s entre en conflit avec un dclaration prcdente" + +#~ msgid "%Jaddress area attribute cannot be specified for functions" +#~ msgstr "%Jl'attribut de la zone d'adresse ne peut pas tre spcifi pour des fonctiones" + +#~ msgid "ia64_print_operand: unknown code" +#~ msgstr "ia64_print_operand: code inconnu" + +#~ msgid "value of -mfixed-range must have form REG1-REG2" +#~ msgstr "valeur de -mfixed-range doit avoir la forme REG1-REG2" + +#~ msgid "%s-%s is an empty range" +#~ msgstr "%s-%s est une tendue vide" + +#~ msgid "cannot optimize floating point division for both latency and throughput" +#~ msgstr "ne peut optimiser la division en point flottant la fois pour la latence et le dbit" + +#~ msgid "cannot optimize integer division for both latency and throughput" +#~ msgstr "ne peut optimiser la division entire la fois pour la latence et le dbit" + +#~ msgid "cannot optimize square root for both latency and throughput" +#~ msgstr "ne peut optimiser la racine carre la fois pour la latence et le dbit" + +#~ msgid "not yet implemented: latency-optimized inline square root" +#~ msgstr "pas encore implant: racine carre enligne optimise pour la latence" + +#~ msgid "bad value (%s) for -mtls-size= switch" +#~ msgstr "valeur errone (%s) pour l'option -mtls-size" + +#~ msgid "bad value (%s) for -tune= switch" +#~ msgstr "valeur errone (%s) pour l'option -tune=" + +#~ msgid "Generate big endian code" +#~ msgstr "Gnrer du code de systme octets de poids fort" + +#~ msgid "Generate little endian code" +#~ msgstr "Gnrer du code de systme octets de poids faible" + +#~ msgid "Generate code for GNU as" +#~ msgstr "Gnrer du code pour GNU tel que" + +#~ msgid "Generate code for Intel as" +#~ msgstr "Gnrer du code pour Intel tel que" + +#~ msgid "Generate code for GNU ld" +#~ msgstr "Gnrer du code pour GNU ld" + +#~ msgid "Generate code for Intel ld" +#~ msgstr "Gnrer du code pour Intel ld" + +#~ msgid "Generate code without GP reg" +#~ msgstr "Gnrer du code sans registre GP" + +#~ msgid "Emit stop bits before and after volatile extended asms" +#~ msgstr "Produire de stop bits avant et aprs les asms tendus" + +#~ msgid "Don't emit stop bits before and after volatile extended asms" +#~ msgstr "Ne pas produire de stop bits avant et aprs les asms tendus" + +#~ msgid "Emit code for Itanium (TM) processor B step" +#~ msgstr "Produire du code pour le processeur B Itanium (TM)" + +#~ msgid "Use in/loc/out register names" +#~ msgstr "Utilise les noms des registres in/loc/out " + +#~ msgid "Disable use of sdata/scommon/sbss" +#~ msgstr "Interdire l'utilisation de sdata/scommon/sbss" + +#~ msgid "Enable use of sdata/scommon/sbss" +#~ msgstr "Autoriser l'utilisation de sdata/scommon/sbss" + +#~ msgid "gp is constant (but save/restore gp on indirect calls)" +#~ msgstr "gp est une constante (mais save/restore gp fait par appels indirects)" + +#~ msgid "Generate self-relocatable code" +#~ msgstr "Gnrer du code auto-relocalisable" + +#~ msgid "Generate inline floating point division, optimize for latency" +#~ msgstr "Gnrer la division enligne en point flottant, optimiser pour la latence" + +#~ msgid "Generate inline floating point division, optimize for throughput" +#~ msgstr "Gnrer la division en point flottant enligne, optimiser pour le dbit" + +#~ msgid "Generate inline integer division, optimize for latency" +#~ msgstr "Gnrer la division entire enligne, optimiser pour la latence" + +#~ msgid "Generate inline integer division, optimize for throughput" +#~ msgstr "Gnrer la divisions entire enligne, optimiser pour le dbit" + +#~ msgid "Generate inline square root, optimize for latency" +#~ msgstr "Gnrer la racine carre enligne, optimiser pour la latence" + +#~ msgid "Generate inline square root, optimize for throughput" +#~ msgstr "Gnrer la racine carre enligne, optimiser pour le dbit" + +#~ msgid "Enable Dwarf 2 line debug info via GNU as" +#~ msgstr "Autoriser les infos de lignes de mise au point Dwarf 2 via GNU tel que" + +#~ msgid "Disable Dwarf 2 line debug info via GNU as" +#~ msgstr "Interdire les infos de lignes de mise au point Dwarf 2 via GNU tel que" + +#~ msgid "Enable earlier placing stop bits for better scheduling" +#~ msgstr "Autoriser l'insertion antrieure de stop bits pour un meilleur ordonnancement" + +#~ msgid "Disable earlier placing stop bits" +#~ msgstr "Interdire l'installation antrieure de bits d'arrt" + +#~ msgid "Specify range of registers to make fixed" +#~ msgstr "spcifier l'tendue des registres pour la rendre fixe" + +#~ msgid "bad operand" +#~ msgstr "oprande errone" + +#~ msgid "bad value (%s) for -mcpu= switch" +#~ msgstr "valeur errone (%s) pour l'option -mcpu=" + +#~ msgid "The compiler does not support -march=%s." +#~ msgstr "Le compilateur ne supporte pas -march=%s." + +#~ msgid "gp_offset (%ld) or end_offset (%ld) is less than zero." +#~ msgstr "gp_offset (%ld) ou end_offset (%ld) est plus petit que zro." + +#~ msgid "argument `%d' is not a constant" +#~ msgstr "l'argument de %d n'est pas une constante" + +#~ msgid "PRINT_OPERAND_ADDRESS, null pointer" +#~ msgstr "PRINT_OPERAND_ADDRESS, pointeur nul" + +#~ msgid "PRINT_OPERAND: Unknown punctuation '%c'" +#~ msgstr "PRINT_OPERAND: ponctuation %c inconnue" + +#~ msgid "PRINT_OPERAND null pointer" +#~ msgstr "PRINT_OPERAND pointeur nul" + +#~ msgid "invalid %%P operand" +#~ msgstr "oprande %%P invalide" + +#~ msgid "invalid %%p value" +#~ msgstr "valeur %%p invalide" + +#~ msgid "invalid use of %%d, %%x, or %%X" +#~ msgstr "utilisation invalide de %%d, %%x, ou %%X" + +#~ msgid "No default crt0.o" +#~ msgstr "Aucun dfaut pour crt0.o" + +#~ msgid "Use GP relative sdata/sbss sections" +#~ msgstr "Utiliser GP en mode relatif aux sections sdata/sbss" + +#~ msgid "Don't use GP relative sdata/sbss sections" +#~ msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss" + +#~ msgid "Use ROM instead of RAM" +#~ msgstr "Utiliser le ROM au lieu de la RAM" + +#~ msgid "Don't use ROM instead of RAM" +#~ msgstr "Ne pas utiliser le ROM au lieu de la RAM" + +#~ msgid "Put uninitialized constants in ROM (needs -membedded-data)" +#~ msgstr "Placer les constantes non itialises dans le ROM (a besoin de -membedded-data)" + +#~ msgid "Don't put uninitialized constants in ROM" +#~ msgstr "Ne pas placer les constantes non itialises dans le ROM (a besoin de -membedded-data)" + +#~ msgid "Specify CPU for scheduling purposes" +#~ msgstr "Spcifier le processeur pour les besoins de l'ordonnancement" + +#~ msgid "Specify CPU for code generation purposes" +#~ msgstr "Spcifier le processeur pour les besoins de la gnration de code" + +#~ msgid "bad value (%s) for -mmodel switch" +#~ msgstr "valeur errone (%s) pour l'option -mmodel" + +#~ msgid "bad value (%s) for -msdata switch" +#~ msgstr "valeur errone (%s) pour l'option -msdata" + +#~ msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" +#~ msgstr "erreur interne: %%> trouv sans %%< dans le canevas d'assemblage" + +#~ msgid "internal error: %%} found without a %%{ in assembler pattern" +#~ msgstr "erreur interne: %%} trouv sans %%{ dans le canevas d'assemblage" + +#~ msgid "PRINT_OPERAND: unknown punctuation '%c'" +#~ msgstr "PRINT_OPERAND: ponctuation %c inconnue" + +#~ msgid "PRINT_OPERAND, invalid insn for %%C" +#~ msgstr "PRINT_OPERAND insn invalide pour %%C" + +#~ msgid "PRINT_OPERAND, invalid insn for %%N" +#~ msgstr "PRINT_OPERAND insn invalide pour %%N" + +#~ msgid "PRINT_OPERAND, invalid insn for %%F" +#~ msgstr "PRINT_OPERAND insn invalide pour %%F" + +#~ msgid "PRINT_OPERAND, invalid insn for %%W" +#~ msgstr "PRINT_OPERAND insn invalide pour %%W" + +#~ msgid "PRINT_OPERAND, invalid operand for relocation" +#~ msgstr "PRINT_OPERAND, oprande invalide pour la relocalisation" + +#~ msgid "can not handle inconsistent calls to `%s'" +#~ msgstr "ne peut traiter des appels inconsistents %s " + +#~ msgid "the cpu name must be lower case" +#~ msgstr "le nom du cpu doit tre en minuscules" + +#~ msgid "bad value (%s) for %s" +#~ msgstr "valeur (%s) errone pour %s" + +#~ msgid "can't rewind temp file: %m" +#~ msgstr "ne peut rembobiner le fichier temporaire: %m" + +#~ msgid "can't write to output file: %m" +#~ msgstr "ne peut crire dans le fichier de sortie: %m" + +#~ msgid "can't read from temp file: %m" +#~ msgstr "ne peut lire du fichier temporaire: %m" + +#~ msgid "can't close temp file: %m" +#~ msgstr "ne peut fermer le fichier temporaire: %m" + +#~ msgid "Same as -mabi=32, just trickier" +#~ msgstr "Identique -mabi=32, juste plus complexe" + +#~ msgid "Use 64-bit int type" +#~ msgstr "Utiliser le type int de 64 bits" + +#~ msgid "Use 64-bit long type" +#~ msgstr "Utiliser le type long de 64 bits" + +#~ msgid "Use 32-bit long type" +#~ msgstr "Utiliser le type long de 32 bits" + +#~ msgid "Optimize lui/addiu address loads" +#~ msgstr "Optimiser les chargements d'adresses lui/addiu" + +#~ msgid "Don't optimize lui/addiu address loads" +#~ msgstr "Ne pas optimiser les chargements d'adresses lui/addiu" + +#~ msgid "Use MIPS as" +#~ msgstr "Utiliser MIPS tel que" + +#~ msgid "Use GNU as" +#~ msgstr "Utiliser GNU tel que" + +#~ msgid "Use symbolic register names" +#~ msgstr "Utiliser les noms de registres symboliques" + +#~ msgid "Don't use symbolic register names" +#~ msgstr "Ne pas utiliser les noms de registres symboliques" + +#~ msgid "Use GP relative sdata/sbss sections (now ignored)" +#~ msgstr "Utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignor)" + +#~ msgid "Don't use GP relative sdata/sbss sections (now ignored)" +#~ msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignor)" + +#~ msgid "Output compiler statistics (now ignored)" +#~ msgstr "Afficher les statistiques de compilation (maintenant ignor)" + +#~ msgid "Don't output compiler statistics" +#~ msgstr "Ne pas afficher les statistiques de compilation" + +#~ msgid "Don't optimize block moves" +#~ msgstr "Ne pas optimiser les dplacements de blocs" + +#~ msgid "Optimize block moves" +#~ msgstr "Optimiser les dplacements de blocs" + +#~ msgid "Use mips-tfile asm postpass" +#~ msgstr "Utiliser la post-passe de type mips-tfile de l'assembleur" + +#~ msgid "Don't use mips-tfile asm postpass" +#~ msgstr "Ne pas utiliser la post-passe de type mips-tfile de l'assembleur" + +#~ msgid "Use hardware floating point" +#~ msgstr "Utiliser l'unit matrielle en virgule flottante" + +#~ msgid "Use 64-bit FP registers" +#~ msgstr "Utiliser les registres FP de 64 bits" + +#~ msgid "Use 32-bit FP registers" +#~ msgstr "Utiliser les registres FP de 32 bits" + +#~ msgid "Use 64-bit general registers" +#~ msgstr "Utiliser les registres gnraux de 64 bits" + +#~ msgid "Use 32-bit general registers" +#~ msgstr "Utiliser les registres gnraux de 32 bits" + +#~ msgid "Use Irix PIC" +#~ msgstr "Utiliser le code PIC Irix" + +#~ msgid "Don't use Irix PIC" +#~ msgstr "Ne pas utiliser le code PIC Irix" + +#~ msgid "Use indirect calls" +#~ msgstr "Utiliser les appels indirects" + +#~ msgid "Don't use indirect calls" +#~ msgstr "Ne pas utiliser les appels indirects" + +#~ msgid "Use embedded PIC" +#~ msgstr "Utiliser le code PIC enchss" + +#~ msgid "Don't use embedded PIC" +#~ msgstr "Ne pas utiliser le code PIC enchss" + +#~ msgid "Use big-endian byte order" +#~ msgstr "Utiliser l'ordre des octets pour systme octets de poids fort" + +#~ msgid "Use little-endian byte order" +#~ msgstr "Utiliser l'ordre des octets pour systme octets de poids faible" + +#~ msgid "Use single (32-bit) FP only" +#~ msgstr "Utiliser un simple FP (32 bits) seulement" + +#~ msgid "Don't use single (32-bit) FP only" +#~ msgstr "Ne pas utiliser un simple FP (32 bits) seulement" + +#~ msgid "Use multiply accumulate" +#~ msgstr "Utiliser les multiplications par accumulations" + +#~ msgid "Don't use multiply accumulate" +#~ msgstr "Ne pas utiliser les multiplications par accumulations" + +#~ msgid "Don't generate fused multiply/add instructions" +#~ msgstr "Ne pas gnrer des instructions fusionns de multiplication/addition" + +#~ msgid "Generate fused multiply/add instructions" +#~ msgstr "Gnrer des instructions fusionns de multiplication/addition" + +#~ msgid "Work around early 4300 hardware bug" +#~ msgstr "Contourner le bug matriel des premiers 4300" + +#~ msgid "Don't work around early 4300 hardware bug" +#~ msgstr "Ne pas contourner le bug matriel des premiers 4300" + +#~ msgid "Work around errata for early SB-1 revision 2 cores" +#~ msgstr "Contourner l'erreur pour la rvision 2 du noyau des versions initiales SB-1" + +#~ msgid "Don't work around errata for early SB-1 revision 2 cores" +#~ msgstr "Ne pas contourner l'erreur pour la rvision 2 du noyau des versions initiales SB-1" + +#~ msgid "Trap on integer divide by zero" +#~ msgstr "Intercepter les divisions par zros sur des entiers" + +#~ msgid "Don't trap on integer divide by zero" +#~ msgstr "Ne pas intercepter les divisions par zros sur des entiers" + +#~ msgid "Use Branch Likely instructions, overriding default for arch" +#~ msgstr "Utiliser des instructions se comportant comme des branchements, crasant le dfaut de l'architecture" + +#~ msgid "Don't use Branch Likely instructions, overriding default for arch" +#~ msgstr "Ne pas utiliser des instructions se comportant comme des branchements, crasant le dfaut de l'architecture" + +#~ msgid "Use NewABI-style %reloc() assembly operators" +#~ msgstr "Utiliser NewABI-style %reloc() les oprateurs d'assemblage" + +#~ msgid "Use assembler macros instead of relocation operators" +#~ msgstr "Utiliser les macros assembleurs au lieu des oprateurs de relocalisation" + +#~ msgid "Generate mips16 code" +#~ msgstr "Gnrer du code mips16" + +#~ msgid "Generate normal-mode code" +#~ msgstr "Gnrer du code en mode normal" + +#~ msgid "Lift restrictions on GOT size" +#~ msgstr "Enlever les restrictions sur la taille GOT" + +#~ msgid "Do not lift restrictions on GOT size" +#~ msgstr "Ne pas enlever les restrictions sur la taille GOT" + +#~ msgid "Specify an ABI" +#~ msgstr "Spcifier une ABI" + +#~ msgid "Specify a Standard MIPS ISA" +#~ msgstr "Spcifier le standard MIPS ISA" + +#~ msgid "mips16 function profiling" +#~ msgstr "profilage de fonction mips16" + +#~ msgid "-f%s not supported: ignored" +#~ msgstr "-f%s n'est pas support: ignor" + +#~ msgid "too large function value type, needs %d registers, have only %d registers for this" +#~ msgstr "valeur de type de fonction trop grande, a besoin de %d registres mais seuls %d disponibles" + +#~ msgid "function_profiler support for MMIX" +#~ msgstr "function_profiler support pour MMIX" + +#~ msgid "MMIX Internal: Last named vararg would not fit in a register" +#~ msgstr "MMIX interne: dernier vararg nomm ne pourra tre insr dans un registre" + +#~ msgid "MMIX Internal: Expected a CONST_INT, not this" +#~ msgstr "MMIX interne: attendait CONST_INT, pas ceci" + +#~ msgid "MMIX Internal: Bad register: %d" +#~ msgstr "MMIX interne: registre erron: %d" + +#~ msgid "MMIX Internal: Bad value for 'm', not a CONST_INT" +#~ msgstr "MMIX interne: valeur errone pour m , pas un CONST_INT" + +#~ msgid "MMIX Internal: Expected a register, not this" +#~ msgstr "MMIX interne: attendait un registre, pas ceci" + +#~ msgid "MMIX Internal: Expected a constant, not this" +#~ msgstr "MMIX interne: attendait une constante, pas ceci" + +#~ msgid "MMIX Internal: Missing `%c' case in mmix_print_operand" +#~ msgstr "MMIX interne: cas %c manquant dans mmix_print_operand" + +#~ msgid "MMIX Internal: Cannot decode this operand" +#~ msgstr "MMIX interne: ne peut dcoder cette oprande" + +#~ msgid "MMIX Internal: This is not a recognized address" +#~ msgstr "MMIX interne: ce n'est pas une adresse reconnue" + +#~ msgid "stack frame not a multiple of 8 bytes: %d" +#~ msgstr "trame de pile n'est pas un multiple de 8 octets: %d" + +#~ msgid "stack frame not a multiple of octabyte: %d" +#~ msgstr "trame de pile n'est pas un multiple de 8 octets: %d" + +#~ msgid "MMIX Internal: %s is not a shiftable int" +#~ msgstr "MMIX interne: %s n'est pas un entier pouvant dcal" + +#~ msgid "MMIX Internal: Trying to output invalidly reversed condition:" +#~ msgstr "MMIX interne: tentative de produire incorrectement une condition renverse:" + +#~ msgid "MMIX Internal: What's the CC of this?" +#~ msgstr "MMIX interne: quel sorte de CC est-ce?" + +#~ msgid "MMIX Internal: What is the CC of this?" +#~ msgstr "MMIX interne: quel sorte de CC est-ce?" + +#~ msgid "MMIX Internal: This is not a constant:" +#~ msgstr "interne MMIX: ce n'est pas une constante:" + +#~ msgid "Set start-address of the program" +#~ msgstr "Adress de dpart du programme fixe" + +#~ msgid "Set start-address of data" +#~ msgstr "Adresse de dpart des donnes fixe" + +#~ msgid "For intrinsics library: pass all parameters in registers" +#~ msgstr "Pour les bibliothques intrinsques : passer tous les paramtres par registre" + +#~ msgid "Use register stack for parameters and return value" +#~ msgstr "Utiliser le registre de la pile pour les paramtres et la valeur retourne" + +#~ msgid "Use call-clobbered registers for parameters and return value" +#~ msgstr "utiliser les registres d'appels maltraits pour les paramtres et les valeurs retournes" + +#~ msgid "Use epsilon-respecting floating point compare instructions" +#~ msgstr "Utiliser un epsilon respectant les instructions de comparaison en virgule flottante" + +#~ msgid "Use zero-extending memory loads, not sign-extending ones" +#~ msgstr "utiliser des chargements mmoire avec zro extension, pas celles avec signe d'extension" + +#~ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)" +#~ msgstr "gnrer des rsultats de division avec reste ayant le mme signe que le diviseur (pas le dividende)" + +#~ msgid "Prepend global symbols with \":\" (for use with PREFIX)" +#~ msgstr "pr ajouter les symboles globaux avec : (pour l'utilisation avec PREFIX)" + +#~ msgid "Do not provide a default start-address 0x100 of the program" +#~ msgstr "Ne pas fournir d'adresse de dpart par dfaut 0x100 du programme" + +#~ msgid "Link to emit program in ELF format (rather than mmo)" +#~ msgstr "Faire l'dition de liens pour produire le programme en format ELF (au lieu de mmo)" + +#~ msgid "Use P-mnemonics for branches statically predicted as taken" +#~ msgstr "Utiliser les mnmoniques P pour les branchements statiquement prvus tre pris" + +#~ msgid "Don't use P-mnemonics for branches" +#~ msgstr "Ne pas utiliser les mnmoniques P pour les branchements" + +#~ msgid "Use addresses that allocate global registers" +#~ msgstr "Utiliser les adresses qui allouent des registres globaux" + +#~ msgid "Do not use addresses that allocate global registers" +#~ msgstr "Ne pas utiliser des adresses qui allouent des registres globaux" + +#~ msgid "Generate a single exit point for each function" +#~ msgstr "Gnrer un point de sortie simple pour chaque fonction" + +#~ msgid "Do not generate a single exit point for each function" +#~ msgstr "Ne pas gnrer un point de sortie simple pour chaque fonction" + +#~ msgid "Target the AM33 processor" +#~ msgstr "Cible le processeur AM33" + +#~ msgid "Target the AM33/2.0 processor" +#~ msgstr "Cibler le processeur AM33/2.0" + +#~ msgid "Enable linker relaxations" +#~ msgstr "Autoriser la relche de l'diteur de liens" + +#~ msgid "Work around hardware multiply bug" +#~ msgstr "Contourner le bug matriel de la multiplication" + +#~ msgid "Do not work around hardware multiply bug" +#~ msgstr "Ne pas contourner le bug matriel de la multiplication" + +#~ msgid "Don't use hardware fp" +#~ msgstr "Ne pas utiliser le FP matriel" + +#~ msgid "Alternative calling convention" +#~ msgstr "Convention alternative d'appels" + +#~ msgid "Pass some arguments in registers" +#~ msgstr "Passer quelques arguments par les registres" + +#~ msgid "Pass all arguments on stack" +#~ msgstr "PAsser tous les arguments par la pile" + +#~ msgid "Optimize for 32532 cpu" +#~ msgstr "Optimiser pour le processeur 32532" + +#~ msgid "Optimize for 32332 cpu" +#~ msgstr "Optimiser pour le processeur 32332" + +#~ msgid "Optimize for 32032" +#~ msgstr "Optimiser pour le 32022" + +#~ msgid "Register sb is zero. Use for absolute addressing" +#~ msgstr "Registre sb est zro. Utilis pour l'adressage absolu" + +#~ msgid "Do not use register sb" +#~ msgstr "Ne pas utiliser le registre sb" + +#~ msgid "Use bit-field instructions" +#~ msgstr "Utiliser les instructions de champs de bits" + +#~ msgid "Do not use bit-field instructions" +#~ msgstr "Ne pas utiliser les instructions de champs de bits" + +#~ msgid "Generate code for high memory" +#~ msgstr "Gnrer du code pour la partie haute de la mmoire" + +#~ msgid "Generate code for low memory" +#~ msgstr "Gnrer du code pour la partie basse de la mmoire" + +#~ msgid "32381 fpu" +#~ msgstr "FPU 32381" + +#~ msgid "Use multiply-accumulate fp instructions" +#~ msgstr "Utiliser les instructions FP de multiplications avec accumulations" + +#~ msgid "Do not use multiply-accumulate fp instructions" +#~ msgstr "Ne pas utiliser les instructions FP de multiplications avec accumulations" + +#~ msgid "\"Small register classes\" kludge" +#~ msgstr "\"Petites classes de registres\" kludge" + +#~ msgid "No \"Small register classes\" kludge" +#~ msgstr "Pas de \"Petites classes de registres\" kludge" + +#~ msgid "" +#~ "unknown -mschedule= option (%s).\n" +#~ "Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n" +#~ msgstr "" +#~ "Option inconnue -mschedule= (%s)\n" +#~ "Les options valides sont 700, 7100, 7100LC, 7200, 7300 et 8000\n" + +#~ msgid "" +#~ "unknown -march= option (%s).\n" +#~ "Valid options are 1.0, 1.1, and 2.0\n" +#~ msgstr "" +#~ "Option inconnue -march= (%s)\n" +#~ "Les options valides sont 1.0, 1.1 et 2.0\n" + +#~ msgid "PIC code generation is not supported in the portable runtime model\n" +#~ msgstr "La gnration de code PIC n'est pas supporte dans le modle portable d'excution\n" + +#~ msgid "PIC code generation is not compatible with fast indirect calls\n" +#~ msgstr "La gnration de code PIC n'est pas compatible avec les appels indirects rapides.\n" + +#~ msgid "-g is only supported when using GAS on this processor," +#~ msgstr "L'option -g est seulement supporte lorsque GAS est utilis sur ce processeur," + +#~ msgid "Generate cpp defines for server IO" +#~ msgstr "Gnrer les defines pour les IO d'un serveur" + +#~ msgid "Generate cpp defines for workstation IO" +#~ msgstr "Gnrer les defines pour les IO d'une station de travail" + +#~ msgid "Generate PA1.1 code" +#~ msgstr "Gnrer du code PA1.1" + +#~ msgid "Generate PA1.0 code" +#~ msgstr "Gnrer du code PA1.0" + +#~ msgid "Generate PA2.0 code (requires binutils 2.10 or later)" +#~ msgstr "Gnrer du code PA2.0 (ncessite binutils 2.10 ou suprieur)" + +#~ msgid "Disable FP regs" +#~ msgstr "Dsactiver les registres FP" + +#~ msgid "Do not disable FP regs" +#~ msgstr "Ne pas dsactiver les registres FP" + +#~ msgid "Disable space regs" +#~ msgstr "Dsactiver l'espace registre" + +#~ msgid "Do not disable space regs" +#~ msgstr "Ne pas dsactiver l'espace registre" + +#~ msgid "Put jumps in call delay slots" +#~ msgstr "Mettre des sauts dant les fentes de dlais" + +#~ msgid "Do not put jumps in call delay slots" +#~ msgstr "Ne pas mettre des sauts dant les fentes de dlais" + +#~ msgid "Disable indexed addressing" +#~ msgstr "dsactiver l'adressage index" + +#~ msgid "Do not disable indexed addressing" +#~ msgstr "Ne pas dsactiver l'adressage index" + +#~ msgid "Use portable calling conventions" +#~ msgstr "Utiliser les conventions d'appels portables" + +#~ msgid "Do not use portable calling conventions" +#~ msgstr "Ne pas utiliser les conventions d'appel portables" + +#~ msgid "Assume code will be assembled by GAS" +#~ msgstr "Assumer que le code sera assembl par GAS" + +#~ msgid "Do not assume code will be assembled by GAS" +#~ msgstr "Ne pas assumer que le code sera assembl par GAS" + +#~ msgid "Do not use software floating point" +#~ msgstr "Ne pas utiliser le logiciel pour virgule flottante" + +#~ msgid "Emit long load/store sequences" +#~ msgstr "Gnrer des instructions multiples pour chargement/stockage" + +#~ msgid "Do not emit long load/store sequences" +#~ msgstr "Ne pas gnrer les instructions multiples de chargement/stockage" + +#~ msgid "Generate fast indirect calls" +#~ msgstr "Ne pas utiliser les appels rapides indirects" + +#~ msgid "Do not generate fast indirect calls" +#~ msgstr "Ne pas gnrer de directives rapides indirects" + +#~ msgid "Generate code for huge switch statements" +#~ msgstr "Gnrer du code pour les grandes dclarations de branchements" + +#~ msgid "Do not generate code for huge switch statements" +#~ msgstr "Ne pas gnrer du code pour les grandes dclarations de branchement" + +#~ msgid "Always generate long calls" +#~ msgstr "Gnrer toujours des appels longs" + +#~ msgid "Generate long calls only when needed" +#~ msgstr "Gnrer des appels longs lorsque ncessaire" + +#~ msgid "Enable linker optimizations" +#~ msgstr "Activer les optimisations par l'diteur de liens" + +#~ msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later." +#~ msgstr "Spcifier l'architecture pour la gnration de code. Les valeurs sont 1.0, 1.1 et 2.0. 2.0 requiert gas snapshot 19990413 ou plus rcent." + +#~ msgid "Assume code will be linked by GNU ld" +#~ msgstr "Assumer que le code sera li par GNU ld" + +#~ msgid "Assume code will be linked by HP ld" +#~ msgstr "Assumer que le code sera li par HP ld" + +#~ msgid "Do not use hardware floating point" +#~ msgstr "Ne pas utiliser le matriel pour virgule flottante" + +#~ msgid "Return floating point results in ac0" +#~ msgstr "Le rsultat retourn en virgule flottante se retrouve dans AC0." + +#~ msgid "Return floating point results in memory" +#~ msgstr "Le rsultat retourn en virgule flottante se retrouve en mmoire." + +#~ msgid "Generate code for an 11/40" +#~ msgstr "Gnrer du code pour un 11/40" + +#~ msgid "Generate code for an 11/45" +#~ msgstr "Gnrer du code pour un 11/45" + +#~ msgid "Generate code for an 11/10" +#~ msgstr "Gnrer du code pour un 11/10" + +#~ msgid "Use 32 bit int" +#~ msgstr "Utiliser des int de 32 bits" + +#~ msgid "Use 16 bit int" +#~ msgstr "Utiliser des int de 16 bits" + +#~ msgid "Use 32 bit float" +#~ msgstr "Utiliser des flottants de 32 bits" + +#~ msgid "Use 64 bit float" +#~ msgstr "Utiliser des flottants de 64 bits" + +#~ msgid "Target has split I&D" +#~ msgstr "Cible a un I&D spar" + +#~ msgid "Target does not have split I&D" +#~ msgstr "Cible n'a pas un I&D spar" + +#~ msgid "Use UNIX assembler syntax" +#~ msgstr "Utliser la syntaxe de l'assembleur UNIX" + +#~ msgid "Use DEC assembler syntax" +#~ msgstr "Utliser la syntaxe de l'assembleur DEC" + +#~ msgid "Segmentation Fault (code)" +#~ msgstr "Faute de segmentation (code)" + +#~ msgid "Out of stack space.\n" +#~ msgstr "Manque d'espace sur la pile.\n" + +#~ msgid "Try running `%s' in the shell to raise its limit.\n" +#~ msgstr "Essayer d'excuter %s dans le shell pour augmenter la limite.\n" + +#~ msgid "Segmentation Fault" +#~ msgstr "Faute de segmentation" + +#~ msgid "While setting up signal stack: %m" +#~ msgstr "Lors de la configuration de la pile de signaux: %m" + +#~ msgid "While setting up signal handler: %m" +#~ msgstr "Lors de la configuration de la routine de traitement de signal: %m" + +#~ msgid "couldn't unmap pch_address_space: %m\n" +#~ msgstr "ne peut dfaire la map pch_address_space: %m\n" + +#~ msgid "ignoring malformed #pragma longcall" +#~ msgstr "#pragma longcall mal compos" + +#~ msgid "missing open paren" +#~ msgstr "parenthse ouvrante manquante" + +#~ msgid "missing number" +#~ msgstr "nombre manquant" + +#~ msgid "missing close paren" +#~ msgstr "parenthse fermante manquante" + +#~ msgid "number must be 0 or 1" +#~ msgstr "le nombre doit tre 0 ou 1" + +#~ msgid "junk at end of #pragma longcall" +#~ msgstr "rebut la fin de #pragma longcall" + +#~ msgid "-mmultiple is not supported on little endian systems" +#~ msgstr "-mmultiple n'est pas support sur des systme octets de poids faible" + +#~ msgid "-mstring is not supported on little endian systems" +#~ msgstr "-mstring n'est pas support sur des systme octets de poids faible" + +#~ msgid "unknown -mdebug-%s switch" +#~ msgstr "option -mdebug-%s inconnue" + +#~ msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" +#~ msgstr "argument %s inconnu de l'option -mtraceback; attendu full , partial ou none " + +#~ msgid "Unknown switch -mlong-double-%s" +#~ msgstr "option -mlong-double-%s inconnue" + +#~ msgid "unknown -m%s= option specified: '%s'" +#~ msgstr "option -m%s= inconnue spcifie: %s " + +#~ msgid "not configured for ABI: '%s'" +#~ msgstr "pas configur pour ABI: %s " + +#~ msgid "unknown ABI specified: '%s'" +#~ msgstr "ABI spcifi inconnu: %s " + +#~ msgid "unknown -malign-XXXXX option specified: '%s'" +#~ msgstr "option -malign-XXXXX inconnue spcifie: %s " + +#~ msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." +#~ msgstr "Ne peut retourner la valeur dans le registre de vecteur parce que les instructions altivec sont dsactives, utiliser -maltivec pour les autoriser" + +#~ msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." +#~ msgstr "Ne peut relayer l'argument dans le registre de vecteur parce que les instructions altivec sont dsactives, utiliser -maltivec pour les autoriser" + +#~ msgid "argument 1 must be a 5-bit signed literal" +#~ msgstr "argument 1 doit tre un litral sign de 5 bits" + +#~ msgid "argument 2 must be a 5-bit unsigned literal" +#~ msgstr "argument 2 doit tre un litral non sign de 5 bits" + +#~ msgid "argument 1 of __builtin_altivec_predicate must be a constant" +#~ msgstr "argument 1 de __builtin_altivec_predicate doit tre une constante" + +#~ msgid "argument 1 of __builtin_altivec_predicate is out of range" +#~ msgstr "argument 1 de __builtin_altivec_predicate est hors limite" + +#~ msgid "argument 3 must be a 4-bit unsigned literal" +#~ msgstr "argument 3 doit tre un litral non sign de 4 bits" + +#~ msgid "argument to `%s' must be a 2-bit unsigned literal" +#~ msgstr "argument de %s doit tre un litral non sign de 2 bits" + +#~ msgid "argument to dss must be a 2-bit unsigned literal" +#~ msgstr "argument de dss doit tre un litral non sign de 2 bits" + +#~ msgid "argument 1 of __builtin_spe_predicate must be a constant" +#~ msgstr "argument 1 de __builtin_spe_predicate doit tre une constante" + +#~ msgid "argument 1 of __builtin_spe_predicate is out of range" +#~ msgstr "argument 1 de __builtin_spe_predicate est hors limite" + +#~ msgid "your function will be miscompiled" +#~ msgstr "votre fonction sera mal compile" + +#~ msgid "invalid %%f value" +#~ msgstr "valeur %%f invalide" + +#~ msgid "invalid %%F value" +#~ msgstr "valeur %%F invalide" + +#~ msgid "invalid %%G value" +#~ msgstr "valeur %%G invalide" + +#~ msgid "invalid %%j code" +#~ msgstr "valeur %%j invalide" + +#~ msgid "invalid %%J code" +#~ msgstr "valeur %%J invalide" + +#~ msgid "invalid %%k value" +#~ msgstr "valeur %%k invalide" + +#~ msgid "invalid %%K value" +#~ msgstr "valeur %%K invalide" + +#~ msgid "invalid %%O value" +#~ msgstr "valeur %%O invalide" + +#~ msgid "invalid %%q value" +#~ msgstr "valeur %%q invalide" + +#~ msgid "invalid %%S value" +#~ msgstr "valeur %%S invalide" + +#~ msgid "invalid %%T value" +#~ msgstr "valeur %%T invalide" + +#~ msgid "invalid %%u value" +#~ msgstr "valeur %%u invalide" + +#~ msgid "invalid %%v value" +#~ msgstr "valeur %%v invalide" + +#~ msgid "no profiling of 64-bit code for this ABI" +#~ msgstr "pas de profilage du code de 64 bits pour cet ABI" + +#~ msgid "Always pass floating-point arguments in memory" +#~ msgstr "Toujours passer des arguments en virgule flottante en mmoire" + +#~ msgid "Don't always pass floating-point arguments in memory" +#~ msgstr "Na pas toujours passer des arguments en virgule flottante en mmoire" + +#~ msgid "Support message passing with the Parallel Environment" +#~ msgstr "Supporter le passage de messages dans un environnement parallle" + +#~ msgid "Compile for 64-bit pointers" +#~ msgstr "Compiler pour des pointeurs de 64 bits" + +#~ msgid "Compile for 32-bit pointers" +#~ msgstr "Compiler pour des pointeurs de 32 bits" + +#~ msgid "-maix64 and POWER architecture are incompatible" +#~ msgstr "-maix64 et architecture POWER sont incompatibles" + +#~ msgid "-maix64 requires PowerPC64 architecture remain enabled" +#~ msgstr "-maix64 requiert une architecture PowerPC64 qui demeure slectionne" + +#~ msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported" +#~ msgstr "-maix64 requis: calcul en 64 bits avec un adressage de 32 bits n'est pas encore support" + +#~ msgid "Generate code suitable for executables (NOT shared libs)" +#~ msgstr "Gnrer du code adapt pour les excutables (PAS les librairies partages)" + +#~ msgid "-mdynamic-no-pic overrides -fpic or -fPIC" +#~ msgstr "-mdynamic-no-pic crase -fpic ou -fPIC" + +#~ msgid "-fpic is not supported; -fPIC assumed" +#~ msgstr "-fpic n'est pas support; -fPIC assum" + +#~ msgid "-m64 requires a PowerPC64 cpu" +#~ msgstr "-m64 requiert un processeur PowerPC64" + +#~ msgid "Call mcount for profiling before a function prologue" +#~ msgstr "Appeller mcount pour le profilage avant le prologue de la fonction" + +#~ msgid "Call mcount for profiling after a function prologue" +#~ msgstr "Ne pas appeller mcount pour le profilage avant le prologue de la fonction" + +#~ msgid "Use POWER instruction set" +#~ msgstr "Utiliser le jeu d'instructions du POWER" + +#~ msgid "Use POWER2 instruction set" +#~ msgstr "Utiliser le jeu d'instructions du POWER2" + +#~ msgid "Do not use POWER2 instruction set" +#~ msgstr "Ne pas utiliser le jeu d'instructions du POWER2" + +#~ msgid "Do not use POWER instruction set" +#~ msgstr "Ne pas utiliser le jeu d'instructions du POWER" + +#~ msgid "Use PowerPC instruction set" +#~ msgstr "Utiliser le jeu d'instructions du PowerPC" + +#~ msgid "Do not use PowerPC instruction set" +#~ msgstr "Ne pas utiliser le jeu d'instructions du PowerPC" + +#~ msgid "Use PowerPC General Purpose group optional instructions" +#~ msgstr "Utiliser le groupe d'instructions optionnelles d'utilit gnral du PowerPC" + +#~ msgid "Do not use PowerPC General Purpose group optional instructions" +#~ msgstr "Ne pas utiliser le groupe d'instructions optionnelles d'usage gnral du PowerPC" + +#~ msgid "Use PowerPC Graphics group optional instructions" +#~ msgstr "Utiliser le groupe d'instructions graphiques optionnelles du PowerPC" + +#~ msgid "Do not use PowerPC Graphics group optional instructions" +#~ msgstr "Ne pas utiliser le groupe d'instructions optionnelles graphiques du PowerPC" + +#~ msgid "Use PowerPC-64 instruction set" +#~ msgstr "Utiliser le jeu d'instructions du PowerPC-64" + +#~ msgid "Do not use PowerPC-64 instruction set" +#~ msgstr "Ne pas utiliser le jeu d'instructions du PowerPC-64" + +#~ msgid "Use AltiVec instructions" +#~ msgstr "Utiliser les instructions AltiVec" + +#~ msgid "Do not use AltiVec instructions" +#~ msgstr "Ne pas utiliser les instructions AltiVec" + +#~ msgid "Use new mnemonics for PowerPC architecture" +#~ msgstr "Utiliser les nouvelles mnmoniques pour l'architecture du PowerPC" + +#~ msgid "Use old mnemonics for PowerPC architecture" +#~ msgstr "Utiliser les anciennes mnmoniques pour l'architecture du PowerPC" + +#~ msgid "Put everything in the regular TOC" +#~ msgstr "Place tout dans le TOC rgulier" + +#~ msgid "Place floating point constants in TOC" +#~ msgstr "Placer les constantes en virgule flottante dans le TOC" + +#~ msgid "Do not place floating point constants in TOC" +#~ msgstr "Ne pas placer les constantes en virgule flottante dans le TOC" + +#~ msgid "Place symbol+offset constants in TOC" +#~ msgstr "Placer les constantes symboles+dcalages dans le TOC" + +#~ msgid "Do not place symbol+offset constants in TOC" +#~ msgstr "Ne pas placer les constantes symboles+dcalages dans le TOC" + +#~ msgid "Place variable addresses in the regular TOC" +#~ msgstr "Placer les adresses variables dans un TOC rgulier" + +#~ msgid "Generate load/store multiple instructions" +#~ msgstr "Gnrer les instructions multiples de chargement/stockage" + +#~ msgid "Do not generate load/store multiple instructions" +#~ msgstr "Ne pas gnrer les instructions multiples de chargement/stockage" + +#~ msgid "Generate string instructions for block moves" +#~ msgstr "Gnrer les instructions chanes pour les dplacements de blocs" + +#~ msgid "Do not generate string instructions for block moves" +#~ msgstr "Ne pas gnrer les instructions chanes pour les dplacements de blocs" + +#~ msgid "Generate load/store with update instructions" +#~ msgstr "Gnrer les instructions de mise jour de chargement/stockage" + +#~ msgid "Do not generate load/store with update instructions" +#~ msgstr "Ne pas gnrer les instructions de mise jour de chargement/stockage" + +#~ msgid "Do not generate fused multiply/add instructions" +#~ msgstr "Ne pas gnrer des instructions fusionns de multiplication/addition" + +#~ msgid "Do not schedule the start and end of the procedure" +#~ msgstr "Ne pas ordonnancer le dbut et la fin de la procdure" + +#~ msgid "Return all structures in memory (AIX default)" +#~ msgstr "Retourner toutes les structures en mmoire (par dfaut sur AIX)" + +#~ msgid "Return small structures in registers (SVR4 default)" +#~ msgstr "Retourner les petites structures par les registres (par dfaut sur SVR4)" + +#~ msgid "Generate single field mfcr instruction" +#~ msgstr "Gnrer des instructions champ simple mfcr" + +#~ msgid "Do not generate single field mfcr instruction" +#~ msgstr "Ne pas gnrer des instructions champ simple mfcr" + +#~ msgid "Use features of and schedule code for given CPU" +#~ msgstr "Utiliser les options et ordonnancer le code pour le processeur donn" + +#~ msgid "Enable debug output" +#~ msgstr "Autoriser la sortie lors de la mise au point" + +#~ msgid "Select full, part, or no traceback table" +#~ msgstr "Slectionner full , part ou none " + +#~ msgid "Specify ABI to use" +#~ msgstr "Spcifier l'ABI utiliser" + +#~ msgid "Specify size of long double (64 or 128 bits)" +#~ msgstr "Spcifier la taille des long double (64 ou 128 bits)" + +#~ msgid "Specify yes/no if isel instructions should be generated" +#~ msgstr "Spcifier yes (pour oui)/ no (pour non) si les instruction isel doivent tre gnrs" + +#~ msgid "Specify yes/no if SPE SIMD instructions should be generated" +#~ msgstr "Spcifier yes (pour oui) /no (pour non) si les instructions SPE SIMD doivent tre gnres" + +#~ msgid "Specify yes/no if using floating point in the GPRs" +#~ msgstr "Spcifier yes (pour oui) /no (pour non) si les nombres en virgule flottante sont utiliss dans le GPR" + +#~ msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec" +#~ msgstr "Spcifier yes (pour oui)/ no (pour non) si les instruction VRSAVE doivent tre gnrs pour ALtiVec" + +#~ msgid "Avoid all range limits on call instructions" +#~ msgstr "viter toutes les limites sur les instructions d'appel" + +#~ msgid "Determine which dependences between insns are considered costly" +#~ msgstr "Dterminer laquelle des dpendances entre les insns qui sont considres coteuses" + +#~ msgid "Specify which post scheduling nop insertion scheme to apply" +#~ msgstr "Spcifier lequel schme de post ordonnancement d'insertion de NOP doit tre appliqu" + +#~ msgid "Specify alignment of structure fields default/natural" +#~ msgstr "Spcifier l'alignement des champs de structure par dfaut/naturel" + +#~ msgid "Specify scheduling priority for dispatch slot restricted insns" +#~ msgstr "Spcifier la priorit d'ordonnancement pour la rpartition de fentes insns restreintes" + +#~ msgid "RETURN_ADDRESS_OFFSET not supported" +#~ msgstr "RETURN_ADDRESS_OFFSET n'est pas support" + +#~ msgid "Select ABI calling convention" +#~ msgstr "Slectionner la convention d'appel ABI" + +#~ msgid "Select method for sdata handling" +#~ msgstr "Slectionner la mthode de traitement sdata" + +#~ msgid "Align to the base type of the bit-field" +#~ msgstr "Aligner la base du type du champ de bits" + +#~ msgid "Don't align to the base type of the bit-field" +#~ msgstr "Ne pas aligner la base du type du champ de bits" + +#~ msgid "Don't assume that unaligned accesses are handled by the system" +#~ msgstr "Ne pas prsumer que les accs non alignes sont traits par le systme" + +#~ msgid "Assume that unaligned accesses are handled by the system" +#~ msgstr "Prsumer que les accs non alignes sont traits par le systme" + +#~ msgid "Produce code relocatable at runtime" +#~ msgstr "Produire du code relocalisable au moment de l'excution" + +#~ msgid "Don't produce code relocatable at runtime" +#~ msgstr "Ne pas produire du code relocalisable au moment de l'excution" + +#~ msgid "Produce little endian code" +#~ msgstr "Produire du code pour systme octets de poids faible (little endian)" + +#~ msgid "Produce big endian code" +#~ msgstr "Produire du code pour systme octets de poids fort (big endian)" + +#~ msgid "no description yet" +#~ msgstr "aucune description encore" + +#~ msgid "Use EABI" +#~ msgstr "Utiliser EABI" + +#~ msgid "Don't use EABI" +#~ msgstr "Ne pas utiliser EABI" + +#~ msgid "Do not allow bit-fields to cross word boundaries" +#~ msgstr "Ne pas permettre les champs de bits de traverser des frontires de mots" + +#~ msgid "Use alternate register names" +#~ msgstr "Utiliser les noms alternatifs de registres" + +#~ msgid "Don't use alternate register names" +#~ msgstr "Ne pas utiliser les noms alternatifs de registres" + +#~ msgid "Link with libsim.a, libc.a and sim-crt0.o" +#~ msgstr "Faire l'dition de liens avec libsim.a, libc.a et sim-crt0.o" + +#~ msgid "Link with libads.a, libc.a and crt0.o" +#~ msgstr "Faire l'dition de liens avec libads.a, libc.a and crt0.o" + +#~ msgid "Link with libyk.a, libc.a and crt0.o" +#~ msgstr "Faire l'dition de liens avec libyk.a, libc.a and crt0.o" + +#~ msgid "Link with libmvme.a, libc.a and crt0.o" +#~ msgstr "Faire l'dition de liens avec libmvme.a, libc.a and crt0.o" + +#~ msgid "Set the PPC_EMB bit in the ELF flags header" +#~ msgstr "Initialiser le bit PPC_EMB bit dans l'en-tte des fanions ELF" + +#~ msgid "Use the WindISS simulator" +#~ msgstr "Utiliser le simulateur WindISS" + +#~ msgid "Generate 64-bit code" +#~ msgstr "Gnrer du code 64 bits" + +#~ msgid "Generate 32-bit code" +#~ msgstr "Gnrer du code 32 bits" + +#~ msgid "bad value for -mcall-%s" +#~ msgstr "valeur errone pour -mcall-%s" + +#~ msgid "bad value for -msdata=%s" +#~ msgstr "valeur errone pour -msdata=%s" + +#~ msgid "-mrelocatable and -msdata=%s are incompatible" +#~ msgstr "-mrelocatable et -msdata=%s sont incompatibles" + +#~ msgid "-f%s and -msdata=%s are incompatible" +#~ msgstr "-f%s et -msdata=%s sont incompatibles" + +#~ msgid "-msdata=%s and -mcall-%s are incompatible" +#~ msgstr "-msdata=%s et -mcall-%s sont incompatibles" + +#~ msgid "-mrelocatable and -mno-minimal-toc are incompatible" +#~ msgstr "-mrelocatable et -mno-minimal-toc sont incompatibles" + +#~ msgid "-mrelocatable and -mcall-%s are incompatible" +#~ msgstr "-mrelocatable et -mcall-%s sont incompatibles" + +#~ msgid "-fPIC and -mcall-%s are incompatible" +#~ msgstr "-fPIC et -mcall-%s sont incompatibles" + +#~ msgid "-mcall-aixdesc must be big endian" +#~ msgstr "-mcall-aixdesc doit tre pour un systme octets de poids fort" + +#~ msgid "-m%s not supported in this configuration" +#~ msgstr "-m%s n'est pas support par cette configuration" + +#~ msgid "Unknown cpu used in -march=%s." +#~ msgstr "Processeur inconnu utilis dans -march=%s" + +#~ msgid "Unknown cpu used in -mtune=%s." +#~ msgstr "Processeur inconnu dans -mtune=%s" + +#~ msgid "z/Architecture mode not supported on %s." +#~ msgstr "z/mode d'architecture n'est pas support sur %s" + +#~ msgid "64-bit ABI not supported in ESA/390 mode." +#~ msgstr "ABI 64 bits n'est pas support en mode ESA/390" + +#~ msgid "invalid UNSPEC as operand (1)" +#~ msgstr "UNSPEC invalide comme oprande (1)" + +#~ msgid "invalid UNSPEC as operand (2)" +#~ msgstr "UNSPEC invalide comme oprande (2)" + +#~ msgid "UNKNOWN in s390_output_symbolic_const !?" +#~ msgstr "INCONNU dans s390_output_symbolic_const !?" + +#~ msgid "Cannot decompose address." +#~ msgstr "Ne pas dcomposer l'adresse" + +#~ msgid "UNKNOWN in print_operand !?" +#~ msgstr "INCONNNU dans print_operand !?" + +#~ msgid "Total size of local variables exceeds architecture limit." +#~ msgstr "Taille totale des variables locales excde la limite de l'architecture" + +#~ msgid "Set backchain" +#~ msgstr "Fixer la chane arrire" + +#~ msgid "Don't set backchain (faster, but debug harder" +#~ msgstr "Ne pas fixer la chane arrire (plus rapide mais plus difficle mettre au point)" + +#~ msgid "Use bras for executable < 64k" +#~ msgstr "Utiliser bras pour les excutables < 64k" + +#~ msgid "Don't use bras" +#~ msgstr "Ne pas utiliser bras" + +#~ msgid "Additional debug prints" +#~ msgstr "Imprimer des informations additionnelles en mode dbug" + +#~ msgid "Don't print additional debug prints" +#~ msgstr "Ne pas imprimer des informations additionnelles en mode dbug" + +#~ msgid "64 bit ABI" +#~ msgstr "ABI de 64 bits" + +#~ msgid "31 bit ABI" +#~ msgstr "ABI de 64 bits" + +#~ msgid "z/Architecture" +#~ msgstr "z/Architecture" + +#~ msgid "ESA/390 architecture" +#~ msgstr "architecture ESA/390" + +#~ msgid "mvcle use" +#~ msgstr "mvcle utilis" + +#~ msgid "mvc&ex" +#~ msgstr "mvc&ex" + +#~ msgid "enable tpf OS code" +#~ msgstr "autoriser le code OS tpf" + +#~ msgid "disable tpf OS code" +#~ msgstr "interdire le code OS tpf" + +#~ msgid "disable fused multiply/add instructions" +#~ msgstr "interdire les instructions fusionns de multiplication/addition" + +#~ msgid "enable fused multiply/add instructions" +#~ msgstr "autoriser les instructions fusionns de multiplication/addition" + +#~ msgid "__builtin_saveregs not supported by this subtarget" +#~ msgstr "__builtin_saveregs n'est pas support par la sous-cible" + +#~ msgid "attribute interrupt_handler is not compatible with -m5-compact" +#~ msgstr "attribut interrupt_handler n'est pas compatible avec -m5-compact" + +#~ msgid "`%s' attribute only applies to interrupt functions" +#~ msgstr "attribut %s s'applique seulement des fonctions d'interruption" + +#~ msgid "`%s' attribute argument not a string constant" +#~ msgstr "l'attribut %s de l'argument n'est pas une contante chane" + +#~ msgid "`%s' attribute argument not an integer constant" +#~ msgstr "l'attribut %s de l'argument n'est pas une contante entire" + +#~ msgid "Profiling is not supported on this target." +#~ msgstr "le profilage n'est pas support sur cette cible" + +#~ msgid "%s is not supported by this configuration" +#~ msgstr "%s n'est pas support par cette configuration" + +#~ msgid "-mlong-double-64 not allowed with -m64" +#~ msgstr "-mlong-double-64 n'est pas permis avec -m64" + +#~ msgid "-mcmodel= is not supported on 32 bit systems" +#~ msgstr "-mcmodel= n'est pas support sur les systmes de 32 bits" + +#~ msgid "invalid %%Y operand" +#~ msgstr "oprande %%Y invalide" + +#~ msgid "invalid %%A operand" +#~ msgstr "oprande %%A invalide" + +#~ msgid "invalid %%B operand" +#~ msgstr "Oprande %%B invalide" + +#~ msgid "invalid %%c operand" +#~ msgstr "oprande %%c invalide" + +#~ msgid "invalid %%C operand" +#~ msgstr "oprande %%C invalide" + +#~ msgid "invalid %%d operand" +#~ msgstr "oprande %%d invalide" + +#~ msgid "invalid %%D operand" +#~ msgstr "oprande %%D invalide" + +#~ msgid "invalid %%f operand" +#~ msgstr "oprande %%f invalide" + +#~ msgid "invalid %%s operand" +#~ msgstr "oprande %%s invalide" + +#~ msgid "long long constant not a valid immediate operand" +#~ msgstr "constante long long n'est pas une oprande immdiate valide" + +#~ msgid "floating point constant not a valid immediate operand" +#~ msgstr "constante en virgule flottante n'est pas une oprande immdiate valide" + +#~ msgid "Use 128 bit long doubles" +#~ msgstr "Utiliser des longs doubles de 128 bits" + +#~ msgid "Generate code for big endian" +#~ msgstr "Gnrer du code pour un systme octets de poids fort" + +#~ msgid "Generate code for little endian" +#~ msgstr "Gnrer du code pour un systme octets de poids faible" + +#~ msgid "Use little-endian byte order for data" +#~ msgstr "Utiliser l'ordre des octets de poids faible pour les donnes" + +#~ msgid "Assume possible double misalignment" +#~ msgstr "Prsumer un possible mauvais alignement des doubles" + +#~ msgid "Assume all doubles are aligned" +#~ msgstr "Prsumer que tous les doubles sont aligns" + +#~ msgid "Pass -assert pure-text to linker" +#~ msgstr "Passer -assert pure-text l'diteur de liens" + +#~ msgid "Do not pass -assert pure-text to linker" +#~ msgstr "Ne pas passer -assert pure-text l'diteur de liens" + +#~ msgid "Use flat register window model" +#~ msgstr "Utiliser le modle de fentre de registre plat" + +#~ msgid "Do not use flat register window model" +#~ msgstr "Ne pas utiliser le modle de fentre de registre plat" + +#~ msgid "Use ABI reserved registers" +#~ msgstr "Utiliser les registres rservs ABI" + +#~ msgid "Do not use ABI reserved registers" +#~ msgstr "Ne pas utiliser les registres rservs ABI" + +#~ msgid "Use hardware quad fp instructions" +#~ msgstr "Utiliser les instructions matrielles quad FP" + +#~ msgid "Do not use hardware quad fp instructions" +#~ msgstr "Ne pas utiliser les instructions matrielles quad FP" + +#~ msgid "Compile for v8plus ABI" +#~ msgstr "Compiler pour ABI v8plus" + +#~ msgid "Do not compile for v8plus ABI" +#~ msgstr "Ne pas compiler pour ABI v8plus" + +#~ msgid "Utilize Visual Instruction Set" +#~ msgstr "Utiliser le jeu d'instructions Visual" + +#~ msgid "Do not utilize Visual Instruction Set" +#~ msgstr "Ne pas utiliser le jeu d'instructions Visual" + +#~ msgid "Optimize for Cypress processors" +#~ msgstr "Optimiser pour les processeurs Cypress" + +#~ msgid "Optimize for SPARCLite processors" +#~ msgstr "Optimiser pour les processeurs SPARCLite" + +#~ msgid "Optimize for F930 processors" +#~ msgstr "Optimiser pour les processeurs F930" + +#~ msgid "Optimize for F934 processors" +#~ msgstr "Optimiser pour les processeurs F934" + +#~ msgid "Use V8 SPARC ISA" +#~ msgstr "Utiliser le V8 SPARC ISA" + +#~ msgid "Optimize for SuperSPARC processors" +#~ msgstr "Optimiser pour les processeurs SuperSPARC" + +#~ msgid "Pointers are 64-bit" +#~ msgstr "Pointeurs sont de 64 bits" + +#~ msgid "Pointers are 32-bit" +#~ msgstr "Pointeurs sont de 32 bits" + +#~ msgid "Use 32-bit ABI" +#~ msgstr "Utiliser ABI de 32 bits" + +#~ msgid "Use 64-bit ABI" +#~ msgstr "Utiliser ABI de 64 bits" + +#~ msgid "Use stack bias" +#~ msgstr "Utiliser le biais de la pile" + +#~ msgid "Do not use stack bias" +#~ msgstr "Ne pas utiliser le biais de la pile" + +#~ msgid "Use structs on stronger alignment for double-word copies" +#~ msgstr "Utiliser des structs avec alignement plus fort pour les copies de mots-doubles" + +#~ msgid "Do not use structs on stronger alignment for double-word copies" +#~ msgstr "Ne pas utiliser des structs avec alignement plus fort pour les copies de mots-doubles" + +#~ msgid "Optimize tail call instructions in assembler and linker" +#~ msgstr "Optimiser sur mesure les instructions d'appel avec l'assembleur et l'diteur de liens" + +#~ msgid "Do not optimize tail call instructions in assembler or linker" +#~ msgstr "Ne pas optimiser sur mesure les instructions d'appel avec l'assembleur et l'diteur de liens" + +#~ msgid "Use given SPARC code model" +#~ msgstr "Utiliser le modle donn de code pour le SPARC" + +#~ msgid "Constant halfword load operand out of range." +#~ msgstr "chargement de l'oprande de la constante demi-mot est hors limite" + +#~ msgid "Constant arithmetic operand out of range." +#~ msgstr "oprande arithmtique de la constante est hors limite" + +#~ msgid "Local variable memory requirements exceed capacity." +#~ msgstr "La mmoire requise pour les variables locales excde la capacit disponible." + +#~ msgid "function_profiler support" +#~ msgstr "function_profiler support" + +#~ msgid "cannot use va_start in interrupt function" +#~ msgstr "ne peut utiliser va-start dans une fonction d'interruption" + +#~ msgid "`B' operand is not constant" +#~ msgstr "oprande B n'est pas une constante" + +#~ msgid "`B' operand has multiple bits set" +#~ msgstr "l'oprande B a de multiples jeux de bits" + +#~ msgid "`o' operand is not constant" +#~ msgstr "oprande o n'est pas une constante" + +#~ msgid "xstormy16_print_operand: unknown code" +#~ msgstr "xstormy16_print_operand: code inconnu" + +#~ msgid "switch statement of size %lu entries too large" +#~ msgstr "dclaration de switch de taille %lu entre est trop grande" + +#~ msgid "#pragma GHS endXXXX found without previous startXXX" +#~ msgstr "#pragma GHS endXXXX repr sans tre prcd de startXXX" + +#~ msgid "#pragma GHS endXXX does not match previous startXXX" +#~ msgstr "#pragma GHS endXXX ne concorde pas avec le prcdent startXXX" + +#~ msgid "cannot set interrupt attribute: no current function" +#~ msgstr "ne peut initialiser l'attribut d'interruption: aucune fonction courante" + +#~ msgid "cannot set interrupt attribute: no such identifier" +#~ msgstr "ne peut initialiser l'attribut d'interruption: pas de tel identificateur" + +#~ msgid "junk at end of #pragma ghs section" +#~ msgstr "rebut la fin de la section #pragma ghs" + +#~ msgid "unrecognized section name \"%s\"" +#~ msgstr "nom de section non reconnue %s " + +#~ msgid "malformed #pragma ghs section" +#~ msgstr "sectin mal compose #pragma ghs" + +#~ msgid "junk at end of #pragma ghs interrupt" +#~ msgstr "rebut la fin de l'interruption #pragma ghs" + +#~ msgid "junk at end of #pragma ghs starttda" +#~ msgstr "rebut la fin de #pragma ghs starttda" + +#~ msgid "junk at end of #pragma ghs startsda" +#~ msgstr "rebut la fin de #pragma ghs startsda" + +#~ msgid "junk at end of #pragma ghs startzda" +#~ msgstr "rebut la fin de #pragma ghs startzda" + +#~ msgid "junk at end of #pragma ghs endtda" +#~ msgstr "rebut la fin de #pragma ghs endtda" + +#~ msgid "junk at end of #pragma ghs endsda" +#~ msgstr "rebut la fin de #pragma ghs endsda" + +#~ msgid "junk at end of #pragma ghs endzda" +#~ msgstr "rebut la fin de #pragma ghs endzda" + +#~ msgid "%s=%s is not numeric" +#~ msgstr "%s=%s n'est pas numrique" + +#~ msgid "%s=%s is too large" +#~ msgstr "%s=%s est trop grand" + +#~ msgid "const_double_split got a bad insn:" +#~ msgstr "const_double_split a reu un insn erron:" + +#~ msgid "output_move_single:" +#~ msgstr "output_move_single:" + +#~ msgid "%Jdata area attributes cannot be specified for local variables" +#~ msgstr "%Jattribut de zone de donnes ne peut tre spcifi pour des variables locales" + +#~ msgid "%Jdata area of '%D' conflicts with previous declaration" +#~ msgstr "%Jzone de donnes de %D entre en conflit avec un dclaration prcdente" + +#~ msgid "bogus JR construction: %d\n" +#~ msgstr "construction JR bogg: %d\n" + +#~ msgid "bad amount of stack space removal: %d" +#~ msgstr "taille errone pour l'enlvement d'espace de la pile: %d" + +#~ msgid "bogus JARL construction: %d\n" +#~ msgstr "construction JARL bogge: %d\n" + +#~ msgid "Bogus DISPOSE construction: %d\n" +#~ msgstr "construction DISPOSE bogg: %d\n" + +#~ msgid "Too much stack space to dispose of: %d" +#~ msgstr "Trop d'espace pour l'empilage pour la disposition de: %d" + +#~ msgid "Bogus PREPEARE construction: %d\n" +#~ msgstr "construction PREPEARE bogge: %d\n" + +#~ msgid "Too much stack space to prepare: %d" +#~ msgstr "Trop d'espace pour l'empilage pour la prparation: %d" + +#~ msgid "Support Green Hills ABI" +#~ msgstr "Supporter l'ABI Green Hills" + +#~ msgid "Prohibit PC relative function calls" +#~ msgstr "Interdire les appels relatifs de fonctions par le PC" + +#~ msgid "Reuse r30 on a per function basis" +#~ msgstr "R-utiliser R30 sur une base par fonction" + +#~ msgid "Use stubs for function prologues" +#~ msgstr "Utiliser des stubs pour les prologues de fonction" + +#~ msgid "Same as: -mep -mprolog-function" +#~ msgstr "Identique : -mep -mprolog-function" + +#~ msgid "Enable backend debugging" +#~ msgstr "Autoriser la mise au point par la fin" + +#~ msgid "Compile for the v850 processor" +#~ msgstr "Compiler pour le processeur v850" + +#~ msgid "Compile for v850e1 processor" +#~ msgstr "Compiler pour le processeur v850e1" + +#~ msgid "Compile for v850e processor" +#~ msgstr "Compiler pour le processeur v850e" + +#~ msgid "Enable the use of the short load instructions" +#~ msgstr "Activer l'utilisation d'instructions courtes de chargement" + +#~ msgid "Do not use the callt instruction" +#~ msgstr "Ne pas utiliser l'instruction callt" + +#~ msgid "Do not use registers r2 and r5" +#~ msgstr "Ne pas utiliser les registres r2 et r5" + +#~ msgid "Enforce strict alignment" +#~ msgstr "Forcer l'alignement stricte" + +#~ msgid "Use 4 byte entries in switch tables" +#~ msgstr "Utiliser des entres de 4 octets dans les tables de switch" + +#~ msgid "Set the max size of data eligible for the TDA area" +#~ msgstr "Initialiser la taille maximale des donnes ligibles pour la zone TDA" + +#~ msgid "Set the max size of data eligible for the SDA area" +#~ msgstr "Initialiser la taille maximale des donnes ligibles pour la zone SDA" + +#~ msgid "Set the max size of data eligible for the ZDA area" +#~ msgstr "Initialiser la taille maximale des donnes ligibles pour la zone ZDA" + +#~ msgid "boolean registers required for the floating-point option" +#~ msgstr "registres boolens requis pour l'option de virgule flottante" + +#~ msgid "-f%s is not supported with CONST16 instructions" +#~ msgstr "-f%s n'est pas support avec les instructions CONST16" + +#~ msgid "PIC is required but not supported with CONST16 instructions" +#~ msgstr "PIC est requis mais non support avec des instructions CONST16" + +#~ msgid "invalid %%D value" +#~ msgstr "valeur %%D invalide" + +#~ msgid "invalid mask" +#~ msgstr "masque invalide" + +#~ msgid "invalid %%x value" +#~ msgstr "valeur %%x invalide" + +#~ msgid "invalid %%d value" +#~ msgstr "valeur %%d invalide" + +#~ msgid "invalid %%t/%%b value" +#~ msgstr "valeur %%t/%%b invalide" + +#~ msgid "invalid address" +#~ msgstr "adresse invalide" + +#~ msgid "no register in address" +#~ msgstr "pas de registre dans l'adresse" + +#~ msgid "address offset not a constant" +#~ msgstr "dcalage d'adresse n'est pas une constante" + +#~ msgid "only uninitialized variables can be placed in a .bss section" +#~ msgstr "seules les variables non initialises peuvent tre places dans une section .bss" + +#~ msgid "Use CONST16 instruction to load constants" +#~ msgstr "Utiliser les instructions CONST16 pour charger les constantes" + +#~ msgid "Use PC-relative L32R instruction to load constants" +#~ msgstr "Utiliser les instructions L32R relatives au PC pour charger les constantes" + +#~ msgid "Disable fused multiply/add and multiply/subtract FP instructions" +#~ msgstr "Interdire les instructions fusionns FP de multiplication/addition et de multiplication/soustraction" + +#~ msgid "Enable fused multiply/add and multiply/subtract FP instructions" +#~ msgstr "Permettre les instructions fusionns FP de multiplication/addition et de multiplication/soustraction" + +#~ msgid "Intersperse literal pools with code in the text section" +#~ msgstr "Entrecouper les lots de litraux avec le code dans la section texte" + +#~ msgid "Put literal pools in a separate literal section" +#~ msgstr "Placer les lots de litraux dans des sections spares de litraux" + +#~ msgid "Automatically align branch targets to reduce branch penalties" +#~ msgstr "Aligner automatiquement les branchements cibles pour rduire les pnalits de branchement" + +#~ msgid "Do not automatically align branch targets" +#~ msgstr "Ne pas aligner automatiquement les branchements cibles pour rduire les pnalits de branchement" + +#~ msgid "Use indirect CALLXn instructions for large programs" +#~ msgstr "Utiliser les instructions indirectes CALLXn pour les grands programmes" + +#~ msgid "Use direct CALLn instructions for fast calls" +#~ msgstr "Utiliser les instructions directes CALLn pour des appels rapides" + +#~ msgid "missing argument to \"-%s\"" +#~ msgstr "argument manquant -%s " + +#~ msgid "`-gnat' misspelled as `-gant'" +#~ msgstr " -gnat mal pell comme -gant " + +#~ msgid "unable to call pointer to member function here" +#~ msgstr "incapable de faire l'appel avec le pointeur vers la fonction membre ici" + +#~ msgid "%s %D(%T, %T, %T) " +#~ msgstr "%s %D(%T, %T, %T) " + +#~ msgid "%s %D(%T, %T) " +#~ msgstr "%s %D(%T, %T) " + +#~ msgid "%s %D(%T) " +#~ msgstr "%s %D(%T) " + +#~ msgid "%s %T " +#~ msgstr "%s %T " + +#~ msgid "%J%s %+#D " +#~ msgstr "%J%s %+#D " + +#~ msgid "%J%s %+#D" +#~ msgstr "%J%s %+#D" + +#~ msgid "candidates are:" +#~ msgstr "candidats sont:" + +#~ msgid "conversion from `%T' to `%T' is ambiguous" +#~ msgstr "conversion de %T vers %T est ambigu" + +#~ msgid "no matching function for call to `%D(%A)'" +#~ msgstr "pas de fonction concordante pour l'appel de %D(%A) " + +#~ msgid "call of overloaded `%D(%A)' is ambiguous" +#~ msgstr "appel du surcharg %D(%A) est ambigu" + +#~ msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" +#~ msgstr "pointeur vers fonction membre %E ne peut tre appel sans un objet; utilisez .* ou ->*" + +#~ msgid "no match for call to `(%T) (%A)'" +#~ msgstr "pas de concordance pour l'appel de (%T) (%A) " + +#~ msgid "call of `(%T) (%A)' is ambiguous" +#~ msgstr "appel de (%T) (%A) est ambigu" + +#~ msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" +#~ msgstr "%s pour operator?: ternaire dans %E ? %E : %E " + +#~ msgid "%s for 'operator%s' in '%E%s'" +#~ msgstr "%s pour operator%s dans %E%s " + +#~ msgid "%s for 'operator[]' in '%E[%E]'" +#~ msgstr "%s pour operator[] dans %E[%E] " + +#~ msgid "%s for '%s' in '%s %E'" +#~ msgstr "%s pour %s dans %s %E " + +#~ msgid "%s for 'operator%s' in '%E %s %E'" +#~ msgstr "%s pour operator%s dans %E %s %E " + +#~ msgid "%s for 'operator%s' in '%s%E'" +#~ msgstr "%s pour operator%s dans %s%E " + +#~ msgid "ISO C++ forbids omitting the middle term of a ?: expression" +#~ msgstr "ISO C++ interdit l'omission du terme milieu de l'expression ?:" + +#~ msgid "`%E' has type `void' and is not a throw-expression" +#~ msgstr " %E a le type void et n'est pas une expression de retour de type throw" + +#~ msgid "operands to ?: have different types" +#~ msgstr "oprande vers ?: a diffrents types" + +#~ msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" +#~ msgstr "non concordance de type numr dans l'expression conditionnelle: %T vs %T " + +#~ msgid "enumeral and non-enumeral type in conditional expression" +#~ msgstr "type numr et non numr dans l'expression conditionnelle" + +#~ msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" +#~ msgstr "pas %D(int) dclar pour le postfixe %s , essaie avec l'oprateur prfixe la place" + +#~ msgid "using synthesized `%#D' for copy assignment" +#~ msgstr "utilisation du synthtis %#D pour l'affectaion par copie" + +#~ msgid " where cfront would use `%#D'" +#~ msgstr " o cfront utiliserait %#D " + +#~ msgid "comparison between `%#T' and `%#T'" +#~ msgstr "comparaison entre %#T et %#T " + +#~ msgid "no suitable `operator %s' for `%T'" +#~ msgstr "pas operator %s adapt pour %T " + +#~ msgid "`%+#D' is private" +#~ msgstr " %+#D est priv" + +#~ msgid "`%+#D' is protected" +#~ msgstr " %+#D est protg" + +#~ msgid "`%+#D' is inaccessible" +#~ msgstr " %+#D et inaccessible" + +#~ msgid "within this context" +#~ msgstr " l'intrieur du contexte" + +#~ msgid "invalid conversion from `%T' to `%T'" +#~ msgstr "conversion invalide de %T vers %T " + +#~ msgid " initializing argument %P of `%D'" +#~ msgstr " initialisation de l'argument %P de %D " + +#~ msgid "cannot bind bitfield `%E' to `%T'" +#~ msgstr "ne peut lier le champ de bits %E avec %T " + +#~ msgid "cannot bind packed field `%E' to `%T'" +#~ msgstr "ne peut lier le champs empaquet %E avec %T " + +#~ msgid "cannot bind rvalue `%E' to `%T'" +#~ msgstr "ne peut lier la rvalue %E avec %T " + +#~ msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" +#~ msgstr "ne peut recevoir d'objets de type non POD %#T through ... ; l'appel chouera lors de l'xecution" + +#~ msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" +#~ msgstr "ne peut recevoir d'objets de type non POD %#T through ... ; l'appel chouera lors de l'xecution" + +#~ msgid "the default argument for parameter %d of `%D' has not yet been parsed" +#~ msgstr "argument par dfaut pour le paramtre %d de %D n'a pas encore t analys" + +#~ msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" +#~ msgstr "passant %T comme cet argument de %#D carte les qualificateurs" + +#~ msgid "`%T' is not an accessible base of `%T'" +#~ msgstr " %T est une base accessible de %T " + +#~ msgid "could not find class$ field in java interface type `%T'" +#~ msgstr "ne peut reprer le champ classe$ dans le type d'interface JAVA %T " + +#~ msgid "call to non-function `%D'" +#~ msgstr "appel une non fonction %D " + +#~ msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" +#~ msgstr "requte du membre %D dans %E , lequel n'est pas de type aggrgat %T " + +#~ msgid "no matching function for call to `%T::%s(%A)%#V'" +#~ msgstr "pas de fonction concordante pour l'appel %T::%s(%A)%#V " + +#~ msgid "call of overloaded `%s(%A)' is ambiguous" +#~ msgstr "appel du surcharg %s(%A) est ambigu" + +#~ msgid "cannot call member function `%D' without object" +#~ msgstr "ne peut appeler la fonction membre %D sans objet" + +#~ msgid "passing `%T' chooses `%T' over `%T'" +#~ msgstr "passant %T choisit %T au lieu de %T " + +#~ msgid " in call to `%D'" +#~ msgstr " dans l'appel de %D " + +#~ msgid "choosing `%D' over `%D'" +#~ msgstr "choix de %D la place de %D " + +#~ msgid " for conversion from `%T' to `%T'" +#~ msgstr " pour la conversion de %T vers %T " + +#~ msgid " because conversion sequence for the argument is better" +#~ msgstr " parce que la squence de conversion pour l'argument est meilleure" + +#~ msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" +#~ msgstr "ISO C++ indique qu'ils sont ambigus mme travers la plus mauvaise conversion pour le premier que la plus mauvaise pour la seconde:" + +#~ msgid "candidate 1:" +#~ msgstr "candidat 1:" + +#~ msgid "candidate 2:" +#~ msgstr "candidat 2:" + +#~ msgid "could not convert `%E' to `%T'" +#~ msgstr "ne peut convertir %E vers %T " + +#~ msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" +#~ msgstr "initialisation invalide pour une rfrence un non constante de type %T partir d'un type temporaire de type %T " + +#~ msgid "invalid initialization of reference of type '%T' from expression of type '%T'" +#~ msgstr "initialisation invalide de rfrence d'un type %T partir d'une expression de type %T " + +#~ msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'" +#~ msgstr "ne peut convertir de la base %T un type driv %T via la base virtuel %T " + +#~ msgid "Java class '%T' cannot have an implicit non-trivial destructor" +#~ msgstr "classe Java %T ne peut avoir un destructeur implicite non trivial" + +#~ msgid "Java class '%T' cannot have a destructor" +#~ msgstr "classe Java %T ne peut avoir un destructeur" + +#~ msgid "`%#D' and `%#D' cannot be overloaded" +#~ msgstr " %#D et %#D ne peut tre surcharg" + +#~ msgid "conflicting access specifications for method `%D', ignored" +#~ msgstr "spcifications d'accs conflictuelles pour la mthode %D , ignor" + +#~ msgid "conflicting access specifications for field `%s', ignored" +#~ msgstr "spcifications d'accs conflictuelles pour le champ %s , ignor" + +#~ msgid "`%D' names constructor" +#~ msgstr " %D nomme le constructeur" + +#~ msgid "`%D' invalid in `%T'" +#~ msgstr " %D invalide dans %T " + +#~ msgid "no members matching `%D' in `%#T'" +#~ msgstr "aucun membre concordant %D dans %#T " + +#~ msgid "`%D' invalid in `%#T'" +#~ msgstr " %D invalide dans %#T " + +#~ msgid " because of local method `%#D' with same name" +#~ msgstr " parce que la mthode locale %#D a le mme nom" + +#~ msgid " because of local member `%#D' with same name" +#~ msgstr " parce que le membre local %#D a le mme nom" + +#~ msgid "base class `%#T' has a non-virtual destructor" +#~ msgstr "classe de base %#T a un destructeur non virtuel" + +#~ msgid "base `%T' with only non-default constructor in class without a constructor" +#~ msgstr "base %T avec seulement le constructeur non par dfaut dans la classe sans un constructeur" + +#~ msgid "all member functions in class `%T' are private" +#~ msgstr "toutes les fonctions membres de la classe %T sont privs" + +#~ msgid "`%#T' only defines a private destructor and has no friends" +#~ msgstr " %#T dfinit seulement les constructeurs privs et n'a pas d'amis" + +#~ msgid "`%#T' only defines private constructors and has no friends" +#~ msgstr " %#T dfinit seulement les constructeurs privs et n'a pas d'amis" + +#~ msgid "no unique final overrider for `%D' in `%T'" +#~ msgstr "pas d'craseur unique final pour %D dans %T " + +#~ msgid "`%D' was hidden" +#~ msgstr " %D tait cach" + +#~ msgid " by `%D'" +#~ msgstr " par %D " + +#~ msgid "`%#D' invalid; an anonymous union can only have non-static data members" +#~ msgstr " %#D invalide; une union anonyme peut seulement avoir des donnes non statiques de membres" + +#~ msgid "private member `%#D' in anonymous union" +#~ msgstr "membre priv %#D dans une union anonyme" + +#~ msgid "protected member `%#D' in anonymous union" +#~ msgstr "membre protg %#D dans une union anonyme" + +#~ msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" +#~ msgstr "disposition vtable pour la classe %T peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future deGCC en raison d'un destructeur virtuel implicite" + +#~ msgid "bit-field `%#D' with non-integral type" +#~ msgstr "largeur du champ de bits %#D n'est pas une constante entire" + +#~ msgid "bit-field `%D' width not an integer constant" +#~ msgstr "largeur du champ de bits %D n'est pas une constante entire" + +#~ msgid "negative width in bit-field `%D'" +#~ msgstr "largeur ngative du champ de bits %D " + +#~ msgid "zero width for bit-field `%D'" +#~ msgstr "largeur zro pour le champ de bits %D " + +#~ msgid "width of `%D' exceeds its type" +#~ msgstr "largeur de %D excde son type" + +#~ msgid "`%D' is too small to hold all values of `%#T'" +#~ msgstr " %D est trop petit pour contenir toutes les valeurs de %#T " + +#~ msgid "member `%#D' with constructor not allowed in union" +#~ msgstr "membre %#D avec consructeur n'est pas permis dans l'union" + +#~ msgid "member `%#D' with destructor not allowed in union" +#~ msgstr "membre %#D avec destructeur n'est pas permis dans l'union" + +#~ msgid "member `%#D' with copy assignment operator not allowed in union" +#~ msgstr "membre %#D avec oprateur d,affectation par copie n'st pas permis dans l'union" + +#~ msgid "multiple fields in union `%T' initialized" +#~ msgstr "champs multiples dans l'union %T initialiss" + +#~ msgid "ignoring packed attribute on unpacked non-POD field `%#D'" +#~ msgstr "attribut empaquet ignor sur un champ non POD non paquet %#D " + +#~ msgid "`%D' may not be static because it is a member of a union" +#~ msgstr " %D peut ne pas tre statique parce qu'il est membre de l'uniont" + +#~ msgid "`%D' may not have reference type `%T' because it is a member of a union" +#~ msgstr " %D peut ne pas avoir de type rfrenc %T parce qu'il est membre de l'union" + +#~ msgid "field `%D' in local class cannot be static" +#~ msgstr "champ %D dans une classe locale ne peut tre statique" + +#~ msgid "field `%D' invalidly declared function type" +#~ msgstr "champ %D incorrectement valid comme un type de fonction" + +#~ msgid "field `%D' invalidly declared method type" +#~ msgstr "champ %D incorrectement valid comme un type de mthode" + +#~ msgid "non-static reference `%#D' in class without a constructor" +#~ msgstr "rfrence non statique %#D dans la classe sans un constructeur" + +#~ msgid "non-static const member `%#D' in class without a constructor" +#~ msgstr "constante non statique de membre %#D dans la classe sans un constructeur" + +#~ msgid "field `%#D' with same name as class" +#~ msgstr "champ %#D avec le mme nom qu'une classe" + +#~ msgid "`%#T' has pointer data members" +#~ msgstr " %#T a un pointeur vers un membre de donnes" + +#~ msgid " but does not override `%T(const %T&)'" +#~ msgstr " mais n'crase pas %T(const %T&) " + +#~ msgid " or `operator=(const %T&)'" +#~ msgstr " ou operator=(const %T&) " + +#~ msgid " but does not override `operator=(const %T&)'" +#~ msgstr " mais n'crase pas operator=(const %T&) " + +#~ msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" +#~ msgstr "dcalage d'une base vide %T peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC" + +#~ msgid "class `%T' will be considered nearly empty in a future version of GCC" +#~ msgstr "classe %T devra tre considre pratiquement vide dans une version future de GCC" + +#~ msgid "initializer specified for non-virtual method `%D'" +#~ msgstr "initialisation spcifie pour une mthode non virtuelle %D " + +#~ msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" +#~ msgstr "dcalage relatif d'une base virtuelle %T n'est pas compatible avec l'ABI et peut tre modifi dans une version future de GCC" + +#~ msgid "direct base `%T' inaccessible in `%T' due to ambiguity" +#~ msgstr "base directe %T inaccessible dans %T en raison de l'ambiguit" + +#~ msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" +#~ msgstr "base virtuelle %T inaccessible dans %T en raison de l'ambiguit" + +#~ msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" +#~ msgstr "taille assigne %T peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC" + +#~ msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" +#~ msgstr "le dcalage relatif de %D peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC" + +#~ msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" +#~ msgstr "le dcalage relatif de %D peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC" + +#~ msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" +#~ msgstr " %D contient des classes vides lesquelles peuvent placer les classes de base une localisation diffrente dans une version future de GCC" + +#~ msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" +#~ msgstr "disposition des classes est drivs de la classe vide %T peut tre modifie dans une version future de GCC" + +#~ msgid "redefinition of `%#T'" +#~ msgstr "redfinition de %#T " + +#~ msgid "`%#T' has virtual functions but non-virtual destructor" +#~ msgstr " %#T a des fonctions virtuelles mais un destructeur non virtuel" + +#~ msgid "trying to finish struct, but kicked out due to previous parse errors" +#~ msgstr "tentative de compltion du struct, mais a t stopp en raison d'erreurs prcdentes d'analyses syntaxiques" + +#~ msgid "language string `\"%s\"' not recognized" +#~ msgstr "chane du langage \"%s\" n'est pas reconnue" + +#~ msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" +#~ msgstr "ne peut rsoudre la fonction surcharg %D bas sur la conversion vers le type %T " + +#~ msgid "no matches converting function `%D' to type `%#T'" +#~ msgstr "pas de concordance de conversion de fonction %D vers le type %#T " + +#~ msgid "converting overloaded function `%D' to type `%#T' is ambiguous" +#~ msgstr "conversion d'une fonction surcharge %D vers le type %#T est ambigu" + +#~ msgid "assuming pointer to member `%D'" +#~ msgstr "pointeur assum vers le membre %D " + +#~ msgid "(a pointer to member can only be formed with `&%E')" +#~ msgstr "(un pointeur vers un membre peut seulement tre form avec &%E)" + +#~ msgid "not enough type information" +#~ msgstr "pas assez d'information sur le type" + +#~ msgid "argument of type `%T' does not match `%T'" +#~ msgstr "argument de type %T ne concorde pas avec %T " + +#~ msgid "invalid operation on uninstantiated type" +#~ msgstr "opration invalide sur un type non instanci" + +#~ msgid "declaration of `%#D'" +#~ msgstr "dclaration de %#D " + +#~ msgid "changes meaning of `%D' from `%+#D'" +#~ msgstr "changements signifiant de %D partir de %+#D " + +#~ msgid "inter-module optimisations not implemented yet" +#~ msgstr "les optimisations inter-module n'est pas implant encore" + +#~ msgid "can't convert from incomplete type `%T' to `%T'" +#~ msgstr "ne peut convertir d'un type incomplet %T vers %T " + +#~ msgid "conversion of `%E' from `%T' to `%T' is ambiguous" +#~ msgstr "conversion de %E partir de %T vers %T est ambigu" + +#~ msgid "converting from `%T' to `%T'" +#~ msgstr "conversion de %T vers %T " + +#~ msgid "cannot convert `%E' from type `%T' to type `%T'" +#~ msgstr "ne peut convertir %E du type %T vers le type %T " + +#~ msgid "pointer to member cast from `%T' to `%T' is via virtual base" +#~ msgstr "pointeur vers un membre transtyp de %T %T est fait via une base virtuelle" + +#~ msgid "invalid conversion from '%T' to '%T'" +#~ msgstr "conversion invalide de %T vers %T " + +#~ msgid "conversion from `%T' to `%T' discards qualifiers" +#~ msgstr "conversion de %T %T carte les qualificateurs" + +#~ msgid "casting `%T' to `%T' does not dereference pointer" +#~ msgstr "transtypage de %T vers %T ne fait pas de d-rfrence de pointeur" + +#~ msgid "cannot convert type `%T' to type `%T'" +#~ msgstr "ne peut convertir type %T vers le type %T " + +#~ msgid "conversion from `%#T' to `%#T'" +#~ msgstr "conversion de %#T vers %#T " + +#~ msgid "`%#T' used where a `%T' was expected" +#~ msgstr " %#T utilis o %T tait attendu" + +#~ msgid "`%#T' used where a floating point value was expected" +#~ msgstr " %#T utilis o un nombre flottant tait attendu" + +#~ msgid "conversion from `%T' to non-scalar type `%T' requested" +#~ msgstr "conversion de %T vers un type non scalaire %T demande" + +#~ msgid "object of incomplete type `%T' will not be accessed in %s" +#~ msgstr "objet de type incomplet %T ne sera pas accessible dans %s" + +#~ msgid "object of type `%T' will not be accessed in %s" +#~ msgstr "objet de type %T ne sera pas acccessible dans %s" + +#~ msgid "object `%E' of incomplete type `%T' will not be accessed in %s" +#~ msgstr "objet %E d'un type incomplet %T ne sera pas accessible dans %s" + +#~ msgid "%s cannot resolve address of overloaded function" +#~ msgstr "%s ne peut rsoudre l'adresse la fonction surcharge" + +#~ msgid "%s is a reference, not call, to function `%E'" +#~ msgstr "%s est un rfrence, pas un appel, la fonction %E " + +#~ msgid "%s has no effect" +#~ msgstr "%s n'a pas d'effet" + +#~ msgid "converting NULL to non-pointer type" +#~ msgstr "conversion d'un NULL vers un type non pointeur" + +#~ msgid "ambiguous default type conversion from `%T'" +#~ msgstr "conversion de type par dfaut ambigu partir de %T " + +#~ msgid " candidate conversions include `%D' and `%D'" +#~ msgstr " conversions de candidat inclut %D et %D " + +#~ msgid "label `%D' used but not defined" +#~ msgstr "tiquette %D utilise mais non dfinie" + +#~ msgid "label `%D' defined but not used" +#~ msgstr "tiquette %D dfinie mais non utilise" + +#~ msgid "previous declaration of `%D'" +#~ msgstr "dclaration prcdente de %D " + +#~ msgid "%Jfunction '%D' redeclared as inline" +#~ msgstr "%Jfonction %D redclare comme tant enligne" + +#~ msgid "%Jprevious declaration of '%D' with attribute noinline" +#~ msgstr "%Jdclaration prcdente de %D avec l'attribut non enligne" + +#~ msgid "%Jfunction '%D' redeclared with attribute noinline" +#~ msgstr "%Jfonction %D redclare avec l'attribut non enligne" + +#~ msgid "%Jprevious declaration of '%D' was inline" +#~ msgstr "%Jdclaration prcdente de %D tait enligne" + +#~ msgid "shadowing %s function `%#D'" +#~ msgstr "%s masque la fonction %#D " + +#~ msgid "library function `%#D' redeclared as non-function `%#D'" +#~ msgstr "fonction %#D de la bibliothque redclare comme n'tant pas une fonction %#D " + +#~ msgid "conflicts with built-in declaration `%#D'" +#~ msgstr "conflits avec la dclaration interne de %#D " + +#~ msgid "new declaration `%#D'" +#~ msgstr "nouvelle dclaration de %#D " + +#~ msgid "ambiguates built-in declaration `%#D'" +#~ msgstr "ambiguits de la dclaration interne de %#D " + +#~ msgid "`%#D' redeclared as different kind of symbol" +#~ msgstr " %#D redclar comme une sorte diffrente de symbole" + +#~ msgid "previous declaration of `%#D'" +#~ msgstr "dclaration prcdente de %#D " + +#~ msgid "declaration of template `%#D'" +#~ msgstr "dclaration du canevas %#D " + +#~ msgid "conflicts with previous declaration `%#D'" +#~ msgstr "conflits avec la dclaration prcdente de %#D " + +#~ msgid "ambiguates old declaration `%#D'" +#~ msgstr "ambiguits d'une vieille dclaration de %#D " + +#~ msgid "declaration of C function `%#D' conflicts with" +#~ msgstr "dclaration de la fonction C %#D en conflit avec" + +#~ msgid "previous declaration `%#D' here" +#~ msgstr "dclaration prcdente de %#D ici" + +#~ msgid "conflicting declaration '%#D'" +#~ msgstr "dclaration conflictuelle %#D " + +#~ msgid "'%D' has a previous declaration as `%#D'" +#~ msgstr " %D a une dclaration prcdente tel que %#D " + +#~ msgid "`%#D' previously defined here" +#~ msgstr " %#D prcdemment dfini ici" + +#~ msgid "`%#D' previously declared here" +#~ msgstr " %#D prcdemment dclar ici" + +#~ msgid "prototype for `%#D'" +#~ msgstr "prototype de %#D " + +#~ msgid "%Jfollows non-prototype definition here" +#~ msgstr "%Jsuit la dfinition d'un non prototype ici" + +#~ msgid "previous declaration of `%#D' with %L linkage" +#~ msgstr "dclaration prcdente de %#D avec le lien %L" + +#~ msgid "conflicts with new declaration with %L linkage" +#~ msgstr "conflits avec la nouvelle dclaration avec le lien %L" + +#~ msgid "default argument given for parameter %d of `%#D'" +#~ msgstr "argument par dfaut donn pour le paramtre %d de %#D " + +#~ msgid "after previous specification in `%#D'" +#~ msgstr "aprs la dclaration prcdente dans %#D " + +#~ msgid "`%#D' was used before it was declared inline" +#~ msgstr " %#D a t utilis avant qu'il ne soit dclar enligne" + +#~ msgid "%Jprevious non-inline declaration here" +#~ msgstr "%Jdclaration prcdente non enligne ici" + +#~ msgid "redundant redeclaration of `%D' in same scope" +#~ msgstr "dclaration redondante de %D dans la mme tendue" + +#~ msgid "declaration of `%F' throws different exceptions" +#~ msgstr "dclaration de %F amne diffrentes exceptions" + +#~ msgid "than previous declaration `%F'" +#~ msgstr "qu'une prcdente dclaratio %F " + +#~ msgid "explicit specialization of %D after first use" +#~ msgstr "spcialisation explicite de %D aprs la premire utilisation" + +#~ msgid "%J'%D': visibility attribute ignored because it" +#~ msgstr "%J %D : attribut de visibilit ignor en cause de lui" + +#~ msgid "%Jconflicts with previous declaration here" +#~ msgstr "%Jentre en conflit avec la dclaration prcdente ici" + +#~ msgid "implicit declaration of function `%#D'" +#~ msgstr "dclaration implicite de la fonction %#D " + +#~ msgid "label `%s' referenced outside of any function" +#~ msgstr "tiquette %s rfrence l'extrieur de n'importe quelle fonction" + +#~ msgid "jump to label `%D'" +#~ msgstr "saut l'tiquette %D " + +#~ msgid "jump to case label" +#~ msgstr "saut l'tiquette du case " + +#~ msgid "%H from here" +#~ msgstr "%H partir d'ici" + +#~ msgid " crosses initialization of `%#D'" +#~ msgstr " initialisation croise pour %#D " + +#~ msgid " enters scope of non-POD `%#D'" +#~ msgstr " entre dans la port d'un non POD %#D " + +#~ msgid " enters try block" +#~ msgstr " entre dans le bloc d'essais" + +#~ msgid " enters catch block" +#~ msgstr " entre dans le bloc d'interceptions" + +#~ msgid " from here" +#~ msgstr " partir d'ici" + +#~ msgid "%J enters catch block" +#~ msgstr "%J entre dans le bloc d'interception" + +#~ msgid " skips initialization of `%#D'" +#~ msgstr " saut d'initialisation pour %#D " + +#~ msgid "label named wchar_t" +#~ msgstr "tiquette nomme wchar_t" + +#~ msgid "duplicate label `%D'" +#~ msgstr "tiquette %D apparat en double" + +#~ msgid "`%D' used without template parameters" +#~ msgstr " %D utilis sans canevas de paramtres" + +#~ msgid "no class template named `%#T' in `%#T'" +#~ msgstr "pas de canevas de classe nomm %#T in %#T " + +#~ msgid "no type named `%#T' in `%#T'" +#~ msgstr "pas de type nomm dans %#T dans %#T " + +#~ msgid "%Jan anonymous union cannot have function members" +#~ msgstr "%Jun UNION anonyme ne peut avoir de fonctions membres" + +#~ msgid "member %#D' with constructor not allowed in anonymous aggregate" +#~ msgstr "membre %#D avec constructeur n'est pas permis dans un aggrgat anonyme" + +#~ msgid "member %#D' with destructor not allowed in anonymous aggregate" +#~ msgstr "membre %#D avec destructeur n'est pas permis dans un aggrgat anonyme" + +#~ msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" +#~ msgstr "membre %#D avec oprateur d'affectation par copie n'est pas permis dans un aggrgat anonyme" + +#~ msgid "redeclaration of C++ built-in type `%T'" +#~ msgstr "redclaration du type interne C++ %T " + +#~ msgid "multiple types in one declaration" +#~ msgstr "types multiples dans une dclaration" + +#~ msgid "missing type-name in typedef-declaration" +#~ msgstr "nom de type manquant dans la dclaration typedef" + +#~ msgid "ISO C++ prohibits anonymous structs" +#~ msgstr "ISO C++ interdit les structures anonymes" + +#~ msgid "`%D' can only be specified for functions" +#~ msgstr " %D ne peut seulement tre spcifier pour les fonctions" + +#~ msgid "`%D' can only be specified inside a class" +#~ msgstr " %D peut seulement tre spcifi l'intrieur d'une classe" + +#~ msgid "`%D' can only be specified for constructors" +#~ msgstr " %D ne peut seulement tre spcifi pour les constructeurs" + +#~ msgid "`%D' can only be specified for objects and functions" +#~ msgstr " %D ne peut seulement tre spcifi pour les objets et les fonctions" + +#~ msgid "typedef `%D' is initialized (use __typeof__ instead)" +#~ msgstr "typedef %D est initialis (use __typeof__ instead)" + +#~ msgid "function `%#D' is initialized like a variable" +#~ msgstr "fonction %#D est initialise comme une variable" + +#~ msgid "declaration of `%#D' has `extern' and is initialized" +#~ msgstr "dclaration de %#D est externe et initialis" + +#~ msgid "`%#D' is not a static member of `%#T'" +#~ msgstr " %#D n'est pas un membre statique de %#T " + +#~ msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" +#~ msgstr "ISO C++ ne permet pas que %T::%D soit dfini comme %T::%D " + +#~ msgid "duplicate initialization of %D" +#~ msgstr "initialisation en double de %D" + +#~ msgid "declaration of `%#D' outside of class is not definition" +#~ msgstr "dclaraion de %#D en dehors de la classe n'est pas une dfinition" + +#~ msgid "variable `%#D' has initializer but incomplete type" +#~ msgstr "la variable %#D est initialise, mais a un type incomplet" + +#~ msgid "elements of array `%#D' have incomplete type" +#~ msgstr "lments du tableau %#D ont un type incomplet" + +#~ msgid "aggregate `%#D' has incomplete type and cannot be defined" +#~ msgstr "aggrgat %#D a un type incomplet et ne peut tre dfini" + +#~ msgid "`%D' declared as reference but not initialized" +#~ msgstr " %D dclar comme rfrence mais n'est pas initialis" + +#~ msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" +#~ msgstr "ISO C++ interdit l'usage de liste d'initialiseur pour initialiser la rfrence %D " + +#~ msgid "cannot initialize `%T' from `%T'" +#~ msgstr "ne peut initialiser %T partir de %T " + +#~ msgid "initializer fails to determine size of `%D'" +#~ msgstr "l'initialisation n'a pu dterminer la taille de %D " + +#~ msgid "array size missing in `%D'" +#~ msgstr "taille de tableau manquante dans %D " + +#~ msgid "zero-size array `%D'" +#~ msgstr "tableau %D de taille zro" + +#~ msgid "storage size of `%D' isn't known" +#~ msgstr "taille de stockage de %D n'est pas connue" + +#~ msgid "storage size of `%D' isn't constant" +#~ msgstr "taille de stockage de %D n'est pas une constante" + +#~ msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" +#~ msgstr "dsol: smantique de fonction enligne de donnes statiques %#D est errone (vous obtiendrez de multiples copies)" + +#~ msgid "%J you can work around this by removing the initializer" +#~ msgstr "%J vous pouvez contourner cela en enlevant l'initialiseur" + +#~ msgid "uninitialized const `%D'" +#~ msgstr "constante %D non initialise" + +#~ msgid "brace-enclosed initializer used to initialize `%T'" +#~ msgstr "initialiseur utilis entre accolades pour initialiser %T " + +#~ msgid "initializer for `%T' must be brace-enclosed" +#~ msgstr "initialiseur de %T doit tre entre accolades" + +#~ msgid "ISO C++ does not allow designated initializers" +#~ msgstr "ISO C++ ne permet de dsigner les initialiseurs" + +#~ msgid "`%T' has no non-static data member named `%D'" +#~ msgstr " %T n'a pas de membre de donnes non statique nomm %D " + +#~ msgid "name `%D' used in a GNU-style designated initializer for an array" +#~ msgstr "nom %D utilis dans un style GNU de l'initialisateur dsign pour un tableau" + +#~ msgid "too many initializers for `%T'" +#~ msgstr "trop d'initialiseurs pour %T " + +#~ msgid "variable-sized object `%D' may not be initialized" +#~ msgstr "objet de taille variable %D peut ne pas tre initialis" + +#~ msgid "`%D' has incomplete type" +#~ msgstr " %D a un type incomplet" + +#~ msgid "`%D' must be initialized by constructor, not by `{...}'" +#~ msgstr " %D doit tre initialis par un constructeur, non pas par {...} " + +#~ msgid "structure `%D' with uninitialized const members" +#~ msgstr "structure %D avec constantes non initialises de membres" + +#~ msgid "structure `%D' with uninitialized reference members" +#~ msgstr "structure %D avec rfrences non initialises de membres" + +#~ msgid "assignment (not initialization) in declaration" +#~ msgstr "affectation (non pas l'initialisation) dans la dclaration" + +#~ msgid "cannot initialize `%D' to namespace `%D'" +#~ msgstr "ne peut initialiser %D l'espace de noms %D " + +#~ msgid "shadowing previous type declaration of `%#D'" +#~ msgstr "masque la dclaration prcdente de %#D " + +#~ msgid "`%D' cannot be thread-local because it has non-POD type `%T'" +#~ msgstr " %D ne peut tre utilis comme un thread local parce qu'il a un non POD de type %T " + +#~ msgid "`%D' is thread-local and so cannot be dynamically initialized" +#~ msgstr " %D est un thread local et ne peut donc pas tre initialis dynamiquement" + +#~ msgid "invalid catch parameter" +#~ msgstr "paramtre d'interception invalide" + +#~ msgid "destructor for alien class `%T' cannot be a member" +#~ msgstr "destructeur pour la classe trangre %T ne peut tre un membre" + +#~ msgid "constructor for alien class `%T' cannot be a member" +#~ msgstr "constructeur pour la classe trangre %T ne peut tre un membre" + +#~ msgid "`%D' declared as a `virtual' %s" +#~ msgstr " %D dclar comme virtual %s" + +#~ msgid "`%D' declared as an `inline' %s" +#~ msgstr " %D dclar comme inline %s" + +#~ msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" +#~ msgstr "spcificateurs de fonction const et volatile invalide pour %D dans la dclaration %s" + +#~ msgid "`%D' declared as a friend" +#~ msgstr " %D dclar comme un ami" + +#~ msgid "`%D' declared with an exception specification" +#~ msgstr " %D dclar avec une exception de spcification" + +#~ msgid "cannot declare `::main' to be a template" +#~ msgstr "ne peut dclarer ::main comme tant un canevas" + +#~ msgid "cannot declare `::main' to be inline" +#~ msgstr "ne peut dclarer ::main tre enligne" + +#~ msgid "cannot declare `::main' to be static" +#~ msgstr "ne peut dclarer ::main comme tant static" + +#~ msgid "`main' must return `int'" +#~ msgstr " main doit retourner int " + +#~ msgid "non-local function `%#D' uses anonymous type" +#~ msgstr "fonction non locale %#D utilise un type anonyme" + +#~ msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" +#~ msgstr " %#D ne rfre pas un type non qualifi, aussi il n'est pas utilis pour la liaison" + +#~ msgid "non-local function `%#D' uses local type `%T'" +#~ msgstr "fonction non locale %#D utilise un type local %T " + +#~ msgid "%smember function `%D' cannot have `%T' method qualifier" +#~ msgstr "%sfonction membre %D ne peut avoir %T comme qualificateur de mthode" + +#~ msgid "defining explicit specialization `%D' in friend declaration" +#~ msgstr "dfinition explicite de spcialisation %D dans lka dclaration ami" + +#~ msgid "invalid use of template-id `%D' in declaration of primary template" +#~ msgstr "utilisation invalide du template-id %D dans la dclaration du canevas primaire" + +#~ msgid "default arguments are not allowed in declaration of friend template specialization `%D'" +#~ msgstr "arguments par dfaut ne sont pas permis dans la dclaration amie de la spcialisation du canevas %D " + +#~ msgid "`inline' is not allowed in declaration of friend template specialization `%D'" +#~ msgstr " inline n'estpas permis dans la dclaration amie de la spcialisation du canevas %D " + +#~ msgid "definition of implicitly-declared `%D'" +#~ msgstr "dfinition implicitement dclare %D " + +#~ msgid "no `%#D' member function declared in class `%T'" +#~ msgstr "pas de fonction membre %#D dclare dans la classe %T " + +#~ msgid "non-local variable `%#D' uses local type `%T'" +#~ msgstr "variable non locale %#D utilise un type local %T " + +#~ msgid "invalid in-class initialization of static data member of non-integral type `%T'" +#~ msgstr "initialisation invalide dans la class de donnes de membre statiques d'un non entier de type %T " + +#~ msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" +#~ msgstr "ISO C++ interdit l'initialisation intra-classe d'un membre statique non constant %D " + +#~ msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" +#~ msgstr "ISO C++ interdit l'initialisation d'une membre constant %D d'un type non entier %T " + +#~ msgid "size of array `%D' has non-integral type `%T'" +#~ msgstr "taille du tableau %D n'est pas de type entier %T " + +#~ msgid "size of array has non-integral type `%T'" +#~ msgstr "taille du tableau a type non entier %T " + +#~ msgid "size of array `%D' is negative" +#~ msgstr "taille du tableau %D est ngative" + +#~ msgid "size of array is negative" +#~ msgstr "taille du tableau est ngative" + +#~ msgid "ISO C++ forbids zero-size array `%D'" +#~ msgstr "ISO C++ interdit les tableaux de taille zro %D " + +#~ msgid "ISO C++ forbids zero-size array" +#~ msgstr "ISO C++ interdit les tableaux de taille zro" + +#~ msgid "size of array `%D' is not an integral constant-expression" +#~ msgstr "taille du tableau %D n'a pas une expression de constante de type entier" + +#~ msgid "size of array is not an integral constant-expression" +#~ msgstr "taille du tableau n'est pas une expression de constante de type entier" + +#~ msgid "ISO C++ forbids variable-size array `%D'" +#~ msgstr "ISO C++ interdit les tableaus de taille variable %D " + +#~ msgid "ISO C++ forbids variable-size array" +#~ msgstr "ISO C++ interdit le tableau de taille variable" + +#~ msgid "overflow in array dimension" +#~ msgstr "dbordement dans les dimensions du tableau" + +#~ msgid "declaration of `%D' as %s" +#~ msgstr "dclaration de %D comme %s " + +#~ msgid "creating %s" +#~ msgstr "cration de %s" + +#~ msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" +#~ msgstr "dclaration de %D comme tableau multidimensionel doit avoir des bornes pour chaque dimension except pour la premire" + +#~ msgid "multidimensional array must have bounds for all dimensions except the first" +#~ msgstr "tableau multidimensionel doit avoir des bornes pour chaque dimension except pour la premire" + +#~ msgid "return type specification for constructor invalid" +#~ msgstr "spcification de type retourn pour un constructeur est invalide" + +#~ msgid "return type specification for destructor invalid" +#~ msgstr "spcification de type retourn pour un destructeur est invalide" + +#~ msgid "operator `%T' declared to return `%T'" +#~ msgstr "oprateur %T dclar comme retournant %T " + +#~ msgid "return type specified for `operator %T'" +#~ msgstr "type spcifi retourn pour l'oprateur %T " + +#~ msgid "destructors must be member functions" +#~ msgstr "les destructeurs doivent tre des fonctions membres" + +#~ msgid "destructor `%T' must match class name `%T'" +#~ msgstr "destructeur %T doit concorder avec le nom de la classe %T " + +#~ msgid "declarator-id missing; using reserved word `%D'" +#~ msgstr "declarator-id manquant; utilisation du mot rserv %D " + +#~ msgid "type `%T' is not derived from type `%T'" +#~ msgstr "type %T n'est pas driv du type %T " + +#~ msgid "`%T' specified as declarator-id" +#~ msgstr " %T spcifi comme declarator-id" + +#~ msgid " perhaps you want `%T' for a constructor" +#~ msgstr " peut-tre que vous voulez %T comme constructeur" + +#~ msgid "invalid use of template-name '%E' in a declarator" +#~ msgstr "utilisation invalide du template-name %E dans le dclarateur" + +#~ msgid "declaration of `%D' as non-function" +#~ msgstr "dclaration de %D comme non-fonction" + +#~ msgid "`bool' is now a keyword" +#~ msgstr " bool est maintenant un mot cl" + +#~ msgid "extraneous `%T' ignored" +#~ msgstr " %T surperflu ignor" + +#~ msgid "multiple declarations `%T' and `%T'" +#~ msgstr "multiples dclarations %T et %T " + +#~ msgid "ISO C++ does not support `long long'" +#~ msgstr "ISO C++ ne permet pas long long " + +#~ msgid "ISO C++ forbids declaration of `%s' with no type" +#~ msgstr "ISO C++ interdit la dclaration de %s sans type" + +#~ msgid "short, signed or unsigned invalid for `%s'" +#~ msgstr "short, signed ou unsigned est invalide pour %s " + +#~ msgid "long and short specified together for `%s'" +#~ msgstr "long et short spcifis ensembles pour %s " + +#~ msgid "signed and unsigned given together for `%s'" +#~ msgstr "signed et unsigned donns ensembles pour %s " + +#~ msgid "qualifiers are not allowed on declaration of `operator %T'" +#~ msgstr "qualificateurs ne sont pas permis dans la dclaration de operator %T " + +#~ msgid "member `%D' cannot be declared both virtual and static" +#~ msgstr "membre %D ne peut tre dclar virtuel et statique" + +#~ msgid "`%T::%D' is not a valid declarator" +#~ msgstr " %T::%D n'est pas un dclarateur valide" + +#~ msgid "storage class specifiers invalid in parameter declarations" +#~ msgstr "spcificateurs de classe de stockage invalides dans la dclaration des paramtres" + +#~ msgid "typedef declaration invalid in parameter declaration" +#~ msgstr "dclaration typedef invalide dans le paramtre de la dclaration" + +#~ msgid "virtual outside class declaration" +#~ msgstr "virtuel en dehors de la dclaration de classe" + +#~ msgid "storage class specified for %s `%s'" +#~ msgstr "classe de stockage spcifie pour %s %s " + +#~ msgid "top-level declaration of `%s' specifies `auto'" +#~ msgstr "la dclaration hors de toute fonction de %s a spcifi auto " + +#~ msgid "storage class specifiers invalid in friend function declarations" +#~ msgstr "spcificateurs de classe de stockage invalide dans les dclarations de fonction amie" + +#~ msgid "destructor cannot be static member function" +#~ msgstr "le destructeur ne peut tre une fonction membre statique" + +#~ msgid "destructors may not be `%s'" +#~ msgstr "destructeurs ne peut tre %s " + +#~ msgid "constructor cannot be static member function" +#~ msgstr "le constructeur ne peut tre une fonction membre statique" + +#~ msgid "constructors cannot be declared virtual" +#~ msgstr "constructeurs ne peut tre dclars virtuels" + +#~ msgid "constructors may not be `%s'" +#~ msgstr "constructeurs ne peuvent pas tre %s " + +#~ msgid "return value type specifier for constructor ignored" +#~ msgstr "type de valeur retourne d'un spcificateur pour un constructeur est ignor" + +#~ msgid "can't initialize friend function `%s'" +#~ msgstr "ne peut initialiser la fonction amie %s " + +#~ msgid "virtual functions cannot be friends" +#~ msgstr "fonctions virtuelles ne peuvent tre amies" + +#~ msgid "friend declaration not in class definition" +#~ msgstr "dclaration amie n'est pas dans la dfinition de classe" + +#~ msgid "can't define friend function `%s' in a local class definition" +#~ msgstr "ne peut dfinir une fonction amie %s dans une dfinition locale de classe" + +#~ msgid "destructors may not have parameters" +#~ msgstr "destructeurs ne peuvent pas avoir de paramtre" + +#~ msgid "cannot declare reference to `%#T'" +#~ msgstr "ne peut dclarer une rfrence vers %#T " + +#~ msgid "cannot declare pointer to `%#T'" +#~ msgstr "ne peut dclarer un pointeur vers %#T " + +#~ msgid "cannot declare pointer to `%#T' member" +#~ msgstr "ne peut dclarer un pointeur vers le membre %#T " + +#~ msgid "extra qualification `%T::' on member `%s' ignored" +#~ msgstr "qualification additionnelle %T:: sur le membre %s est ignore" + +#~ msgid "cannot declare member function `%T::%s' within `%T'" +#~ msgstr "ne peut dclarer la fonction membre %T::%s l'intrieur de %T " + +#~ msgid "cannot declare member `%T::%s' within `%T'" +#~ msgstr "ne peut dclarer le membre %T::%s l'intrieur de %T " + +#~ msgid "data member may not have variably modified type `%T'" +#~ msgstr "membre de donnes peut ne pas avoir de type %T modifi de manire variable" + +#~ msgid "parameter may not have variably modified type `%T'" +#~ msgstr "paramtre peut ne pas avoir de type %T modifi de manire variable" + +#~ msgid "only declarations of constructors can be `explicit'" +#~ msgstr "seuls les dclarations de constructeurs peuvent tre explicit " + +#~ msgid "non-member `%s' cannot be declared `mutable'" +#~ msgstr "le non membre %s ne peut tre dclar mutable " + +#~ msgid "non-object member `%s' cannot be declared `mutable'" +#~ msgstr "un membre non objet %s ne peut tre dclar mutable " + +#~ msgid "function `%s' cannot be declared `mutable'" +#~ msgstr "fonction %s ne peut tre dclare mutable " + +#~ msgid "static `%s' cannot be declared `mutable'" +#~ msgstr "static %s ne peut tre dclar mutable " + +#~ msgid "const `%s' cannot be declared `mutable'" +#~ msgstr "const %s ne peut tre dclar mutable " + +#~ msgid "template-id `%D' used as a declarator" +#~ msgstr "identificateur de canevas %D utilis comme dclarateur" + +#~ msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" +#~ msgstr "ISO C++ interdit le type imbriqu %D avec le mme nom que la classe de fermeture" + +#~ msgid "%Jtypedef name may not be a nested-name-specifier" +#~ msgstr "%Jnom du typedef peut ne pas tre un nom de spcificateur imbriqu" + +#~ msgid "%Jinvalid type qualifier for non-member function type" +#~ msgstr "%Jqualificateur de type invalide pour un type de fonction non membre" + +#~ msgid "type qualifiers specified for friend class declaration" +#~ msgstr "qulificateurs de types spcifis pour la dclaration d'une classe amie" + +#~ msgid "`inline' specified for friend class declaration" +#~ msgstr " inline spcifi pour la dclaration d'une classe amie" + +#~ msgid "template parameters cannot be friends" +#~ msgstr "paramtres du canevas ne peuvent pas tre amis" + +#~ msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" +#~ msgstr "dclaration ami requiert une cl de classe, i.e. friend class %T::%D " + +#~ msgid "friend declaration requires class-key, i.e. `friend %#T'" +#~ msgstr "dclaration amie requiert une cl de classes, i.e. friend %#T " + +#~ msgid "trying to make class `%T' a friend of global scope" +#~ msgstr "tentative de rendre la classe %T un ami de la porte globale" + +#~ msgid "invalid qualifiers on non-member function type" +#~ msgstr "qualificteurs invalide pour un type de fonction (autre que fonction membre)" + +#~ msgid "abstract declarator `%T' used as declaration" +#~ msgstr "dclaration abstrait %T utilis dans la dclaration" + +#~ msgid "unnamed variable or field declared void" +#~ msgstr "variable non nomme ou champ dclar void" + +#~ msgid "variable or field declared void" +#~ msgstr "variable ou champ dclar void" + +#~ msgid "cannot use `::' in parameter declaration" +#~ msgstr "ne peut utiliser :: dans le paramtre d'un dclaration" + +#~ msgid "invalid use of `::'" +#~ msgstr "utilisation invalide de :: " + +#~ msgid "function `%D' cannot be declared friend" +#~ msgstr "fonction %D ne peut tre dclare amie" + +#~ msgid "can't make `%D' into a method -- not in a class" +#~ msgstr "ne peut rendre %D dans la mthode -- n'est pas dans la classe" + +#~ msgid "function `%D' declared virtual inside a union" +#~ msgstr "fonction %D dclar comme virtuelle l'intrieur d'un agrgat" + +#~ msgid "`%D' cannot be declared virtual, since it is always static" +#~ msgstr " %D ne peut tre dclar virtuel, alors qu'il est toujours statique" + +#~ msgid "field `%D' has incomplete type" +#~ msgstr "champ %D a un type incomplet" + +#~ msgid "name `%T' has incomplete type" +#~ msgstr "nom %T a un type incomplet" + +#~ msgid " in instantiation of template `%T'" +#~ msgstr " dans l'instanciation du canevas %T " + +#~ msgid "`%s' is neither function nor member function; cannot be declared friend" +#~ msgstr " %s n'est ni une fonction ni une fonction membre ; ne peut tre dclar ami" + +#~ msgid "member functions are implicitly friends of their class" +#~ msgstr "les fonctions membres sont implicitement amis de leur classe" + +#~ msgid "ISO C++ forbids initialization of member `%D'" +#~ msgstr "ISO C++ interdit l'initialisation du membre %D " + +#~ msgid "making `%D' static" +#~ msgstr "rendant %D statique" + +#~ msgid "storage class `auto' invalid for function `%s'" +#~ msgstr "classe de stockage auto invalide pour une fonction %s " + +#~ msgid "storage class `register' invalid for function `%s'" +#~ msgstr "classe de stockage register invalide pour une fonction %s " + +#~ msgid "storage class `__thread' invalid for function `%s'" +#~ msgstr "classe de stockage __thread invalide pour la fonction %s " + +#~ msgid "storage class `static' invalid for function `%s' declared out of global scope" +#~ msgstr "classe de stockage static invalide pour une fonction %s dclare en dehors de la porte globale" + +#~ msgid "storage class `inline' invalid for function `%s' declared out of global scope" +#~ msgstr "classe de stockage inline invalide pour une fonction %s dclare en dehors de la porte globale" + +#~ msgid "virtual non-class function `%s'" +#~ msgstr "fonction virtuelle d'une non classe %s " + +#~ msgid "cannot declare member function `%D' to have static linkage" +#~ msgstr "ne peut dclarer la fonction membre %D comme ayant un lien statique" + +#~ msgid "cannot declare static function inside another function" +#~ msgstr "ne peut dclarer une fonction statique l'intrieur d'une autre fonction" + +#~ msgid "`static' may not be used when defining (as opposed to declaring) a static data member" +#~ msgstr " static ne peut pas tre utilis lors de la dfinition (contrairement la dclaration) de donnes de membres statiques" + +#~ msgid "static member `%D' declared `register'" +#~ msgstr "mambre statique %D dclar register " + +#~ msgid "cannot explicitly declare member `%#D' to have extern linkage" +#~ msgstr "ne peut explicitement dclarer le membre %#D comme ayant une liaison externe" + +#~ msgid "default argument for `%#D' has type `%T'" +#~ msgstr "argument par dfaut pour %#D un type %T " + +#~ msgid "default argument for parameter of type `%T' has type `%T'" +#~ msgstr "argument par dfaut pour le paramtre de type %T a le type %T " + +#~ msgid "default argument `%E' uses local variable `%D'" +#~ msgstr "argument par dfaut %E utiliser une variable locale %D " + +#~ msgid "invalid string constant `%E'" +#~ msgstr "constante chane invalide %E " + +#~ msgid "invalid integer constant in parameter list, did you forget to give parameter name?" +#~ msgstr "constante entire invalide dans la liste de paramtre, avez-vous oublier de donner un nom de paramtre?" + +#~ msgid "parameter `%D' invalidly declared method type" +#~ msgstr "paramtre %D incorrectement valid comme type de mthode" + +#~ msgid "parameter `%D' includes %s to array of unknown bound `%T'" +#~ msgstr "paramtre %D inclut %s au tableau de bornes inconnues %T " + +#~ msgid "invalid constructor; you probably meant `%T (const %T&)'" +#~ msgstr "constructeur invalide; vous vouliez probablement dire %T (const %T&) " + +#~ msgid "`%D' must be a nonstatic member function" +#~ msgstr " %D doit tre une fonction membre non statique" + +#~ msgid "`%D' must be either a non-static member function or a non-member function" +#~ msgstr " %D doit tre soit un membre non statique de fonction ou une fonction non membre" + +#~ msgid "`%D' must have an argument of class or enumerated type" +#~ msgstr " %D doit avoir un argument de classe ou de type numr" + +#~ msgid "conversion to %s%s will never use a type conversion operator" +#~ msgstr "conversion de %s%s ne sera jamais utilis dans un type d'oprateur de conversion" + +#~ msgid "ISO C++ prohibits overloading operator ?:" +#~ msgstr "ISO C++ interdit la surcharge de l'oprateur ?:" + +#~ msgid "postfix `%D' must take `int' as its argument" +#~ msgstr "postfixe %D doit prendre int comme argument" + +#~ msgid "postfix `%D' must take `int' as its second argument" +#~ msgstr "postfixe %D doit prndre int pour son second argument" + +#~ msgid "`%D' must take either zero or one argument" +#~ msgstr " %D doit prendre seulement zro ou un autre argument" + +#~ msgid "`%D' must take either one or two arguments" +#~ msgstr " %D doit prendre seulement un OU deux arguments" + +#~ msgid "prefix `%D' should return `%T'" +#~ msgstr "prfixe %D devrait retourner %T " + +#~ msgid "postfix `%D' should return `%T'" +#~ msgstr "postfixe %D devrait retourner %T " + +#~ msgid "`%D' must take `void'" +#~ msgstr " %D doit prendre void " + +#~ msgid "`%D' must take exactly one argument" +#~ msgstr " %D doit prendre exactement un argument" + +#~ msgid "`%D' must take exactly two arguments" +#~ msgstr " %D doit prendre exactemenr deux arguments" + +#~ msgid "user-defined `%D' always evaluates both arguments" +#~ msgstr " %D dfini par l'usager value toujours les 2 arguments" + +#~ msgid "`%D' should return by value" +#~ msgstr " %D devrait retourner par valeur" + +#~ msgid "`%D' cannot have default arguments" +#~ msgstr " %D ne peut avoir d'arguments par dfaut" + +#~ msgid "using typedef-name `%D' after `%s'" +#~ msgstr "utilisation d'un nom de typedef %D aprs %s " + +#~ msgid "using template type parameter `%T' after `%s'" +#~ msgstr "utilisation de type de canevas de paramtre %T aprs %s " + +#~ msgid "`%T' referred to as `%s'" +#~ msgstr " %TD rfr comme %s " + +#~ msgid "`%T' referred to as enum" +#~ msgstr " %T rfr comme enum" + +#~ msgid "template argument required for `%s %T'" +#~ msgstr "argument du canevas est requis pour %s %T " + +#~ msgid "use of enum `%#D' without previous declaration" +#~ msgstr "utilisation de enum %#D sans dclaration prcdente" + +#~ msgid "derived union `%T' invalid" +#~ msgstr "union drive %T invalide" + +#~ msgid "base type `%T' fails to be a struct or class type" +#~ msgstr "type de base %T a chou pour devenir un type de classe ou un type construit" + +#~ msgid "recursive type `%T' undefined" +#~ msgstr "type rcursif %T non dfini" + +#~ msgid "duplicate base type `%T' invalid" +#~ msgstr "duplication du type de base %T invalide" + +#~ msgid "Java class '%T' cannot have multiple bases" +#~ msgstr "classe Java %T ne peut avoir de bases multiples" + +#~ msgid "Java class '%T' cannot have virtual bases" +#~ msgstr "classe Java %T ne peut avoir de bases virtuelles" + +#~ msgid "multiple definition of `%#T'" +#~ msgstr "dfinition multiple de %#T " + +#~ msgid "%Jprevious definition here" +#~ msgstr "%Jdfinition prcdente ici" + +#~ msgid "no integral type can represent all of the enumerator values for `%T'" +#~ msgstr "aucun type entier peut reprsenter toutes les valeurs de l'numrateur pour %T " + +#~ msgid "enumerator value for `%D' not integer constant" +#~ msgstr "valeur de l'numrateur pour %D n'est pas une constante entire" + +#~ msgid "overflow in enumeration values at `%D'" +#~ msgstr "dbordement dans les valeurs de l'numration %D " + +#~ msgid "return type `%#T' is incomplete" +#~ msgstr "type retourn %#T est incomplet" + +#~ msgid "return type for `main' changed to `int'" +#~ msgstr "type retourn pour main est chang pour int " + +#~ msgid "`%D' implicitly declared before its definition" +#~ msgstr " %D implicitement dclar avant sa dfinition" + +#~ msgid "`operator=' should return a reference to `*this'" +#~ msgstr " operator= devrait retourner une rfrence *ceci " + +#~ msgid "parameter `%D' declared void" +#~ msgstr "paramtre %D dclar void " + +#~ msgid "invalid member function declaration" +#~ msgstr "dclaration de membre de fonction invalide" + +#~ msgid "`%D' is already defined in class `%T'" +#~ msgstr " %D est dj dfini dans la classe %T " + +#~ msgid "static member function `%#D' declared with type qualifiers" +#~ msgstr "membre de fonction statique %#D dclar avec des qualificateurs de tyep" + +#~ msgid "duplicate type qualifiers in %s declaration" +#~ msgstr "qualificateurs de types dupliqus dans dclaration %s" + +#~ msgid "name missing for member function" +#~ msgstr "nom manquant pour le membre d'une fonction" + +#~ msgid "ambiguous conversion for array subscript" +#~ msgstr "comversion ambigue pour un sous-tableau" + +#~ msgid "invalid types `%T[%T]' for array subscript" +#~ msgstr "types invalides %T[%T] pour un sous-script de tableau" + +#~ msgid "deleting array `%#D'" +#~ msgstr "destruction du tableau %#D " + +#~ msgid "type `%#T' argument given to `delete', expected pointer" +#~ msgstr "type %#T de l'argument donn pour delete , attendait un pointeur" + +#~ msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'" +#~ msgstr "ne peut dtruire une fonction. Seuls les pointeurs-d'objets sont des arguments valable pour destruction" + +#~ msgid "deleting `%T' is undefined" +#~ msgstr "destruction de %T est indfinie" + +#~ msgid "invalid declaration of member template `%#D' in local class" +#~ msgstr "dclaration invalide du canevas de membre %#D dans la classe locale" + +#~ msgid "invalid use of `virtual' in template declaration of `%#D'" +#~ msgstr "utilisation invalide de virtual dans la dclaration d'un canevas de %#D " + +#~ msgid "template declaration of `%#D'" +#~ msgstr "dclaration du canevas de %#D " + +#~ msgid "Java method '%D' has non-Java return type `%T'" +#~ msgstr "mthode Java %D a un type non Java retourn %T " + +#~ msgid "Java method '%D' has non-Java parameter type `%T'" +#~ msgstr "mthode Java %D a un paramtre non Java de type %T " + +#~ msgid "prototype for `%#D' does not match any in class `%T'" +#~ msgstr "prototype pour %#D ne concorde avec aucun dans la classe %T " + +#~ msgid "local class `%#T' shall not have static data member `%#D'" +#~ msgstr "la classe locale %#T ne doit pas tre un membre de donnes statiques de %#D " + +#~ msgid "initializer invalid for static member with constructor" +#~ msgstr "initialisation invalide pour un membre statique avec constructeur" + +#~ msgid "(an out of class initialization is required)" +#~ msgstr "(une initialisation en dehors de la classe est requise)" + +#~ msgid "member `%D' conflicts with virtual function table field name" +#~ msgstr "membre %D en conflit avec un nom de champ de table d'une fonction virtuelle" + +#~ msgid "`%D' is already defined in `%T'" +#~ msgstr " %D est dj dfini dans %T " + +#~ msgid "field initializer is not constant" +#~ msgstr "l'initialisation du champ n'est pas une constante" + +#~ msgid "`asm' specifiers are not permitted on non-static data members" +#~ msgstr "spcificateurs asm ne sont pas permis pour des donnes de membres non statiques" + +#~ msgid "cannot declare `%D' to be a bit-field type" +#~ msgstr "ne peut dclarer %D comme tant un type de champ de bits" + +#~ msgid "cannot declare bit-field `%D' with function type" +#~ msgstr "ne peut dclarer un champ de bits %D avec un type de fonction" + +#~ msgid "`%D' is already defined in the class %T" +#~ msgstr " %D est dj dfini dans la classe %T" + +#~ msgid "static member `%D' cannot be a bit-field" +#~ msgstr "membre statique %D ne peut tre un champ de bits" + +#~ msgid "initializer specified for non-member function `%D'" +#~ msgstr "initialisation spcifie pour une fonction %D n'tant pas membre" + +#~ msgid "invalid initializer for virtual method `%D'" +#~ msgstr "initialisation invalide pour la mthode virtuelle %D " + +#~ msgid "anonymous struct not inside named type" +#~ msgstr "struct anonyme n'est pas l'intrieur du type nomm" + +#~ msgid "namespace-scope anonymous aggregates must be static" +#~ msgstr "aggrgats anonymes de champs d'espace nom doit tre statique" + +#~ msgid "anonymous union with no members" +#~ msgstr "aggrgat anonyme sans aucun membre" + +#~ msgid "`operator new' must return type `%T'" +#~ msgstr " operator new doit retourner un type %T " + +#~ msgid "`operator new' takes type `size_t' (`%T') as first parameter" +#~ msgstr " operator new prend le type size_t ( %T ) comme premier paramtre" + +#~ msgid "`operator delete' must return type `%T'" +#~ msgstr " operator delete doit retourner le type %T " + +#~ msgid "`operator delete' takes type `%T' as first parameter" +#~ msgstr " operator delete prend le type %T comme premier paramtre" + +#~ msgid "inline function `%D' used but never defined" +#~ msgstr "fonction enligne %D utilis mais n'a jamais t dfini" + +#~ msgid "default argument missing for parameter %P of `%+#D'" +#~ msgstr "argument par dfaut manquant pour le paramtre %P de %+#D " + +#~ msgid "unexpected letter `%c' in locate_error\n" +#~ msgstr "lettre inattendue %c dans locate_error\n" + +#~ msgid "type `%T' is disallowed in Java `throw' or `catch'" +#~ msgstr "type %T n'est pas permis en Java throw ou catch " + +#~ msgid "call to Java `catch' or `throw' with `jthrowable' undefined" +#~ msgstr "appel en Java de catch ou throw avec jthrowable undfini" + +#~ msgid "type `%T' is not derived from `java::lang::Throwable'" +#~ msgstr "type %T n'est pas driv de java::lang::Throwable " + +#~ msgid "mixing C++ and Java catches in a single translation unit" +#~ msgstr "mlange des interceptions C++ et Java dans une unit simple de traduction " + +#~ msgid "throwing NULL, which has integral, not pointer type" +#~ msgstr "retounrnant NULL (par throw), lequel est entier, pas de type pointeur" + +#~ msgid "`%D' should never be overloaded" +#~ msgstr " %D ne devrait jamais tre surcharg" + +#~ msgid " in thrown expression" +#~ msgstr " dans l'expression projete" + +#~ msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression" +#~ msgstr "expression %E de la classe abstraite de type %T ne peut tre utilis dans une expression throw" + +#~ msgid "exception of type `%T' will be caught" +#~ msgstr "exception du type %T sera intercepte" + +#~ msgid " by earlier handler for `%T'" +#~ msgstr " par un handler antrieur pour %T " + +#~ msgid "`...' handler must be the last handler for its try block" +#~ msgstr " ... handler doit tre le dernier handler de son bloc d'essai" + +#~ msgid "`%D' is already a friend of class `%T'" +#~ msgstr " %D est dj un ami de la classe %T " + +#~ msgid "invalid type `%T' declared `friend'" +#~ msgstr "type invalide %T dclar friend " + +#~ msgid "partial specialization `%T' declared `friend'" +#~ msgstr "spcialisation partielle %T dclare friend " + +#~ msgid "class `%T' is implicitly friends with itself" +#~ msgstr "classe %T est implicitement ami avec elle-mme" + +#~ msgid "typename type `%#T' declared `friend'" +#~ msgstr "type typename %#T dclar friend " + +#~ msgid "template parameter type `%T' declared `friend'" +#~ msgstr "type paramtre du canevas %T dclar friend " + +#~ msgid "`%#T' is not a template" +#~ msgstr " %#T n'est pas un canevas" + +#~ msgid "`%D' is already a friend of `%T'" +#~ msgstr " %D est dj un ami de %T " + +#~ msgid "`%T' is already a friend of `%T'" +#~ msgstr " %T est dj un ami de %T " + +#~ msgid "member `%D' declared as friend before type `%T' defined" +#~ msgstr "membre %D dclar comme ami avant la dfinition du type %T " + +#~ msgid "friend declaration `%#D' declares a non-template function" +#~ msgstr "dclaration amie %#D dclare une fonction non canevas" + +#~ msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" +#~ msgstr "(si ce n'est pas ce que vous vouliez faire, soyez sr que le canevas de la fonction a dj t dclar et ajouter <> aprs le nom de la fonction ici) -Wno-non-template-friend dsactive le prsent avertissement" + +#~ msgid "argument to `%s' missing\n" +#~ msgstr "argument pour %s est manquant\n" + +#~ msgid "`%D' should be initialized in the member initialization list" +#~ msgstr " %D devrait tre initialis dans la liste d'initialisation du membre" + +#~ msgid "default-initialization of `%#D', which has reference type" +#~ msgstr "initialisation par dfaut de %#D , lequel a un type rfrenc" + +#~ msgid "uninitialized reference member `%D'" +#~ msgstr "rfrence de membre non initialis %D " + +#~ msgid "uninitialized member `%D' with `const' type `%T'" +#~ msgstr "membre non initialis %D avec const type %T " + +#~ msgid "`%D' will be initialized after" +#~ msgstr " %D sera initialis aprs" + +#~ msgid "base `%T' will be initialized after" +#~ msgstr "base %T sera initialis aprs" + +#~ msgid " `%#D'" +#~ msgstr " %D " + +#~ msgid " base `%T'" +#~ msgstr " base %T " + +#~ msgid " when initialized here" +#~ msgstr " lorsqu'initialis ici" + +#~ msgid "multiple initializations given for `%D'" +#~ msgstr "multiples initialisations donnes pour %D " + +#~ msgid "multiple initializations given for base `%T'" +#~ msgstr "multiples initialisations donnes pour base %T " + +#~ msgid "initializations for multiple members of `%T'" +#~ msgstr "initialisation de multiples membres de %T " + +#~ msgid "base class `%#T' should be explicitly initialized in the copy constructor" +#~ msgstr "classe de base %#T devrait tre explicitement initialis dans la copie du constructeur" + +#~ msgid "class `%T' does not have any field named `%D'" +#~ msgstr "classe %T n'a pas aucun champ nomm %D " + +#~ msgid "`%#D' is a static data member; it can only be initialized at its definition" +#~ msgstr " %#D est un membre statique de donnes; il peut seulement tre initialise lors de sa dfinition" + +#~ msgid "`%#D' is not a non-static data member of `%T'" +#~ msgstr " %#D n'est pas un membre statique de donnes de %T " + +#~ msgid "unnamed initializer for `%T', which has no base classes" +#~ msgstr "initialiseur sans nom pour %T , lequel n'a pas de classe de base" + +#~ msgid "unnamed initializer for `%T', which uses multiple inheritance" +#~ msgstr "initialiseur sans nom pour %T , lequel utilise de multiples hritages" + +#~ msgid "'%D' is both a direct base and an indirect virtual base" +#~ msgstr " %D est la fois une base directe et indirecte virtuelle" + +#~ msgid "type `%D' is not a direct or virtual base of `%T'" +#~ msgstr "type %D n'est pas une base directe ou virtuelle de %T " + +#~ msgid "type `%D' is not a direct base of `%T'" +#~ msgstr "type %D n'est pas une base directe de %T " + +#~ msgid "bad array initializer" +#~ msgstr "mauvaise initialisation de tableau" + +#~ msgid "`%T' is not an aggregate type" +#~ msgstr " %T n'est pas de type aggrgat" + +#~ msgid "`%T' fails to be an aggregate typedef" +#~ msgstr " %T a chou tre un typedef d'aggrgat" + +#~ msgid "type `%T' is of non-aggregate type" +#~ msgstr "type %T est un type qui n'est pas d'aggrgat" + +#~ msgid "qualified type `%T' does not match destructor name `~%T'" +#~ msgstr "type qualif %T ne concorde pas le nom du destructeur ~%T" + +#~ msgid "incomplete type `%T' does not have member `%D'" +#~ msgstr "type incomplet %T n'a pas de membre %D " + +#~ msgid "`%D' is not a member of type `%T'" +#~ msgstr " %D n'est pas un membre de type %T " + +#~ msgid "invalid pointer to bit-field `%D'" +#~ msgstr "pointeur invalide pour un champ de bits %D " + +#~ msgid "invalid use of non-static member function `%D'" +#~ msgstr "utilisation invalide d'un membre non statique de fonction %D " + +#~ msgid "invalid use of non-static data member `%D'" +#~ msgstr "utilisation invalide d'un membre non statique de donnes %D " + +#~ msgid "new of array type fails to specify size" +#~ msgstr "new sur un type tableau a chou dans l'valuation de la taille" + +#~ msgid "size in array new must have integral type" +#~ msgstr "taille d'un nouveau tableau (new) doit avoir un type entier" + +#~ msgid "zero size array reserves no space" +#~ msgstr "tableau de taille zro ne rserve pas d'espace" + +#~ msgid "new cannot be applied to a reference type" +#~ msgstr "new ne peut tre appliqu un type rfrenc" + +#~ msgid "new cannot be applied to a function type" +#~ msgstr "new ne peut tre appliqu un type de fonction" + +#~ msgid "call to Java constructor, while `jclass' undefined" +#~ msgstr "appel d'un constructeur Java, alors que jclass est indfini" + +#~ msgid "can't find class$" +#~ msgstr "ne peut reprer class$" + +#~ msgid "invalid type `void' for new" +#~ msgstr "type void invalide pour new" + +#~ msgid "uninitialized const in `new' of `%#T'" +#~ msgstr "constante non initialise dans new pour %#T " + +#~ msgid "call to Java constructor with `%s' undefined" +#~ msgstr "appel au constructeur Java avec %s indfini" + +#~ msgid "request for member `%D' is ambiguous" +#~ msgstr "la requte pour le membre %D est ambigu" + +#~ msgid "ISO C++ forbids initialization in array new" +#~ msgstr "ISO C++ interdit l'initialisation d'un nouveau tableau" + +#~ msgid "initializer ends prematurely" +#~ msgstr "fin prmature de l'initialisation" + +#~ msgid "cannot initialize multi-dimensional array with initializer" +#~ msgstr "ne peut initialiser un table multi-dimensionnel avec initialiseur" + +#~ msgid "possible problem detected in invocation of delete operator:" +#~ msgstr "problme possible dtect dans l'invocation de l'oprateur delete:" + +#~ msgid "neither the destructor nor the class-specific " +#~ msgstr "ni le destructeur ni la classe spcifique" + +#~ msgid "operator delete will be called, even if they are " +#~ msgstr "l'oprateur de destruction sera appell, mme s'ils sont " + +#~ msgid "declared when the class is defined." +#~ msgstr "dclars lorsque la classe est dfinie." + +#~ msgid "unknown array size in delete" +#~ msgstr "taille du tableau inconnue dans delete" + +#~ msgid "type to vector delete is neither pointer or array type" +#~ msgstr "type du vesteur delete n'est ni un pointeur ou un type tableau" + +#~ msgid "type name expected before `*'" +#~ msgstr "nom de type attendu avec *" + +#~ msgid "junk at end of #pragma %s" +#~ msgstr "rebut la fin de #pragma %s" + +#~ msgid "invalid #pragma %s" +#~ msgstr "#pragma %s invalde" + +#~ msgid "#pragma vtable no longer supported" +#~ msgstr "#pragma vtable n'est plus support" + +#~ msgid "#pragma implementation for %s appears after file is included" +#~ msgstr "implantation de #pragma pour %s apparat aprs l'inclusion du fichier" + +#~ msgid "junk at end of #pragma GCC java_exceptions" +#~ msgstr "rebut la fin de #pragma GCC java_exceptions" + +#~ msgid "`%D' not defined" +#~ msgstr " %D n'est pas dfini" + +#~ msgid "`%D' was not declared in this scope" +#~ msgstr " %D n'a pas t dclar dans cet horizon" + +#~ msgid "`%D' undeclared (first use this function)" +#~ msgstr " %D non dclar (premire utilisation dans cette fonction)" + +#~ msgid "(Each undeclared identifier is reported only once for each function it appears in.)" +#~ msgstr "(Chaque identificateur non dclar est rapport seulement une seule fois pour la fonction dans laquelle il apparat.)" + +#~ msgid "there are no arguments to `%D' that depend on a template parameter, so a declaration of `%D' must be available" +#~ msgstr "il n'y a pas d'argument %D qui dpend d'un paramtre du canevas, aussi une dclaration de %D doit tre disponible" + +#~ msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" +#~ msgstr "(si vous utilisez -fpermissive , G++ acceptera votre core, mais permettre l'utilisation d'un nom non dclar est obsolte)" + +#~ msgid "call_expr cannot be mangled due to a defect in the C++ ABI" +#~ msgstr "call_expr ne peut tre mutil en raison d'un faute dans l'ABI C++" + +#~ msgid "omitted middle operand to `?:' operand cannot be mangled" +#~ msgstr "oprande du milieu ?: omise, l'oprande ne peut tre mutile" + +#~ msgid "the mangled name of `%D' will change in a future version of GCC" +#~ msgstr "le nom mutil de %D sera modifi dans une version future de GCC" + +#~ msgid "generic thunk code fails for method `%#D' which uses `...'" +#~ msgstr "code thunk gnrique a chou pour la mthode %#D laquelle utilise ... " + +#~ msgid "non-static const member `%#D', can't use default assignment operator" +#~ msgstr "constante non statique du membre %#D , ne peut utiliser l'oprateur d'affectation par dfaut" + +#~ msgid "non-static reference member `%#D', can't use default assignment operator" +#~ msgstr "rfrence non statique du membre %#D , ne peut utiliser l'oprateur d'affectation par dfaut" + +#~ msgid "`%#D' used prior to declaration" +#~ msgstr " %#D utilis prcdemment avant sa dclaration" + +#~ msgid "redeclaration of `wchar_t' as `%T'" +#~ msgstr "redclaration de wchar_t comme %T " + +#~ msgid "invalid redeclaration of `%D'" +#~ msgstr "redclaration invalide de %D " + +#~ msgid "as `%D'" +#~ msgstr "comme %D " + +#~ msgid "type mismatch with previous external decl of `%#D'" +#~ msgstr "non concordance de type avec la dclaration externe prcdente de %D " + +#~ msgid "previous external decl of `%#D'" +#~ msgstr "dclaration externe prcdente de %#D " + +#~ msgid "`%D' was previously implicitly declared to return `int'" +#~ msgstr " %D a t prcdemment implicitement dclar comme retournant un entier" + +#~ msgid "extern declaration of `%#D' doesn't match" +#~ msgstr "dclaration externe de %#D ne concorde pas" + +#~ msgid "global declaration `%#D'" +#~ msgstr "dclaration globale %#D " + +#~ msgid "declaration of '%#D' shadows a parameter" +#~ msgstr "dclaration de %#D masque un paramtre" + +#~ msgid "declaration of '%D' shadows a member of 'this'" +#~ msgstr "dclaration de %D masque un membre de this " + +#~ msgid "declaration of '%D' shadows a previous local" +#~ msgstr "dclaration de %D masque la dclaration d'un local prcdent" + +#~ msgid "declaration of '%D' shadows a global declaration" +#~ msgstr "dclaration de %D masque une dclaration globale" + +#~ msgid "name lookup of `%D' changed" +#~ msgstr "recherche du nom %D a chang" + +#~ msgid " matches this `%D' under ISO standard rules" +#~ msgstr " concorde avec %D selon les rgles standards ISO" + +#~ msgid " matches this `%D' under old rules" +#~ msgstr " concorde avec %D selon les vieilles rgles" + +#~ msgid "name lookup of `%D' changed for new ISO `for' scoping" +#~ msgstr "recherche du nom de %D chang pour la nouvelle tendue ISO pour le for " + +#~ msgid " cannot use obsolete binding at `%D' because it has a destructor" +#~ msgstr " ne peut utiliser une liaison obsolte %D parce qu'il a un destructeur" + +#~ msgid " using obsolete binding at `%D'" +#~ msgstr " utilisation de liaison obsolte %D " + +#~ msgid "%s %s(%E) %p %d\n" +#~ msgstr "%s %s(%E) %p %d\n" + +#~ msgid "%s %s %p %d\n" +#~ msgstr "%s %s %p %d\n" + +#~ msgid "XXX is_class_level != (current_scope == class_scope)\n" +#~ msgstr "XXX is_class_level != (current_scope == class_scope)\n" + +#~ msgid "`%#D' hides constructor for `%#T'" +#~ msgstr " %#D cache un constructeur pour %#T " + +#~ msgid "`%#D' conflicts with previous using declaration `%#D'" +#~ msgstr " %#D en conflit avec une dclaration prcdente %#D " + +#~ msgid "previous non-function declaration `%#D'" +#~ msgstr "dclaration prcdente d'un non fonction %#D " + +#~ msgid "conflicts with function declaration `%#D'" +#~ msgstr "conflits avec la dclaration de fonction de %#D " + +#~ msgid "a using-declaration cannot specify a template-id. Try `using %D'" +#~ msgstr "l'utilisation d'une dclaration ne peut spcifier un template-id. Essayer using %D " + +#~ msgid "namespace `%D' not allowed in using-declaration" +#~ msgstr "espace de noms %D n'est pas permis dans l'utilisation d'une dclaration" + +#~ msgid "`%T' is not a namespace" +#~ msgstr " %T n'est pas un espace de noms" + +#~ msgid "`%D' not declared" +#~ msgstr " %D n'est pas dclar" + +#~ msgid "`%D' is already declared in this scope" +#~ msgstr " %D est dj dclar dans cette porte" + +#~ msgid "using declaration `%D' introduced ambiguous type `%T'" +#~ msgstr "l'utlisation de la dclaration %D introduit un type ambigu %T " + +#~ msgid "`%#D' redeclared as %C" +#~ msgstr " %#D rdclar comme %C" + +#~ msgid "`%D' has the same name as the class in which it is declared" +#~ msgstr " %D a le mme nom que la classe dans laquelle il est dclar" + +#~ msgid "using-declaration for non-member at class scope" +#~ msgstr "l'utilisation de dclaration pour un non membre au niveau de la porte de la classe" + +#~ msgid "using-declaration cannot name destructor" +#~ msgstr "utilisation de dclaration ne peut nommer le destructeur" + +#~ msgid "declaration of `%D' not in a namespace surrounding `%D'" +#~ msgstr "dclaration de %D n'est pas dans l'espace de noms entourant %D " + +#~ msgid "`%D' should have been declared inside `%D'" +#~ msgstr " %D devrait avoir t dclar l'intrieur de %D " + +#~ msgid "namespace alias `%D' not allowed here, assuming `%D'" +#~ msgstr "alias d'espace de noms %D n'est pas permis ici, on assume %D " + +#~ msgid "unknown namespace `%D'" +#~ msgstr "espace de nomes inconnu %D " + +#~ msgid "namespace `%T' undeclared" +#~ msgstr "espace de noms %T n'est pas dclar" + +#~ msgid "strong using only meaningful at namespace scope" +#~ msgstr "forte n'ayant un sens seulement sur l'tendue de l'espace nom" + +#~ msgid "`%D' attribute directive ignored" +#~ msgstr " %D attribut de directive ignor" + +#~ msgid "use of `%D' is ambiguous" +#~ msgstr "utilisation de %D est ambigu" + +#~ msgid " first declared as `%#D' here" +#~ msgstr " d'abord dclar comme %#D ici" + +#~ msgid " also declared as `%#D' here" +#~ msgstr " aussi dclar comme %#D ici" + +#~ msgid "`%D' denotes an ambiguous type" +#~ msgstr " %D dnote un type ambigu" + +#~ msgid "%J first type here" +#~ msgstr "%J premier type ici" + +#~ msgid "%J other type here" +#~ msgstr "%J autre type ici" + +#~ msgid "invalid use of `%D'" +#~ msgstr "utilisation invalide de %D " + +#~ msgid "`%D::%D' is not a template" +#~ msgstr " %D::%D n'est pas un canevas" + +#~ msgid "`%D' undeclared in namespace `%D'" +#~ msgstr " %D non dclar dans l'espace de noms %D " + +#~ msgid "`%D' is not a function," +#~ msgstr " %D n'est pas une fonction" + +#~ msgid " conflict with `%D'" +#~ msgstr " en conflit avec %D " + +#~ msgid "XXX entering pop_everything ()\n" +#~ msgstr "XXX on entre dans pop_everything ()\n" + +#~ msgid "XXX leaving pop_everything ()\n" +#~ msgstr "XXX on quitte pop_everything ()\n" + +#~ msgid "invalid token" +#~ msgstr "jeton invalide" + +#~ msgid "`%D::%D' has not been declared" +#~ msgstr " %D::%D n'a pas t dclar" + +#~ msgid "`::%D' has not been declared" +#~ msgstr " ::%D n'a pas t dclar" + +#~ msgid "`%D' has not been declared" +#~ msgstr " %D n'a pas t dclar" + +#~ msgid "`%D::%D' %s" +#~ msgstr " %D::%D %s" + +#~ msgid "`::%D' %s" +#~ msgstr " ::%D %s" + +#~ msgid "`%D' %s" +#~ msgstr " %D %s" + +#~ msgid "new types may not be defined in a return type" +#~ msgstr "nouveaux types ne peuvent tre dfinis dans un type retourner" + +#~ msgid "`%T' is not a template" +#~ msgstr " %T n'est pas un canevas" + +#~ msgid "invalid template-id" +#~ msgstr "id de canevas invalide" + +#~ msgid "%s cannot appear in a constant-expression" +#~ msgstr "%s ne peut apparatre dans une expression de constante" + +#~ msgid "`%s' does not name a type" +#~ msgstr " %s ne nomme pas un type" + +#~ msgid "(perhaps `typename %T::%s' was intended)" +#~ msgstr "(peut-tre typename %T::%s tait votre intention" + +#~ msgid "ISO C++ forbids braced-groups within expressions" +#~ msgstr "ISO C++ interdit les groupes d'accolades l'intrieur des expressions" + +#~ msgid "statement-expressions are allowed only inside functions" +#~ msgstr "expression de dclaration sont permises seulement l'intrieur de fonctions" + +#~ msgid "`this' may not be used in this context" +#~ msgstr " cela ne peut tre utilis dans ce contexte" + +#~ msgid "local variable `%D' may not appear in this context" +#~ msgstr "variable locale %D ne peut apparatre dans ce contexte" + +#~ msgid "typedef-name `%D' used as destructor declarator" +#~ msgstr "nom du typdef %D utilis comme dclarateur de destructeur" + +#~ msgid "ISO C++ forbids compound-literals" +#~ msgstr "ISO C++ interdit les chanes composes" + +#~ msgid "array bound forbidden after parenthesized type-id" +#~ msgstr "les limites du tableau interdisent ce qui suit aprs le type-id mis entre parenthses" + +#~ msgid "try removing the parentheses around the type-id" +#~ msgstr "essayer d'enlever les parenthses autour du type-id" + +#~ msgid "expression in new-declarator must have integral or enumeration type" +#~ msgstr "expression dans le nouveau dclarateur doit tre un type entier ou d'numration" + +#~ msgid "use of old-style cast" +#~ msgstr "utilisation d'un vieux style de transtypage (cast)" + +#~ msgid "case label `%E' not within a switch statement" +#~ msgstr "tiquette du CASE %E n'est pas l'intrieur de la dclaration du SWITCH" + +#~ msgid "ISO C++ forbids computed gotos" +#~ msgstr "ISO C++ interdit les gotos calculs" + +#~ msgid "extra `;'" +#~ msgstr " ; superflu" + +#~ msgid "mixing declarations and function-definitions is forbidden" +#~ msgstr "mlange de dclarations et de dfinitions de fonction est interdit" + +#~ msgid "duplicate `friend'" +#~ msgstr " friend apparat en double" + +#~ msgid "class definition may not be declared a friend" +#~ msgstr "dfinition de classe ne peut pas tre dclar comme ami" + +#~ msgid "only constructors take base initializers" +#~ msgstr "seuls les constructeurs prennent des initialiseurs de base" + +#~ msgid "anachronistic old-style base class initializer" +#~ msgstr "ancien style anachronique d'initialiseur de classe de base" + +#~ msgid "keyword `export' not implemented, and will be ignored" +#~ msgstr "mot cl export n'est pas implant et sera ignor" + +#~ msgid "`<::' cannot begin a template-argument list" +#~ msgstr " <:: ne peut pas tre au dbut d'une liste d'un canevas d'arguments" + +#~ msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" +#~ msgstr " <: est une pellation alternative pour [ . Insrer des blancs d,espacement entre < et :: " + +#~ msgid "(if you use `-fpermissive' G++ will accept your code)" +#~ msgstr "(si vous utiliser -fpermissive G++ acceptera votre code)" + +#~ msgid "non-template `%D' used as template" +#~ msgstr " %D qui n'est pas un canevas est utilis comme canevas" + +#~ msgid "(use `%T::template %D' to indicate that it is a template)" +#~ msgstr "(utiliser %T::template %D pour indiquer que c'est un canevas)" + +#~ msgid "using `typename' outside of template" +#~ msgstr "utilisation de typename en dehors du canevas" + +#~ msgid "expected type-name" +#~ msgstr "un nom de type attendu" + +#~ msgid "type attributes are honored only at type definition" +#~ msgstr "type d'attributs sont honors seulement lors de la dfinitions de type" + +#~ msgid "a template-id may not appear in a using-declaration" +#~ msgstr "un id de canevas ne peut pas apparatre dans l'utilisation de la dclaration" + +#~ msgid "an asm-specification is not allowed on a function-definition" +#~ msgstr "une spcification asm n'est pas permise dans la dfinition de fonction" + +#~ msgid "attributes are not allowed on a function-definition" +#~ msgstr "attributs ne sont pas permis dans la dfinition de fonction" + +#~ msgid "attributes after parenthesized initializer ignored" +#~ msgstr "attributs aprs l'initialisateur mis entre parenthses sont ignors" + +#~ msgid "file ends in default argument" +#~ msgstr "fin de fichier dans l'argument par dfaut" + +#~ msgid "deprecated use of default argument for parameter of non-function" +#~ msgstr "utilisation de l'argument par dfaut pour un paramtre d'une non fonction" + +#~ msgid "default arguments are only permitted for function parameters" +#~ msgstr "arguments par dfaut sont permis seulement pour les paramtres de fonction" + +#~ msgid "declaration of `%D' in `%D' which does not enclose `%D'" +#~ msgstr "dclaration de %D dans %D lequel n'entoure pas %D " + +#~ msgid "extra qualification ignored" +#~ msgstr "qualification superflue ignore" + +#~ msgid "an explicit specialization must be preceded by 'template <>'" +#~ msgstr "spcialisation explicite doit tre prcd par template <> " + +#~ msgid "extra semicolon" +#~ msgstr " ; superflu" + +#~ msgid "a class-key must be used when declaring a friend" +#~ msgstr "une cl de classe doit tre utilise lors de la dclaration d'un ami" + +#~ msgid "friend declaration does not name a class or function" +#~ msgstr "dclaration amie ne nomme pas une classe ou une fonction" + +#~ msgid "pure-specifier on function-definition" +#~ msgstr "spcificateur pur lors de la dfinition d'une fonction" + +#~ msgid "keyword `typename' not allowed outside of templates" +#~ msgstr "mot cl typename n'est pas permis en dehors du canevas" + +#~ msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" +#~ msgstr "mot cl typename n'est pas permis dans ce contexte (la classe de base est implicitement un type)" + +#~ msgid "reference to `%D' is ambiguous" +#~ msgstr "rfrence %D est ambigu" + +#~ msgid "too few template-parameter-lists" +#~ msgstr "trop peu de canevas de listes de paramtres" + +#~ msgid "too many template-parameter-lists" +#~ msgstr "trop de canevas de listes de paramtres" + +#~ msgid "invalid function declaration" +#~ msgstr "dclaration de fonction invalide" + +#~ msgid "named return values are no longer supported" +#~ msgstr "valeurs nommes retourner ne sont plus supportes" + +#~ msgid "`>>' should be `> >' within a nested template argument list" +#~ msgstr " >> devrait tre > > l'intrieur du canevas de la liste d'arguments" + +#~ msgid "spurious `>>', use `>' to terminate a template argument list" +#~ msgstr "faux >> , utiliser > pour terminer la liste d'argument du canevas" + +#~ msgid "missing `>' to terminate the template argument list" +#~ msgstr " > manquant pour terminer la liste d'argument du canevas" + +#~ msgid "`%s' tag used in naming `%#T'" +#~ msgstr "tiquette %s utilise dans la dnomination de %#T " + +#~ msgid "%D redeclared with different access" +#~ msgstr " %#D redclar avec un accs diffrent" + +#~ msgid "`template' (as a disambiguator) is only allowed within templates" +#~ msgstr " template (afin de rendre moins ambigu) est seulement permis l'intrieur des canevas" + +#~ msgid "data member `%D' cannot be a member template" +#~ msgstr "membre de donnes %D ne peut tre membre du canevas" + +#~ msgid "invalid member template declaration `%D'" +#~ msgstr "dclaration de membre de canevas invalide %D " + +#~ msgid "explicit specialization in non-namespace scope `%D'" +#~ msgstr "spcialisation explicite dans la porte d'un non espace de noms %D " + +#~ msgid "enclosing class templates are not explicitly specialized" +#~ msgstr "fermetures de canevass de classe ne sont pas explicitement spcialises" + +#~ msgid "specializing `%#T' in different namespace" +#~ msgstr "spcialisation de %#T dans diffrents espaces de noms" + +#~ msgid " from definition of `%#D'" +#~ msgstr " partir de la dfinition de %#D " + +#~ msgid "specialization of `%T' after instantiation" +#~ msgstr "spcialisation de %T aprs instanciation" + +#~ msgid "specialization `%T' after instantiation `%T'" +#~ msgstr "spcialisation de %T aprs instanciation %T " + +#~ msgid "explicit specialization of non-template `%T'" +#~ msgstr "spcialisation explicite du non canevas %T " + +#~ msgid "specialization of %D after instantiation" +#~ msgstr "spcialisation de %D aprs instanciation" + +#~ msgid "%s %+#D" +#~ msgstr "%s %+#D" + +#~ msgid "`%D' is not a function template" +#~ msgstr " %D n'est pas un canevas de fonction" + +#~ msgid "template-id `%D' for `%+D' does not match any template declaration" +#~ msgstr "template-id %D pour %+D ne concorde pas avec aucune dclaration de canevas" + +#~ msgid "ambiguous template specialization `%D' for `%+D'" +#~ msgstr "spcialisation de canevas amibigu %D pour %+D " + +#~ msgid "template-id `%D' in declaration of primary template" +#~ msgstr "template-id %D dans la dclaration de canevas primaire" + +#~ msgid "template parameter list used in explicit instantiation" +#~ msgstr "canevas de liste de paramtres utilis dans une instanciation explicite" + +#~ msgid "definition provided for explicit instantiation" +#~ msgstr "dfinition fournie pour une instanciation explicite" + +#~ msgid "too many template parameter lists in declaration of `%D'" +#~ msgstr "trop de canevass de listes de paramtres dans la dclaration de %D " + +#~ msgid "too few template parameter lists in declaration of `%D'" +#~ msgstr "trop peu de canevass de listes de paramtres dans la dclaration de %D " + +#~ msgid "explicit specialization not preceded by `template <>'" +#~ msgstr "spcialisation explicite n'est pas prcde de template <> " + +#~ msgid "partial specialization `%D' of function template" +#~ msgstr "spcialisation partielle %D du canevas de fonction" + +#~ msgid "default argument specified in explicit specialization" +#~ msgstr "argument par dfaut spcifi dans la spcialisation explicite" + +#~ msgid "template specialization with C linkage" +#~ msgstr "spcialisation de canevas avec dition de liens C" + +#~ msgid "specialization of implicitly-declared special member function" +#~ msgstr "spcialisation d'un membre spcial d'nue fonction dclar implicitement" + +#~ msgid "no member function `%D' declared in `%T'" +#~ msgstr "pas de membre de fonction %D dclar dans %T " + +#~ msgid "too many template parameter lists in declaration of `%T'" +#~ msgstr "trop de canevass de listes de paramtres dans la dclaration de %T " + +#~ msgid " shadows template parm `%#D'" +#~ msgstr " masque le paramtre du canevas %#D " + +#~ msgid "template parameters not used in partial specialization:" +#~ msgstr "paramtres du canevas ne sont pas utiliss dans la spcialisation partielle:" + +#~ msgid " `%D'" +#~ msgstr " %D " + +#~ msgid "partial specialization `%T' does not specialize any template arguments" +#~ msgstr "spcialisation partielle %T ne spcialise pas aucun canevas d'arguments" + +#~ msgid "template argument `%E' involves template parameter(s)" +#~ msgstr "canevas d'argument %E implique des paramtres du canevas" + +#~ msgid "type `%T' of template argument `%E' depends on template parameter(s)" +#~ msgstr "type %T du canevas d'argument %E dpend des paramtres du canevas" + +#~ msgid "no default argument for `%D'" +#~ msgstr "pas d'argument par dfaut pour %D " + +#~ msgid "template with C linkage" +#~ msgstr "canevas avec liaison C" + +#~ msgid "template class without a name" +#~ msgstr "canevas de classe sans nom" + +#~ msgid "destructor `%D' declared as member template" +#~ msgstr "destructeur %D dclar en tant que membre du canevas" + +#~ msgid "`%D' does not declare a template type" +#~ msgstr " %D ne dclare pas un type de canevas" + +#~ msgid "template definition of non-template `%#D'" +#~ msgstr "dfinition de canevas d'un non canevas %#D " + +#~ msgid "expected %d levels of template parms for `%#D', got %d" +#~ msgstr "attendait %d niveaux de canevas de paramtres pour %#D , obtenu %d" + +#~ msgid "got %d template parameters for `%#D'" +#~ msgstr "a obtenu %d paramtres de canevas pour %#D " + +#~ msgid "got %d template parameters for `%#T'" +#~ msgstr "a obtenu %d paramtres de canevas pour %#T " + +#~ msgid " but %d required" +#~ msgstr " mais %d son requis" + +#~ msgid "`%T' is not a template type" +#~ msgstr " %T n'est pas un type canevas" + +#~ msgid "previous declaration `%D'" +#~ msgstr "dclaration prcdente de %D " + +#~ msgid "used %d template parameter%s instead of %d" +#~ msgstr "utilis %d canevass paramtre%s au lieu de %d" + +#~ msgid "template parameter `%#D'" +#~ msgstr "canevas de paramtre %#D " + +#~ msgid "redeclared here as `%#D'" +#~ msgstr "redclar ici comme %#D " + +#~ msgid "redefinition of default argument for `%#D'" +#~ msgstr "redfinition de l'argument par dfaut pour %#D " + +#~ msgid "%J original definition appeared here" +#~ msgstr "%J dfinition originale apparat ici" + +#~ msgid "`%E' is not a valid template argument" +#~ msgstr " %E n'est pas un argument valide pour le canevas" + +#~ msgid "it must be the address of a function with external linkage" +#~ msgstr "il doit tre l'adresse d'une fonction avec lien externe" + +#~ msgid "it must be the address of an object with external linkage" +#~ msgstr "il dot tre l'adresse d'un objet avec lien externe" + +#~ msgid "it must be a pointer-to-member of the form `&X::Y'" +#~ msgstr "il doit tre un pointeur-vers-un-membre de la forme &X::Y" + +#~ msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" +#~ msgstr "chane %E n'est pas un canevas d'argument valide parce que c'est l'adresse d'un objet avec lien statique" + +#~ msgid "address of non-extern `%E' cannot be used as template argument" +#~ msgstr "adresse du non externe %E ne peut tre utilis comme canevas d'argument" + +#~ msgid "non-constant `%E' cannot be used as template argument" +#~ msgstr "la non const %E ne peut tre utilis comme un canevas d'argument" + +#~ msgid "type '%T' cannot be used as a value for a non-type template-parameter" +#~ msgstr "type %T ne peut tre utilis comme une valeur pour un non type de paramtre de canevas" + +#~ msgid "invalid use of '%D' as a non-type template-argument" +#~ msgstr "utilisation invalide de %D pour un non type de paramtre de canevas" + +#~ msgid "invalid use of '%E' as a non-type template-argument" +#~ msgstr "utilisation invalide de %E pour un non type de paramtre de canevas" + +#~ msgid "to refer to a type member of a template parameter, use `typename %E'" +#~ msgstr "pour rfrencer un type de membre de canevas de paramtres, utiliser typename %E " + +#~ msgid "type/value mismatch at argument %d in template parameter list for `%D'" +#~ msgstr "non concordance de type/valeur pour l'argument %d dans la liste des paramtres du canevas de %D " + +#~ msgid " expected a constant of type `%T', got `%T'" +#~ msgstr " attendait une constante de type %T , a obtenu %T " + +#~ msgid " expected a class template, got `%E'" +#~ msgstr " attendait un canevas de classe, a obtenu %E " + +#~ msgid " expected a type, got `%E'" +#~ msgstr " attendait un type, a obtenu %E " + +#~ msgid " expected a type, got `%T'" +#~ msgstr " attendait un type, a obtenu %T " + +#~ msgid " expected a class template, got `%T'" +#~ msgstr " attendait un canevas de classe, a obtenu %T " + +#~ msgid " expected a template of type `%D', got `%D'" +#~ msgstr " attendait un canevas de type %D , a obtenu %D " + +#~ msgid "could not convert template argument `%E' to `%T'" +#~ msgstr "ne peut convertir l'argument du canevas %E vers %T " + +#~ msgid "wrong number of template arguments (%d, should be %d)" +#~ msgstr "nombre erron d'arguments du canevas (%d devrait tre %d)" + +#~ msgid "provided for `%D'" +#~ msgstr "fournie pour %D " + +#~ msgid "template argument %d is invalid" +#~ msgstr "canevas de l'argument %d est invalide" + +#~ msgid "non-template used as template" +#~ msgstr "non canevas utilis comme canevas" + +#~ msgid "non-template type `%T' used as a template" +#~ msgstr "type non canevas %T utilis comme un canevas" + +#~ msgid "for template declaration `%D'" +#~ msgstr "pour la dclaration du canevas %D " + +#~ msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" +#~ msgstr "instantiation de la profondeur du canevas excde le maximum de %d (utiliser -ftemplate-depth-NN pour augmenter le maximum) lors de l'instanciation de %D " + +#~ msgid "ambiguous class template instantiation for `%#T'" +#~ msgstr "instanciation ambigu de canevas de classe pour %#T " + +#~ msgid "%s %+#T" +#~ msgstr "%s %+#T" + +#~ msgid "instantiation of `%D' as type `%T'" +#~ msgstr "instanciation de %D comme type %T " + +#~ msgid "invalid parameter type `%T'" +#~ msgstr "paramtre invalide pour le type %T " + +#~ msgid "in declaration `%D'" +#~ msgstr "dans la dclaration de %D " + +#~ msgid "creating pointer to member function of non-class type `%T'" +#~ msgstr "cration d'un pointeur vers le membre d'une fonction d'un type non classe %T " + +#~ msgid "creating array with size zero" +#~ msgstr "cration d'un tableau de taille zro" + +#~ msgid "creating array with size zero (`%E')" +#~ msgstr "cration d'un tableau de taille zro ( %E )" + +#~ msgid "forming reference to void" +#~ msgstr "formation d'une rfrence en void" + +#~ msgid "forming %s to reference type `%T'" +#~ msgstr "formant %s pour rfrencer le type %T " + +#~ msgid "creating pointer to member of non-class type `%T'" +#~ msgstr "cration d'un pointeur vers le membre d'un type non classe %T " + +#~ msgid "creating pointer to member reference type `%T'" +#~ msgstr "cration d'un pointeur vers le membre de rfrence du type %T " + +#~ msgid "creating array of `%T'" +#~ msgstr "cration du tableau %T " + +#~ msgid "creating array of `%T', which is an abstract class type" +#~ msgstr "cration d'un tableau %T , lequel est un type de classe abstraite" + +#~ msgid "`%T' is not a class, struct, or union type" +#~ msgstr " %T n'est pas une classe, struct ou un type d'union" + +#~ msgid "use of `%s' in template" +#~ msgstr "utilisation de %s dans le canevas" + +#~ msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" +#~ msgstr "nom dpendant %E est analys comme un non type, mais son instantiation le rend comme un type" + +#~ msgid "say `typename %E' if a type is meant" +#~ msgstr "utiliser typename %E si un type est dsir" + +#~ msgid "`%T' uses anonymous type" +#~ msgstr " %T utilise un type anonyme" + +#~ msgid "`%T' uses local type `%T'" +#~ msgstr " %T utilise un type local %T " + +#~ msgid "`%T' is a variably modified type" +#~ msgstr " %T est type modifi de manire variable" + +#~ msgid "integral expression `%E' is not constant" +#~ msgstr "expression intgrale %E n'est pas une constante" + +#~ msgid " trying to instantiate `%D'" +#~ msgstr " tentative d'instanciation %D " + +#~ msgid "incomplete type unification" +#~ msgstr "type d'unification incomplte" + +#~ msgid "use of `%s' in template type unification" +#~ msgstr "utilisation de %s dans le canevas du type d'unification" + +#~ msgid "explicit instantiation of non-template `%#D'" +#~ msgstr "instanciation explicite d'un non canevas %#D " + +#~ msgid "no matching template for `%D' found" +#~ msgstr "non concordance de canevas pour %D repr" + +#~ msgid "explicit instantiation of `%#D'" +#~ msgstr "instanciation explicite de %#D " + +#~ msgid "duplicate explicit instantiation of `%#D'" +#~ msgstr "duplication d'instanciation explicite de %#D " + +#~ msgid "ISO C++ forbids the use of `extern' on explicit instantiations" +#~ msgstr "ISO C++ interdit l'utilisation de extern sur instanciations explicites" + +#~ msgid "storage class `%D' applied to template instantiation" +#~ msgstr "classe de stockage %D appliqu l'instanciation du canevas" + +#~ msgid "explicit instantiation of non-template type `%T'" +#~ msgstr "instanciation explicite de type non canevas %T " + +#~ msgid "explicit instantiation of `%#T' before definition of template" +#~ msgstr "instanciation explicite de %#T avant la dfinition de canevas" + +#~ msgid "ISO C++ forbids the use of `%s' on explicit instantiations" +#~ msgstr "ISO C++ interdit l'utilisation de %s sur instanciations explicites" + +#~ msgid "duplicate explicit instantiation of `%#T'" +#~ msgstr "duplication d'instanciation explicite de %#T " + +#~ msgid "explicit instantiation of `%D' but no definition available" +#~ msgstr "instanciation explicite de %D mais pas de dfinition disponible" + +#~ msgid "`%#T' is not a valid type for a template constant parameter" +#~ msgstr " %#T n'a pas un type valide pour un canevas de parametre de constante" + +#~ msgid "-frepo must be used with -c" +#~ msgstr "-frepo doit tre utilis avec -c" + +#~ msgid "mysterious repository information in %s" +#~ msgstr "dpt mystrieux d'informations dans %s" + +#~ msgid "can't create repository information file `%s'" +#~ msgstr "ne peut crer le fichier %s pour dpt d'informations" + +#~ msgid "cannot use typeid with -fno-rtti" +#~ msgstr "ne peut utiliser typeid avec -fno-rtti" + +#~ msgid "must #include before using typeid" +#~ msgstr "doit utiliser #include avant d'utiliser typeid" + +#~ msgid "cannot create type information for type `%T' because its size is variable" +#~ msgstr "ne peut crer une information pour le type %T parce que sa taille est variable" + +#~ msgid "dynamic_cast of `%#D' to `%#T' can never succeed" +#~ msgstr "dynamic_cast de %#D vers %#T ne pourra jamais russir" + +#~ msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)" +#~ msgstr "ne peut effectuer un dynamic_cast %E (du type %#T ) vers le type %#T (%s)" + +#~ msgid "`%T' is an ambiguous base of `%T'" +#~ msgstr " %T est une base ambigu de %T " + +#~ msgid "`%T' is an inaccessible base of `%T'" +#~ msgstr " %T est une base inaccessible de %T " + +#~ msgid "invalid covariant return type for `%#D'" +#~ msgstr "type retourn covariant invalide pour %#D " + +#~ msgid " overriding `%#D'" +#~ msgstr " crasant %#D " + +#~ msgid "conflicting return type specified for `%#D'" +#~ msgstr "types retourns conflictuels spcifis pour %#D " + +#~ msgid "looser throw specifier for `%#F'" +#~ msgstr "a plac un spcificateur pour %#F " + +#~ msgid " overriding `%#F'" +#~ msgstr " crasant %#F " + +#~ msgid "`%#D' cannot be declared" +#~ msgstr " %#D ne peut tre dclar" + +#~ msgid " since `%#D' declared in base class" +#~ msgstr " alors que %#D est dclar dans la classe de base" + +#~ msgid "`%#D' needs a final overrider" +#~ msgstr " %#D a besoin d'un craseur final" + +#~ msgid "type of asm operand `%E' could not be determined" +#~ msgstr "type d'oprande asm %E ne peut tre dtermin" + +#~ msgid "invalid use of member `%D' in static member function" +#~ msgstr "utilisation invalide du membre %D dans un membre statique de fonction" + +#~ msgid "from this location" +#~ msgstr " partir de cette localisation" + +#~ msgid "object missing in reference to `%D'" +#~ msgstr "objet manquant dans la rfrence %D " + +#~ msgid "arguments to destructor are not allowed" +#~ msgstr "arguments au destructeur ne sont pas permis" + +#~ msgid "`this' is unavailable for static member functions" +#~ msgstr " cela n'est pas disponible pour les membres statiques de fonctions" + +#~ msgid "invalid use of `this' in non-member function" +#~ msgstr "utilisation invalide de ceci dans un non membre de fonction" + +#~ msgid "invalid use of `this' at top level" +#~ msgstr "utilisation invalide de this hors de toute fonction" + +#~ msgid "invalid qualifying scope in pseudo-destructor name" +#~ msgstr "tendue invalide du qualificateur dans un nom de pseudo-destructeur" + +#~ msgid "`%E' is not of type `%T'" +#~ msgstr " %E n'est pas un type %T " + +#~ msgid "template type parameters must use the keyword `class' or `typename'" +#~ msgstr "canevas de type de paramtres doit utiliser le mot cl class ou typename " + +#~ msgid "invalid use of type `%T' as a default value for a template template-parameter" +#~ msgstr "utilisation invalide du type %T comme valeur par dfaut pour un canevas de paramtres de canevas" + +#~ msgid "invalid use of `%D' as a default value for a template template-parameter" +#~ msgstr "utilisation invalide de %D comme valeur par dfaut pour un canevas de paramtres de canevas" + +#~ msgid "invalid default argument for a template template parameter" +#~ msgstr "utilisation invalide d'argumenet pour un canevas de paramtres de canevas" + +#~ msgid "definition of `%#T' inside template parameter list" +#~ msgstr "dfinition de %#T l'intrieur d'un canevas de liste de paramtres" + +#~ msgid "invalid definition of qualified type `%T'" +#~ msgstr "dfinition invalide d'un type qualifi %T " + +#~ msgid "previous definition of `%#T'" +#~ msgstr "dfinition prcdente de %#T " + +#~ msgid "invalid base-class specification" +#~ msgstr "spcification de base de classe invalide" + +#~ msgid "base class `%T' has cv qualifiers" +#~ msgstr "classe de base %T a des qualificateurs cv" + +#~ msgid "multiple declarators in template declaration" +#~ msgstr "dclarateurs multiples dans la dclaration de canevas" + +#~ msgid "incomplete type `%T' used in nested name specifier" +#~ msgstr "type %T incomplet utilis dans un spcificateur de noms imbriqu" + +#~ msgid "`%D' is not a member of `%T'" +#~ msgstr " %D n'est pas un membre de %T " + +#~ msgid "`%D' is not a member of `%D'" +#~ msgstr " %D n'est pas un membre de %D " + +#~ msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" +#~ msgstr "paramtre %D du canevas du type %T ne sont pas permises dans une expression intgrale de constante parce qu'elle n'est pas intgral ou un type numration" + +#~ msgid "`%D' cannot appear in a constant-expression" +#~ msgstr " %D ne peut apparatre dans une expression de constante" + +#~ msgid "use of namespace `%D' as expression" +#~ msgstr "utilisation d'un espace de dnomes %D comme expression" + +#~ msgid "use of class template `%T' as expression" +#~ msgstr "utilisation du canevas de classe %T comme expression" + +#~ msgid "request for member `%D' is ambiguous in multiple inheritance lattice" +#~ msgstr "requte du membre %D est ambiqu dans de mutliples hritage de treillis" + +#~ msgid "use of %s from containing function" +#~ msgstr "utilisation de %s d'un fonction contenante" + +#~ msgid " `%#D' declared here" +#~ msgstr " %#D dclar ici" + +#~ msgid "type of `%E' is unknown" +#~ msgstr "type %E est inconnu" + +#~ msgid "non-lvalue in %s" +#~ msgstr "n'est pas un membre gauche dans %s" + +#~ msgid "`%V' qualifiers cannot be applied to `%T'" +#~ msgstr "qualificateur %V ne peut pas tre appliqu %T " + +#~ msgid "`%s' attribute can only be applied to Java class definitions" +#~ msgstr "attribut %s peut seulement tre appliqu aux dfinitions de classes Java" + +#~ msgid "`%s' attribute can only be applied to class definitions" +#~ msgstr "attribut %s peut seulement tre appliqu aux dfinitions de classes" + +#~ msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" +#~ msgstr " %s est obsolte; vtables g++ sont maintenant COM-compatibles par dfaut" + +#~ msgid "requested init_priority is not an integer constant" +#~ msgstr "init_priority demand n'est pas une constante entire" + +#~ msgid "can only use `%s' attribute on file-scope definitions of objects of class type" +#~ msgstr "peut seulement utiliser l'attribut %s sur la porte de fichier de dfinitions des objets de type de classe" + +#~ msgid "requested init_priority is out of range" +#~ msgstr "init_priority demand est hors limite" + +#~ msgid "requested init_priority is reserved for internal use" +#~ msgstr "init_priority demand est rserv pour un usage interne" + +#~ msgid "`%s' attribute is not supported on this platform" +#~ msgstr "attribut %s n'est pas support sur cette plate-forme" + +#~ msgid "lang_* check: failed in %s, at %s:%d" +#~ msgstr "vrification lang_* : ched dans %s, %s:%d" + +#~ msgid "%s between distinct pointer types `%T' and `%T' lacks a cast" +#~ msgstr "%s entre des types distincs de pointeurs %T et %T manque de transtypage" + +#~ msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function" +#~ msgstr "ISO C++ interdit %s entre les pointeurs de type void * et les pointeurs de fonctions" + +#~ msgid "%s between distinct pointer-to-member types `%T' and `%T' lacks a cast" +#~ msgstr "%s entre des types distincs de pointeurs vers les membres %T et %T manque de transtypage" + +#~ msgid "invalid application of `%s' to a member function" +#~ msgstr "application invalide de %s une fonction membre" + +#~ msgid "invalid application of `%s' to a bit-field" +#~ msgstr "application invalide de %s sur un champ de bits" + +#~ msgid "ISO C++ forbids applying `%s' to an expression of function type" +#~ msgstr "ISO C++ interdit l'application de %s une expression d'un type de fonction" + +#~ msgid "invalid use of non-static member function" +#~ msgstr "utilisation invalide d'un membre non statique de fonction" + +#~ msgid "deprecated conversion from string constant to `%T'" +#~ msgstr "conversion obsolte de la chane de constante vers %T " + +#~ msgid "request for member `%D' in `%E', which is of non-class type `%T'" +#~ msgstr "requte du membre %D dans %E , lequel n'est pas de type classe %T " + +#~ msgid "invalid use of nonstatic data member '%E'" +#~ msgstr "utilisation invalide d'un membre de donnes non statique %E " + +#~ msgid "invalid access to non-static data member `%D' of NULL object" +#~ msgstr "accs invalide un membre de donnes non statique %D d'un objet null" + +#~ msgid "(perhaps the `offsetof' macro was used incorrectly)" +#~ msgstr "(peut-tre que le macro offsetof a t utilis incorrectement)" + +#~ msgid "the type being destroyed is `%T', but the destructor refers to `%T'" +#~ msgstr "le type devant tre dtruit est %T , mais le destructeur rfre %T " + +#~ msgid "`%D::%D' is not a member of `%T'" +#~ msgstr " %D::%D n'est pas un membre de %T " + +#~ msgid "`%T' is not a base of `%T'" +#~ msgstr " %D n'est pas une base de %T " + +#~ msgid "'%D' has no member named '%E'" +#~ msgstr " %D n'a pas de membre nomm %E " + +#~ msgid "`%D' is not a member template function" +#~ msgstr " %D n'est pas une membre du canevas de fonction" + +#~ msgid "`%T' is not a pointer-to-object type" +#~ msgstr " %T n'est pas un type pointeur-vers-objet" + +#~ msgid "invalid use of `%s' on pointer to member" +#~ msgstr "utilisation invalide de %s sur un pointeur vers un membre" + +#~ msgid "invalid type argument" +#~ msgstr "type d'argument invalide" + +#~ msgid "ISO C++ forbids subscripting non-lvalue array" +#~ msgstr "ISO C++ interdit le souscriptage de non lvalue de tableau" + +#~ msgid "subscripting array declared `register'" +#~ msgstr "souscriptage de tableau dclar register " + +#~ msgid "object missing in use of `%E'" +#~ msgstr "objet manquant dans l'usage de %E " + +#~ msgid "ISO C++ forbids calling `::main' from within program" +#~ msgstr "ISO C++ interdit l'appel de ::main depuis l'intrieur du programme" + +#~ msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'" +#~ msgstr "doit utiliser .* ou ->* pour l'appel de la fonction pointer-to-member dans %E (...) " + +#~ msgid "`%E' cannot be used as a function" +#~ msgstr " %E ne peut tre utilis comme une fonction" + +#~ msgid "too many arguments to %s `%+#D'" +#~ msgstr "trop d'arguments pour %s %+#D " + +#~ msgid "at this point in file" +#~ msgstr " ce point dans le fichier" + +#~ msgid "parameter %P of `%D' has incomplete type `%T'" +#~ msgstr "paramtre %P de %D a un type incomplet %T " + +#~ msgid "parameter %P has incomplete type `%T'" +#~ msgstr "paramtre %P a un type incomplet %T " + +#~ msgid "too few arguments to %s `%+#D'" +#~ msgstr "pas assez d'argument pour %s %+#D " + +#~ msgid "assuming cast to type `%T' from overloaded function" +#~ msgstr "transtypage vers le type %T est assum partir de la fonction surcharge" + +#~ msgid "division by zero in `%E / 0'" +#~ msgstr "division par zro dans %E / 0 " + +#~ msgid "division by zero in `%E / 0.'" +#~ msgstr "division par zro dans %E / 0. " + +#~ msgid "division by zero in `%E %% 0'" +#~ msgstr "division par zro dans %E %% 0 " + +#~ msgid "division by zero in `%E %% 0.'" +#~ msgstr "division par zro dans %E %% 0. " + +#~ msgid "%s rotate count is negative" +#~ msgstr "compteur de rotation %s est ngatif" + +#~ msgid "%s rotate count >= width of type" +#~ msgstr "compteur de rotation %s >= largeur du type" + +#~ msgid "ISO C++ forbids comparison between pointer and integer" +#~ msgstr "ISO C++ interdit la comparaison entre un pointeur et un entier" + +#~ msgid "comparison between types `%#T' and `%#T'" +#~ msgstr "comparaison entre les types %#T et %#T " + +#~ msgid "comparison between signed and unsigned integer expressions" +#~ msgstr "comparaison entre des expressions entires signe et non signe" + +#~ msgid "invalid operands of types `%T' and `%T' to binary `%O'" +#~ msgstr "oprandes invalides pour les types %T et %T en binaire %O " + +#~ msgid "NULL used in arithmetic" +#~ msgstr "NULL utilis en arithmtique" + +#~ msgid "ISO C++ forbids using pointer of type `void *' in subtraction" +#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur de type void * dans une soustraction" + +#~ msgid "ISO C++ forbids using pointer to a function in subtraction" +#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur survers une fonction dans une soustraction" + +#~ msgid "ISO C++ forbids using pointer to a method in subtraction" +#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur survers une mthode dans une soustraction" + +#~ msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" +#~ msgstr "utilisation invalide d'un pointeur vers un type incomplet dans un pointeur arithmtique" + +#~ msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." +#~ msgstr "utilisation invalide de %E pour former pointer-to-member-function. Utiliser un identifateur qualifi" + +#~ msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" +#~ msgstr "parenthses autour de %E ne peuvent tre utilises pour former pointer-to-member-function" + +#~ msgid "taking address of temporary" +#~ msgstr "prise de l'adresse du temporaire" + +# FIXME: I18N +#~ msgid "ISO C++ forbids %sing an enum" +#~ msgstr "ISO C++ interdit de %ser un enum" + +#~ msgid "cannot %s a pointer to incomplete type `%T'" +#~ msgstr "ne peut utiliser %s comme pointeur sur un type incomplet %T " + +#~ msgid "ISO C++ forbids %sing a pointer of type `%T'" +#~ msgstr "ISO C++ interdit %s utilisation d'un pointeur de type %T " + +#~ msgid "cast to non-reference type used as lvalue" +#~ msgstr "transtypage d'un type non rfrenc utilis comme membre gauche" + +#~ msgid "invalid use of `--' on bool variable `%D'" +#~ msgstr "utilisation invalide de -- sur une variable boolenne %D " + +#~ msgid "ISO C++ forbids taking address of function `::main'" +#~ msgstr "ISO C++ interdit de prendre l'adresse d'une fonction ::main" + +#~ msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" +#~ msgstr "ISO C++ interdit de prendre l'adress d'un membre de fonction non statique non qualifi ou entre parenthses pour former un pointeur d'un membre de fonction. Utilisers &%T::%D" + +#~ msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" +#~ msgstr "ISO C++ interdit de prendre l'adresse d'une borne d'un membre de fontion pour former un membre la fonction. Disons &%T::%D" + +#~ msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" +#~ msgstr "ISO C++ interdit de prendre l'adresse du transtypage vers une expression n'etant pas membre gauche" + +#~ msgid "unary `&'" +#~ msgstr "unaire & " + +#~ msgid "attempt to take address of bit-field structure member `%D'" +#~ msgstr "tentative de prise d'adresse du membre %D d'une structure de champ de bits" + +#~ msgid "taking address of destructor" +#~ msgstr "prise de l'adresse du destructeur" + +#~ msgid "taking address of bound pointer-to-member expression" +#~ msgstr "prise de l'adresse de la borne de l'expression d'un pointeur-vers-un membre" + +#~ msgid "cannot create pointer to reference member `%D'" +#~ msgstr "ne peut dclarer un pointeur vers le membre de rfrence %D " + +#~ msgid "cannot take the address of `this', which is an rvalue expression" +#~ msgstr "ne peut prendre l'adresse de ceci , laquelle est une expression rvalue" + +#~ msgid "address requested for `%D', which is declared `register'" +#~ msgstr "adresse requise pour %D, lequel est dclar register " + +#~ msgid "%s expression list treated as compound expression" +#~ msgstr "%s liste d'expressions traite comme une expression compose" + +#~ msgid "%s from type `%T' to type `%T' casts away constness" +#~ msgstr "%S partir du %T vers le type %T provoque un transtypage sans constante" + +#~ msgid "invalid static_cast from type `%T' to type `%T'" +#~ msgstr "static_cast invalide du type %T au type %T " + +#~ msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" +#~ msgstr "reinterpret_cast invalide d'une expression rvalue de type %T vers le type %T " + +#~ msgid "reinterpret_cast from `%T' to `%T' loses precision" +#~ msgstr "reinterpret_cast de %T vers %T gnre une perte de prcision" + +#~ msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" +#~ msgstr "ISO C++ interdit le transtypage entre un pointeur de fonction et un pointeur d'objet" + +#~ msgid "invalid reinterpret_cast from type `%T' to type `%T'" +#~ msgstr "reinterpret_cast invalide partir du type %T vers le type %T " + +#~ msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" +#~ msgstr "utilisation invalide de const_cast avec le type %T , lequel n'est pas un pointeur, une rfrence, ni un type pointeur-vers-donnes-membre" + +#~ msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" +#~ msgstr "utilisation invalide de const_cast avec le type %T , lequel est un pointeur ou un rfrence un type de fonction" + +#~ msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" +#~ msgstr "const_cast invalide de la rvalue du type %T vers le type %T " + +#~ msgid "invalid const_cast from type `%T' to type `%T'" +#~ msgstr "const_cast invalide partir du type %T vers le type %T " + +#~ msgid "ISO C++ forbids casting to an array type `%T'" +#~ msgstr "ISO C++ interdit le transtypage vers un type tableau %T " + +#~ msgid "invalid cast to function type `%T'" +#~ msgstr "transtypage invalide pour un type de fonction %T " + +#~ msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" +#~ msgstr "transtypage de %T vers %T carte les qualificateurs du type cible du pointeur" + +#~ msgid "cast from `%T' to `%T' increases required alignment of target type" +#~ msgstr "transtypage de %T vers %T augmente l'alignement requis pour le type cibl" + +#~ msgid " in evaluation of `%Q(%#T, %#T)'" +#~ msgstr " lors de l'valuation de %Q(%#T, %#T) " + +#~ msgid "ISO C++ forbids cast to non-reference type used as lvalue" +#~ msgstr "ISO C++ interdit le transtypage d'un type non rfrenc utilis comme membre gauche" + +#~ msgid "incompatible types in assignment of `%T' to `%T'" +#~ msgstr "type incompatible dans l'affectation de %T vers %T " + +#~ msgid "ISO C++ forbids assignment of arrays" +#~ msgstr "ISO C++ interdit l'affectation de tableaux" + +#~ msgid " in pointer to member function conversion" +#~ msgstr " dans la conversion d'un pointeur vers un membre de fonction" + +#~ msgid " in pointer to member conversion" +#~ msgstr " dans la conversion d'un pointeur vers un membre" + +#~ msgid "pointer to member cast via virtual base `%T'" +#~ msgstr "pointeur vers un membre transtyp via la base virtuelle %T " + +#~ msgid "pointer to member conversion via virtual base `%T'" +#~ msgstr "conversion de pointeur membre l'aide de la base virtuelle %T " + +#~ msgid "invalid conversion to type `%T' from type `%T'" +#~ msgstr "conversion invalide vers un type %T partir du type %T " + +#~ msgid "passing NULL used for non-pointer %s %P of `%D'" +#~ msgstr "passage d'un NULL utilis pour un non pointeur %s %P de %D " + +#~ msgid "%s to non-pointer type `%T' from NULL" +#~ msgstr "%s vers un type non pointeur %T partir d'un NULL" + +#~ msgid "passing `%T' for %s %P of `%D'" +#~ msgstr "passage %T pour %s %P de %D " + +#~ msgid "%s to `%T' from `%T'" +#~ msgstr "%s vers %T partir de %T " + +#~ msgid "passing negative value `%E' for %s %P of `%D'" +#~ msgstr "passage de valeur ngative %E pour %s %P de %D " + +#~ msgid "%s of negative value `%E' to `%T'" +#~ msgstr "%s de valeur ngative %E vers %T " + +#~ msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" +#~ msgstr "ne peut convertir %T %T pour l'argument %P vers %D " + +#~ msgid "cannot convert `%T' to `%T' in %s" +#~ msgstr "ne peut convertir %T vers %T dans %s" + +#~ msgid "in passing argument %P of `%+D'" +#~ msgstr "dans le passage de l'argument %P de %+D " + +#~ msgid "returning reference to temporary" +#~ msgstr "retourn la rfrence vers le temporaire" + +#~ msgid "reference to non-lvalue returned" +#~ msgstr "une rfrence vers quelque chose n'tant pas un membre gauche a t retourn" + +#~ msgid "reference to local variable `%D' returned" +#~ msgstr "rfrence vers une variable locale %D retourn" + +#~ msgid "address of local variable `%D' returned" +#~ msgstr "adresse d'une variable locale %D retourne" + +#~ msgid "returning a value from a destructor" +#~ msgstr "retourn une valeur du destructeur" + +#~ msgid "cannot return from a handler of a function-try-block of a constructor" +#~ msgstr "ne peut retourner d'un handler d'une fonction try-block d'un constructeur" + +#~ msgid "returning a value from a constructor" +#~ msgstr "retourn une valeur d'un constructeur" + +#~ msgid "return-statement with no value, in function returning '%T'" +#~ msgstr "dclaration retourner sans valeur dans une fonction retournant %T " + +#~ msgid "return-statement with a value, in function returning 'void'" +#~ msgstr "dclaration a retourner avec une valeur dans une fonction retournant un void " + +#~ msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" +#~ msgstr " operator new ne doit pas retourner NULL moins qu'il ne soit dclar throw() (ou -fcheck-new est utilise)" + +#~ msgid "type `%T' is not a base type for type `%T'" +#~ msgstr "type %T n'est pas un type de base pour le type %T " + +#~ msgid "cannot declare variable `%D' to be of type `%T'" +#~ msgstr "ne peut dclarer la variable %D comme tant de type %T " + +#~ msgid "cannot declare parameter `%D' to be of type `%T'" +#~ msgstr "ne peut dclarer la paramtre %D comme tant de type %T " + +#~ msgid "cannot declare field `%D' to be of type `%T'" +#~ msgstr "ne peut dclarer la champ %D comme tant de type %T " + +#~ msgid "invalid return type for member function `%#D'" +#~ msgstr "type retourn invalide pour le membre de la fonction %#D " + +#~ msgid "invalid return type for function `%#D'" +#~ msgstr "type retourn invalide pour la fonction %#D " + +#~ msgid "cannot allocate an object of type `%T'" +#~ msgstr "ne peut allouer un objet de type %T " + +#~ msgid " because the following virtual functions are abstract:" +#~ msgstr " parce que les fonctions viruelles suivantes sont abstraites:" + +#~ msgid "\t%#D" +#~ msgstr "\t%#D" + +#~ msgid " since type `%T' has abstract virtual functions" +#~ msgstr " depuis que le type %T a des fonctions virtuelles abstraites" + +#~ msgid "constructor syntax used, but no constructor declared for type `%T'" +#~ msgstr "syntaxe de constructeur utilis mais aucun constructeur dclar pour le type %T " + +#~ msgid "cannot initialize arrays using this syntax" +#~ msgstr "ne peut initialiser les tableaux en utilisant la syntaxe" + +#~ msgid "initializing array with parameter list" +#~ msgstr "initialise le tableau avec la liste des paramtres" + +#~ msgid "initializer for scalar variable requires one element" +#~ msgstr "l'initialisation de variable scalaire requiert un lment" + +#~ msgid "braces around scalar initializer for `%T'" +#~ msgstr "accolades autour de l'initialiseur scalaire pour %T " + +#~ msgid "ignoring extra initializers for `%T'" +#~ msgstr "initialiseurs superflus pour %T ignors" + +#~ msgid "variable-sized object of type `%T' may not be initialized" +#~ msgstr "un objet de taille variable de type %T peut ne pas tre initialis" + +#~ msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" +#~ msgstr "sous-objet de type %T doit tre initialis par un constructeur, non pas par %E " + +#~ msgid "aggregate has a partly bracketed initializer" +#~ msgstr "aggrgat a un initialiseur partiellement entour d'accolades" + +#~ msgid "non-trivial labeled initializers" +#~ msgstr "initialiseur tiquet de manire non trivial" + +#~ msgid "non-empty initializer for array of empty elements" +#~ msgstr "initialiseurs non vides pour un tableau d'lments vides" + +#~ msgid "initializer list for object of class with virtual base classes" +#~ msgstr "liste d'initialiseurs pour les objets de classe avec classes de base virtuelles" + +#~ msgid "initializer list for object of class with base classes" +#~ msgstr "liste d'initialiseurs pour les objets de classe avec classes de base" + +#~ msgid "initializer list for object using virtual functions" +#~ msgstr "liste d'initialiseurs pour objet utilisant des fonctions virtuelles" + +#~ msgid "missing initializer for member `%D'" +#~ msgstr "initialiseur manquant pour le membre %D " + +#~ msgid "uninitialized const member `%D'" +#~ msgstr "membre de constante non initialis pour %D " + +#~ msgid "member `%D' with uninitialized const fields" +#~ msgstr "membre %D avec des champs de constantes non initialise" + +#~ msgid "member `%D' is uninitialized reference" +#~ msgstr "membre %D est une rfrence non initialise" + +#~ msgid "index value instead of field name in union initializer" +#~ msgstr "valeur index au lieu du nom de champ dans l'initialiseur d'union" + +#~ msgid "no field `%D' in union being initialized" +#~ msgstr "pas de champ %D dans l'aggrgat n'a t initialis" + +#~ msgid "union `%T' with no named members cannot be initialized" +#~ msgstr "aggrgat %T sans mambre nomm ne peut tre initialis" + +#~ msgid "excess elements in aggregate initializer" +#~ msgstr "lments en excs dans l'initialiseur d'aggrgat" + +#~ msgid "circular pointer delegation detected" +#~ msgstr "dlgation de pointeur circulaire dtect" + +#~ msgid "base operand of `->' has non-pointer type `%T'" +#~ msgstr "l'oprande de base de -> a un type non pointeur %T " + +#~ msgid "result of `operator->()' yields non-pointer result" +#~ msgstr "rsultat de operator->() laisse comme rsultat un non pointeur" + +#~ msgid "base operand of `->' is not a pointer" +#~ msgstr "l'oprande de base de -> n'est pas un pointeur" + +#~ msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" +#~ msgstr " %E ne peut tre utilis comme pointeur de membre, alors qu'il est de type %T " + +#~ msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" +#~ msgstr "ne peut appliquer un pointeur de membre %E %E , lequel n'est pas un type d'aggrgat %T " + +#~ msgid "member type `%T::' incompatible with object type `%T'" +#~ msgstr "type du membre %T:: incompatible avec le type d'objet %T " + +#~ msgid "call to function `%D' which throws incomplete type `%#T'" +#~ msgstr "l'appel la fonction %D laquelle carte le type incomplet %T " + +#~ msgid "call to function which throws incomplete type `%#T'" +#~ msgstr "l'appel la fonction laquelle carte le type incomplet %T " + +#~ msgid "%s is deprecated, please see the documentation for details" +#~ msgstr "%s est obsolte, SVP voir la documentation pour les dtails" + +#~ msgid "note:" +#~ msgstr "note :" + +#~ msgid "warning:" +#~ msgstr "avertissement :" + +#~ msgid "fatal:" +#~ msgstr "fatal :" + +#~ msgid "(continued):" +#~ msgstr "(suite) :" + +#~ msgid "[REPORT BUG!!] %" +#~ msgstr "[RAPPORTER L'ANOMALIE!!] %" + +#~ msgid "[REPORT BUG!!]" +#~ msgstr "[RAPPORTER L'ANOMALIE!!]" + +#~ msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling" +#~ msgstr "l'tiquette affecte ne peut s'insrer dans %A %0 - utilisation d'un voisinage plus grand" + +#~ msgid "no INTEGER type can hold a pointer on this configuration" +#~ msgstr "AUCUN type ENTIER ne peut tenir un pointeur sur cette configuration" + +#~ msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide," +#~ msgstr "configuration : REAL, INTEGER, et LOGICAL ont %d bits," + +#~ msgid "and pointers are %d bits wide, but g77 doesn't yet work" +#~ msgstr "et les pointeurs ont %d bits, mais g77 ne fonctionne pas encore" + +#~ msgid "properly unless they all are 32 bits wide" +#~ msgstr "correctement moins qu'ils aient tous 32 bits de largeur" + +#~ msgid "Please keep this in mind before you report bugs." +#~ msgstr "SVP garder cela en tte avant de rapporter les anomalies." + +#~ msgid "configuration: char * holds %d bits, but ftnlen only %d" +#~ msgstr "configuration: char * contient %d bits, mais ftnlen seulement %d" + +#~ msgid "" +#~ "configuration: char * holds %d bits, but INTEGER only %d --\n" +#~ " ASSIGN statement might fail" +#~ msgstr "" +#~ "configuration: char * contient %d bits, mais INTEGER seulement %d --\n" +#~ " dclaration ASSIGN pourrait chouer" + +#~ msgid "In statement function" +#~ msgstr "Dans la dclaration de fonction" + +#~ msgid "Outside of any program unit:\n" +#~ msgstr "En dehors de toute unit de programme:\n" + +#~ msgid "%A from %B at %0%C" +#~ msgstr "%A partir de %B %0%C" + +#~ msgid "At %0, INCLUDE file %A exists, but is not readable" +#~ msgstr " %0, fichier INCLUDE %A existe mais n'est pas lisible" + +#~ msgid "At %0, INCLUDE nesting too deep" +#~ msgstr " %0, imbrication du INCLUDE est trop profonde" + +#~ msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses" +#~ msgstr "Deux oprateurs arithmtiques dans la range %0 et %1 -- utiliser des parenthses" + +#~ msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses" +#~ msgstr "L'oprateur %0 a une prcdence plus basse que celui %1 -- utiliser des parenthses" + +#~ msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2" +#~ msgstr "Utiliser .EQV./.NEQV. au lieu de .EQ./.NE. %0 pour les oprandes LOGICAL %1 et %2" + +#~ msgid "Unsupported operand for ** at %1 -- converting to default INTEGER" +#~ msgstr "Oprande non supporte pour ** %1 -- conversion INTEGER par dfaut" + +#~ msgid "overflowed output arg list for `%s'" +#~ msgstr "dbordement de la liste d'arguments de sortie pour %s " + +#~ msgid "" +#~ "GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n" +#~ "You may redistribute copies of GNU Fortran\n" +#~ "under the terms of the GNU General Public License.\n" +#~ "For more information about these matters, see the file named COPYING\n" +#~ "or type the command `info -f g77 Copying'.\n" +#~ msgstr "" +#~ "GNU Fortran est fourni sans aucune garantie, selon les limites permises par la loi.\n" +#~ "Vous pouvez redistribuer des copies de GNU Fortran\n" +#~ "selon les termes de la GNU General Public License.\n" +#~ "Pour plus d'informations ce sujet, consulter le fichier portant le nom COPYING\n" +#~ "ou taper la commande `info -f g77 Copying'.\n" + +#~ msgid "--driver no longer supported" +#~ msgstr "--driver n'est plus support" + +#~ msgid "argument to `%s' missing" +#~ msgstr "argument pour %s est manquant" + +#~ msgid "no input files; unwilling to write output files" +#~ msgstr "aucun fichier d'entre; pas d'accord pour crire dans les fichiers de sortie" + +#~ msgid "Implicit declaration of `%A' at %0" +#~ msgstr "dclaration implicite de %A %0" + +#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0" +#~ msgstr "squence d'chappement non conforme au standard ISO C \\%A %0" + +#~ msgid "Unknown escape sequence `\\%A' at %0" +#~ msgstr "squence d'chappement inconnue \\%A %0" + +#~ msgid "Unterminated escape sequence `\\' at %0" +#~ msgstr "squence d'chappement non termine \\ at %0" + +#~ msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0" +#~ msgstr "squence d'chappement inconnue \\ suivi par le code de caractres 0x%A at %0" + +#~ msgid "\\x used at %0 with no following hex digits" +#~ msgstr "\\x utilis %0 sans tre suivi des chiffres hexdcimaux" + +#~ msgid "Hex escape at %0 out of range" +#~ msgstr "chappement hexadcimal %0 hors limite" + +#~ msgid "Escape sequence at %0 out of range for character" +#~ msgstr "squence d'chappement %0 hors limite pour le type caractre" + +#~ msgid "hex escape out of range" +#~ msgstr "chappement hexadcimal hors limite" + +#~ msgid "non-ANSI-standard escape sequence, `\\%c'" +#~ msgstr "squence d'chappement n'est pas ANSI standard: \\%c'" + +#~ msgid "non-ISO escape sequence `\\%c'" +#~ msgstr "squence d'chappement non ISO \\%c'" + +#~ msgid "unknown escape sequence `\\%c'" +#~ msgstr "squence d'chappement inconnue: \\%c'" + +#~ msgid "unknown escape sequence: `\\' followed by char code 0x%x" +#~ msgstr "squence d'chappement inconnue: \\ suivi par le code de caractres 0x%x" + +#~ msgid "badly formed directive -- no closing quote" +#~ msgstr "directive mal compose -- pas de guillement ou d'apostrophe de fermeture" + +#~ msgid "#-lines for entering and leaving files don't match" +#~ msgstr "#-lines pour entrer et quitter les fichiers ne concordent pas" + +#~ msgid "bad directive -- missing close-quote" +#~ msgstr "directive errone -- manque un apostrophe ou un guillemet de fermeture" + +#~ msgid "invalid #ident" +#~ msgstr "#ident invalide" + +#~ msgid "undefined or invalid # directive" +#~ msgstr "directive # non dfinie ou invalide" + +#~ msgid "invalid #line" +#~ msgstr "#ligne invalide" + +#~ msgid "use `#line ...' instead of `# ...' in first line" +#~ msgstr "utiliser #ligne ... au lieu de # ... dans la premire ligne" + +#~ msgid "invalid #-line" +#~ msgstr "#-line invalide" + +#~ msgid "Null character at %0 -- line ignored" +#~ msgstr "caractre null %0 -- ligne ignore" + +#~ msgid "INCLUDE at %0 not the only statement on the source line" +#~ msgstr "INCLUDE %0 n'est pas la seule dclaration sur la ligne source" + +#~ msgid "ASSIGNed FORMAT specifier is too small" +#~ msgstr "spcificateur dans ASSIGN FORMAT est trop petit" + +#~ msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry" +#~ msgstr "SLECTION du CASE sur un type CHARACTER ( %0) n'est pas support -- dsol" + +#~ msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)" +#~ msgstr "SELECT ( %0) possde des cases doubles -- vrifier le dbordement d'entier des CASES" + +#~ msgid "ASSIGN to variable that is too small" +#~ msgstr "ASSIGN la variable est trop petit" + +#~ msgid "ASSIGNed GOTO target variable is too small" +#~ msgstr "variable cible par ASSIGN GOTO est trop petite" + +#~ msgid "Local adjustable symbol `%A' at %0" +#~ msgstr "Symbole local ajustable %A %0" + +#~ msgid "data initializer on host with different endianness" +#~ msgstr "initialiseur de donnes sur l'hte a un alignement des octets diffrent (endian)" + +#~ msgid "-fvxt-not-f90 no longer supported -- try -fvxt" +#~ msgstr "-fvxt-not-f90 n'est plus support -- essayer -fvxt" + +#~ msgid "-ff90-not-vxt no longer supported -- try -fno-vxt -ff90" +#~ msgstr "-ff90-not-vxt n'est plus support -- essayer -fno-vxt -ff90" + +#~ msgid "-fdebug-kludge is disabled, use normal debugging flags" +#~ msgstr "-fdebug-kludge est dsactiv, utiliser le fanion normal de mise au point" + +#~ msgid "Missing first operand for binary operator at %0" +#~ msgstr "premire oprande manquante pour l'oprateur biunaire %0" + +#~ msgid "Zero-length character constant at %0" +#~ msgstr "constante caractre de longueur zro %0" + +#~ msgid "Invalid token at %0 in expression or subexpression at %1" +#~ msgstr "lment lexical invalide %0 dans l'expression ou la sous-expression %1" + +#~ msgid "Missing operand for operator at %1 at end of expression at %0" +#~ msgstr "Oprande manquante pour l'oprateur %1 la fin de l'expresssion %0" + +#~ msgid "Label %A already defined at %1 when redefined at %0" +#~ msgstr "tiquette %A dj dfinie %1 et redfinie %0" + +#~ msgid "Unrecognized character at %0 [info -f g77 M LEX]" +#~ msgstr "Caractre non reconnue %0 [info -f g77 M LEX]" + +#~ msgid "Label definition %A at %0 on empty statement (as of %1)" +#~ msgstr "Dfinition d'tiquette %A %0 dans une dclaration vide (comme %1)" + +#~ msgid "Invalid first character at %0 [info -f g77 M LEX]" +#~ msgstr "Premier caractre invalide %0 [info -f g77 M LEX]" + +#~ msgid "Line too long as of %0 [info -f g77 M LEX]" +#~ msgstr "Ligne trop longue tel que %0 [info -f g77 M LEX]" + +#~ msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]" +#~ msgstr "Caractre non-numrique %0 dans le champ d'tiquette [info -f g77 M LEX]" + +#~ msgid "Label number at %0 not in range 1-99999" +#~ msgstr "Numro d'tiquette %0 n'est pas entre les bornes 1-99999" + +#~ msgid "At %0, '!' and '/*' are not valid comment delimiters" +#~ msgstr " %0, ! et /* ne sont pas des dlimiteurs de commentaire valides" + +#~ msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]" +#~ msgstr "Indicateur de continuation %0 doit apparatre en colonne 6 [info -f g77 M LEX]" + +#~ msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]" +#~ msgstr "tiquette invalide %0 avec l'indicateur de continuation de ligne %1 [info -f g77 M LEX]" + +#~ msgid "Character constant at %0 has no closing apostrophe at %1" +#~ msgstr "constante caractre %0 n'a pas d'apostrophe de fermeture %1" + +#~ msgid "Hollerith constant at %0 specified %A more characters than are present as of %1" +#~ msgstr "Constante Hollerith %0 spcifie %A a plus de caractres que ceux prsents dans %1" + +#~ msgid "Missing close parenthese at %0 needed to match open parenthese at %1" +#~ msgstr "Paranethse fermante amnquante %0 ncessaire pour pairer la parenthse ouverte %1" + +#~ msgid "Integer at %0 too large" +#~ msgstr "entier %0 est trop grand" + +#~ msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'" +#~ msgstr "Priode %0 n'est pas suivie de chiffres en nombre flottant ou de NOT., TRUE., ou FALSE. " + +#~ msgid "Missing close-period between `.%A' at %0 and %1" +#~ msgstr "Fermeture de priode manquante entre .%A %0 et %1" + +#~ msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field" +#~ msgstr "Exposant invalide %0 pour la constante relle %1; %A n'est pas un chiffre dans le champ de l'exposant" + +#~ msgid "Missing value at %1 for real-number exponent at %0" +#~ msgstr "Valeur manquante %1 pour l'exposant d'un nombre real %0" + +#~ msgid "Expected binary operator between expressions at %0 and at %1" +#~ msgstr "Oprateur binaire attendu entre les expressions %0 et %1" + +#~ msgid "Semicolon at %0 is an invalid token" +#~ msgstr "Point-virgule ( ; ) en %0 est un lment lexical invalide" + +#~ msgid "Extraneous comma in FORMAT statement at %0" +#~ msgstr "Virgule superflue dans la dclaration de FORMAT %0" + +#~ msgid "Missing comma in FORMAT statement at %0" +#~ msgstr "Virgule manquante dans la dclaration de FORMAT %0" + +#~ msgid "Spurious sign in FORMAT statement at %0" +#~ msgstr "faux signe dans la dclaration de FORMAT %0" + +#~ msgid "Spurious number in FORMAT statement at %0" +#~ msgstr "faux nombre dans la dclaration de FORMAT %0" + +#~ msgid "Spurious text trailing number in FORMAT statement at %0" +#~ msgstr "faux texte terminant le nombre dans la dclaration de FORMAT %0" + +#~ msgid "Unrecognized FORMAT specifier at %0" +#~ msgstr "spcificateur de FORMAT non reconnu %0" + +#~ msgid "Missing close-parenthese(s) in FORMAT statement at %0" +#~ msgstr "Parenthse(s) fermante(s) manquante(s) dans la dclaration de FORMAT %0" + +#~ msgid "Missing number following period in FORMAT statement at %0" +#~ msgstr "Nombre manquant suivant la priode dans la dclaration de FORMAT %0" + +#~ msgid "Missing number following `E' in FORMAT statement at %0" +#~ msgstr "Nombre manquant suivant E dans la dclaration de FORMAT %0" + +#~ msgid "Spurious trailing comma preceding terminator at %0" +#~ msgstr "fausse virgule qui trane dans la prcdente terminaison %0" + +#~ msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)" +#~ msgstr " %0, spcifier l'OPRATEUR au lieu de l'AFFECTATION pour le dclaration d'INTERFACE ne spcifiant pas d'oprateur d'affectation (=)" + +#~ msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)" +#~ msgstr " %0, spcifier une AFFECTATION au lieu d'un OPRATEUR dans la dclaration d'INTERFACE spcifiant un oprateur d'affectation (=)" + +#~ msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects" +#~ msgstr "Ne peut spcifier une expression d'initialisation = %0 moins que :: n'apparaissae avant la liste d'objets" + +#~ msgid "Reference to label at %1 inconsistent with its definition at %0" +#~ msgstr "La rfrence l'tiquette %1 est inconsistente avec sa dfinition %0" + +#~ msgid "Reference to label at %1 inconsistent with earlier reference at %0" +#~ msgstr "La rfrence l'tiquette %1 est inconsistente avec sa prcdente rfrence %0" + +#~ msgid "DO-statement reference to label at %1 follows its definition at %0" +#~ msgstr "Dclaration DO utilisant une rfrence l'tiquette %1 suis sa dfinition %0" + +#~ msgid "Reference to label at %1 is outside block containing definition at %0" +#~ msgstr "Rfrence l'tiquette %1 est en dehors du bloc contenant la dfinition %0" + +#~ msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1" +#~ msgstr "Dclaration DO utilisant des rfrences l'tiquette %0 et %2 spars par un bloc non complet dbutant %1" + +#~ msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1" +#~ msgstr "Dclaration DO utilisant une rfrence l'tiquette %0 et la dfinition d'tiquette %2 spars par un bloc non complet dbutant %1" + +#~ msgid "Label definition at %0 invalid on this kind of statement" +#~ msgstr "dfinition d'tiquette %0 invalide pour ce genre de dclaration" + +#~ msgid "Statement at %0 invalid in this context" +#~ msgstr "dclaration %0 invalide dans ce contexte" + +#~ msgid "Statement at %0 invalid in context established by statement at %1" +#~ msgstr "dclaration %0 invalide dans le contexte tabli par la dclaration %1" + +#~ msgid "Statement at %0 must specify construct name specified at %1" +#~ msgstr "Dclaration %0 doit spcifier un nom de construit spcifi %1" + +#~ msgid "Construct name at %0 superfluous, no construct name specified at %1" +#~ msgstr "Nom de construit %0 superflue, aucun nom de construit spcifi %1" + +#~ msgid "Construct name at %0 not the same as construct name at %1" +#~ msgstr "Nom de construit %0 n'est pas le mme que celui %1" + +#~ msgid "Construct name at %0 does not match construct name for any containing DO constructs" +#~ msgstr "Nom de construit %0 ne concorde pas avec un nom de construit contenant des construits DO" + +#~ msgid "Label definition missing at %0 for DO construct specifying label at %1" +#~ msgstr "Dfinition d'tiquette manquante %0 pour le construit DO spcifiant l'tiquette %1" + +#~ msgid "Statement at %0 follows ELSE block for IF construct at %1" +#~ msgstr "Dclaration %0 suivant un bloc ELSE pour le construit IF %1" + +#~ msgid "No label definition for FORMAT statement at %0" +#~ msgstr "pas de dfinition d'tiquette pour la dclaration de FORMAT %0" + +#~ msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1" +#~ msgstr "Seconde occurente de ELSE WHERE %0 l'intrieur du WHERE %1" + +#~ msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1" +#~ msgstr "dclaration END %0 manquante mot cl %A requis pour une procdure interne ou un module li %1" + +#~ msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment" +#~ msgstr "dclaration de MODULE PROCEDURE %0 non permise parce que l'INTERFACE %1 ne spcifie pas de nom gnrique, d'oprateur ou d'affectation" + +#~ msgid "BLOCK DATA name at %0 superfluous, no name specified at %1" +#~ msgstr "nom du BLOCK DATA %0 superflue, aucun nom spcifi %1" + +#~ msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1" +#~ msgstr "nom de programme %0 superflue, aucune dclaration PROGRAM spcifi %1" + +#~ msgid "Program unit name at %0 not the same as name at %1" +#~ msgstr "nom de l'unit programme %0 n'est pas le mme que le nom %1" + +#~ msgid "Type name at %0 not the same as name at %1" +#~ msgstr "Nom de type %0 n'est pas le mme que le nom %1" + +#~ msgid "End of source file before end of block started at %0" +#~ msgstr "Fin du fichier source avant la fin du bloc dbutant %0" + +#~ msgid "Undefined label, first referenced at %0" +#~ msgstr "tiquette non dfinie, premire rfrence %0" + +#~ msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0" +#~ msgstr "dclaration SAVE ou attribut %1 ne peut tre spcifie en mme temps avec la dclaration SAVE ou l'attribut %0" + +#~ msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0" +#~ msgstr "dclaration PUBLIC ou PRIVATE %1 ne peut tre spcifi en mme temps avec la dclaration PUBLIC ou PRIVATE %0" + +#~ msgid "RETURN statement at %0 invalid within a main program unit" +#~ msgstr "dclaration RETURN %0 invalide l'intrieur de l'unit du programme principal" + +#~ msgid "Alternate return specifier at %0 invalid within a main program unit" +#~ msgstr "spcificateur alternatif de retour %0 invalide l'intrieur de l'unit du programme principal" + +#~ msgid "Alternate return specifier at %0 invalid within a function" +#~ msgstr "spcificateur alternatif de retour %0 invalide l'intrieur de la fonction" + +#~ msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module" +#~ msgstr "spcificateur d'accs ou dclaration PRIVATE %0 invalide pour une dfinition de type driv l'intrieur d'autre chose que la portion de spcification d'un module" + +#~ msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements" +#~ msgstr "Spcificateur d'accs %0 doit suivre immdaitement la dclaration de type driv %1 sans intervention de dclarations" + +#~ msgid "No components specified as of %0 for derived-type definition beginning at %1" +#~ msgstr "Aucun composant spcifi tel que %0 pour une dfinition de type driv dbutant %1" + +#~ msgid "No components specified as of %0 for structure definition beginning at %1" +#~ msgstr "Aucun composant spcifi tel que %0 pour la dfinition de structure dbutant %1" + +#~ msgid "Missing structure name for outer structure definition at %0" +#~ msgstr "Nom de structure manquant pour la dfinition de structure externe %0" + +#~ msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead" +#~ msgstr "Noms de champs %0 pour la dfinition externe de structure -- les spcifier dans une dclaration subsquente de dclaration RECORD la place" + +#~ msgid "Missing field name(s) for structure definition at %0 within structure definition at %1" +#~ msgstr "noms de champs manquant pour la dfinition de strcutreu %0 l'intrieur de la dfinition de structure %1" + +#~ msgid "No components specified as of %0 for map beginning at %1" +#~ msgstr "Aucun composant spcifi tel que %0 pour la map dbutant %1" + +#~ msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required" +#~ msgstr "Aucune ou une map spcifi tel que %0 pour l'union dbutant %1 -- au moins deux sont requises" + +#~ msgid "Missing %A specifier in statement at %0" +#~ msgstr "spcificateur %A manquant dans la dclaration %0" + +#~ msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O" +#~ msgstr "Items dans la liste E/S dbutant %0 invalide pour un liste nomm d'E/S diriges" + +#~ msgid "Conflicting I/O control specifications at %0 and %1" +#~ msgstr "spcifications conflictuelles de contrle d'E/S %0 et %1" + +#~ msgid "No UNIT= specifier in I/O control list at %0" +#~ msgstr "aucun spcificateur UNIT=1 dans la liste de contrle d'E/S %0" + +#~ msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list" +#~ msgstr "spcification %0 requiert la spcification ADVANCE= NO dans la mme liste de contrel d'E/S" + +#~ msgid "Specification at %0 requires explicit FMT= specification in same I/O control list" +#~ msgstr "spcification %0 requiert la spcification explicite FMT= dans la mme liste de contrel d'E/S" + +#~ msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1" +#~ msgstr "Seconde occurence du CASE DEFAULT %0 l'intreur de SELECT CASE %1" + +#~ msgid "Duplicate or overlapping case values/ranges at %0 and %1" +#~ msgstr "duplication ou chevauchement des valeurs/plages de case %0 et %1" + +#~ msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1" +#~ msgstr "Dsaccord du paramtre du Type et/ou type de sorte entre la valeur du CASE ou la valeur l'intrieur de l'tendue %0 et le SELECT CASE %1" + +#~ msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement" +#~ msgstr "spcification d'tendue %0 invalide pour la dclaration du CASE l'intrieur de la dclaration du type logique du SELECT CASE" + +#~ msgid "Fortran 90 feature at %0 unsupported" +#~ msgstr "option FORTRAN 90 %0 non supporte" + +#~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]" +#~ msgstr "dclaration invalide ou rfrence au symboe %A %0 [initialement vu %1]" + +#~ msgid "Null element at %0 for array reference at %1" +#~ msgstr "lment nul %0 pour la rfrence au tableau %1" + +#~ msgid "Too few elements (%A missing) as of %0 for array reference at %1" +#~ msgstr "Trop peu d'lments (%A manquant) tel que %0 pour la rfrence au tableau %1" + +#~ msgid "Too many elements as of %0 for array reference at %1" +#~ msgstr "Trop peu d'lments tel que %0 pour la rfrence au tableau %1" + +#~ msgid "Missing colon as of %0 in substring reference for %1" +#~ msgstr ": manquant dans %0 dans la sous-chane de rfrence pour %1" + +#~ msgid "Invalid use at %0 of substring operator on %1" +#~ msgstr "utilisation invalide %0 de l'oprateur de sous-chane sur %1" + +#~ msgid "Substring begin/end point at %0 out of defined range" +#~ msgstr "point begin/end de la sous-chane %0 en dehors de la plage dfinie" + +#~ msgid "Array element value at %0 out of defined range" +#~ msgstr "Valeur de l'lment du tableau %0 en dehors de la plage dfinie" + +#~ msgid "Expression at %0 has incorrect data type or rank for its context" +#~ msgstr "expression %0 a un type de donnes ou un rang incorrect pour son contexte" + +#~ msgid "Division by 0 (zero) at %0 (IEEE not yet supported)" +#~ msgstr "division par 0 (zro) %0 (IEEE pas encore support)" + +#~ msgid "%A step count known to be 0 (zero) at %0" +#~ msgstr "valeur du pas %A connu pour tre 0 (zro) %0" + +#~ msgid "%A end value plus step count known to overflow at %0" +#~ msgstr "valeur finale %A plus la valeur du pas connus pour dborder %0" + +#~ msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0" +#~ msgstr "valeur de dpart, fin et du pas %A connu pour rsulter dans un comportement dpendant de l'implantation en raison d'un dbordement dans les calculs intermdiaires %0" + +#~ msgid "%A begin, end, and step-count values known to result in no iterations at %0" +#~ msgstr "valeur de dpart, fin et du pas %A connus pour ne faire aucune itration %0" + +#~ msgid "Type disagreement between expressions at %0 and %1" +#~ msgstr "dsaccord de type entre les expressions %0 et %1" + +#~ msgid "No specification for implied-DO iterator `%A' at %0" +#~ msgstr "aucune spcification pour l'itration DO-implicite %A %0" + +#~ msgid "Gratuitous parentheses surround implied-DO construct at %0" +#~ msgstr "parenthses gratuites entourant le construit DO implicite %0" + +#~ msgid "Zero-size specification invalid at %0" +#~ msgstr "spcification de taille zro invalide %0" + +#~ msgid "Zero-size array at %0" +#~ msgstr "tableau de taille zro %0" + +#~ msgid "Target machine does not support complex entity of kind specified at %0" +#~ msgstr "machine cible ne supporte par l'entit complexe de la sorte spcifi %0" + +#~ msgid "Target machine does not support DOUBLE COMPLEX, specified at %0" +#~ msgstr "machine cible ne supporte pas DOUBLE COMPLEX spcifi %0" + +#~ msgid "Attempt to raise constant zero to a power at %0" +#~ msgstr "Tentative d'augmentation d'une constante de valeur zro la puissance %0" + +#~ msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C" +#~ msgstr "rfrence un intrinsque gnrique %A %0 pourrait tre de la forme %B ou %C" + +#~ msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]" +#~ msgstr "utilisation ambiqu de l'intrinsque %A %0 [info -f g77 M CMPAMBIG]" + +#~ msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]" +#~ msgstr "intrinsque %A rfrenc %Bly %0, %Cly %1 [info -f g77 M EXPIMP]" + +#~ msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]" +#~ msgstr "Mme nom %A utilis pour %B %0 et %C %1 [info -f g77 M INTGLOB]" + +#~ msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0" +#~ msgstr "dclaration de type explicite pour l'intrinsque %A en dsaccord avec l'invocation %0" + +#~ msgid "Unable to open INCLUDE file `%A' at %0" +#~ msgstr "incapable d'ouvrir le fichier INCLUDE %A %0" + +#~ msgid "Null argument at %0 for statement function reference at %1" +#~ msgstr "argument nul %0 pour la dclaration de la rfrence de fonction %1" + +#~ msgid "Null argument at %0 for procedure invocation at %1" +#~ msgstr "arguement nul %0 pour l'invocation de la procdure %1" + +#~ msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1" +#~ msgstr "trop peu d'arguments %A (dbutant avec l'argument factice %B ) tel que %0 pour la dclaration de la rfrence de fonction %1" + +#~ msgid "%A too many arguments as of %0 for statement function reference at %1" +#~ msgstr "trop peu d'arguments %A tel que %0 pour la dclaration de la rfrence de fonction %1" + +#~ msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0" +#~ msgstr "tableau fourni %1 pour l'argument factice %A dans la dclaration de rfrence de fonction %0" + +#~ msgid "Unsupported FORMAT specifier at %0" +#~ msgstr "spcificateur de FORMAT non support %0" + +#~ msgid "Variable-expression FORMAT specifier at %0 -- unsupported" +#~ msgstr "expression variable dans le spcificateur de FORMAT %0 -- non supporte" + +#~ msgid "Unsupported VXT statement at %0" +#~ msgstr "dclaration VXT non support %0" + +#~ msgid "Attempt to specify second initial value for `%A' at %0" +#~ msgstr "Tentative de spcifier une seconde valeur initial pour %A %0" + +#~ msgid "Too few initial values in list of initializers for `%A' at %0" +#~ msgstr "Trop peu de valeurs initiales dans la liste des initialisations pour %A %0" + +#~ msgid "Too many initial values in list of initializers starting at %0" +#~ msgstr "Trop de valeurs initiales dans la liste des initialisations dbutant %0" + +#~ msgid "Array or substring specification for `%A' out of range in statement at %0" +#~ msgstr "Tableau ou sous-chane de spcification pour %A hors limite dans la dclaration %0" + +#~ msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0" +#~ msgstr "souscript de tableau #%B hors limite pour l'initialisation de %A dans la dclaration %0" + +#~ msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0" +#~ msgstr "le pas implicite de la boucle DO a un compte de 0 (zro) pour la variable itrative %A dans la dclaration %0 " + +#~ msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0" +#~ msgstr "le compte implicite de la boucle DO est 0 (zro) pour la variable itrative %A dans la dclaration %0 " + +#~ msgid "Not an integer constant expression in implied do-loop in statement at %0" +#~ msgstr "N'est pas un entier dans l'expression de la constante dans la dclaration implicite de la boucle DO %0" + +#~ msgid "Attempt to specify second initial value for element of `%A' at %0" +#~ msgstr "Tentative de spcifier une seconde valeur initiale pour l'lment %A %0" + +#~ msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0" +#~ msgstr "Tentative de dfinit une zone commmue par EQUIVALENCE %A et %B %0" + +#~ msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions" +#~ msgstr "ne peut insrer %A tel que demand par EQUIVALENCE en raison des restrictions d'alignement" + +#~ msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'" +#~ msgstr "Dsaccord des conditions requises par EQUIVALENCE pour l'emplacement de %A aux deux dcalages d'octets %C et %D partir de %B" + +#~ msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement" +#~ msgstr "spcification de tableau ou de sous-chane pour %A est hors limite dans la dclaration EQUIVALENCE" + +#~ msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement" +#~ msgstr "Sous-chane de non caractres %A dans la dclaration EQUIVALENCE" + +#~ msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement" +#~ msgstr "rfrence de tableau vers une variable scalaire %A dans une dclaraion EQUIVALENCE" + +#~ msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'" +#~ msgstr "souscript de tableau #%B hors limite pour la dclaration EQUIVALENCE de %A " + +#~ msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'" +#~ msgstr "Tentative d'tendre la zone COMMON au del de son point de dpart via EQUIVALENCE de %A " + +#~ msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement" +#~ msgstr "Trop peu d'lmens dans la rfrence au tableau %A dans la dclaration d'EQUIVALENCE" + +#~ msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement" +#~ msgstr "Trop d'lmens dans la rfrence au tableau %A dans la dclaration d'EQUIVALENCE" + +#~ msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'" +#~ msgstr "Mlange de type caractre et de non caractre via le COMMON/EQUIVALENCE -- par exemple %A et %B " + +#~ msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram" +#~ msgstr "valeur retourne %A pour FUNCTION %0 n'est pas rfrenc dans le sous-programme" + +#~ msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1" +#~ msgstr "bloc commun %A est sauvegard, explicitement ou implicitement, %0 mais non pas %1" + +#~ msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1" +#~ msgstr "bloc commun %A est %B %D en longueur %0 mais %C %E %1" + +#~ msgid "Blank common initialized at %0" +#~ msgstr "commun vide initialis %0" + +#~ msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC" +#~ msgstr "intrinsque %A est pass comme argument actuel %0 mais non pas explicitment dclar INTRINSIC" + +#~ msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL" +#~ msgstr "procdure externe %A est pass comme argument actuel %0 mais non pas dclar explicitement dclar EXTERNAL" + +#~ msgid "Character `%A' (for example) is upper-case in symbol name at %0" +#~ msgstr "caractre %A (par exemple) est en majuscule dans le nom de symbole %0" + +#~ msgid "Character `%A' (for example) is lower-case in symbol name at %0" +#~ msgstr "caractre %A (par exemple) est en minuscule dans le nom de symbole %0" + +#~ msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0" +#~ msgstr "caractre %A n'est pas suivi par un caractre en minuscule dans le nom de symbole %0" + +#~ msgid "Initial character `%A' is lower-case in symbol name at %0" +#~ msgstr "caractre initial %A est en minuscule dans le nom de symbole %0" + +#~ msgid "NAMELIST not adequately supported by run-time library for source files with case preserved" +#~ msgstr "nom de liste n'est pas adquatement support par la bibliothque d'excution pour les fichiers source avec une casse prserve" + +#~ msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0" +#~ msgstr "construit %% imbriqu (%%VAL, %%REF ou %%DESCR) %0" + +#~ msgid "Statement at %0 invalid in BLOCK DATA program unit at %1" +#~ msgstr "Dclaration %0 invalide dans le bloc de donne de l'unit programme %1" + +#~ msgid "Truncating characters on right side of character constant at %0" +#~ msgstr "troncation de caractres du ct droit de la constante caractres %0" + +#~ msgid "Truncating characters on right side of hollerith constant at %0" +#~ msgstr "troncation de caractres du ct droit de la constante Hollerith %0" + +#~ msgid "Truncating non-zero data on left side of numeric constant at %0" +#~ msgstr "troncation de donnes non zro du ct gauche de la constante numrique %0" + +#~ msgid "Truncating non-zero data on left side of typeless constant at %0" +#~ msgstr "troncation de donnes non zro du ct gauche de la constante sans type %0" + +#~ msgid "Typeless constant at %0 too large" +#~ msgstr "constante sans type %0 trop grande" + +#~ msgid "First-column ampersand continuation at %0" +#~ msgstr "& en premire colonne de continuation %0" + +#~ msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]" +#~ msgstr "nom global %A dfini %0 est dj dfini %1 [info -f g77 M GLOBALS]" + +#~ msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]" +#~ msgstr "nom global %A est %B %0 mais est %C %1 [info -f g77 M GLOBALS]" + +#~ msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]" +#~ msgstr "nom global %A %0 a un type diffrent %1 [info -f g77 M GLOBALS]" + +#~ msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]" +#~ msgstr "trop %B d'arguments pass %A %0 par rapport la dfinition %1 [info -f g77 M GLOBALS]" + +#~ msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]" +#~ msgstr "trop %B d'arguments pour %A %0 par rapport l'invocation %1 [info -f g77 M GLOBALS]" + +#~ msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]" +#~ msgstr "Argument #%B de %A est %C %0 mais est %D %1 [info -f g77 M GLOBALS]" + +#~ msgid "Array `%A' at %0 is too large to handle" +#~ msgstr "tableau %A %0 est trop grand pour tre trait" + +#~ msgid "Statement function `%A' defined at %0 is not used" +#~ msgstr "dclaration de fonction %A dfinie %0 n'est pas utilise" + +#~ msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]" +#~ msgstr "Intrinsque %A invoqu %0 est connu pour ne pas tre conforme l'An 2000 [info -f g77 M Y2KBAD]" + +#~ msgid "Internal compiler error -- cannot perform operation" +#~ msgstr "erreur interne du compilateur -- ne peut excuter l'opration" + +#~ msgid "In unknown kind" +#~ msgstr "dans une sorte inconnue" + +#~ msgid "In entity" +#~ msgstr "Dans l'entit" + +#~ msgid "In function" +#~ msgstr "Dans la fonction" + +#~ msgid "In subroutine" +#~ msgstr "Dans la sous-routine" + +#~ msgid "In program" +#~ msgstr "Dans le programme" + +#~ msgid "In block-data unit" +#~ msgstr "Dans l'unit du bloc de donnes" + +#~ msgid "In common block" +#~ msgstr "Dans le bloc commun" + +#~ msgid "In construct" +#~ msgstr "Dans le construit" + +#~ msgid "In namelist" +#~ msgstr "Dans la liste de noms" + +#~ msgid "In anything" +#~ msgstr "Dans n'importe quoi" + +#~ msgid "internal error in check-init: tree code not implemented: %s" +#~ msgstr "erreur interne dans check-init: arbre de code n'est pas implant: %s" + +#~ msgid "%Jfinal field '%D' may not have been initialized" +#~ msgstr "%Jchamp final %D peut ne pas avoir t initialis" + +#~ msgid "internal error - too many interface type" +#~ msgstr "erreur interne - trop de type d'interface" + +#~ msgid "bad method signature" +#~ msgstr "mthode de signature errone" + +#~ msgid "misplaced ConstantValue attribute (not in any field)" +#~ msgstr "attribut ConstantValue mal positionn (n'est dans aucun champ)" + +#~ msgid "duplicate ConstantValue attribute for field '%s'" +#~ msgstr "duplication de l'attribut ConstanValue pour le champ %s " + +#~ msgid "ConstantValue attribute of field '%s' has wrong type" +#~ msgstr "attribut ConstanValue du champ %s a un type erron" + +#~ msgid "field '%s' not found in class" +#~ msgstr "champ %s n'a pas t repr dans la classe" + +#~ msgid "%Jabstract method in non-abstract class" +#~ msgstr "%Jmthode abstraite dans une classe non abstraite" + +#~ msgid "%Jnon-static method '%D' overrides static method" +#~ msgstr "%Jmthode non statique %D crase la mthode statique" + +#~ msgid "%J'%D' used prior to declaration" +#~ msgstr "%J %D utilis prcdemment avant sa dclaration" + +#~ msgid "declaration of `%s' shadows a parameter" +#~ msgstr "la dclaration de %s masque un paramtre" + +#~ msgid "declaration of `%s' shadows a symbol from the parameter list" +#~ msgstr "la dclaration de %s masque un symbole de la liste des paramtres" + +#~ msgid "%Jlabel '%D' used but not defined" +#~ msgstr "%Jtiquette %D utilise mais non dfinie" + +#~ msgid "%Jlabel '%D' defined but not used" +#~ msgstr "%Jtiquette %D dfinie mais non utilise" + +#~ msgid "%JIn %D: overlapped variable and exception ranges at %d" +#~ msgstr "%JDans %D: chevauchement de variable et plage d'exception %d" + +#~ msgid "bad type in parameter debug info" +#~ msgstr "type erron dans les paramtres d'informations de mise au point" + +#~ msgid "%Jbad PC range for debug info for local '%D'" +#~ msgstr "%Jplage PC erron pour les infos de dbug pour la var. locale %D " + +#~ msgid "stack underflow - dup* operation" +#~ msgstr "sous dbordement de la pile - opration dup*" + +#~ msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'" +#~ msgstr "rfrence %s est ambigue: apparat dans l'interface %s et l'interface %s " + +#~ msgid "field `%s' not found" +#~ msgstr "champ %s n'a pas t trouv" + +#~ msgid "ret instruction not implemented" +#~ msgstr "instruction ret n'est pas implante" + +#~ msgid "method '%s' not found in class" +#~ msgstr "mthode %s n'a pas t repr dans la classe" + +#~ msgid "failed to find class '%s'" +#~ msgstr "chec de reprage de la classe %s " + +#~ msgid "class '%s' has no method named '%s' matching signature '%s'" +#~ msgstr "classe %s n'a pas de mthode nomme %s concordant avec la signature %s " + +#~ msgid "invokestatic on non static method" +#~ msgstr "invocation statique sur un mthode non statique" + +#~ msgid "invokestatic on abstract method" +#~ msgstr "invocation statique sur un mthode abstraite" + +#~ msgid "invoke[non-static] on static method" +#~ msgstr "invocation non statique sur un mthode statique" + +#~ msgid "missing field '%s' in '%s'" +#~ msgstr "champ %s manquant dans %s " + +#~ msgid "mismatching signature for field '%s' in '%s'" +#~ msgstr "aignature ne concorde pas pour le champ %s dans %s " + +#~ msgid "%Jassignment to final field '%D' not in field's class" +#~ msgstr "%Jaffectation au champ final %D n'est pas le champ de la classe" + +#~ msgid "%Jassignment to final static field `%D' not in class initializer" +#~ msgstr "%Jaffectation au champ statique final %D n'est pas dans l'initialiseur de la classe" + +#~ msgid "%Jassignment to final field '%D' not in constructor" +#~ msgstr "%Jaffectation au champ final %D n'est pas dans le constructeur" + +#~ msgid "can't expand %s" +#~ msgstr "ne peut faire l'expansion de %s" + +#~ msgid "invalid PC in line number table" +#~ msgstr "PC invalide dans la numro de ligne de la table" + +#~ msgid "unreachable bytecode from %d to before %d" +#~ msgstr "bytcode n'est pas atteignable partir de %d jusqu' %d" + +#~ msgid "unreachable bytecode from %d to the end of the method" +#~ msgstr "bytcode n'est pas atteignable partir de %d jusqu' la fin de la mthode." + +#~ msgid "unrecogized wide sub-instruction" +#~ msgstr "sous-instruction trs large non reconnue" + +#~ msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead" +#~ msgstr "fichier source de la classe %s est plus rcent que son fichier de classe concordant. Fichier source %s utilis la place." + +#~ msgid "bad string constant" +#~ msgstr "constante chane errone" + +#~ msgid "bad value constant type %d, index %d" +#~ msgstr "valeur %d de type de constante errone, index %d" + +#~ msgid "can't reopen %s: %m" +#~ msgstr "ne peut r-ouvrir %s: %m" + +#~ msgid "can't close %s: %m" +#~ msgstr "ne peut fermer %s: %m" + +#~ msgid "cannot find file for class %s" +#~ msgstr "ne peut reprer le fichier pour la classe %s." + +#~ msgid "not a valid Java .class file" +#~ msgstr "n'est pas un fichier Java .class valide" + +#~ msgid "error while parsing constant pool" +#~ msgstr "error lors de l'analyse syntaxique du lots de constantes" + +#~ msgid "error in constant pool entry #%d\n" +#~ msgstr "erreur dans l'entre #%d du lot de constantes\n" + +#~ msgid "reading class %s for the second time from %s" +#~ msgstr "lecture de la classe %s pour la seconde fois depuis %s" + +#~ msgid "error while parsing fields" +#~ msgstr "erreur lors de l'analyse syntaxique des champs" + +#~ msgid "error while parsing methods" +#~ msgstr "erreur lors de l'analyse syntaxique des mthodes" + +#~ msgid "error while parsing final attributes" +#~ msgstr "erreur lors de l'analyse syntaxique des attributs" + +#~ msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath" +#~ msgstr " java.lang.Object qui a t repr dans %s n'avait pas l'attribut spcial de longueur zro gnu.gcj.gcj-compiled. Cela gnralement signifie que le chemin d'accs aux classes est incorrectement initialis. Utiliser info gcj \"Input Options\" pour accder aux informations dcrivant comment initialiser le chemin d'accs des classes." + +#~ msgid "missing Code attribute" +#~ msgstr "attribut Code manquant" + +#~ msgid "%Hsource file seen twice on command line and will be compiled only once" +#~ msgstr "%Hfichier source vu deux fois sur la ligne de commande et ne sera compil une seule fois" + +#~ msgid "no input file specified" +#~ msgstr "aucun fichier n'a t spcifi l'entre" + +#~ msgid "can't close input file %s: %m" +#~ msgstr "ne peut fermer le fichier d'entre %s: %m" + +#~ msgid "bad zip/jar file %s" +#~ msgstr "fichier zip/jar erron %s" + +#~ msgid "error while reading %s from zip file" +#~ msgstr "erreur lors de la lecture de %s partir du fichier zip" + +#~ msgid "internal error in generate_bytecode_insn - tree code not implemented: %s" +#~ msgstr "erreur interne dans generate_bytecode_insn - arbre de code n'est pas implant: %s" + +#~ msgid "field initializer type mismatch" +#~ msgstr "type de initialiseur du champ ne concorde pas" + +#~ msgid "can't create directory %s: %m" +#~ msgstr "ne peut crer le rpertoire %s: %m" + +#~ msgid "can't create %s: %m" +#~ msgstr "ne peut crer %s: %m" + +#~ msgid "only one of `--print-main', `--list-class', and `--complexity' allowed" +#~ msgstr "seule une des options --print-main, --list-class et --complexity est permise" + +#~ msgid "can't open output file `%s'" +#~ msgstr "ne peut ouvrir le fichier de sortie %s " + +#~ msgid "file not found `%s'" +#~ msgstr "fichier non repr %s " + +#~ msgid "can't specify `-D' without `--main'\n" +#~ msgstr "ne peut spcifier -D sans --main\n" + +#~ msgid "`%s' is not a valid class name" +#~ msgstr " %s n'est pas un nom de classe valide" + +#~ msgid "--resource requires -o" +#~ msgstr "--resource requiert -o" + +#~ msgid "warning: already-compiled .class files ignored with -C" +#~ msgstr "AVERTISSEMENT: fichiers .class dj compils ignors avec -C" + +#~ msgid "cannot specify both -C and -o" +#~ msgstr "ne peut spcfier la fois -C et -o" + +#~ msgid "cannot create temporary file" +#~ msgstr "ne peut crer un fichier temporaire" + +#~ msgid "using both @FILE with multiple files not implemented" +#~ msgstr "utilis ensemble @FICHIER avec de multiples fichiers bMest pas implant" + +#~ msgid "cannot specify `main' class when not linking" +#~ msgstr "ne peut spcifier la classe main lorsqu'il n'y a pas d'dition de liens" + +#~ msgid "can't do dependency tracking with input from stdin" +#~ msgstr "ne peut faire le tracking de dpendance avec l'entre partir de stdin" + +#~ msgid "couldn't determine target name for dependency tracking" +#~ msgstr "ne peut dterminer le nom de la cible pour le tracking de dpendance" + +#~ msgid "" +#~ "unknown encoding: `%s'\n" +#~ "This might mean that your locale's encoding is not supported\n" +#~ "by your system's iconv(3) implementation. If you aren't trying\n" +#~ "to use a particular encoding for your input file, try the\n" +#~ "`--encoding=UTF-8' option" +#~ msgstr "" +#~ "encodage inconnu: %s \n" +#~ "Cela signifie que votre encodage local n'est pas support\n" +#~ "par l'implantation iconv(3) sur votre systme. Si vous n'essayez pas\n" +#~ "d'utiliser un encodage particulier pour votre fichier d'entre, essayer\n" +#~ "l'option --encoding=UTF-8." + +#~ msgid "can't mangle %s" +#~ msgstr "ne peut mutiler %s" + +#~ msgid "internal error - invalid Utf8 name" +#~ msgstr "erreur interne - nom Utf8 invalide" + +#~ msgid "Missing term" +#~ msgstr "Terme manquant" + +#~ msgid "';' expected" +#~ msgstr "; attendu" + +#~ msgid "Missing name" +#~ msgstr "Nom manquant" + +#~ msgid "'*' expected" +#~ msgstr " * attendu" + +#~ msgid "Class or interface declaration expected" +#~ msgstr "Dclaration de classe ou d'interface attendue" + +#~ msgid "Missing class name" +#~ msgstr "Nom de classe manquant" + +#~ msgid "'{' expected" +#~ msgstr "{ attendu" + +#~ msgid "Missing super class name" +#~ msgstr "Nom de super classe manquant" + +#~ msgid "Missing interface name" +#~ msgstr "Nom d'interface manquant" + +#~ msgid "Missing variable initializer" +#~ msgstr "Initialiseur de variable manquant" + +#~ msgid "Invalid declaration" +#~ msgstr "Dclaration invalide" + +#~ msgid "']' expected" +#~ msgstr "] attendu" + +#~ msgid "Unbalanced ']'" +#~ msgstr "] non pair" + +#~ msgid "Invalid method declaration, method name required" +#~ msgstr "Dclaration de mthode invalide, nom de mthode requis" + +#~ msgid "Identifier expected" +#~ msgstr "Identificateur attendu" + +#~ msgid "Invalid method declaration, return type required" +#~ msgstr "Dclaration de mthode invalide, type retourn requis" + +#~ msgid "')' expected" +#~ msgstr ") attendu" + +#~ msgid "Missing formal parameter term" +#~ msgstr "Paramtre term formel manquant" + +#~ msgid "Missing identifier" +#~ msgstr "Identificateur manquant" + +#~ msgid "Missing class type term" +#~ msgstr "Type term de classe manquant" + +#~ msgid "Invalid interface type" +#~ msgstr "Type d'interface invalide" + +#~ msgid "':' expected" +#~ msgstr ": attendu" + +#~ msgid "Invalid expression statement" +#~ msgstr "Dclaration d'expression invalide" + +#~ msgid "'(' expected" +#~ msgstr "( attendu" + +#~ msgid "Missing term or ')'" +#~ msgstr "Terme manquant ou )" + +#~ msgid "Missing or invalid constant expression" +#~ msgstr "Expresion de constante manquante ou invalide" + +#~ msgid "Missing term and ')' expected" +#~ msgstr "Terme manquant et ) attendus" + +#~ msgid "Invalid control expression" +#~ msgstr "Expression de contrle invalide" + +#~ msgid "Invalid update expression" +#~ msgstr "Expression de mise jour invalide" + +#~ msgid "Invalid init statement" +#~ msgstr "Dclaration init invalide" + +#~ msgid "Missing term or ')' expected" +#~ msgstr "Terme manquant ou ) attendu" + +#~ msgid "'class' or 'this' expected" +#~ msgstr " class ou ceci attendu" + +#~ msgid "'class' expected" +#~ msgstr " class attendu" + +#~ msgid "')' or term expected" +#~ msgstr ") or terme attendu" + +#~ msgid "'[' expected" +#~ msgstr "[ attendu" + +#~ msgid "Field expected" +#~ msgstr "Champ attendu" + +#~ msgid "Missing term and ']' expected" +#~ msgstr "Terme manquant et ] attendu" + +#~ msgid "']' expected, invalid type expression" +#~ msgstr "] attendu, type d'expression invalide" + +#~ msgid "Invalid type expression" +#~ msgstr "Type d'expression invalide" + +#~ msgid "Invalid reference type" +#~ msgstr "Type de rfrence invalide" + +#~ msgid "Constructor invocation must be first thing in a constructor" +#~ msgstr "L'invaocation d'un constructeur doit tre la premire chose dans un constructeur" + +#~ msgid "Only constructors can invoke constructors" +#~ msgstr "Seuls les constructeurs peuvent invoquer des constructeurs" + +#~ msgid ": `%s' JDK1.1(TM) feature" +#~ msgstr ": %s option JDK1.1(TM)" + +#~ msgid "" +#~ "%s.\n" +#~ "%s" +#~ msgstr "" +#~ "%s.\n" +#~ "%s" + +#~ msgid "malformed .zip archive in CLASSPATH: %s" +#~ msgstr "archive .zip mal compose dans CLASSPATH: %s" + +#~ msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" +#~ msgstr "ne peut reprer le package par dfaut %s . Vrifier la variable d'environnement CLASSPATH et l'accs aux archives." + +#~ msgid "missing static field `%s'" +#~ msgstr "champ statique manquant %s " + +#~ msgid "not a static field `%s'" +#~ msgstr "n'est pas un champ statique %s " + +#~ msgid "No case for %s" +#~ msgstr "Oas de case pour %s" + +#~ msgid "unregistered operator %s" +#~ msgstr "oprator %s non enregistr" + +#~ msgid "junk at end of signature string" +#~ msgstr "rebut la fin de la chane de signature" + +#~ msgid "bad pc in exception_table" +#~ msgstr "PC erron dans exception_table" + +#~ msgid "unknown opcode %d@pc=%d during verification" +#~ msgstr "code-op inconnu %d@pc=%d durant la vrification" + +#~ msgid "verification error at PC=%d" +#~ msgstr "erreur de vrification au PC=%d" + +#~ msgid "object does not conform to the `%s' protocol" +#~ msgstr "objet n'est pas conforme au protocole %s " + +#~ msgid "class `%s' does not implement the `%s' protocol" +#~ msgstr "classe %s n'implante pas le protocole %s " + +#~ msgid "statically allocated instance of Objective-C class `%s'" +#~ msgstr "instance alloue de manire statique de la classe Objective-C %s " + +#~ msgid "unexpected type for `id' (%s)" +#~ msgstr "type inattendu pour id (%s)" + +#~ msgid "undefined type `id', please import " +#~ msgstr "type id indfini, SVP importer " + +#~ msgid "protocol `%s' has circular dependency" +#~ msgstr "le protocole %s a une dpendance circulaire" + +#~ msgid "cannot find protocol declaration for `%s'" +#~ msgstr "ne peut reprer la dclaration de protocole pour %s " + +#~ msgid "cannot find interface declaration for `%s'" +#~ msgstr "ne peut reprer la dclaration d'interface pour %s " + +#~ msgid "interface `%s' does not have valid constant string layout" +#~ msgstr "interface %s n'a pas une organisation valide de chanes de constantes" + +#~ msgid "cannot find reference tag for class `%s'" +#~ msgstr "ne peut reprer la rfrence pour l'tiquette de classe %s." + +#~ msgid "creating selector for non existant method %s" +#~ msgstr "cration du slection pour une mthode inexistente %s" + +#~ msgid "`%s' is not an Objective-C class name or alias" +#~ msgstr " %s n'est pas une classe Objective-C ou un alias" + +#~ msgid "Objective-C declarations may only appear in global scope" +#~ msgstr "dclarations Objective-C peut seulement apparatre dans l'tendue globale" + +#~ msgid "cannot find class `%s'" +#~ msgstr "ne peut reprer la classe %s " + +#~ msgid "class `%s' already exists" +#~ msgstr "classe %s existe dj" + +#~ msgid "`%s' redeclared as different kind of symbol" +#~ msgstr " %s redclar comme une autre sorte de symbole" + +#~ msgid "cannot find interface declaration for `%s', superclass of `%s'" +#~ msgstr "ne peut reprer une dclaration d'interface pour %s , super classe de %s " + +#~ msgid "circular inheritance in interface declaration for `%s'" +#~ msgstr "hritage circulaire dans la dclaration de l'interface pour %s " + +#~ msgid "Use `-fobjc-exceptions' to enable Objective-C exception syntax" +#~ msgstr "Utiliser -fobjc-exceptions pour autoriser la syntaxe d'exception d'Objective-C" + +#~ msgid "`@throw;' (rethrow) used outside of a `@catch' block" +#~ msgstr " @throw; (rethrow) utilis en dehors d'un bloc @catch " + +#~ msgid "`@catch' parameter is not a known Objective-C class type" +#~ msgstr "paramtre @catch n'est pas connu comme un type de classe Objective-C" + +#~ msgid "Exception already handled by preceding `@catch(id)'" +#~ msgstr "Exception est dj trait par le prcdent @catch(id) " + +#~ msgid "Exception of type `%s *' already handled by `@catch (%s *)'" +#~ msgstr "exception du type %s * est dj traite par @catch (%s *) " + +#~ msgid "`@try' without `@catch' or `@finally'" +#~ msgstr " @try sans @catch ou @finally " + +#~ msgid "%Jtype '%D' does not have a known size" +#~ msgstr "%Jtype %D n'a pas de taille connue" + +#~ msgid "%J%s `%s'" +#~ msgstr "%J%s %s " + +#~ msgid "inconsistent instance variable specification" +#~ msgstr "spcification inconsistente avec l'instance de la vairable" + +#~ msgid "can not use an object as parameter to a method\n" +#~ msgstr "ne peut utiliser un objet comme paramtre une mthode\n" + +#~ msgid "multiple %s named `%c%s' found" +#~ msgstr "multiples %s nomms %c%s reprs" + +#~ msgid "no super class declared in @interface for `%s'" +#~ msgstr "pas de super classe dclare dans @nterface pour %s " + +#~ msgid "invalid receiver type `%s'" +#~ msgstr "type du receveur invalide %s " + +#~ msgid "`%s' may not respond to `%c%s'" +#~ msgstr " %s peut ne pas rpondre %c%s " + +#~ msgid "`%c%s' not implemented by protocol(s)" +#~ msgstr " %c%s n'est pas implante dans le protocole" + +#~ msgid "(Messages without a matching method signature" +#~ msgstr "(Messages sans une mthode concordante de signature" + +#~ msgid "will be assumed to return `id' and accept" +#~ msgstr "sera assum pour retourner id et accepter" + +#~ msgid "`...' as arguments.)" +#~ msgstr " ... comme argument.)" + +#~ msgid "undeclared selector `%s'" +#~ msgstr "slecteur %s non dclar" + +#~ msgid "instance variable `%s' accessed in class method" +#~ msgstr "instance %s de la variable accd par la mthode de classe" + +#~ msgid "duplicate declaration of method `%c%s'" +#~ msgstr "duplication de dclaration de la mthode %c%s " + +#~ msgid "duplicate interface declaration for category `%s(%s)'" +#~ msgstr "duplication de dclaration d'interface pour la catgorie %s(%s) " + +#~ msgid "illegal reference type specified for instance variable `%s'" +#~ msgstr "type derfrence spcifi illgal pour l'instance de variable %s " + +#~ msgid "instance variable `%s' has unknown size" +#~ msgstr "instance de la variable %s a une taille inconnue" + +#~ msgid "type `%s' has virtual member functions" +#~ msgstr "type %s a des membres de fonction virtuelle" + +#~ msgid "illegal aggregate type `%s' specified for instance variable `%s'" +#~ msgstr "type d'aggrgat illgal %s spcifi pour l'instance de la variable %s " + +#~ msgid "type `%s' has a user-defined constructor" +#~ msgstr "type %s a un constructeur dfini par l'usager" + +#~ msgid "type `%s' has a user-defined destructor" +#~ msgstr "type %s a un destructeur dfini par l'usager" + +#~ msgid "C++ constructors and destructors will not be invoked for Objective-C fields" +#~ msgstr "constructeurs et destructeurs C++ ne seront pas invoqus pour les champs en Objective-C" + +#~ msgid "instance variable `%s' is declared private" +#~ msgstr "instance de la variable %s est dclar prive" + +#~ msgid "instance variable `%s' is %s; this will be a hard error in the future" +#~ msgstr "instance de la variable %s est %s; cela dclenchera une erreur dure dans le futur" + +#~ msgid "instance variable `%s' is declared %s" +#~ msgstr "instance de la variable %s est dclar %s" + +#~ msgid "static access to object of type `id'" +#~ msgstr "accs statique un objket de type id " + +#~ msgid "incomplete implementation of class `%s'" +#~ msgstr "implantation incomplte de la classe %s " + +#~ msgid "incomplete implementation of category `%s'" +#~ msgstr "implantation incomplte de la catgorie %s " + +#~ msgid "method definition for `%c%s' not found" +#~ msgstr "dfinition de la mthode pour %c%s n'a pas t repre" + +#~ msgid "%s `%s' does not fully implement the `%s' protocol" +#~ msgstr "%s %s n'implante pas compltement le protocole %s " + +#~ msgid "`@end' missing in implementation context" +#~ msgstr "@end manquant dans l'implantation du contexte" + +#~ msgid "reimplementation of class `%s'" +#~ msgstr "r-implantation de la classe %s " + +#~ msgid "conflicting super class name `%s'" +#~ msgstr "nom de super classe %s est conflictuel" + +#~ msgid "previous declaration of `%s'" +#~ msgstr "dclaration prcdente de %s " + +#~ msgid "duplicate interface declaration for class `%s'" +#~ msgstr "double dclaration d'interface pour la classe %s " + +#~ msgid "duplicate declaration for protocol `%s'" +#~ msgstr "double dclaration pour le protocole %s " + +#~ msgid "%J%s `%c%s'" +#~ msgstr "%J%s %c%s " + +#~ msgid "no super class declared in interface for `%s'" +#~ msgstr "pas de super classe dclare dans l'interface pour %s " + +#~ msgid "[super ...] must appear in a method context" +#~ msgstr "[super ...] doit apparatre dans une mthode du contexte" + +#~ msgid "`@end' must appear in an implementation context" +#~ msgstr "@end doit appratre dans un contaxte d'implantation" + +#~ msgid "method definition not in class context" +#~ msgstr "mthode de dfinition n'est pas dans un contexte de classe" + +#~ msgid "Display this information" +#~ msgstr "afficher l'aide-mmoire" + +#~ msgid "--param =\tSet paramter to value. See below for a complete list of parameters" +#~ msgstr "--param =\tinitialiser le avec la valeur. Voir ci-bas pour la liste complte des paramtres" + +#~ msgid "-A=\tAssert the to . Putting '-' before disables the to " +#~ msgstr "-A=\tassocier la la . Placer - devant la dsactive la la " + +#~ 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[=]\tDefine a with as its value. If just is given, is taken to be 1" +#~ msgstr "-D[=]\tdfinir le avec la . Si seul le est fourni, vaut 1 par dfaut" + +#~ msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" +#~ msgstr "" +#~ " -G placer les donnes globales et statiques plus\n" +#~ " petites que d'octets dans une section\n" +#~ " spciale (sur certaines cibles)" + +#~ msgid "Print the name of header files as they are used" +#~ msgstr "Afficher les noms des en-ttes de fichiers tel qu'ils sont utiliss" + +#~ msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" +#~ msgstr "-I \tajouter la fin du chemin principal d'inclusion. -I- donne plus de contrle sur le chemin d'inclusion; voir la documentation info" + +#~ msgid "Generate make dependencies" +#~ msgstr "Gnrer les dpendances pour make" + +#~ msgid "Generate make dependencies and compile" +#~ msgstr "Gnrer les dpendances pour make et compiler" + +#~ msgid "-MF \tWrite dependency output to the given file" +#~ msgstr "-MF \tcrire les dpendances en sortie dans le fichier fourni" + +#~ msgid "Treat missing header files as generated files" +#~ msgstr "Traiter les en-ttes manquantes de fichiers comme des fichiers gnrs" + +#~ msgid "Like -M but ignore system header files" +#~ msgstr "Identique -M mais ignore les en-ttes de fichiers systme" + +#~ msgid "Like -MD but ignore system header files" +#~ msgstr "Identique -MD mais ignore les en-ttes de fichiers systme" + +#~ msgid "Generate phony targets for all headers" +#~ msgstr "Gnrer les cibles bidons pour toutes les en-ttes" + +#~ msgid "-MQ \tAdd a MAKE-quoted target" +#~ msgstr "-MQ \tajouter MAKE-quoted cible" + +#~ msgid "-MT \tAdd an unquoted target" +#~ msgstr "-MT \tajouter une cible sans quote" + +#~ msgid "-O\tSet optimization level to " +#~ msgstr "-O\tutiliser le niveau d'optimisation " + +#~ msgid "Optimize for space rather than speed" +#~ msgstr "Optimiser l'utilisation de l'espace plutt que la vitesse" + +#~ msgid "Do not generate #line directives" +#~ msgstr "Ne pas gnrer de directives #ligne" + +#~ msgid "-U\tUndefine " +#~ msgstr "-U\tabandonner la dfinition " + +#~ msgid "This switch is deprecated; use -Wextra instead" +#~ msgstr "Cette option est obsolte; utiliser -Wextra la place" + +#~ msgid "Warn about returning structures, unions or arrays" +#~ msgstr "Avertir propos de structures retourns, unions ou tableaux" + +#~ msgid "Enable most warning messages" +#~ msgstr "Autoriser la plupart des messages d'avertissement" + +#~ msgid "Warn about casting functions to incompatible types" +#~ msgstr "Avertir propos des fonctions de transtypage avec des types incompatibles" + +#~ msgid "Warn about pointer casts which increase alignment" +#~ msgstr "Avertir propos des pointeurs convertis lesquels augment l'alignement" + +#~ msgid "Warn about casts which discard qualifiers" +#~ msgstr "Avertir propos des transtypage qui cartent les qualificateurs" + +#~ msgid "Warn about subscripts whose type is \"char\"" +#~ msgstr "Avertir propos des souscripts dont le type est \"char\"" + +#~ msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" +#~ msgstr "Avertir propos des blocs de commentaires imbriqus et les commentaires C++ qui s'tendent sur plus d'une ligne physique" + +#~ msgid "Synonym for -Wcomment" +#~ msgstr "Synonyme pour -Wcommentaire" + +#~ msgid "Warn about possibly confusing type conversions" +#~ msgstr "Avertir propos des conversion confuses de types" + +#~ msgid "Warn when all constructors and destructors are private" +#~ msgstr "Avertir lorsque tous les constructeurs et destructeurs sont privs" + +#~ msgid "Warn when a declaration is found after a statement" +#~ msgstr "Avertir lorsqu'une dclaration est spcifie aprs une dclaration" + +#~ msgid "Warn about deprecated compiler features" +#~ msgstr "Avertir propose de la dprciation des options du compilateur" + +#~ msgid "Warn about uses of __attribute__((deprecated)) declarations" +#~ msgstr "Avertir propos de l'utilisation des dclarations __attribute__ ((deprecated)) " + +#~ msgid "Warn when an optimization pass is disabled" +#~ msgstr "Avertir lorsque la passe d'optimisation est dsactive" + +#~ msgid "Warn about compile-time integer division by zero" +#~ msgstr "Avertir au sujet de la division entire par zro au moment de la compilation" + +#~ msgid "Warn about violations of Effective C++ style rules" +#~ msgstr "Avertir propos des violations des rgles de style de Effective C++" + +#~ msgid "Warn about stray tokens after #elif and #endif" +#~ msgstr "Avertir propos des jetons perdus aprs #elif et #endif" + +#~ msgid "Treat all warnings as errors" +#~ msgstr "Traiter tous les avertissements commes des erreurs" + +#~ msgid "Make implicit function declarations an error" +#~ msgstr "Faire une erreur lors de dclaration de fonctions implicites" + +#~ msgid "Print extra (possibly unwanted) warnings" +#~ msgstr "Afficher des avertissements superflus (possiblement non dsirs)" + +#~ msgid "Warn if testing floating point numbers for equality" +#~ msgstr "Avertir propos des tests d'galit sur des nombres flottants" + +#~ msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" +#~ msgstr "Avertir propos des anomalies de format de chanes pour printf/scanf/strftime/strfmon" + +#~ msgid "Warn if passing too many arguments to a function for its format string" +#~ msgstr "Avertir lorsqu'il y a trop de passage d'arguments une fonction pour le format de ses chanes" + +#~ msgid "Warn about format strings that are not literals" +#~ msgstr "Avertir propos des chanes de format qui n'ont pas de litrals" + +#~ msgid "Warn about possible security problems with format functions" +#~ msgstr "Avertir propos des problmes possibles de scurit avec les formats de fonction" + +#~ msgid "Warn about strftime formats yielding 2-digit years" +#~ msgstr "Avertir propos des formats strftime ne laissant que 2 chiffres pour l'anne" + +#~ msgid "Warn about implicit function declarations" +#~ msgstr "Avertir propos des dclarations de fonctions implicites" + +#~ msgid "Warn when a declaration does not specify a type" +#~ msgstr "Avertir lorsqu'une dclaration ne spcifie pas le type" + +#~ msgid "Deprecated. This switch has no effect." +#~ msgstr "Obsolte. Cette option n'a aucun effet." + +#~ msgid "Warn about variables which are initialized to themselves." +#~ msgstr "Avertir au sujet des variables qui sont initialiss par elles-mme" + +#~ msgid "Warn when an inlined function cannot be inlined" +#~ msgstr "Avertir lorsque des fonctions en ligne ne peuvent tre enligne" + +#~ msgid "Warn about invalid uses of the \"offsetof\" macro" +#~ msgstr "Avertir propos de l'utilisation invalide de macro \"offsetof\"" + +#~ msgid "Warn about PCH files that are found but not used" +#~ msgstr "Avertir propos des fichier PCH qui sont reprs mais non utiliss" + +#~ msgid "-Wlarger-than-\tWarn if an object is larger than bytes" +#~ msgstr "-Wlarger-than-\tavertir si un objet est plus grand que d'octets" + +#~ msgid "Do not warn about using \"long long\" when -pedantic" +#~ msgstr "Ne pas avertir propos de l'utilisation de \"long long\" avec -pedantic" + +#~ msgid "Warn about suspicious declarations of \"main\"" +#~ msgstr "Avertir propos des dclarations douteuses de \"main\"" + +#~ msgid "Warn about possibly missing braces around initializers" +#~ msgstr "Avertir propos des possibles accolades manquantes autour des initialisations" + +#~ msgid "Warn about global functions without previous declarations" +#~ msgstr "Avertir propos des fonctions globales sans dclaration prcdente" + +#~ msgid "Warn about functions which might be candidates for format attributes" +#~ msgstr "Avertir propos des fonctions qui pourraient tre candidates pour les attributs de format" + +#~ msgid "Warn about functions which might be candidates for __attribute__((noreturn))" +#~ msgstr "Avertir propos des fonctions qui seraient candidates pour __attribute__((noreturn))" + +#~ msgid "Warn about global functions without prototypes" +#~ msgstr "Avertir propos des fonctions globales sans prototype" + +#~ msgid "Warn about use of multi-character character constants" +#~ msgstr "Avertir propos de l'utilisation des chanes de multi-caractres" + +#~ msgid "Warn about \"extern\" declarations not at file scope" +#~ msgstr "Avertir propos des dclarations \"extern\" qui n'est pas dans l'tendue du fichier" + +#~ msgid "Warn when non-templatized friend functions are declared within a template" +#~ msgstr "Avertir lorsque des fonctions amis sans canevas sont dclars l'intrieur d'un canevas" + +#~ msgid "Warn about non-virtual destructors" +#~ msgstr "Avertir propos des destructeurs non virtuels" + +#~ msgid "Warn if a C-style cast is used in a program" +#~ msgstr "Avertir si le style de transtypage C est utilis dans un programme" + +#~ msgid "Warn if an old-style parameter definition is used" +#~ msgstr "Avertir lorsqu'un paramtre de style ancien de dfinition est utilis" + +#~ msgid "Warn about overloaded virtual function names" +#~ msgstr "Avertir propos de la surcharge des noms de fonctions virtuelles" + +#~ msgid "Warn when the packed attribute has no effect on struct layout" +#~ msgstr "Avertir lorsque les attributs paquets n'ont pas d'effet sur l'organisation d'un struct" + +#~ msgid "Warn when padding is required to align structure members" +#~ msgstr "Avertir lorsque le remplissage est requis pour aligner les membres de structure" + +#~ msgid "Warn about possibly missing parentheses" +#~ msgstr "Avertir propos du manque possible de parenthses" + +#~ msgid "Warn when converting the type of pointers to member functions" +#~ msgstr "Avertir lors de la conversion des types de pointeurs en membres de fonctions" + +#~ msgid "Warn about function pointer arithmetic" +#~ msgstr "Avertir propos d'arithmtique portant sur un pointeur de fonction" + +#~ msgid "Warn if inherited methods are unimplemented" +#~ msgstr "Avertir si les mthodes hrites ne sont pas implantes" + +#~ msgid "Warn about multiple declarations of the same object" +#~ msgstr "Avertir propos des dclarations multiples portant sur le mme objet" + +#~ msgid "Warn when the compiler reorders code" +#~ msgstr "Avertir lorsque le compilateur rordonne le code" + +#~ msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" +#~ msgstr "Avertir lorsque le type de fonction retourner par dfaut est \"int\" (C) ou propos d'un type inconsisten retourner (C++)" + +#~ msgid "Warn if a selector has multiple methods" +#~ msgstr "Avertir si le slecteur a de multiples mthodes" + +#~ msgid "Warn about possible violations of sequence point rules" +#~ msgstr "Avertir propos des violations possibles des rgles de squence de points" + +#~ msgid "Warn when one local variable shadows another" +#~ msgstr "Avertir lorsqu'une variable locale masque une autre" + +#~ msgid "Warn about signed-unsigned comparisons" +#~ msgstr "Avertir propos des comparaisons signs ou non signs" + +#~ msgid "Warn when overload promotes from unsigned to signed" +#~ msgstr "Avertir lorsque la surcharge fait la promotion d'un non sign en sign" + +#~ msgid "Warn about code which might break strict aliasing rules" +#~ msgstr "Avertir propos du code qui pourrait briser les rgles strictes d'alias" + +#~ msgid "Warn about unprototyped function declarations" +#~ msgstr "Avertir propos des dclarations de fonctions sans prototype" + +#~ msgid "Warn about enumerated switches, with no default, missing a case" +#~ msgstr "Avertir propos d'un switch numr, sans dfaut ou un case est manquant" + +#~ msgid "Warn about enumerated switches missing a \"default:\" statement" +#~ msgstr "Avertir propos d'un switch numr n'ayant pas de dclaration \"default:\"" + +#~ msgid "Warn about all enumerated switches missing a specific case" +#~ msgstr "Avertir propos de tous les switch numrs o un case spcific manque" + +#~ msgid "Warn when synthesis behavior differs from Cfront" +#~ msgstr "Avertir lorsque le comportement de synthre diffre de Cfront" + +#~ msgid "Do not suppress warnings from system headers" +#~ msgstr "Ne pas supprimer les avertissements pour les en-ttes systme" + +#~ msgid "Warn about features not present in traditional C" +#~ msgstr "Avertir propos d'une option absente en C traditionnel" + +#~ msgid "Warn if trigraphs are encountered that might affect the meaning of the program" +#~ msgstr "Avertir si des trigraphes sont rencontrs et qui pourraient affecter le sens du programme" + +#~ msgid "Warn if an undefined macro is used in an #if directive" +#~ msgstr "Avertir si un macro indfini est utilis dans un directive #if" + +#~ msgid "Warn about uninitialized automatic variables" +#~ msgstr "Avertir propos des variables automatiques non initialises" + +#~ msgid "Warn about unrecognized pragmas" +#~ msgstr "Avertir propos des pragmas non reconnus" + +#~ msgid "Warn about code that will never be executed" +#~ msgstr "Avertir propos du code qui ne sera jamais excut" + +#~ msgid "Enable all -Wunused- warnings" +#~ msgstr "Autoriser tous les -Wunused- warnings" + +#~ msgid "Warn when a function is unused" +#~ msgstr "Avertir lorsqu'une fonction est inutilise" + +#~ msgid "Warn when a label is unused" +#~ msgstr "Avertir lorsqu'une tiquette est inutilise" + +#~ msgid "Warn about macros defined in the main file that are not used" +#~ msgstr "Avertir propos de macros dfinis dans le fichier principal qui ne sont pas utiliss" + +#~ msgid "Warn when a function parameter is unused" +#~ msgstr "Avertir lorsqu'un paramtre de fonction est inutilis" + +#~ msgid "Warn when an expression value is unused" +#~ msgstr "Avertir lorsque la valeur d'une expression n'est pas utilise" + +#~ msgid "Warn when a variable is unused" +#~ msgstr "Avertir lorsque 'une variable est inutilise" + +#~ msgid "Give strings the type \"array of char\"" +#~ msgstr "Fournir des chanes de type \"array of char\"" + +#~ msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" +#~ msgstr "Un synonyme pour -std=c89. Dans une version future de GCC cela deviendra synonyme de -std=c99 la place" + +#~ msgid "-aux-info \tEmit declaration information into " +#~ msgstr "-aux-info \tproduire une dclaration d'information dans le " + +#~ msgid "-d\tEnable dumps from specific passes of the compiler" +#~ msgstr "-d\tautoriser les vidanges pour des passes spcifiques du compilateur" + +#~ msgid "-dumpbase \tSet the file basename to be used for dumps" +#~ msgstr "-dumpbase \tfixer le nom de base du fichier utiliser pour les vidanges" + +#~ msgid "Enforce class member access control semantics" +#~ msgstr "Forcer la smantique du contrle d'accs un membre de classe" + +#~ msgid "Align the start of functions" +#~ msgstr "Aligner le dbut des fonctions" + +#~ msgid "Align labels which are only reached by jumping" +#~ msgstr "Aligner les tiquettes qui sont seulement atteintes par sauts" + +#~ msgid "Align all labels" +#~ msgstr "Aligner toutes les tiquettes" + +#~ msgid "Align the start of loops" +#~ msgstr "Aligner le dbut des boucles" + +#~ msgid "Change when template instances are emitted" +#~ msgstr "Changer lorsque les instances du canevas sont produites" + +#~ msgid "Specify that arguments may alias each other and globals" +#~ msgstr "Spcifier que les arguments peuvent avoir des alias l'un vers l'autre et globaux" + +#~ msgid "Assume arguments may alias globals but not each other" +#~ msgstr "Prsumer que les arguments peuvent avoir des alias globaux mais pas l'un vers l'autre" + +#~ msgid "Assume arguments alias neither each other nor globals" +#~ msgstr "Assumer que les alias d'arguments n'en ont pas l'un vers l'autre ou globaux" + +#~ msgid "Recognize the \"asm\" keyword" +#~ msgstr "Reconnatre le mot cl asm " + +#~ msgid "Generate unwind tables that are exact at each instruction boundary" +#~ msgstr "Gnrer des tables tendues qui soient exactes pour chaque borne d'instruction" + +#~ msgid "Generate code to check bounds before indexing arrays" +#~ msgstr "Gnrer du code pour vrifier les bornes avant d'indexer les tableaux" + +#~ msgid "Replace add, compare, branch with branch on count register" +#~ msgstr "Remplacer add,compare,branch avec des branchements utilisant un compteur registre" + +#~ msgid "Use profiling information for branch probabilities" +#~ msgstr "Utiliser les informations de profilage pour les probabilits de branchements" + +#~ msgid "Perform branch target load optimization before prologue / epilogue threading" +#~ msgstr "Effectuer l'optimisation du chargement du branchement cible avant le thread prologue / epilogue" + +#~ msgid "Perform branch target load optimization after prologue / epilogue threading" +#~ msgstr "Effectuer l'optimisation du chargement du branchement cible aprs le thread prologue / epilogue" + +#~ msgid "Recognize built-in functions" +#~ msgstr "Reconnatre aucun construit dans les fonctions" + +#~ msgid "-fcall-saved-\tMark as being preserved across functions" +#~ msgstr "-fcall-saved-\tmarquer le comme tant prserv travers les fonctions" + +#~ msgid "-fcall-used-\tMark as being corrupted by function calls" +#~ msgstr "-fcall-used-\tmarquer le comme tant corrompu par les appels de fonctions" + +#~ msgid "Save registers around function calls" +#~ msgstr "Sauvegarder les registres autour des appels de fonction" + +#~ msgid "Check the return value of new" +#~ msgstr "Vrifier la valeur retourne de new" + +#~ msgid "Do not put uninitialized globals in the common section" +#~ msgstr "Ne pas placer de globaux non initialiss dans la section commune" + +#~ msgid "Allow the arguments of the '?' operator to have different types" +#~ msgstr "Permettre les arguments de l'oprateur ? d'avoir diffrents types" + +#~ msgid "Reduce the size of object files" +#~ msgstr "Rduire la taille des fichiers objets" + +#~ msgid "Make string literals \"const char[]\" not \"char[]\"" +#~ msgstr "Rendre les chanes de mots \"const char[]\" et non pas \"char[]\"" + +#~ msgid "-fconst-string-class=\tUse class for constant strings" +#~ msgstr "-fconst-string-class=\tutiliser la classe pour la chanes de constantes" + +#~ msgid "Perform a register copy-propagation optimization pass" +#~ msgstr "Effectuer la passe d'optimisation de la propagation-de-copie par registre" + +#~ msgid "Perform cross-jumping optimization" +#~ msgstr "Excuter des optimisations de sauts croiss" + +#~ msgid "When running CSE, follow jumps to their targets" +#~ msgstr "Lorsque CSE s'excute, suivre les sauts vers leurs cibles" + +#~ msgid "When running CSE, follow conditional jumps" +#~ msgstr "Lorsque CSE s'excute, suivre les sauts considitionnels vers leurs cibles" + +#~ msgid "Place data items into their own section" +#~ msgstr "placer les items des donnes dans leur propre section" + +#~ msgid "Inline member functions by default" +#~ msgstr "Rendre enligne un membre de fonction par dfaut" + +#~ msgid "Defer popping functions args from stack until later" +#~ msgstr "Dfrer le dpilage des arguments de fonction de la pile plus tard" + +#~ msgid "Attempt to fill delay slots of branch instructions" +#~ msgstr "Tented de remplir de dlais les fentes des instructions de branchement" + +#~ msgid "Delete useless null pointer checks" +#~ msgstr "Dtruire les vrifications de pointeurs nul inutiles" + +#~ msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" +#~ msgstr "-fdiagnostics-show-location=[once|every-line]\tindiquer combien de fois les informations de localisation des sources doivent tre produites au dbut d'un diagnostique lorsque les lignes doivent s'enrouler" + +#~ msgid "Permit '$' as an identifier character" +#~ msgstr "Autoriser '$' comme identificateur de caractre" + +#~ msgid "-fdump-\tDump various compiler internals to a file" +#~ msgstr "-fdump-\tvidander les divers internes du compilateur dans un fichier" + +#~ msgid "Suppress output of instruction numbers and line number notes in debugging dumps" +#~ msgstr "Supprimer dans la sortie les numros d'instructions et de notes de lignes dans les vidanges de mises au point" + +#~ msgid "Perform DWARF2 duplicate elimination" +#~ msgstr "Excuter une limination DAWRF2 des doublons" + +#~ msgid "Perform unused type elimination in debug info" +#~ msgstr "Effectuer l'limination des types non utiliss dans l'information de mise au point" + +#~ msgid "Generate code to check exception specifications" +#~ msgstr "Gnrer le code pour vrifier les exceptions de spcifications" + +#~ msgid "Enable exception handling" +#~ msgstr "Autoriser le traitement des exceptions" + +#~ msgid "-fexec-charset=\tConvert all strings and character constants to character set " +#~ msgstr "-fexec-charset=\tconvertir toutes les chanes et les constantes de caractres en jeu de caractres " + +#~ msgid "Perform a number of minor, expensive optimizations" +#~ msgstr "Effectuer un nombre mineur d'optimisations coteuses" + +#~ msgid "Assume no NaNs or infinities are generated" +#~ msgstr "Assumer qu'aucun NaNs ou infinits ne soit gnr" + +#~ msgid "-ffixed-\tMark as being unavailable to the compiler" +#~ msgstr "-ffixed-\tmarquer le comme n'tant plus disponible pour le compilateur" + +#~ msgid "Do not store floats in registers" +#~ msgstr "Ne pas stocker les flottants dans les registres" + +#~ msgid "Scope of for-init-statement variables is local to the loop" +#~ msgstr "tendue des variables for-init-statement est local la boucle" + +#~ msgid "Copy memory address constants into registers before use" +#~ msgstr "Copier les constantes d'adresses mmoire dans les registres avant de les utiliser" + +#~ msgid "Copy memory operands into registers before use" +#~ msgstr "Copier les oprandes mmoire dans les registres avant de les utiliser" + +#~ msgid "Do not assume that standard C libraries and \"main\" exist" +#~ msgstr "Ne pas assumer que les bibliothques standards C et \"main\" existent" + +#~ msgid "Allow function addresses to be held in registers" +#~ msgstr "Autoriser le maintien des adresses de fonction dans les registres" + +#~ msgid "Place each function into its own section" +#~ msgstr "placer chaque fonction dans sa propre section" + +#~ msgid "Perform global common subexpression elimination" +#~ msgstr "Excuter l'limination de sous-expression commune globale" + +#~ msgid "Perform redundant load after store elimination in global common subexpression elimination" +#~ msgstr "Excuter un stockage redondant aprs l'limination de sous-expression commune globale" + +#~ msgid "Perform enhanced load motion during global common subexpression elimination" +#~ msgstr "Excuter un chargement amlior lors de l'limination de sous-expression commune globale" + +#~ msgid "Perform store motion after global common subexpression elimination" +#~ msgstr "Excuter un stockage aprs l'limination de sous-expression commune globale" + +#~ msgid "Recognize GNU-defined keywords" +#~ msgstr "Reconnatre les mots cls dfinis GNU" + +#~ msgid "Generate code for GNU runtime environment" +#~ msgstr "Gnrer du code pour l'environnement GNU d'excution" + +#~ msgid "Enable guessing of branch probabilities" +#~ msgstr "Autoriser l'estimation des probabilits de branchement" + +#~ msgid "Assume normal C execution environment" +#~ msgstr "Prsumer que l'environnement d'excution C est normal" + +#~ msgid "Enable support for huge objects" +#~ msgstr "Autoriser le support des grands objets" + +#~ msgid "Process #ident directives" +#~ msgstr "Traiter les directive #ident" + +#~ msgid "Perform conversion of conditional jumps to branchless equivalents" +#~ msgstr "Excuter la conversion des sauts conditionels des quivalents sans branchements" + +#~ msgid "Perform conversion of conditional jumps to conditional execution" +#~ msgstr "Excuter la conversion des sauts conditionnels une excution conditionnel" + +#~ msgid "Export functions even if they can be inlined" +#~ msgstr "Exporter les fonctions mme si elles peuvent tre enligne" + +#~ msgid "Emit implicit instantiations of inline templates" +#~ msgstr "Produire les instanciations explicites de canevas enligne" + +#~ msgid "Emit implicit instantiations of templates" +#~ msgstr "Produire les instanciations explicites de canevas" + +#~ msgid "Do not generate .size directives" +#~ msgstr "Ne pas gnrer de directives .size" + +#~ msgid "Pay attention to the \"inline\" keyword" +#~ msgstr "Porter attention au mot cl \"inline\"" + +#~ msgid "Integrate simple functions into their callers" +#~ msgstr "Intgrer les fonctions simples l'intrieur des appelants" + +#~ msgid "-finline-limit=\tLimit the size of inlined functions to " +#~ msgstr "-finline-limit=\tlimiter la taille des fonction enligne " + +#~ msgid "-finput-charset= Specify the default character set for source files." +#~ msgstr "-finput-charset= spcifier le jeu de caractres par dfaut pour les fichiers source" + +#~ msgid "Instrument function entry and exit with profiling calls" +#~ msgstr "Traiter les entres et les sorties des fonctions avec appels de profilage" + +#~ msgid "Generate code for functions even if they are fully inlined" +#~ msgstr "Gnrer le code pour les fonctions mme si elles sont compltement enligne" + +#~ msgid "Emit static const variables even if they are not used" +#~ msgstr "Produire des variables constantes statiques mme si elles ne sont pas utilises" + +#~ msgid "Give external symbols a leading underscore" +#~ msgstr "Afficher les symboles externes prfixs d'un caractre de soulignement" + +#~ msgid "Perform loop optimizations" +#~ msgstr "Excuter l'optimisation des boucles" + +#~ msgid "Set errno after built-in math functions" +#~ msgstr "Initialiser errno aprs les fonctions internes mathmatiques" + +#~ msgid "Report on permanent memory allocation" +#~ msgstr "Rapporter l'allocation de mmoire permanente" + +#~ msgid "Attempt to merge identical constants and constant variables" +#~ msgstr "Tentative de fusion de constantes identique et des variables constantes" + +#~ msgid "Attempt to merge identical constants across compilation units" +#~ msgstr "Tentative de fusion de constantes identiques travers des units de compilation" + +#~ msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" +#~ msgstr "-fmessage-length=\tlimiter la longueur des diagnotiques de caractres par ligne. 0 supprime l'enroulement de ligne" + +#~ msgid "Force all loop invariant computations out of loops" +#~ msgstr "Forcer pour toutes les boucles des calculs invariants en dehors des boucles" + +#~ msgid "Don't warn about uses of Microsoft extensions" +#~ msgstr "Ne donner d'avertissement au sujet de l'utilisation des extensions de Microsoft" + +#~ msgid "Use graph-coloring register allocation" +#~ msgstr "Utiliser l'allocation des registres par coloriage de graphe" + +#~ msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" +#~ msgstr "Gnrer le code pour l'environnement d'excution du NeXT (Apple Mac OS X)" + +#~ msgid "Assume that receivers of Objective-C messages may be nil" +#~ msgstr "Assumer que les receveur de messages Objective-C peut tre NIL" + +#~ msgid "Support synchronous non-call exceptions" +#~ msgstr "Supporter les exceptions synchrones des non appels" + +#~ msgid "Enable Objective-C exception and synchronization syntax" +#~ msgstr "Autoriser l'exception Objective-C et la synchronisation de syntaxe" + +#~ msgid "Perform loop unrolling for all loops" +#~ msgstr "Excuter la boucle par dsenroulement de toutes les boucles" + +#~ msgid "Perform loop unrolling when iteration count is known" +#~ msgstr "Excuter un d-roulement des boucles lorsque le compteur d'itration est connu" + +#~ msgid "When possible do not generate stack frames" +#~ msgstr "Lorsque c'est possible ne pas gnrer des trames de pile" + +#~ msgid "Recognize C++ kewords like \"compl\" and \"xor\"" +#~ msgstr "Reconnatre les mots cls C++ comme \"compl\" et \"xor\"" + +#~ msgid "Do the full register move optimization pass" +#~ msgstr "Effectuer la passe d'optimisation complte des dplacements par les registres" + +#~ msgid "Optimize sibling and tail recursive calls" +#~ msgstr "Optimiser sur mesure les appels enfants et rcursif" + +#~ msgid "Enable optional diagnostics" +#~ msgstr "Autoriser les diagnostiques optionnels" + +#~ msgid "Pack structure members together without holes" +#~ msgstr "Empaqueter les membres des structures ensembles sans trous" + +#~ msgid "Return small aggregates in memory, not registers" +#~ msgstr "Retourner les petits aggrgats en mmoire, pas dans les registres" + +#~ msgid "Perform loop peeling" +#~ msgstr "Excuter des rductions de boucles" + +#~ msgid "Enable machine specific peephole optimizations" +#~ msgstr "Autoriser les optimisations des trous spcifiques une machine" + +#~ msgid "Enable an RTL peephole pass before sched2" +#~ msgstr "Autoriser l'excution de la passe RTL avant sched2" + +#~ msgid "Downgrade conformance errors to warnings" +#~ msgstr "Dgrader les erreurs de conformit en des avertissements" + +#~ msgid "Generate position-independent code if possible" +#~ msgstr "Gnrer du code indpendant de la position si possible" + +#~ msgid "Generate position-independent code for executables if possible" +#~ msgstr "Gnrer du code indpendant de la position pour les excutables si possible" + +#~ msgid "Generate prefetch instructions, if available, for arrays in loops" +#~ msgstr "Gnrer des instructions prrecherches, si disponible, pour les tableaux dans les boucles" + +#~ msgid "Treat the input file as already preprocessed" +#~ msgstr "Traiter le fichier d'entre comme ayant dj t pr-trait" + +#~ msgid "Enable basic program profiling code" +#~ msgstr "Autoriser le code de profilage de base du programme" + +#~ msgid "Insert arc-based program profiling code" +#~ msgstr "Insrer le code de profilage du programme de arc-based" + +#~ msgid "Enable common options for generating profile info for profile feedback directed optimizations" +#~ msgstr "Autoriser les options communes pour la gnration d'information de profile pour le feedback d'optimisation direct de profile" + +#~ msgid "Enable common options for performing profile feedback directed optimizations" +#~ msgstr "Autoriser les options communes pour effectuer le feedback d'optimisation direct de profile" + +#~ msgid "Insert code to profile values of expressions" +#~ msgstr "Insrer le code pour profile les expressions de valeurs" + +#~ msgid "-frandom-seed=\tMake compile reproducible using " +#~ msgstr "-frandom-seed=\tfaire une compilation reproduisible en utilisant " + +#~ msgid "Strength reduce all loop general induction variables" +#~ msgstr "Renforcer la rduction de toutes les boucles par induction des variables" + +#~ msgid "Return small aggregates in registers" +#~ msgstr "Retourner les petits aggrgats dans les registres" + +#~ msgid "Enables a register move optimization" +#~ msgstr "Autoriser l'optimisation des dplacements par registre" + +#~ msgid "Perform a register renaming optimization pass" +#~ msgstr "Effectuer une changement de nom de registres aprs une passe d'optimisation" + +#~ msgid "Reorder basic blocks to improve code placement" +#~ msgstr "R-ordonner les blocs de base pour amliorer l'emplacement de code" + +#~ msgid "Reorder functions to improve code placement" +#~ msgstr "R-ordonner les fonctions pour amliorer l'emplacement de code" + +#~ msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" +#~ msgstr "Utiliser le mode Fix-and-=Continue pour indique que des fichiers objets peuvent interchangs lors de l'excution" + +#~ msgid "Enable automatic template instantiation" +#~ msgstr "Autoriser l'instanciation automatique de canevas" + +#~ msgid "Add a common subexpression elimination pass after loop optimizations" +#~ msgstr "Ajouter une passe d'limination d'une sous-expression commune aprs les optimisations de boucle" + +#~ msgid "Run the loop optimizer twice" +#~ msgstr "Excuter l'optimiseur de boucle deux fois" + +#~ msgid "Disable optimizations that assume default FP rounding behavior" +#~ msgstr "Interdire les optimisation qui assument un comportement d'arrondissement FP par dfaut" + +#~ msgid "Generate run time type descriptor information" +#~ msgstr "Gnrer l'information pour un type de descripteur lors de l'excution" + +#~ msgid "Enable scheduling across basic blocks" +#~ msgstr "Autoriser l'ordonnancement travers les blocs de base" + +#~ msgid "Allow speculative motion of non-loads" +#~ msgstr "Autoriser le mouvement spculatif de non chargements" + +#~ msgid "Allow speculative motion of some loads" +#~ msgstr "Autoriser le mouvement spculatif de quelques chargements" + +#~ msgid "Allow speculative motion of more loads" +#~ msgstr "Autoriser le mouvement spculatif de plusieurs chargements" + +#~ msgid "Allow premature scheduling of queued insns" +#~ msgstr "Autoriser l'ordonnancement prmatur de queues insns" + +#~ msgid "Set dependence distance checking in premature scheduling of queued insns" +#~ msgstr "Fixer la distance de vrification de dpendance dans l'ordonnancement prmatur d'insns en queue" + +#~ msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" +#~ msgstr "-fsched-stalled-insns-dep= fixer la distance de vrification de dpendance dans l'ordonnancement d'insnsn en queue" + +#~ msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" +#~ msgstr "-fsched-stalled-insns= fixer le nombre d'insns en queu qui peuvent tre prmaturment ordonnancs" + +#~ msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" +#~ msgstr "-fsched-verbose=\tnitialiser le niveau de verbosit de l'ordonnanceur" + +#~ msgid "If scheduling post reload, do superblock scheduling" +#~ msgstr "Si l'ordonnancement fait une post recharge, faire un ordonnancement de super bloc" + +#~ msgid "If scheduling post reload, do trace scheduling" +#~ msgstr "Si l'ordonnancement fait une post recharge, laisse une trace de l'ordonnancement" + +#~ msgid "Reschedule instructions before register allocation" +#~ msgstr "Rordonnancer les instructions avant l'allocation de registres" + +#~ msgid "Reschedule instructions after register allocation" +#~ msgstr "Rordonnancer les instructions aprs l'allocation de registres" + +#~ msgid "Mark data as shared rather than private" +#~ msgstr "Marquer les donnes comme partages au lieu de prives" + +#~ msgid "Use the same size for double as for float" +#~ msgstr "Utiliser la mme taille pour un double que pour un flottant" + +#~ msgid "Use the narrowest integer type possible for enumeration types" +#~ msgstr "Utiliser le type d'entier le moins large possible pour les types d'numration" + +#~ msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" +#~ msgstr "craser le type sous-jacent de \"wchar_t\" vers \"unsigned short\"" + +#~ msgid "Disable optimizations observable by IEEE signaling NaNs" +#~ msgstr "Dsactiver les optimisations observable par le signalement NaNs IEEE" + +#~ msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" +#~ msgstr "Lorsque \"signed\" ou \"unsigned\" n,est pas fourni rendre le champ de bits sign" + +#~ msgid "Make \"char\" signed by default" +#~ msgstr "Rendre les char signs par dfaut" + +#~ msgid "Convert floating point constants to single precision constants" +#~ msgstr "Convertir les constantes en virgules flottantes en constantes de simple prcision" + +#~ msgid "Insert stack checking code into the program" +#~ msgstr "Insrer du code de vrificaion de la pile dans le programme" + +#~ msgid "-fstack-limit-register=\tTrap if the stack goes past " +#~ msgstr "-fstack-limit-register=\tfaire un droutement si la pile va au del du " + +#~ msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " +#~ msgstr "-fstack-limit-symbol=\tfaire un droutement si la pile va au del du symbole " + +#~ msgid "Display statistics accumulated during compilation" +#~ msgstr "Afficher les statistiques accumuls durant la compilation" + +#~ msgid "Perform strength reduction optimizations" +#~ msgstr "Excuter un rduction en force des optimisations" + +#~ msgid "Assume strict aliasing rules apply" +#~ msgstr "Prsumer que des rgles stricts d'alias s'appliquent" + +#~ msgid "Check for syntax errors, then stop" +#~ msgstr "Vrifier les erreurs de syntaxes et puis stopper" + +#~ msgid "-ftabstop=\tDistance between tab stops for column reporting" +#~ msgstr "-ftabstop=\tfixer la distance de la tabulation des colonnes dans les rapports" + +#~ msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" +#~ msgstr "-ftemplate-depth-\tspcifier la profondeur maximale d'instanciation de canevas" + +#~ msgid "Create data files needed by \"gcov\"" +#~ msgstr "Crer les fichiers de donnes ncessaires \"gcov\"" + +#~ msgid "Perform jump threading optimizations" +#~ msgstr "Excuter des optimisations de sauts de thread" + +#~ msgid "Report the time taken by each compiler pass" +#~ msgstr "Rapporter le temps pris par chaque passe de compilation" + +#~ msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" +#~ msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tinitialiser le modle de gnration de code par dfaut de thread local" + +#~ msgid "Perform superblock formation via tail duplication" +#~ msgstr "Excuter la formation du super bloc via la duplication de la queue" + +#~ msgid "Assume floating-point operations can trap" +#~ msgstr "On assume que les oprations en virgule flottante peuvent tre attrappes" + +#~ msgid "Trap for signed overflow in addition, subtraction and multiplication" +#~ msgstr "Attrapper les dbordements de signe dans l'addition, la soustraction et la multiplication" + +#~ msgid "Compile whole compilation unit at a time" +#~ msgstr "Compiler compltement la fois une unit de compilation" + +#~ msgid "Allow math optimizations that may violate IEEE or ISO standards" +#~ msgstr "Permettre les optimisations mathmatiques qui peuvent violer les standards IEEE ou ISO" + +#~ msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" +#~ msgstr "Lorsque \"signed\" ou \"unsigned\" n'est pas fourni rendre le champ de bits non sign" + +#~ msgid "Make \"char\" unsigned by default" +#~ msgstr "Rendre les \"char\" non signs par dfaut" + +#~ msgid "Perform loop unswitching" +#~ msgstr "Excuter des boucles sans branchement" + +#~ msgid "Just generate unwind tables for exception handling" +#~ msgstr "Gnrer simplement des tables tendues pour le traitement des exceptions" + +#~ msgid "Use __cxa_atexit to register destructors" +#~ msgstr "Utiliser __cxa_atexit pour enregistrer les destructeurs." + +#~ msgid "Add extra commentary to assembler output" +#~ msgstr "Ajouter des commentaires additionnels la sortie de l'assembleur" + +#~ msgid "Use expression value profiles in optimizations" +#~ msgstr "Utiliser le profile de la valeur d'expression dans l'optimisation" + +#~ msgid "Discard unused virtual functions" +#~ msgstr "carter les fonctions virtuelles non utilises" + +#~ msgid "Implement vtables using thunks" +#~ msgstr "Implanter les vtables en utilisant des thunks" + +#~ msgid "Emit common-like symbols as weak symbols" +#~ msgstr "Produire les symboles communs comme des symboles faibles" + +#~ msgid "Construct webs and split unrelated uses of single variable" +#~ msgstr "Construire une toile et sparer les utilisations de variables simples" + +#~ msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " +#~ msgstr "-fwide-exec-charset=\tconvertir toutes les chanes et les constantes larges de caractres en jeux de caractres " + +#~ msgid "Generate a #line directive pointing at the current working directory" +#~ msgstr "Gnrer une directive #ligne pointant sur le rpertoire courant de travail" + +#~ msgid "Assume signed arithmetic overflow wraps around" +#~ msgstr "Assumer un dbordement arithmtique sign enroul" + +#~ msgid "Store strings in writable data section" +#~ msgstr "Stocker les chanes dans les sections d'criture des donnes" + +#~ msgid "Emit cross referencing information" +#~ msgstr "Produire l'information des rfrences croises" + +#~ msgid "Put zero initialized data in the bss section" +#~ msgstr "Placer des donnes initialises de zros dans la section bss" + +#~ msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" +#~ msgstr "Gnrer un recherche molle de class (via objc_getClass()) pour l'utilisation en mode Zero-Link" + +#~ msgid "Generate debug information in default format" +#~ msgstr "Gnrer les informations de mise au point dans le format par dfaut" + +#~ msgid "Generate debug information in COFF format" +#~ msgstr "Gnrer les informations de mise au point dans le format COFF" + +#~ msgid "Generate debug information in DWARF v2 format" +#~ msgstr "Gnrer les informations de mise au point dans le format DWARF v2" + +#~ msgid "Dump declarations to a .decl file" +#~ msgstr "Vidanger les dclarations dans un fichier .decl" + +#~ msgid "Generate debug information in default extended format" +#~ msgstr "Gnrer les informations de mise au point dans le format tendu par dfaut" + +#~ msgid "Generate debug information in STABS format" +#~ msgstr "Gnrer les informations de mise au point dans le format STABS" + +#~ msgid "Generate debug information in extended STABS format" +#~ msgstr "Gnrer les informations de mise au point dans le format tendu STABS" + +#~ msgid "Generate debug information in VMS format" +#~ msgstr "Gnrer les informations de mise au point dans le format VMS" + +#~ msgid "Generate debug information in XCOFF format" +#~ msgstr "Gnrer les information de mise au point dans le format XCOFF" + +#~ msgid "Generate debug information in extended XCOFF format" +#~ msgstr "Gnrer les informations de mise au point dans le format tendu XCOFF" + +#~ msgid "-idirafter \tAdd to the end of the system include path" +#~ msgstr "-idirafter \tajouter la fin du chemin systme d'inclusion" + +#~ msgid "-imacros \tAccept definition of macros in " +#~ msgstr "-imacros \taccepter la dfinition de macros dans le " + +#~ msgid "-include \tInclude the contents of before other files" +#~ msgstr "-include \tinclure le contenu du avant les autres fichiers" + +#~ msgid "-iprefix \tSpecify as a prefix for next two options" +#~ msgstr "-iprefix \tslectionner le comme prfixer aux deux prochaines options" + +#~ msgid "-isysroot \tSet to be the system root directory" +#~ msgstr "-isysroot \tslectionner le comme rpertoire racine du systme" + +#~ msgid "-isystem \tAdd to the start of the system include path" +#~ msgstr "-isystem \tajouter le au dbut du chemin d'inclusion principal" + +#~ msgid "-iwithprefix \tAdd to the end of the system include path" +#~ msgstr "-iwithprefix \tajouter le la fin du chemin d'inclusion principal" + +#~ msgid "-iwithprefixbefore \tAdd to the end of the main include path" +#~ msgstr "-iwithprefixbefore \tajouter le la fin du chemin d'inclusion principal" + +#~ msgid "Do not search standard system include directories (those specified with -isystem will still be used)" +#~ msgstr "Ne pas rechercher les rpertoires standard systme d'inclusion (ceux spcifis avec -isystem seront encore utiliss)" + +#~ msgid "Do not search standard system include directories for C++" +#~ msgstr "Ne pas rechercher les rpertoires standard systme d'inclusion pour C++" + +#~ msgid "-o \tPlace output into " +#~ msgstr "-o \tproduire la sortie dans le " + +#~ msgid "Enable function profiling" +#~ msgstr "Autoriser le profilage de fonction" + +#~ msgid "Issue warnings needed for strict compliance to the standard" +#~ msgstr "mettre les avertissements ncessaires pour tre conforme au standard" + +#~ msgid "Like -pedantic but issue them as errors" +#~ msgstr "Identique -pedantic mais les marque comme des erreurs" + +#~ msgid "Generate C header of platform-specific features" +#~ msgstr "Gnrer les en-ttes C pour les options spcifiques la plate-forme" + +#~ msgid "Do not display functions compiled or elapsed time" +#~ msgstr "Ne pas afficher les fonctions compiles ou le temps coul" + +#~ msgid "Remap file names when including files" +#~ msgstr "Rampper les noms lors de l'inclusion des fichiers" + +#~ msgid "Conform to the ISO 1998 C++ standard" +#~ msgstr "Conforme au standard ISO C++ de 1998" + +#~ msgid "Conform to the ISO 1990 C standard" +#~ msgstr "Conforme au standard ISO C de 1990" + +#~ msgid "Conform to the ISO 1999 C standard" +#~ msgstr "Conforme au standard ISO C de 1999" + +#~ msgid "Deprecated in favor of -std=c99" +#~ msgstr "Obsolte la faveur de l'option -std=c99" + +#~ msgid "Conform to the ISO 1998 C++ standard with GNU extensions" +#~ msgstr "Conforme au standard ISO C++ de 1998 avec les extensions de GNU" + +#~ msgid "Conform to the ISO 1990 C standard with GNU extensions" +#~ msgstr "Conforme au standard ISO C de 1990 avec les extensions de GNU" + +#~ msgid "Conform to the ISO 1999 C standard with GNU extensions" +#~ msgstr "Conforme au standard ISO C de 1999 avec les extensions de GNU" + +#~ msgid "Deprecated in favor of -std=gnu99" +#~ msgstr "Obsolte la faveur de l'option -std=gnu99" + +#~ msgid "Deprecated in favor of -std=c89" +#~ msgstr "Obsolte la faveur de l'option -std=c89" + +#~ msgid "Conform to the ISO 1990 C standard as amended in 1994" +#~ msgstr "Conforme au standard ISO C de 1990 tel amend en 1994" + +#~ msgid "Enable traditional preprocessing" +#~ msgstr "Autoriser le traitement traditionnel" + +#~ msgid "-trigraphs\tSupport ISO C trigraphs" +#~ msgstr "-trigraphs\tSupporter les tri-graphes ISO C" + +#~ msgid "Do not predefine system-specific and GCC-specific macros" +#~ msgstr "Ne pas prdfinir les macros spcifiques au systme ou GCC" + +#~ msgid "Enable verbose output" +#~ msgstr "Autoriser le mode bavard sur la sortie" + +#~ msgid "Display the compiler's version" +#~ msgstr "Afficher la version du compilateur" + +#~ msgid "Suppress warnings" +#~ msgstr "Supprimer les avertissements" + +#~ msgid "`-p' not supported; use `-pg' and gprof(1)" +#~ msgstr " -p n'est pas support; utiliser -pg et gprof(1)" + +#~ msgid "GCC does not support -C without using -E" +#~ msgstr "GCC ne supporte pas -C sans utiliser -E" + +#~ msgid "GCC does not support -CC without using -E" +#~ msgstr "GCC ne supporte pas -CC sans utiliser -E" + +#~ msgid "may not use both -m32 and -m64" +#~ msgstr "ne peut utiliser ensemble -m32 et -m64" + +#~ msgid "shared and mdll are not compatible" +#~ msgstr "shared et mdll ne sont pas compatibles" + +#~ msgid "-current_version only allowed with -dynamiclib" +#~ msgstr "-current_version permis seulement avec -dynamiclib" + +#~ msgid "-install_name only allowed with -dynamiclib" +#~ msgstr "-install_name permis seulement avec with -dynamiclib" + +#~ msgid "-bundle not allowed with -dynamiclib" +#~ msgstr "-bundle n'est pas permis avec -dynamiclib" + +#~ msgid "-bundle_loader not allowed with -dynamiclib" +#~ msgstr "-bundle_loader n'est pas permis avec -dynamiclib" + +#~ msgid "-client_name not allowed with -dynamiclib" +#~ msgstr "-client_name n'est pas permis avec -dynamiclib" + +#~ msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" +#~ msgstr "-force_cpusubtype_ALL n'est pas permis avec -dynamiclib" + +#~ msgid "-force_flat_namespace not allowed with -dynamiclib" +#~ msgstr "-force_flat_namespace n'est pas permis avec -dynamiclib" + +#~ msgid "-keep_private_externs not allowed with -dynamiclib" +#~ msgstr "-keep_private_externs n'est pas permis avec -dynamiclib" + +#~ msgid "-private_bundle not allowed with -dynamiclib" +#~ msgstr "-private_bundle n'est pas permis avec -dynamiclib" + +#~ msgid "The -shared option is not currently supported for VAX ELF." +#~ msgstr "L'option -shared n'est pas couramment supporte pour VAS ELF." + +#~ msgid "profiling not supported with -mg\n" +#~ msgstr "profilage n'est pas support avec -mg\n" + +#~ msgid "may not use both -EB and -EL" +#~ msgstr "ne peut utiliser ensemble -EB et -EL" + +#~ msgid "-pipe is not supported" +#~ msgstr "-pipe n'est pas support" + +#~ msgid "-pg and -fomit-frame-pointer are incompatible" +#~ msgstr "-pg et -fomit-frame-pointer sont incompatibles" + +#~ msgid "-fjni and -femit-class-files are incompatible" +#~ msgstr "-fjni et -femit-class-files sont incompatibles" + +#~ msgid "-fjni and -femit-class-file are incompatible" +#~ msgstr "-fjni et -femit-class-file sont incompatibles" + +#~ msgid "-femit-class-file should used along with -fsyntax-only" +#~ msgstr "-femit-class-file dervait tre utilis avec -fsyntax-only" + +#~ msgid "-pg or -p and -fomit-frame-pointer are incompatible" +#~ msgstr "-pg et -p et -fomit-frame-pointer sont incompatibles" + +#~ msgid "does not support multilib" +#~ msgstr "ne supporte pas multilib" + +#~ msgid "-pg not supported on this platform" +#~ msgstr "-pg n'est pas support sur cette plate-forme" + +#~ msgid "-p and -pp specified - pick one" +#~ msgstr "-p et -pp spcifi - n'en prendre qu'un seul" + +#~ msgid "-G and -static are mutually exclusive" +#~ msgstr "-G et -static sont mutuellement exclusives" + +#~ msgid "-mapcs-26 and -mapcs-32 may not be used together" +#~ msgstr "-mapcs-26 et -mapcs-32 ne peuvent tre utiliss ensembles" + +#~ msgid "-msoft-float and -mhard_float may not be used together" +#~ msgstr "-msoft-float et -mhard_float ne peuvent tre utilises ensembles" + +#~ msgid "-mbig-endian and -mlittle-endian may not be used together" +#~ msgstr "-mbig-endian et -mlittle-endian ne peuvent tre utiliss ensemble" + +#~ msgid "the m210 does not have little endian support" +#~ msgstr "Le m210 ne supporte pas le code pour systme octets de poids faible" + +#~ msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" +#~ msgstr "une parmi -c, -S, -gnatc, -gnatz ou -gnats est requise pour Ada" + +#~ msgid "-mhard-float not supported" +#~ msgstr "-mhard-float n'est pas support" + +#~ msgid "-msingle-float and -msoft-float can not both be specified" +#~ msgstr "-msingle-float et -msoft-float ne peuvent tre spcifis ensembles" + +#~ msgid " conflicting code gen style switches are used" +#~ msgstr " code de gnration de style de switches utilises est en conflit" + +#~ msgid "GCC does not support -C or -CC without -E" +#~ msgstr "GCC ne supporte pas -C ou -CC sans utiliser -E" + +#~ msgid "-E required when input is from standard input" +#~ msgstr "-E est requis lorsque l'entre est faite partir de l'entre standard" + +#~ msgid "mno-cygwin and mno-win32 are not compatible" +#~ msgstr "mno-cygwin et mno-win32 ne sont pas compatibles" + +#~ msgid "pointer to a member used in arithmetic" +#~ msgstr "usage en arithmtique d'un pointeur vers un membre" + +#~ msgid "declaration of \"%s\" shadows a parameter" +#~ msgstr "la dclaration de %s masque un paramtre" + +#~ msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n" +#~ msgstr "Copyright 2003 Free Software Foundation, Inc.\n" + +#~ msgid "Use the 26-bit version of the APCS" +#~ msgstr "Utiliser la version 26 bits de APCS" + +#~ msgid "duplicate enum value `%D'" +#~ msgstr "valeur d'numrateur %D en double" + +#~ msgid "duplicate field `%D' (as enum and non-enum)" +#~ msgstr "champ %D en double (comme enum et non enum)" + +#~ msgid "duplicate nested type `%D'" +#~ msgstr "type %D imbriqu en double" + +#~ msgid "duplicate field `%D' (as type and non-type)" +#~ msgstr "duplicattion du champ %D (comme type et non type)" + +#~ msgid "duplicate member `%D'" +#~ msgstr "membre %D est double" + +#~ msgid "ISO C++ forbids member `%D' with same name as enclosing class" +#~ msgstr "ISO C++ interdit le membre %D avec le mme non de la classe de fermeture" + +#~ msgid "field `%D' declared static in union" +#~ msgstr "champ %D dclar statique dans l'union" + +#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class" +#~ msgstr "ISO C++ interdit les donnes de membres statiques %D avec le mme nom comme classe de fermeture" + +#~ msgid "anachronistic use of array size in vector delete" +#~ msgstr "utilisation anachronique de la taille d'un tableau dans un vecteur delete" + +#~ msgid "ISO C++ forbids aggregate initializer to new" +#~ msgstr "ISO C++ interdit l'aggrgation d'initialiseur new" + +#~ msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." +#~ msgstr "ni le destructeur ni l'oprateur delete spcifique la classe ne sera appell, mme s'ils sont dclars lorsque la classe est dfinie" + +#~ msgid "Warn if deprecated class, method, or field is used" +#~ msgstr "Avertir si une classe, une mthode ou un champ obsolte est utilis" + +#~ msgid "Warn if deprecated empty statements are found" +#~ msgstr "Avertir si des dclarations vides obsoltes sont trouves" + +#~ msgid "Enable warnings about inter-procedural problems" +#~ msgstr "Autoriser les avertissements propos des problmes inter-procdural" + +#~ msgid "Warn if .class files are out of date" +#~ msgstr "Avertir si des fichier .class sont primes" + +#~ msgid "Warn if modifiers are specified when not necessary" +#~ msgstr "Avertir si des modificateurs sont spcifis sans que cela ne soit ncessaires" + +#~ msgid "Warn about constructs with surprising meanings" +#~ msgstr "Avertir propos des construits ayant des sens surprenants" + +#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead" +#~ msgstr "--CLASSPATH\tobsolte; utiliser --classpath la place" + +#~ msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +#~ msgstr "Traiter les variables locales et les blocs COMMON comme s'ils taient nomms dans une dclaration SAVE" + +#~ msgid "Backslashes in character and hollerith constants are special (not C-style)" +#~ msgstr "Barres obliques inverses dans les constantes de caractres ou d'hollerith ne sont pas particulires (pas de style C)" + +#~ msgid "Delete libU77 intrinsics with bad interfaces" +#~ msgstr "Dtruire les intrinsques libU77 ayant des interfaces errones" + +#~ msgid "Disable libU77 intrinsics with bad interfaces" +#~ msgstr "Dsactiver les intrinsques libU77 ayant des interfaces errones" + +#~ msgid "Enable libU77 intrinsics with bad interfaces" +#~ msgstr "Autoriser les intrinsques libU77 ayant des interfaces errones" + +#~ msgid "Hide libU77 intrinsics with bad interfaces" +#~ msgstr "Cacher les intrinsques libU77 ayant des interfaces errones" + +#~ msgid "--bootclasspath=\tReplace system path" +#~ msgstr "--bootclasspath=\tremplacer le systme" + +#~ msgid "Program written in strict mixed-case" +#~ msgstr "Programme crit dans une stricte casse mlange" + +#~ msgid "Compile as if program written in lowercase" +#~ msgstr "Compiler comme si le programme tait crit en minuscules" + +#~ msgid "Preserve case used in program" +#~ msgstr "Prserver la casse utilise dans un programme" + +#~ msgid "Program written in lowercase" +#~ msgstr "Programmes crit en minuscules" + +#~ msgid "Program written in uppercase" +#~ msgstr "Programme crit en majuscules" + +#~ msgid "Compile as if program written in uppercase" +#~ msgstr "Compiler comme si le programme tait crit en majuscules" + +#~ msgid "--classpath=\tSet class path" +#~ msgstr "--classpath=\tfixer le chemin des classes" + +#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +#~ msgstr "Produire des information spciales de mise au point pour COMMON et EQUIVALENCE (dsactiv)" + +#~ msgid "Allow '$' in symbol names" +#~ msgstr "Permettre '$' dans les noms de symboles" + +#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +#~ msgstr "Avoir un frontal d'mulation pour l'arithmtique COMPLEXE pour viter les bugs" + +#~ msgid "--encoding=\tChoose input encoding (defaults from your locale)" +#~ msgstr "--encoding=\tchoisir l'encodade d'entre (par dfaut provient de la locale)" + +#~ msgid "f2c-compatible code can be generated" +#~ msgstr "code f2c compatible peut tre gnr" + +#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Dtruire les supports f2c intrinsques non Fortran 77" + +#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Dsactiver les supports f2c intrinsques non Fortran 77" + +#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Autoriser les supports f2c intrinsques non Fortran 77" + +#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +#~ msgstr "Cacher les supports f2c intrinsques non Fortran 77" + +#~ msgid "Unsupported; generate libf2c-calling code" +#~ msgstr "Non support; gnrer le code d'appel libf2c" + +#~ msgid "Program is written in typical FORTRAN 66 dialect" +#~ msgstr "Programme est crit dans un dialecte typique FORTRAN 66" + +#~ msgid "Program is written in typical Unix-f77 dialect" +#~ msgstr "Programme est crit dans un dialecte typique Unix f77" + +#~ msgid "Program is written in Fortran-90-ish dialect" +#~ msgstr "Programme est crit dans un dialecte Fortran 90" + +#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Dtruire les supports F90 intrinsques non Fortran 77" + +#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Dsactiver les supports F90 intrinsques non Fortran 77" + +#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Autoriser les supports F90 intrinsques non Fortran 77" + +#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +#~ msgstr "Cacher les supports F90 intrinsques non Fortran 77" + +#~ msgid "ffixed-line-length-\tSet the maximum line length to " +#~ msgstr "ffixed-line-limit-\tfixer la longueur maximale de la ligne " + +#~ msgid "Unsupported; affects code generation of arrays" +#~ msgstr "Non support; affecte la gnration de code des tableaux" + +#~ msgid "Always check for non gcj generated classes archives" +#~ msgstr "Toujours vrifier dans les archives de classes non gnres gcj" + +#~ msgid "Generate code to check subscript and substring bounds" +#~ msgstr "Gnrer du code pour vrifier les bornes des souscripts et des sous-chanes" + +#~ msgid "Program is written in Fortran-90-ish free form" +#~ msgstr "Programme est crit dans un style libre Fortran 90" + +#~ msgid "Enable fatal diagnostics about inter-procedural problems" +#~ msgstr "Autoriser les diagnostiques fatals propos des problmes entre procdures" + +#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +#~ msgstr "Dtruire les supports g77 intrinsques non Fortran 77" + +#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +#~ msgstr "Dsactiver les supports g77 intrinsques non Fortran 77" + +#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +#~ msgstr "Autoriser les supports F90 intrinsques non Fortran 77" + +#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +#~ msgstr "Cacher les supports g77 intrinsques non Fortran 77" + +#~ msgid "Use offset tables for virtual method calls" +#~ msgstr "Utiliser des tables de dcalage pour les appels de mthodes virtuelles" + +#~ msgid "Initialize local vars and arrays to zero" +#~ msgstr "Initialiser les vars locales et les tableaux zro" + +#~ msgid "Intrinsics letters in arbitrary cases" +#~ msgstr "Lettres d'instrinsques en casse arbitraire" + +#~ msgid "Intrinsics spelled as e.g. SqRt" +#~ msgstr "Intrinsques pelles tel que SqRt" + +#~ msgid "Intrinsics in lowercase" +#~ msgstr "Intrinsques en minuscules" + +#~ msgid "Intrinsics in uppercase" +#~ msgstr "Intrinsques en majuscules" + +#~ msgid "Assume native functions are implemented using JNI" +#~ msgstr "Prsumer que les fonctions natives sont implantes et qu'elles utilisent JNI" + +#~ msgid "Language keyword letters in arbitrary cases" +#~ msgstr "Lettres des mots cls du langage dans des casses arbitraires" + +#~ msgid "Language keywords spelled as e.g. IOStat" +#~ msgstr "Mots cls du langage pells tel que IOStat" + +#~ msgid "Language keywords in lowercase" +#~ msgstr "Mots cls du langage en minuscules" + +#~ msgid "Language keywords in uppercase" +#~ msgstr "Mots cls du langage en majuscules" + +#~ msgid "Delete MIL-STD 1753 intrinsics" +#~ msgstr "Dtruire les intrinsques MIL-STD 1753" + +#~ msgid "Disable MIL-STD 1753 intrinsics" +#~ msgstr "Dsactiver les intrinsques MIL-STD 1753" + +#~ msgid "Enable MIL-STD 1753 intrinsics" +#~ msgstr "Autoriser intrinsques MIL-STD 1753" + +#~ msgid "Hide MIL-STD 1753 intrinsics" +#~ msgstr "Cacher les intrinsques MIL-STD 1753" + +#~ msgid "Take at least one trip through each iterative DO loop" +#~ msgstr "Excuter une dernire fois la visite traves chaque boucle itrative DO" + +#~ msgid "Enable optimization of static class initialization code" +#~ msgstr "Autorisser l'optimisation du code d'initialisation de classe statique" + +#~ msgid "Warn about use of (only a few for now) Fortran extensions" +#~ msgstr "Avertir propos de l'utilisation (trs peu pour l'instant) des extensions Fortran" + +#~ msgid "Allow appending a second underscore to externals" +#~ msgstr "Permettre l'ajout d'un second caractre de soulignement aux externes" + +#~ msgid "Do not print names of program units as they are compiled" +#~ msgstr "Afficher les noms des units de programme tels que compiles" + +#~ msgid "Internally convert most source to lowercase" +#~ msgstr "Convertir de manire interne la majorit des sources en majuscules" + +#~ msgid "Internally preserve source case" +#~ msgstr "Prserver l'interne la casse des sources" + +#~ msgid "Internally convert most source to uppercase" +#~ msgstr "Convertir l'interne la majorit des sources en majuscules" + +#~ msgid "Enable assignability checks for stores into object arrays" +#~ msgstr "Autoriser la vrificaitions des affectations dans le stockage des tableaux d'objets" + +#~ msgid "Symbol names spelled in mixed case" +#~ msgstr "Noms des symboles pells dans des casses mlanges" + +#~ msgid "Symbol names in lowercase" +#~ msgstr "Noms de symboles en minuscules" + +#~ msgid "Symbol names in uppercase" +#~ msgstr "Noms des symboles en majuscules" + +#~ msgid "Make prefix-radix non-decimal constants be typeless" +#~ msgstr "Rendre les prfixes des bases des constantes non dcimales sans type" + +#~ msgid "Allow all ugly features" +#~ msgstr "Permettre toutes les options laides" + +#~ msgid "Hollerith and typeless can be passed as arguments" +#~ msgstr "Les Hollerith et sans type peuvent tre passs comme arguments" + +#~ msgid "Allow ordinary copying of ASSIGN'ed vars" +#~ msgstr "Permettre le copie ordinaire des variable affectes" + +#~ msgid "Dummy array dimensioned to (1) is assumed-size" +#~ msgstr "Tableau factice dont la taille des dimensions (1) est assume" + +#~ msgid "Trailing comma in procedure call denotes null argument" +#~ msgstr "Virgule de fin dans l'appel de la procdure dnote un argument nul" + +#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +#~ msgstr "Permettre REAL(Z) et AIMAG(Z) pour les DOUBLE COMPLEX Z" + +#~ msgid "Initialization via DATA and PARAMETER is not type-compatible" +#~ msgstr "Initialisation via DATA et PARAMETER n'est pas un type compatible" + +#~ msgid "Allow INTEGER and LOGICAL interchangeability" +#~ msgstr "Permettre l'interchangeabilit de INTEGER et LOGICAL" + +#~ msgid "Append underscores to externals" +#~ msgstr "Ajouter des caractres de soulignement aux externes" + +#~ msgid "Delete libU77 intrinsics" +#~ msgstr "Dtruire les intrinsques libU77" + +#~ msgid "Disable libU77 intrinsics" +#~ msgstr "Dsactiver les intrinsques libU77" + +#~ msgid "Enable libU77 intrinsics" +#~ msgstr "Autoriser les intrinsques libU77" + +#~ msgid "Hide libU77 intrinsics" +#~ msgstr "Cacher les intrinsques libU77" + +#~ msgid "Print g77-specific version information and run internal tests" +#~ msgstr "Afficher les informations de version spcifiques du compilateur g77, excuter les tests internes" + +#~ msgid "Program is written in VXT (Digital-like) FORTRAN" +#~ msgstr "Programme est crit en Fortran VXT (forme de Digital)" + +#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Dtruire les supports VXT Fortran intrinsques non Fortran-77" + +#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Dsactiver les supports VXT Fortran intrinsques non Fortran-77" + +#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Dsactiver les supports VXT Fortran intrinsques non Fortran-77" + +#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +#~ msgstr "Cacher les supports VXT Fortran des intrinsques non Fortran-77" + +#~ msgid "Print internal debugging-related information" +#~ msgstr "Afficher les informations internes relies la mise au point" + +#~ msgid "Treat initial values of 0 like non-zero values" +#~ msgstr "Traiter les valeurs initiales de 0 comme des valeurs non zros" + +#~ msgid "-gnat\tSpecify options to GNAT" +#~ msgstr "-gnat\tSpcifier les options pour GNAT" + +#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" +#~ msgstr "la concatnation de chanes de litraux avec __FUNCTION__ est obsolte" + +#~ msgid "ISO C++ forbids range expressions in switch statements" +#~ msgstr "ISO C++ interdit les intervalles dans les dclarations de switch " + +#~ msgid "ISO C++ forbids taking the address of a label" +#~ msgstr "ISO C++ interdit de prendre l'adresse d'une tiquette" + +#~ msgid "ISO C forbids taking the address of a label" +#~ msgstr "ISO C interdit de prendre l'adresse d'une tiquette" + +#~ msgid "declaration of `%s' shadows %s" +#~ msgstr "la dclaration de %s masque %s" + +#~ msgid "`struct %s' incomplete in scope ending here" +#~ msgstr " struct %s incomplte dans le champ terminant ici" + +#~ msgid "`union %s' incomplete in scope ending here" +#~ msgstr " union %s incomplte dans le champ terminant ici" + +#~ msgid "`enum %s' incomplete in scope ending here" +#~ msgstr " enum %s incomplte dans le champ terminant ici" + +#~ msgid "label `%s' defined but not used" +#~ msgstr "tiquette %s dfinie mais pas utilise" + +#~ msgid "shadowing library function `%s'" +#~ msgstr "masquage de la fonction %s de la bibliothque" + +#~ msgid "library function `%s' declared as non-function" +#~ msgstr "fonction %s de la bibliothque dclare comme n'tant pas une fonction" + +#~ msgid "conflicting types for `%s'" +#~ msgstr "types conflictuels pour %s " + +#~ msgid "redeclaration of `%s'" +#~ msgstr "redclaration de %s " + +#~ msgid "prototype for `%s' follows" +#~ msgstr "le prototype de %s suit" + +#~ msgid "non-prototype definition here" +#~ msgstr "dfinition d'un non prototype ici" + +#~ msgid "prototype for `%s' follows and number of arguments doesn't match" +#~ msgstr "le prototype de %s suit mais le nombre d'arguments ne concorde pas" + +#~ msgid "prototype for `%s' follows and argument %d doesn't match" +#~ msgstr "le prototype de %s suit mais le nombre d'arguments %d ne concorde pas" + +#~ msgid "type qualifiers for `%s' conflict with previous decl" +#~ msgstr "le qualificateur du type de %s est en conflit avec une dclaration prcdente" + +#~ msgid "redundant redeclaration of `%s' in same scope" +#~ msgstr "redclaration redondante de %s dans le mme champ" + +#~ msgid "a parameter" +#~ msgstr "un paramtre" + +#~ msgid "a previous local" +#~ msgstr "une locale prcdente" + +#~ msgid "a global declaration" +#~ msgstr "une dclaration globale" + +#~ msgid "`%s' used prior to declaration" +#~ msgstr " %s utilis avant sa dclaration" + +#~ msgid "`%s' was declared implicitly `extern' and later `static'" +#~ msgstr " %s a t dclar implicitement extern et plus loin static " + +#~ msgid "previous external decl of `%s'" +#~ msgstr "dclaration externe prcdente de %s " + +#~ msgid "type mismatch with previous implicit declaration" +#~ msgstr "non concordance de type avec la dclaration implicite prcdente" + +#~ msgid "`%s' was previously implicitly declared to return `int'" +#~ msgstr " %s a t prcdemment dclar implicitement comme retournant un int " + +#~ msgid "`%s' was declared `extern' and later `static'" +#~ msgstr " %s a t dclar extern et plus loin static " + +#~ msgid "`%s' locally external but globally static" +#~ msgstr " %s localement externe mais globalement statique" + +#~ msgid "function `%s' was previously declared within a block" +#~ msgstr "la fonction %s a t prcdemment dclare l'intrieur d'un bloc" + +#~ msgid "declaration of `%s' has `extern' and is initialized" +#~ msgstr " %s initialis et dclar extern " + +#~ msgid "initializer fails to determine size of `%s'" +#~ msgstr "l'initialisation n'a pas pu dterminer la taille de %s " + +#~ msgid "array size missing in `%s'" +#~ msgstr "taille du tableau manquante dans %s " + +#~ msgid "storage size of `%s' isn't known" +#~ msgstr "taille de stockage de %s inconnue" + +#~ msgid "storage size of `%s' isn't constant" +#~ msgstr "la taille de stockage de %s n'est pas une constante" + +#~ msgid "ISO C forbids parameter `%s' shadowing typedef" +#~ msgstr "ISO C interdit que le paramtre %s masque un typedef" + +#~ msgid "parameter `%s' points to incomplete type" +#~ msgstr "le paramtre %s pointe vers un type incomplet" + +#~ msgid "parameter points to incomplete type" +#~ msgstr "le paramtre pointe vers un type incomplet" + +#~ msgid "`void' in parameter list must be the entire list" +#~ msgstr "si void est dans une liste de paramtres, toute la liste doit l'tre" + +#~ msgid "`union %s' declared inside parameter list" +#~ msgstr " union %s dclare l'intrieur de la liste de paramtres" + +#~ msgid "`enum %s' declared inside parameter list" +#~ msgstr " enum %s dclare l'intrieur de la liste de paramtres" + +#~ msgid "anonymous union declared inside parameter list" +#~ msgstr "union anonyme dclare l'intrieur de la liste des paramtres" + +#~ msgid "anonymous enum declared inside parameter list" +#~ msgstr "numration anonyme dclare l'intrieur de la liste des paramtres" + +#~ msgid "bit-field `%s' type invalid in ISO C" +#~ msgstr "le champ de bits %s a un type invalide en C ISO" + +#~ msgid "duplicate member `%s'" +#~ msgstr "membre %s apparat en double" + +#~ msgid "parm types given both in parmlist and separately" +#~ msgstr "types des paramtres la fois donns dans la liste et sparment" + +#~ msgid "parameter `%s' declared void" +#~ msgstr "paramtre %s dclar void " + +#~ msgid "universal-character-name '\\u%04x' not valid in identifier" +#~ msgstr "nom-de-caractre-universel \\U%04x invalide dans l'identificcateur" + +#~ msgid "ignoring invalid multibyte character" +#~ msgstr "caractre multioctet invalide ignor" + +#~ msgid "options array incorrectly sorted: %s is before %s" +#~ msgstr "tableau des options mal tri : %s est avant %s" + +#~ msgid "-Wno-strict-prototypes is not supported in C++" +#~ msgstr "-Wno-strict-prototypes n'est pas permis en C++" + +#~ msgid "" +#~ "Switches:\n" +#~ " -include Include the contents of before other files\n" +#~ " -imacros Accept definition of macros in \n" +#~ " -iprefix Specify as a prefix for next two options\n" +#~ " -iwithprefix Add to the end of the system include path\n" +#~ " -iwithprefixbefore Add to the end of the main include path\n" +#~ " -isystem Add to the start of the system include path\n" +#~ msgstr "" +#~ "Options:\n" +#~ " -include Inclure le contenu du avant d'autres fichiers\n" +#~ " -imacros Accepter la dfinition de macros dans le \n" +#~ " -iprefix Spcifier le comme un prfixe aux prochaines deux options\n" +#~ " -iwithprefix Ajouter le ertoire la fin du chemin d'inclusion systme\n" +#~ " -iwithprefixbefore Ajouter le ertoire la fin du chemin d'inclusion principal\n" +#~ " -isystem Ajouter le ertoire au dbut du chemin d'inclusion systme\n" + +#~ msgid "" +#~ " -idirafter Add to the end of the system include path\n" +#~ " -I Add 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 Put output into \n" +#~ msgstr "" +#~ " -idirafter Ajouter le ertoire la fin du chemin d'inclusion systme\n" +#~ " -I Ajouter le ertoire la fin du chemin d'inclusion principal\n" +#~ " -I- Raffiner le contrle du chemin d'inclusion; consulter la doc\n" +#~ " -nostdinc Ne pas rechercher dans les rpertoires d'inclusion systme\n" +#~ " (les rp spcifis avec -isystem seront encore utiliss)\n" +#~ " -nostdinc++ Ne pas rechercher dans les rpertoires d'inclusion systme pour C++\n" +#~ " -o Produire la sortie dans le \n" + +#~ msgid "" +#~ " -trigraphs Support ISO C trigraphs\n" +#~ " -std= 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= Spcifier le de conformit utiliser; soit:\n" +#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n" +#~ " iso9899:199409, iso9899:1999, c++98\n" +#~ " -w Inhiber les messages d'avertissement\n" +#~ " -W[no-]trigraphs Avertir [ou non] si des trigraphes sont rencontrs\n" +#~ " -W[no-]comment{s} Avertir [ou non] si un commentaire dbute l'intrieur \n" +#~ " d'un autre\n" + +#~ msgid "" +#~ " -W[no-]traditional Warn about features not present in traditional C\n" +#~ " -W[no-]undef Warn if an undefined macro is used by #if\n" +#~ " -W[no-]import Warn about the use of the #import directive\n" +#~ msgstr "" +#~ " -W[no-]traditional Avertir [ou non] propos des fonctionnalits absentes\n" +#~ " en C traditionnel\n" +#~ " -W[no-]undef Avertir [ou non] propos des macros utilises dans des\n" +#~ " #if sans tre dfinies\n" +#~ " -W[no-]import Avertir [ou non] de l'utilisation de la directive #import\n" + +#~ msgid "" +#~ " -W[no-]error Treat all warnings as errors\n" +#~ " -W[no-]system-headers Do not suppress warnings from system headers\n" +#~ " -W[no-]all Enable most preprocessor warnings\n" +#~ msgstr "" +#~ " -W[no-]error Changer [ou non] les avertissements en erreurs\n" +#~ " -W[no-]system-headers Supprimer [ou non] les avertissements propos des \n" +#~ " en-ttes systme\n" +#~ " -W[no-]all Gnrer [ou non] la plupart des avertissements du\n" +#~ " prprocesseur\n" + +#~ msgid "" +#~ " -M Generate make dependencies\n" +#~ " -MM As -M, but ignore system header files\n" +#~ " -MD Generate make dependencies and compile\n" +#~ " -MMD As -MD, but ignore system header files\n" +#~ " -MF Write dependency output to the given file\n" +#~ " -MG Treat missing header file as generated files\n" +#~ msgstr "" +#~ " -M Gnrer les dpendances pour make\n" +#~ " -MM Comme -M, en ignorant les fichiers d'en-ttes systme\n" +#~ " -MD Gnrer les dpendances pour make et compiler\n" +#~ " -MMD Comme -MD, en ignorant les fichiers d'en-ttes systme\n" +#~ " -MF crire les dpendances dans le \n" +#~ " -MG Traiter les en-ttes manquants comme des fichiers gnrs\n" + +#~ msgid "" +#~ " -MP\t\t\t Generate phony targets for all headers\n" +#~ " -MQ Add a MAKE-quoted target\n" +#~ " -MT Add an unquoted target\n" +#~ msgstr "" +#~ " -MP\t\t\t Gnrer des cibles factices pour tous les en-ttes\n" +#~ " -MQ Ajouter une cible protge pour MAKE\n" +#~ " -MT Ajouter une cible non protge\n" + +#~ msgid "" +#~ " -D Define a with string '1' as its value\n" +#~ " -D= Define a with as its value\n" +#~ " -A= Assert the to \n" +#~ " -A-= Disable the to \n" +#~ " -U Undefine \n" +#~ " -v Display the version number\n" +#~ msgstr "" +#~ " -D Dfinir une avec la chane 1 pour valeur\n" +#~ " -D= Dfinir une de \n" +#~ " -A=() Crer une assertion =\n" +#~ " -A-=() Dissocier la la \n" +#~ " -U Oublier la dfinition de la \n" +#~ " -v Afficher le numro de version\n" + +#~ msgid "" +#~ " -H Print the name of header files as they are used\n" +#~ " -C Do not discard comments\n" +#~ " -dM Display a list of macro definitions active at end\n" +#~ " -dD Preserve macro definitions in output\n" +#~ " -dN As -dD except that only the names are preserved\n" +#~ " -dI Include #include directives in the output\n" +#~ msgstr "" +#~ " -H Afficher le nom des fichiers en-tte tel qu'utiliss\n" +#~ " -C Ne pas mettre de ct les commantaires\n" +#~ " -dM Afficher la liste des dfinitions de macro actives la fin\n" +#~ " -dD Prserver les dfinitions de macros dans la sortie\n" +#~ " -dN Comme -dD, mais seuls les noms sont prservs\n" +#~ " -dI Inclure la directive #include dans la sortie\n" + +#~ msgid "" +#~ " -f[no-]preprocessed Treat the input file as already preprocessed\n" +#~ " -ftabstop= Distance between tab stops for column reporting\n" +#~ " -P Do not generate #line directives\n" +#~ " -remap Remap file names when including files\n" +#~ " --help Display this information\n" +#~ msgstr "" +#~ " -f[no-]preprocessed Considrer [ou non] que le fichier d'entre est \n" +#~ " dj pr-trait\n" +#~ " -ftabstop= Largeur des tabulations pour indiquer la colonne\n" +#~ " -P Ne pas gnrer des directives #ligne\n" +#~ " -remap Refaire la table des noms de fichiers lors de\n" +#~ " l'inclusion de fichiers\n" +#~ " --help Afficher cet l'aide-mmoire\n" + +# FIXME +#~ msgid "ISO C forbids the address of a cast expression" +#~ msgstr "ISO C interdit l'adresse d'une expression transtype" + +#~ msgid "initializer for static variable is not constant" +#~ msgstr "l'initialisation d'une variable statique n'est pas une constante" + +#~ msgid "initializer for static variable uses complicated arithmetic" +#~ msgstr "l'initialisation d'une variable statique utilise une artihmtique complique" + +# FIXME +#~ msgid "aggregate initializer is not constant" +#~ msgstr "l'initialisation d'aggrgat n'est pas une constante" + +# FIXME +#~ msgid "aggregate initializer uses complicated arithmetic" +#~ msgstr "l'initialisation d'un aggrgat utilise une arithmtique complique" + +# FIXME +#~ msgid "variable offset is passed partially in stack and in reg" +#~ msgstr "le dcalage de variable est pass partiellement dans la pile et dans le registre" + +#~ msgid "variable size is passed partially in stack and in reg" +#~ msgstr "la taille de la variable est passe partiellement dans la pile et le registre" + +# I18N +#~ msgid "open %s" +#~ msgstr "open %s" + +#~ msgid "incompatibilities between object file & expected values" +#~ msgstr "incompatibilits entre le fichier objet et les valeurs attendues" + +#~ msgid "" +#~ "\n" +#~ "Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n" +#~ msgstr "" +#~ "\n" +#~ "Traitement de la table des symboles #%d, dcalage = 0x%.8lx, sorte = %s\n" + +# FIXME +#~ msgid "string section missing" +#~ msgstr "chane de section manquante" + +#~ msgid "section pointer missing" +#~ msgstr "pointeur de section manquant" + +#~ msgid "no symbol table found" +#~ msgstr "aucune table des symboles trouve" + +#~ msgid "" +#~ "\n" +#~ "Updating header and load commands.\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "Mise jour des en-ttes et des commandes de chargement.\n" +#~ "\n" + +# FIXME +#~ msgid "load command map, %d cmds, new size %ld.\n" +#~ msgstr "Chargement de la carte des commandes, %d commandes, nouvelle taille %ld.\n" + +#~ msgid "" +#~ "writing load commands.\n" +#~ "\n" +#~ msgstr "" +#~ "criture des commandes de chargement.\n" +#~ "\n" + +# I18N +#~ msgid "close %s" +#~ msgstr "close %s" + +#~ msgid "could not convert 0x%l.8x into a region" +#~ msgstr "ne peut convertir 0x%l.8x en rgion" + +#~ msgid "%s function, region %d, offset = %ld (0x%.8lx)\n" +#~ msgstr "fonction %s, rgion %d, dcalage = %ld (0x%.8lx)\n" + +#~ msgid "bad magic number" +#~ msgstr "nombre magique erron" + +#~ msgid "bad header version" +#~ msgstr "version d'en-tte errone" + +# FIXME: ou version d'en-tte brut errone +#~ msgid "bad raw header version" +#~ msgstr "version brute d'en-tte errone" + +# FIXME: ou tampon d'en-tte brut trop petit +#~ msgid "raw header buffer too small" +#~ msgstr "tampon brut d'en-tte trop petit" + +#~ msgid "old raw header file" +#~ msgstr "ancien fichier d'en-tte brute" + +#~ msgid "unsupported version" +#~ msgstr "version non reconnue" + +#~ msgid "unknown {de,en}code_mach_o_hdr return value %d" +#~ msgstr "mauvaise valeur de retour (%d) de {de,en}code_mach_o_hdr" + +# I18N +#~ msgid "fstat %s" +#~ msgstr "fstat %s" + +# I18N +#~ msgid "lseek %s 0" +#~ msgstr "lseek %s 0" + +# I18N +#~ msgid "read %s" +#~ msgstr "read %s" + +#~ msgid "read %ld bytes, expected %ld, from %s" +#~ msgstr "lu %ld octets, attendu %ld, de %s" + +# I18N +#~ msgid "msync %s" +#~ msgstr "msync %s" + +# I18N +#~ msgid "munmap %s" +#~ msgstr "munmap %s" + +# I18N +#~ msgid "write %s" +#~ msgstr "write %s" + +#~ msgid "wrote %ld bytes, expected %ld, to %s" +#~ msgstr "crit %ld octets, attendu %ld, vers %s" + +#~ msgid "ISO C++ does not permit \"%s\" in #if" +#~ msgstr "ISO C++ n'autorise pas %s dans #if" + +#~ msgid "invalid character '\\%03o' in #if" +#~ msgstr "caractre \\%03o invalide dans #if" + +#~ msgid "absolute file name in remap_filename" +#~ msgstr "nom de fichier absolu dans remap_filename" + +#~ msgid "%s: Not a directory" +#~ msgstr "%s : ce n'est pas un rpertoire" + +#~ msgid "directory name missing after %s" +#~ msgstr "nom de rpertoire manquant aprs %s" + +#~ msgid "file name missing after %s" +#~ msgstr "nom de fichier manquant aprs %s" + +#~ msgid "path name missing after %s" +#~ msgstr "nom de chemin manquant aprs %s" + +#~ msgid "unknown string token %s\n" +#~ msgstr "lment lexical %s inconnu\n" + +#~ msgid "non-hex digit '%c' in universal-character-name" +#~ msgstr "chiffre %c non hexadcimal dans le nom-de-caractre-universel" + +#~ msgid "universal-character-name on EBCDIC target" +#~ msgstr "nom-de-caractre-universel pour une cible EBCDIC" + +#~ msgid "universal-character-name out of range" +#~ msgstr "nom-de-caractre-universel est hors limite" + +#~ msgid "escape sequence out of range for its type" +#~ msgstr "squence d'chappement hors limite pour son type" + +#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file" +#~ msgstr "#import est obsolte, enveloppez le avec #ifndef dans le fichier d'en-tte" + +# FIXME +#~ msgid "#pragma once is obsolete" +#~ msgstr "utiliser #pragma once est obsolte" + +#~ msgid "((anonymous))" +#~ msgstr "((anonyme))" + +#~ msgid "%s: warnings being treated as errors\n" +#~ msgstr "%s : les avertissements sont traits commes des erreurs\n" + +#~ msgid "At top level:" +#~ msgstr "Hors de toute fonction :" + +#~ msgid "In member function `%s':" +#~ msgstr "Dans la fonction membre %s :" + +#~ msgid "In function `%s':" +#~ msgstr "Dans la fonction %s :" + +#~ msgid "" +#~ "Please submit a full bug report,\n" +#~ "with preprocessed source if appropriate.\n" +#~ "See %s for instructions.\n" +#~ msgstr "" +#~ "Veuillez soumettre un rapport complet d'anomalies,\n" +#~ "avec le source pr-trait si ncessaire.\n" +#~ "Consultez %s pour plus de dtail.\n" + +# FRONT +#~ msgid "In file included from %s:%d" +#~ msgstr "Dans le fichier inclus depuis %s:%d" + +# I18N: This line should be indented with the previous entry +#~ msgid "" +#~ ",\n" +#~ " from %s:%d" +#~ msgstr "" +#~ ",\n" +#~ " depuis %s:%d" + +#~ msgid "internal regno botch: `%s' has regno = %d\n" +#~ msgstr "regno interne mal fait : %s a regno = %d\n" + +#~ msgid "support for the DWARF1 debugging format is deprecated" +#~ msgstr "le support du format de dbogage DWARF1 est obsolte" + +#~ msgid "can't get current directory" +#~ msgstr "ne peut reprer le rpertoire courant" + +# FRONT +#~ msgid "unsupported wide integer operation" +#~ msgstr "opration sur de large entier non supporte" + +#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n" +#~ msgstr "Copyright 2002 Free Software Foundation, Inc.\n" + +#~ msgid "mismatched braces in specs" +#~ msgstr "accolades non concordantes dans les specs" + +#~ msgid "Could not open basic block file %s.\n" +#~ msgstr "Ne pourrait pas ouvrir le fichier de blocs de base %s.\n" + +#~ msgid "Could not open program flow graph file %s.\n" +#~ msgstr "Ne pourrait pas ouvrir le fichier de flux du programm %s.\n" + +#~ msgid "Could not open data file %s.\n" +#~ msgstr "Ne pourrait pas ouvrir le fichier de donnes %s.\n" + +#~ msgid "Assuming that all execution counts are zero.\n" +#~ msgstr "Suppose que tous les compteurs d'excution sont zro.\n" + +#~ msgid "No executable code associated with file %s.\n" +#~ msgstr "Aucun code excutable associ avec le fichier %s.\n" + +#~ msgid "didn't use all bb entries of graph, function %s\n" +#~ msgstr "N'a pas utiliser toutes les entres bb du graphe, fonction %s\n" + +#~ msgid "block_num = %ld, num_blocks = %d\n" +#~ msgstr "block_num = %ld, num_blocks = %d\n" + +#~ msgid "ERROR: unexpected line number %ld\n" +#~ msgstr "ERREUR : ligne numro %ld inattendue\n" + +#~ msgid "ERROR: too many basic blocks in function %s\n" +#~ msgstr "ERREUR : trop de blocs de base dans la fonction %s\n" + +#~ msgid "ERROR: out of range line number in function %s\n" +#~ msgstr "ERROR: numro de ligne hors limite dans la fonction %s\n" + +#~ msgid "Could not open source file %s.\n" +#~ msgstr "N'a pu ouvrir le fichier source %s.\n" + +#~ msgid "Unexpected EOF while reading source file %s.\n" +#~ msgstr "EOF inattendue lors de la lecture du fichier source %s.\n" + +#~ msgid "Creating %s.\n" +#~ msgstr "Cration de %s.\n" + +#~ msgid "invalid string `%s' in define_cpu_unit" +#~ msgstr "chane invalide %s dans define_cpu_unit" + +#~ msgid "invalid string `%s' in define_bypass" +#~ msgstr "chane invalide %s dans define_bypass" + +#~ msgid "invalid first string `%s' in exclusion_set" +#~ msgstr "premire chane invalide %s dans exclusion_set" + +#~ msgid "invalid second string `%s' in exclusion_set" +#~ msgstr "seconde chane invalide %s dans exclusion_set" + +#~ msgid "invalid second string `%s' in presence_set" +#~ msgstr "seconde chane invalide %s dans presence_set" + +#~ msgid "invalid option `%s' in automata_option" +#~ msgstr "option invalide %s dans automata_option" + +#~ msgid "invalid `%s' in reservation `%s'" +#~ msgstr " %s invalide dans la rservation %s " + +#~ msgid "unit `%s' in exclusion is not declared" +#~ msgstr "unit %s dans l'exclusion n'est pas dclar" + +#~ msgid "unit `%s' excludes itself" +#~ msgstr "unit %s s'exclue elle-mme" + +#~ msgid "repeated declaration of automaton `%s'" +#~ msgstr "dclaration rpt de l'automate %s " + +#~ msgid "`%s' is already used as insn reservation name" +#~ msgstr " %s est dj utilis dans le nom de rservation insn" + +#~ msgid "automaton `%s' is not declared" +#~ msgstr "automate %s n'est pas dclar" + +#~ msgid "`%s' is declared as cpu unit" +#~ msgstr " %s dclar comme unit cpu" + +#~ msgid "`%s' is declared as cpu reservation" +#~ msgstr " %s est dclar comme rservation cpu" + +#~ msgid "repeated declaration of unit `%s'" +#~ msgstr "dclaration rpt d'unit %s " + +#~ msgid "repeated declaration of reservation `%s'" +#~ msgstr "dclaration rpt de rservation %s " + +#~ msgid "there is no insn reservation `%s'" +#~ msgstr "il n'y a pas de rservation insn %s " + +#~ msgid "the same bypass `%s - %s' is already defined" +#~ msgstr "le mme bypass %s - %s est dj dfini" + +#~ msgid "bypass `%s - %s' is already defined" +#~ msgstr "bypass %s - %s est dj dfini" + +#~ msgid "undeclared unit or reservation `%s'" +#~ msgstr "unit ou rservation %s non dclar" + +#~ msgid "unit `%s' is not used" +#~ msgstr "unit %s n'est utilis" + +#~ msgid "reservation `%s' is not used" +#~ msgstr "rservation %s n'est utilis" + +#~ msgid "cycle in definition of reservation `%s'" +#~ msgstr "cycle de dfinition de rservation %s " + +#~ msgid "-split has no argument." +#~ msgstr "-split n'a pas d'argument." + +#~ msgid "option `-split' has not been implemented yet\n" +#~ msgstr "l'option -split n'a pas t implant encore\n" + +#~ msgid "Errors in DFA description" +#~ msgstr "ERREURS dans la description DFA" + +#~ msgid "Error in writing DFA description file %s" +#~ msgstr "Erreur dans l'criture du fichier de description DFA %s" + +#~ msgid "No input file name." +#~ msgstr "Pas de nom de fichier." + +#~ msgid ".da file corrupted" +#~ msgstr "fichier .da corrompu" + +#~ msgid "Generate STABS format debug info" +#~ msgstr "Gnrer des infos de mise au point de format STABS" + +#~ msgid "Generate extended STABS format debug info" +#~ msgstr "Gnrer des infos de mise au point de format STABS tendu" + +#~ msgid "Generate DWARF-1 format debug info" +#~ msgstr "Gnrer les informations de mise au point du format DWARF-1" + +#~ msgid "Generate extended DWARF-1 format debug info" +#~ msgstr "Gnrer les extensions des informations de mise au point du format DWARF-1" + +#~ msgid "Generate DWARF-2 debug info" +#~ msgstr "Gnrer les informations de mise au point DWARF-2" + +#~ msgid "Generate XCOFF format debug info" +#~ msgstr "Gnrer les informations de mise au point du format XCOFF" + +#~ msgid "Generate extended XCOFF format debug info" +#~ msgstr "Gnrer les extensions de mise au point du format XCOFF" + +#~ msgid "Generate COFF format debug info" +#~ msgstr "Gnrer les informations de mise au point du format COFF" + +#~ msgid "Generate VMS format debug info" +#~ msgstr "Gnrer des infos de mise au point de format VMS" + +#~ msgid "Consider all mem refs through pointers as volatile" +#~ msgstr "Considrer toutes les rfrence en mmoire comme faite par des pointeurs volatiles" + +#~ msgid "Consider all mem refs to global data to be volatile" +#~ msgstr "Considrer toutes les rfrences mmoire des donnes globales comme volatiles" + +#~ msgid "Consider all mem refs to static data to be volatile" +#~ msgstr "Considrer toutes les rfrences mmoire des donnes statiques comme volatiles" + +#~ msgid "Output GNU ld formatted global initializers" +#~ msgstr "Produire des initialisations de globlales au format GNU ld" + +#~ msgid "Enable SSA optimizations" +#~ msgstr "Autoriser les optimisations SSA" + +#~ msgid "Enable SSA conditional constant propagation" +#~ msgstr "Autoriser la propagation SSA de constante conditionnelle" + +#~ msgid "Enable aggressive SSA dead code elimination" +#~ msgstr "Autoriser l'limination agressive SSA du code mort" + +#~ msgid "Compile just for ISO C90" +#~ msgstr "Compiler seulement pour ISO C90" + +#~ msgid "Determine language standard" +#~ msgstr "Dterminer le standard du langage" + +#~ msgid "Make bit-fields by unsigned by default" +#~ msgstr "Rendre les champs de bits non signs par dfaut" + +#~ msgid "Allow different types as args of ? operator" +#~ msgstr "Permettre des types diffrents pour les arguments de l'oprateur ?" + +#~ msgid "Allow the use of $ inside identifiers" +#~ msgstr "Permettre l'utilisation de $ l'intrieur d'identificateurs" + +#~ msgid "Use the smallest fitting integer to hold enums" +#~ msgstr "Utiliser le plus petit entier pour contenir l'numration (enums)" + +#~ msgid "Warn if nested comments are detected" +#~ msgstr "Avertir si des commentaires imbriqus sont dtects" + +#~ msgid "Don't warn about too many arguments to format functions" +#~ msgstr "Ne pas avertir propos d'un surplus d'arguments pour des fonctions de format" + +#~ msgid "Warn about non-string-literal format strings" +#~ msgstr "Avertir propos des chanes de format qui ne sont pas des chanes" + +#~ msgid "Warn about constructs whose meanings change in ISO C" +#~ msgstr "Avertir propos de construits dont le sens change en C ISO" + +#~ msgid "Warn when trigraphs are encountered" +#~ msgstr "Avertir lorsque des trigraphes sont rencontrs" + +#~ msgid "Mark strings as 'const char *'" +#~ msgstr "Marque les chanes comme tant 'const char *'" + +#~ msgid " -pedantic-errors Like -pedantic except that errors are produced\n" +#~ msgstr " -pedantic-errors identique -pedantic sauf que les erreurs sont produites\n" + +#~ msgid " -w Suppress warnings\n" +#~ msgstr " -w supprimer les avertissements\n" + +#~ msgid " -W Enable extra warnings\n" +#~ msgstr " -W autoriser les avertissements additionnels\n" + +#~ msgid " -Wunused Enable unused warnings\n" +#~ msgstr " -Wunused autoriser les avertissements pour signaler les non utiliss\n" + +#~ msgid " -p Enable function profiling\n" +#~ msgstr " -p autoriser le profilage des fonctions\n" + +#~ msgid "" +#~ "\n" +#~ "Language specific options:\n" +#~ msgstr "" +#~ "\n" +#~ "Options spcifiques au langage:\n" + +#~ msgid " %-23.23s [undocumented]\n" +#~ msgstr " %-23.23s [non document]\n" + +#~ msgid "" +#~ "\n" +#~ "There are undocumented %s specific options as well.\n" +#~ msgstr "" +#~ "\n" +#~ "Il y a des options spcifiques %s qui ne sont pas documents aussi.\n" + +#~ msgid "" +#~ "\n" +#~ " Options for %s:\n" +#~ msgstr "" +#~ "\n" +#~ " Options pour %s:\n" + +#~ msgid "unrecognized option `%s'" +#~ msgstr "option %s non reconnue" + +#~ msgid "-Wid-clash-LEN is no longer supported" +#~ msgstr "-Wid-clash-LEN n'est plus supporte" + +#~ msgid "use -gdwarf -g%d for DWARF v1, level %d" +#~ msgstr "utiliser -gdwarf -g%d pour DWARF v1, niveau %d" + +#~ msgid "use -gdwarf-2 for DWARF v2" +#~ msgstr "utiliser -gdwarf-2 pour DWARF v2" + +#~ msgid "ignoring option `%s' due to invalid debug level specification" +#~ msgstr "option %s ignore en raison de la spcification du niveau de mise au poitn invalide" + +#~ msgid "`%s': unknown or unsupported -g option" +#~ msgstr " %s : inconnu ou non support option -g" + +#~ msgid "`%s' ignored, conflicts with `-g%s'" +#~ msgstr " %s ignor, en conflit avec -g%s" + +#~ msgid "-param option missing argument" +#~ msgstr "argument manquant pour l'option -param" + +#~ msgid "invalid --param option: %s" +#~ msgstr "option invalide --param: %s" + +#~ msgid "(it is valid for %s but not the selected language)" +#~ msgstr "(c'est valide pour %s mais pas pour le langage sclectionn)" + +#~ msgid "#`%s' not supported by %s#" +#~ msgstr " %s n'est pas support par %s#" + +#~ msgid "The maximuem number of instructions by repeated inlining before gcc starts to throttle inlining" +#~ msgstr "Le nombre maximum d'instructions par type inline rpt avant l'excution de gcc au throttle enligne" + +#~ msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining" +#~ msgstr "Le nombre d'instructions dans une fonction simple encore ligible au type enligne aprs plusieurs inline rcursifs" + +#~ msgid "Use Mingw32 interface" +#~ msgstr "Utiliser l'interface Mingw32" + +#~ msgid "Use Cygwin interface" +#~ msgstr "Utiliser l'interface Cygwin" + +#~ msgid "Use bare Windows interface" +#~ msgstr "Utiliser l'interface brute Windows" + +#~ msgid "Only initialized variables can be placed into program memory area." +#~ msgstr "seules les variables initialises peuvent tre places dans la zone mmoire du programme" + +#~ msgid "const objects cannot go in .sdata/.sbss" +#~ msgstr "constantes objets ne peuvent aller dans .sdata/.sbss" + +#~ msgid "Generate code for a Sun FPA" +#~ msgstr "Gnrer le code pour un Sun FPA" + +#~ msgid "Do not generate code for a Sun FPA" +#~ msgstr "Ne pas gnrer le code pour un Sun FPA" + +#~ msgid "Generate code for a Sun Sky board" +#~ msgstr "Gnrer le code pour un Sun Sky board" + +#~ msgid "Do not use Sky linkage convention" +#~ msgstr "Ne pas utiliser la convention d'dition de lien Sky" + +#~ msgid "Generate code for a 68881" +#~ msgstr "Gnrer du code pour un 68881" + +#~ msgid "internal gcc monitor: short-branch(%x)" +#~ msgstr "moniteur interne gcc: branchement court(%x)" + +#~ msgid "internal gcc error: Can't express symbolic location" +#~ msgstr "erreur interne gcc: ne peut exprimer la localisation symbolique" + +#~ msgid "argument #%d is a structure" +#~ msgstr "argument #%d est une structure" + +#~ msgid "%%R not followed by %%B/C/D/E" +#~ msgstr "%%R n'est pas suivi de %%B/C/D/E" + +#~ msgid "invalid %%Q value" +#~ msgstr "valeur %%Q invalide" + +#~ msgid "invalid %%o value" +#~ msgstr "valeur %%o invalide" + +#~ msgid "invalid %%s/S value" +#~ msgstr "valeur %%s/S invalide" + +#~ msgid "invalid %%B value" +#~ msgstr "valeur %%B invalide" + +#~ msgid "`%%d' operand isn't a register" +#~ msgstr "l'oprande %%d n'est pas un registre" + +#~ msgid "operand is r0" +#~ msgstr "oprande est R0" + +#~ msgid "operand is const_double" +#~ msgstr "oprande est de type const_double" + +#~ msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible" +#~ msgstr "-mtrap-large-shift et -mhandle-large-shift sont incompatibles" + +#~ msgid "invalid option `-mshort-data-%s'" +#~ msgstr "option invalide -mshort-data-%s'" + +#~ msgid "-mshort-data-%s is too large " +#~ msgstr "-mshort-data-%s est trop grande " + +#~ msgid "-mshort-data-%s and PIC are incompatible" +#~ msgstr "-mshort-data-%s et PIC sont incompatibles" + +#~ msgid "bad value (%s) for -mips switch" +#~ msgstr "valeur errone (%s) pour l'option -mips" + +#~ msgid "invalid option `entry%s'" +#~ msgstr "option invalide entry%s'" + +#~ msgid "-mentry is only meaningful with -mips-16" +#~ msgstr "-mentry n'a de sens qu'avec -mips-16" + +#~ msgid "MIPS ECOFF format does not allow changing filenames within functions with #line" +#~ msgstr "format MIPS ECOFF ne permet pas de changer le nom des fichiers l'intrieur des fonction avec #ligne" + +#~ msgid "fp_offset (%ld) or end_offset (%ld) is less than zero" +#~ msgstr "fp_offset (%ld) ou end_offset (%ld) est plus petit que zro" + +#~ msgid "Trap on integer divide overflow" +#~ msgstr "Intercepter les dbordements lors de divisions avec des entiers" + +#~ msgid "Don't trap on integer divide overflow" +#~ msgstr "Ne pas intercepter les dbordement lors de divisions avec des entiers" + +#~ msgid "Use mips16 entry/exit psuedo ops" +#~ msgstr "Utiliser les pseudo-op mips16 d'entre/sortie" + +#~ msgid "Don't use MIPS16 instructions" +#~ msgstr "Ne pas utiliser les instructions MIPS16" + +#~ msgid "invalid %%z value" +#~ msgstr "valeur %%z invalide" + +#~ msgid "invalid %%Z value" +#~ msgstr "valeur %%Z invalide" + +#~ msgid "invalid %%j value" +#~ msgstr "valeur %%j invalide" + +#~ msgid "can't have varargs with -mfp-arg-in-fp-regs" +#~ msgstr "ne peut avoir varargs avec -mfp-arg-in-fp-regs" + +#~ msgid "unknown -mvrsave= option specified: '%s'" +#~ msgstr "option -mvrsave inconnue spcifis: %s " + +#~ msgid "64 bit mode" +#~ msgstr "mode 64 bits" + +#~ msgid "31 bit mode" +#~ msgstr "mode 31 bits" + +#~ msgid "Use the Xtensa code density option" +#~ msgstr "Utiliser l'option de densit du code Xtensa" + +#~ msgid "Do not use the Xtensa code density option" +#~ msgstr "Ne pas utiliser l'option de densit du code Xtensa" + +#~ msgid "Use the Xtensa MAC16 option" +#~ msgstr "Utiliser l'option Xtensa MAC16" + +#~ msgid "Do not use the Xtensa MAC16 option" +#~ msgstr "Ne pas utiliser l'option Xtensa MAC16" + +#~ msgid "Use the Xtensa MUL16 option" +#~ msgstr "Utiliser l'option Xtensa MUL16" + +#~ msgid "Do not use the Xtensa MUL16 option" +#~ msgstr "Ne pas utiliser l'option Xtensa MUL16" + +#~ msgid "Use the Xtensa MUL32 option" +#~ msgstr "Utiliser l'option Xtensa MUL16" + +#~ msgid "Do not use the Xtensa MUL32 option" +#~ msgstr "Ne pas utiliser l'option Xtensa MUL32" + +#~ msgid "Use the Xtensa NSA option" +#~ msgstr "Utiliser l'option Xtensa NSA" + +#~ msgid "Do not use the Xtensa NSA option" +#~ msgstr "Ne pas utiliser l'option Xtensa NSA" + +#~ msgid "Use the Xtensa MIN/MAX option" +#~ msgstr "Utiliser l'option Xtensa MIN/MAX" + +#~ msgid "Do not use the Xtensa MIN/MAX option" +#~ msgstr "Ne pas utiliser l'option Xtensa MIN/MAX" + +#~ msgid "Use the Xtensa SEXT option" +#~ msgstr "Utiliser l'option Xtensa SEXT" + +#~ msgid "Do not use the Xtensa SEXT option" +#~ msgstr "Ne pas utiliser l'option Xtensa SEXT" + +#~ msgid "Use the Xtensa boolean register option" +#~ msgstr "Utiliser l'option des registres boolens Xtensa" + +#~ msgid "Do not use the Xtensa boolean register option" +#~ msgstr "Ne pas utiliser l'option des registres boolens Xtensa" + +#~ msgid "Use the Xtensa floating-point unit" +#~ msgstr "Utiliser l'unit matrielle pour virgule flottante Xtensa" + +#~ msgid "Do not use the Xtensa floating-point unit" +#~ msgstr "Ne pas utiliser l'unit matrielle pour virgule flottante Xtensa" + +#~ msgid "Serialize volatile memory references with MEMW instructions" +#~ msgstr "Srialiser les rfrences la mmoire volatile avec des instructions MEMW" + +#~ msgid "Do not serialize volatile memory references with MEMW instructions" +#~ msgstr "Ne pas srialiser les rfrences la mmoire volatile avec des instructions MEMW" + +#~ msgid "type of `%E' does not match destructor type `%T' (type was `%T')" +#~ msgstr "type de %E ne concorde pas avec le type du destructeur %T (type tait %T )" + +#~ msgid "`%D' is a namespace" +#~ msgstr " %D est un nom d'espace" + +#~ msgid "base object `%E' of scoped method call is of non-aggregate type `%T'" +#~ msgstr "objet de base %E de la porte d'appel de la mthode n'est pas de type aggrgat %T " + +#~ msgid "destructors take no parameters" +#~ msgstr "destructeurs ne prend aucun paramtre" + +#~ msgid "destructor name `~%T' does not match type `%T' of expression" +#~ msgstr "nom du destructeur ~%T ne concorde pas avec le type %T de l'expression" + +#~ msgid "%s %+#D%s" +#~ msgstr "%s %+#D%s" + +#~ msgid "%s for `%T ? %T : %T' operator" +#~ msgstr "%s pour %T ? %T : %T comme oprateur" + +#~ msgid "%s for `%T [%T]' operator" +#~ msgstr "%s pour l'oprateur %T [%T]" + +#~ msgid "%s for `%T %s %T' operator" +#~ msgstr "%s pour l'oprateur %T %s [%T]" + +#~ msgid "%s for `%s %T' operator" +#~ msgstr "%s pour l'oprateur %s [%T]" + +#~ msgid "`%D' must be declared before use" +#~ msgstr " %D doit tre dclar avant son usage" + +#~ msgid " initializing argument %P of `%D' from result of `%D'" +#~ msgstr " initialisation de l'argument %P de %D partir du rsultat %D " + +#~ msgid " initializing temporary from result of `%D'" +#~ msgstr " initialisation temporaire partir du rsultat %D " + +#~ msgid "cannot receive objects of non-POD type `%#T' through `...'" +#~ msgstr "ne peut recevoir d'objets de type non POD %#T through ... " + +#~ msgid "field `%D' invalidly declared offset type" +#~ msgstr "champ %D incorrectement valid comme type de dcalage" + +#~ msgid "lookup of `%D' finds `%#D'" +#~ msgstr "recherche de %D a repr %#D " + +#~ msgid " instead of `%D' from dependent base class" +#~ msgstr " au lieu de %D partir d'un classe de base dpendante" + +#~ msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')" +#~ msgstr "recherche de %D dans la porte de %#T ( %#D ) ne concorde pas avec la recherche dans la porte courante ( %#D )" + +#~ msgid "invalid declarator" +#~ msgstr "dclarateur invalide" + +#~ msgid "`%T' is implicitly a typename" +#~ msgstr " %T est implicitement un typename" + +#~ msgid "parameter `%D' invalidly declared offset type" +#~ msgstr "paramtre %D incorrectement valid comme type de dcalage" + +#~ msgid "`%s %T' declares a new type at namespace scope" +#~ msgstr " %s %T dclare un nouveau type dans l'tendue de l'espace de noms" + +#~ msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'" +#~ msgstr " noms des classes de base dpendantes ne sont pas visibles la recherche de nom non qualifi - pour rfrer type par hritage, disons %s %T::%T" + +#~ msgid "base class `%T' has incomplete type" +#~ msgstr "classe de base %T a un type incomplet" + +#~ msgid "semicolon missing after declaration of `%#T'" +#~ msgstr "point-virgule manquant aprs la dclaration %#T" + +#~ msgid "template `%#D' instantiated in file without #pragma interface" +#~ msgstr "canevas %#D instanci dans le fichier sans interface #pragma" + +#~ msgid "template `%#D' defined in file without #pragma interface" +#~ msgstr "canevas %#D dfini dans le fichier sans interface #pragma" + +#~ msgid "parser may be lost: is there a '{' missing somewhere?" +#~ msgstr "analyseur syntaxique est perdu: y-a-t-il un { manquant quelque part?" + +#~ msgid "invalid data member initialization" +#~ msgstr "initialisation de donnes membres invalide" + +#~ msgid "(use `=' to initialize static data members)" +#~ msgstr "(utiliser = pour initialiser les donnes de membres)" + +#~ msgid "too many initialization functions required" +#~ msgstr "trop d'initialisations de fonctions requises" + +#~ msgid "`%D' is not a namespace" +#~ msgstr " %D n'est pas un espace de noms" + +#~ msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'" +#~ msgstr "l'utilisation de dclaration ne peut spcifier template-id. Essayer using %T::%D'" + +#~ msgid "`%T' does not have a class or union named `%D'" +#~ msgstr " %T n'a pas de classe ou d'union nomm %D " + +#~ msgid "`%T' is not a class or union type" +#~ msgstr " %T n'est pas une classe ou un type d'union" + +#~ msgid "`%s' not supported by %s" +#~ msgstr " %s n'est pas support par %s" + +#~ msgid "(static %s for %s)" +#~ msgstr "(static %s pour %s)" + +#~ msgid "%s: In instantiation of `%s':\n" +#~ msgstr "%s: dans l'instanciation de %s :\n" + +#~ msgid "%s:%d: instantiated from `%s'\n" +#~ msgstr "%s:%d: instanci partir de %s \n" + +#~ msgid "%s:%d: instantiated from here\n" +#~ msgstr "%s:%d: instanci partir d'ici\n" + +#~ msgid "previous friend declaration of `%D'" +#~ msgstr "dclaration amie prcdente de %D " + +#~ msgid "cannot call destructor `%T::~%T' without object" +#~ msgstr "ne peut appeler le destructeur %T::~%T sans objet" + +#~ msgid "invalid use of member `%D'" +#~ msgstr "utilisation invalide du membre %D " + +#~ msgid "no method `%T::%D'" +#~ msgstr "pas de mthode %T::%D" + +#~ msgid "object missing in use of pointer-to-member construct" +#~ msgstr "objet manquant dans l'utilisation du construit pointeur--membre" + +#~ msgid "member `%D' is non-static but referenced as a static member" +#~ msgstr "membre %D est non statique mais rfrenc comme membre statique" + +#~ msgid "object missing in `%E'" +#~ msgstr "objet manquant dans %E " + +#~ msgid "initializer list being treated as compound expression" +#~ msgstr "liste d'initaliseurs a t trait comme une expression compose" + +#~ msgid "cannot declare references to references" +#~ msgstr "ne peut dcalrer des rfrences vers des rfrences" + +#~ msgid "cannot declare pointers to references" +#~ msgstr "ne peut dclarer des pointeurs vers des rfrences" + +#~ msgid "type name expected before `&'" +#~ msgstr "nom de type attendu avant &" + +#~ msgid "semicolon missing after %s declaration" +#~ msgstr "; manquant aprs la dclaration de %s" + +#~ msgid "semicolon missing after declaration of `%T'" +#~ msgstr "; manquant aprs la dclaration %T " + +#~ msgid "`::%D' undeclared (first use here)" +#~ msgstr "::%D non dclar (premire utilisation ici)" + +#~ msgid "real-valued template parameters when cross-compiling" +#~ msgstr "canevas de paramtre en valeur relle lors de la compilation croise" + +#~ msgid "use of linkage spec `%D' is different from previous spec `%D'" +#~ msgstr "utilisation de spc de liaisons %D est diffrente de la spec prcdente %D " + +#~ msgid "no base or member initializers given following ':'" +#~ msgstr "pas d'initialiseur de base ou membre donn aprs :" + +#~ msgid "use of template qualifier outside template" +#~ msgstr "utilisation d'un qualificateur de canevas en dehors d'un canevas" + +#~ msgid "ISO C++ forbids an empty condition for `%s'" +#~ msgstr "ISO C++ interdit une condition vide pour %s " + +#~ msgid "definition of class `%T' in condition" +#~ msgstr "dfinition de la classe %T dans la condition" + +#~ msgid "definition of enum `%T' in condition" +#~ msgstr "dfinition de l'aggrgat %T dans la condition" + +#~ msgid "definition of array `%#D' in condition" +#~ msgstr "dfinition du tableau %#D dans la condition" + +#~ msgid "old style placement syntax, use () instead" +#~ msgstr "ancien style de syntaxe de positionnement, utiliser () la place" + +#~ msgid "`%T' is not a valid expression" +#~ msgstr " %T n'est pas une expression valide" + +#~ msgid "initialization of new expression with `='" +#~ msgstr "initialisation de la nouvelle expression avec = " + +#~ msgid "sigof type specifier" +#~ msgstr "spcificateur du type sigof" + +#~ msgid "`sigof' applied to non-aggregate expression" +#~ msgstr " sigof appliqu une expression de non aggrgats" + +#~ msgid "`sigof' applied to non-aggregate type" +#~ msgstr " sigof appliqu un type non aggrgat" + +#~ msgid "storage class specifier `%s' not allowed after struct or class" +#~ msgstr "spcificateur de classe de stockages %s n'est pas permis aprs struct ou class" + +#~ msgid "type specifier `%s' not allowed after struct or class" +#~ msgstr "spcificateur de type %s n'est pas permis aprs struct ou class" + +#~ msgid "type qualifier `%s' not allowed after struct or class" +#~ msgstr "qualificateur de type %s n'est pas permis aprs struct ou class" + +#~ msgid "no body nor ';' separates two class, struct or union declarations" +#~ msgstr "pas de corps ni de ; sparant les deux dclarations de classes, struct ou union" + +#~ msgid "no bases given following `:'" +#~ msgstr "pas de base donne aprs :" + +#~ msgid "multiple access specifiers" +#~ msgstr "spcificateurs d'accs multiples" + +#~ msgid "multiple `virtual' specifiers" +#~ msgstr "spcificateurs virtual multiples" + +#~ msgid "missing ';' before right brace" +#~ msgstr "; manquant avant l'accolade de droite" + +#~ msgid "ISO C++ forbids array dimensions with parenthesized type in new" +#~ msgstr "ISO C++ interdit l'utilisation de parenthses autour du type pour les dimensions de tableaux avec new" + +#~ msgid "`%T' is not a class or namespace" +#~ msgstr " %T n'est pas une classe ou un espace de noms" + +#~ msgid "ISO C++ forbids label declarations" +#~ msgstr "ISO C++ interdit la dclaration d'tiquette" + +#~ msgid "label must be followed by statement" +#~ msgstr "l'tiquette doit tre suivie d'une dclaration" + +#~ msgid "must have at least one catch per try block" +#~ msgstr "doit avoir au moins un intercepteur par bloc d'essais" + +#~ msgid "ISO C++ forbids compound statements inside for initializations" +#~ msgstr "ISO C++ interdit les dclarations composes l'intrieur des initialisations" + +#~ msgid "possibly missing ')'" +#~ msgstr ") possiblement manquante" + +#~ msgid "type specifier omitted for parameter" +#~ msgstr "spcificateur de type omis pour le paramtre" + +#~ msgid "`%E' is not a type, use `typename %E' to make it one" +#~ msgstr " %E n'est pas un type, utiliser typename %E pour en faire un" + +#~ msgid "no type `%D' in `%T'" +#~ msgstr "pas de type %D dans %T " + +#~ msgid "type specifier omitted for parameter `%E'" +#~ msgstr "spcificateur de type omis pour le paramtre %E " + +#~ msgid "type `%T' composed from a local class is not a valid template-argument" +#~ msgstr "type %T compos partir d'une classe locale n'est pas un canevas d'argument valide" + +#~ msgid "adjusting pointers for covariant returns" +#~ msgstr "ajuster les pointeurs pour des retours co-variants" + +#~ msgid " overriding `%#D' (must be pointer or reference to class)" +#~ msgstr " crasant %#D (doit tre un pointeur ou une rfrence vers un classe)" + +#~ msgid " overriding `%#D' (must use pointer or reference)" +#~ msgstr " crasant %#D (doit utiliser un pointeur ou un rfrence)" + +#~ msgid "return identifier `%D' already in place" +#~ msgstr "identificateur retourn %D est dj en place" + +#~ msgid "can't redefine default return value for constructors" +#~ msgstr "ne peut redfinir la valeur retourne par dfaut pour les constructeurs" + +#~ msgid "calling type `%T' like a method" +#~ msgstr "appel du type %T comme une mthode" + +#~ msgid "destructor specifier `%T::~%T()' must have matching names" +#~ msgstr "spcificateur du destructeur %T::~%T() doit avoir des noms concordants" + +#~ msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy" +#~ msgstr "nom d'identificateur %s entre en conflit avec la stratgie interne de dnomination de GNU C++" + +#~ msgid "parse error at end of saved function text" +#~ msgstr "erreur d'analyse syntaxique la fin de la sauvegarde de la fonction texte" + +#~ msgid "%Hend of file read inside definition" +#~ msgstr "%H fin de fichier lors de la lecture l'intrieur d'une dfinition" + +#~ msgid "parse error in method specification" +#~ msgstr "erreur d'analyse syntaxique dans la spcification de fonction" + +#~ msgid "function body for constructor missing" +#~ msgstr "corps de fonction pour le constructeur est manquante" + +#~ msgid "circular dependency in default args of `%#D'" +#~ msgstr "dpendance circulaire dans les arguments par dfaut de %#D " + +#~ msgid "invalid type `%T' for default argument to `%T'" +#~ msgstr "type invalide %T pour l'argument par dfaut %T " + +#~ msgid "%s before `%c'" +#~ msgstr "%s avant %c " + +#~ msgid "%s before `\\%o'" +#~ msgstr "%s avant \\%o" + +#~ msgid "%s before `%s' token" +#~ msgstr "%s avant l'lment lexical %s " + +#~ msgid "ISO C++ prohibits conversion from `%#T' to `(...)'" +#~ msgstr "ISO C++ interdit la conversion de %#T en (...) " + +#~ msgid "invalid application of `%s' to non-static member" +#~ msgstr "utilisation invalide de %s sur un membre non statique" + +#~ msgid "sizeof applied to a bit-field" +#~ msgstr "sizeof appliqu sur un champ de bits" + +#~ msgid "destructor specifier `%T::~%T' must have matching names" +#~ msgstr "spcificateur du destructeur %T::~%T doit des noms concordants" + +#~ msgid "parameter type of called function is incomplete" +#~ msgstr "type de paramtre de la fonction appele est incomplet" + +#~ msgid "ISO C++ forbids using pointer to a member in subtraction" +#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur vers un membre dans une soustraction" + +#~ msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)" +#~ msgstr "reinterpret_cast de %T vers %T fait un transtypage cartant la constante (ou volatile)" + +#~ msgid "return-statement with no value, in function declared with a non-void return type" +#~ msgstr "dclaration d'un retour sans valeur, dans la fonction dclare avec un type retourn non void" + +#~ msgid "return-statement with a value, in function declared with a void return type" +#~ msgstr "dclaration d'un retour sans valeur, dans la fonction dclare avec un type retourn void" + +#~ msgid "comma expression used to initialize return value" +#~ msgstr "expression virgule utilse pour initialiser la valeur de retour" + +#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions" +#~ msgstr "ISO C++ interdit les expressions d'initialiseur d'aggrgat de non constante" + +#~ msgid "`%T' fails to be a typedef or built-in type" +#~ msgstr " %T a chou devenir un typedef ou un type construit interne" + +#~ msgid "ISO C++ forbids defining types within %s" +#~ msgstr "ISO C++ interdit la dfinition de types l'intrieur de %s" + +#~ msgid "Only emit explicit template instatiations" +#~ msgstr "Produire seulement des instanciations explicites du canevas" + +#~ msgid "Recognize and/bitand/bitor/compl/not/or/xor" +#~ msgstr "Reconnatre and/bitand/bitor/compl/not/or/xor" + +#~ msgid "Warn about inconsistent return types" +#~ msgstr "Avertir propos des types retourns inconsistants" + +#~ msgid "Warn when a function is declared extern, then inline" +#~ msgstr "Avertir lorsqu'un fonction est dclare extern, puis inline" + +#~ msgid "directory name must immediately follow -I" +#~ msgstr "nom du rpertoire doit suivre immdiatement -I" + +#~ msgid "ignoring pragma: %s" +#~ msgstr "pragma: %s ignor" + +#~ msgid "Program does not use Unix-f77 dialectal features" +#~ msgstr "Programme n'utilise pas les options du dialecte Unix f77" + +#~ msgid "Disable the appending of underscores to externals" +#~ msgstr "Dsactiver l'ajout de caractres de soulignement aux externes" + +#~ msgid "Fortran-specific form of -fbounds-check" +#~ msgstr "Forme spcifique Fortran de -fbounds-check" + +#~ msgid "Add a directory for INCLUDE searching" +#~ msgstr "Ajouter un rpertoire pour la recherche par INCLUDE" + +#~ msgid "Set the maximum line length" +#~ msgstr "Initialiser la longueur maximale des lignes" + +#~ msgid "Disable automatic array bounds checking" +#~ msgstr "Vrification automatique dsactive des bornes de tableaux" + +#~ msgid "Set class path" +#~ msgstr "Initialiser le chemin des classes" + +#~ msgid "Choose class whose main method should be used" +#~ msgstr "Choisir la classe dont la mthode principale devrait tre utilise" + +#~ msgid "Add directory to class path" +#~ msgstr "Ajouter un rpertoire au chemin des classes" + +#~ msgid "Directory where class files should be written" +#~ msgstr "Rpertoire o les fichiers de classe devraient tre crits" + +#~ msgid "`%s' cannot be statically allocated" +#~ msgstr " %s ne peut tre statiquement allou" + +#~ msgid "multiple declarations for method `%s'" +#~ msgstr "multiples dclarations pour la mthode %s " + +#~ msgid "cannot find class (factory) method" +#~ msgstr "ne peut reprer de mthode de classe (manufactur)" + +#~ msgid "return type for `%s' defaults to id" +#~ msgstr "type retourn pour %s par dfaut est id" + +#~ msgid "return type defaults to id" +#~ msgstr "type retourn par dfaut est id" + +#~ msgid "cannot find method" +#~ msgstr "ne peut reprer la mthode" + +#~ msgid "duplicate definition of class method `%s'" +#~ msgstr "duplication de dfinition de la mthode de la classe %s " + +#~ msgid "duplicate definition of instance method `%s'" +#~ msgstr "duplication de dfinition de la mthode d'instanciation %s " + +#~ msgid "duplicate declaration of instance method `%s'" +#~ msgstr "duplication de dclaration de la mthode d'instanciation %s " + +#~ msgid "potential selector conflict for method `%s'" +#~ msgstr "conflit potentiel sur le slecteur pour la mthode %s " + +#~ msgid "Specify the name of the class for constant strings" +#~ msgstr "Spcifier le nom de la classe pour les constantes chanes" + +#~ msgid "compilation of header file requested" +#~ msgstr "fichier d'en-tte requis pour la compilation" + +#~ msgid "choose either big or little endian, not both" +#~ msgstr "choisir un systme octets de poids fort ou faible mais pas les deux" + +#~ msgid "choose either m340 or m210 not both" +#~ msgstr "choisir m340 ou m210 mais pas les deux" + +#~ msgid "-c or -S required for Ada" +#~ msgstr "-c ou -S requis pour Ada" + +#~ msgid "-static not valid with -mcoff" +#~ msgstr "-static n'est pas valide avec -mcoff" + +#~ msgid "-shared not valid with -mcoff" +#~ msgstr "-shared n'est pas valide avec -mcoff" + +#~ msgid "-symbolic not valid with -mcoff" +#~ msgstr "-symbolic n'est pas valide avec -mcoff" + +#~ msgid "-fpic is not valid with -mcoff" +#~ msgstr "-fpic n'est pas valide avec -mcoff" + +#~ msgid "-fPIC is not valid with -mcoff" +#~ msgstr "-fPic n'est pas valide avec -mcoff" + +#~ msgid "-fpic not valid with -mcoff" +#~ msgstr "-fpic n'est pas valide avec -mcoff" + +#~ msgid "-fPIC not valid with -mcoff" +#~ msgstr "-fPIC n'est pas valide avec -mcoff" + +#~ msgid "unnamed fields of type other than struct or union are not allowed" +#~ msgstr "champs sans nom de type autre que struct ou union ne sont pas permis" + +#~ msgid "numeric constant with no digits" +#~ msgstr "constante numrique sans chiffre" + +#~ msgid "numeric constant contains digits beyond the radix" +#~ msgstr "constante numrique contient des chiffres en dehors la base numrique" + +#~ msgid "floating constant may not be in radix 16" +#~ msgstr "constante flottante peut ne pas tre en base 16" + +#~ msgid "more than one 'f' suffix on floating constant" +#~ msgstr "plus d'un f en suffixe sur une constante flottante" + +#~ msgid "more than one 'l' suffix on floating constant" +#~ msgstr "plus d'un l en suffixe sur une constante flottante" + +#~ msgid "traditional C rejects the 'l' suffix" +#~ msgstr "C traditionnel rejette le suffixe l " + +#~ msgid "more than one 'i' or 'j' suffix on floating constant" +#~ msgstr "plus d'un i ou j en suffixe sur une constante flottante" + +#~ msgid "floating constant out of range" +#~ msgstr "constante flottante est hors gamme" + +#~ msgid "floating point number exceeds range of 'double'" +#~ msgstr "nombre en virgule flottante excde les limites de double " + +#~ msgid "two 'u' suffixes on integer constant" +#~ msgstr "deux u en suffixe sur une constante entire" + +#~ msgid "traditional C rejects the 'u' suffix" +#~ msgstr "C traditionnel rejette le suffixe u " + +#~ msgid "three 'l' suffixes on integer constant" +#~ msgstr "trois l en suffixe sur une constante entire" + +#~ msgid "'lul' is not a valid integer suffix" +#~ msgstr "'lul n'est pas un suffixe valide pour un entier" + +#~ msgid "'Ll' and 'lL' are not valid integer suffixes" +#~ msgstr " Ll et 1L ne sont pas des suffixes valides pour un entier" + +#~ msgid "more than one 'i' or 'j' suffix on integer constant" +#~ msgstr "plus d'un i ou j en suffixe sur une constante entire" + +#~ msgid "invalid suffix on integer constant" +#~ msgstr "suffixe invalide pour une constante entire" + +#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits" +#~ msgstr "constante entire trop grande pour la configuration du compilateur - tronqu %d bits" + +#~ msgid "width of integer constant changes with -traditional" +#~ msgstr "largeur de la constante entire change avec -traditional" + +#~ msgid "width of integer constant may change on other systems with -traditional" +#~ msgstr "largeur de la constante entire peut changer sur d'autres systme avec -traditional" + +#~ msgid "integer constant larger than the maximum value of %s" +#~ msgstr "constante entire plus grande que la valeur maximale de %s" + +#~ msgid "an unsigned long long int" +#~ msgstr "un entier long long non sign" + +#~ msgid "a long long int" +#~ msgstr "un entier long long" + +#~ msgid "an unsigned long int" +#~ msgstr "un entier long non sign" + +#~ msgid "decimal constant is so large that it is unsigned" +#~ msgstr "constante dcimale est tellement grande qu'elle est non signe" + +#~ msgid "complex integer constant is too wide for 'complex int'" +#~ msgstr "constante complexe entire est trop grande pour le type 'complex int'" + +#~ msgid "integer constant is larger than the maximum value for its type" +#~ msgstr "constante entire est plus grande que la valeur maximale pour ce type" + +#~ msgid "missing white space after number '%.*s'" +#~ msgstr "espace blanc manquant aprs le nombre '%.*s'" + +#~ msgid "storage class specifier in array declarator" +#~ msgstr "spcificateur de classe de stockage dans le dclarateur de tableau" + +#~ msgid "sizeof applied to a function type" +#~ msgstr "sizeof appliqu sur un type de fonction" + +#~ msgid "sizeof applied to a void type" +#~ msgstr "sizeof appliqu sur un type void" + +#~ msgid "execvp %s" +#~ msgstr "execvp %s" + +#~ msgid "floating point numbers are not valid in #if" +#~ msgstr "nombres flottants ne sont pas valides dans un #if" + +#~ msgid "traditional C rejects the `U' suffix" +#~ msgstr "C traditionel rejette le suffixe U " + +#~ msgid "too many 'l' suffixes in integer constant" +#~ msgstr "trop de l en suffixe dans les constantes entires" + +#~ msgid "integer constant contains digits beyond the radix" +#~ msgstr "constante entire contient des chiffres en dehors la base numrique" + +#~ msgid "integer constant out of range" +#~ msgstr "constante entire est hors gamme" + +#~ msgid "string constants are not valid in #if" +#~ msgstr "constantes de chane ne sont pas valides dasn un #if" + +#~ msgid "missing binary operator" +#~ msgstr "oprateur binaire manquant" + +#~ msgid "changing search order for system directory \"%s\"" +#~ msgstr "modification de l'ordonnancement de recherche du rpertoire systme %s " + +#~ msgid " as it is the same as non-system directory \"%s\"" +#~ msgstr " comme c'est le mme qu'un rpertoire non systme %s " + +#~ msgid "I/O error on output" +#~ msgstr "Erreur E/S sur la sortie" + +#~ msgid "argument missing after %s" +#~ msgstr "argument manquant aprs %s" + +#~ msgid "number missing after %s" +#~ msgstr "nombre manquant aprs %s" + +#~ msgid "target missing after %s" +#~ msgstr "cible manquante aprs %s" + +#~ msgid "GNU CPP version %s (cpplib)" +#~ msgstr "GNU CPP version %s (cpplib)" + +#~ msgid "" +#~ " -lang-c++ Assume that the input sources are in C++\n" +#~ " -lang-objc Assume that the input sources are in ObjectiveC\n" +#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n" +#~ " -lang-asm Assume that the input sources are in assembler\n" +#~ msgstr "" +#~ " -lang-c++ Prsumer que les sources sont en C++\n" +#~ " -lang-objc Prsumer que les sources sont en ObjectiveC\n" +#~ " -lang-objc++ Prsumer que les sources sont en ObjectiveC++\n" +#~ " -lang-asm Prsumer que les sources sont en assembleur\n" + +#~ msgid "possible start of unterminated string literal" +#~ msgstr "dbut possible d'une chane de mot non termine" + +#~ msgid "multi-line string literals are deprecated" +#~ msgstr "chane de mots multi-lignes sont obsoltes" + +#~ msgid "directives may not be used inside a macro argument" +#~ msgstr "directives ne peuvent tre utilises l'intrieur d'un argument macro" + +#~ msgid "invalid option %s" +#~ msgstr "option invalide %s" + +#~ msgid "%s:%d: warning: " +#~ msgstr "%s:%d: AVERTISSEMENT: " + +#~ msgid "argument to `-b' is missing" +#~ msgstr "argument de -b est manquant" + +#~ msgid "argument to `-V' is missing" +#~ msgstr "argument de -V est manquant" + +#~ msgid "invalid version number format" +#~ msgstr "format de numro de verson invalide" + +#~ msgid ".da file contents exhausted too early\n" +#~ msgstr "Le contenu du fichier .da a t puis trop rapidement\n" + +#~ msgid ".da file contents not exhausted\n" +#~ msgstr "Le contenu du fichier .da n'a pas t puis\n" + +#~ msgid "%6.2f%% of %d source lines executed in function %s\n" +#~ msgstr "%6.2f%% des lignes sources %d excutes dans la fonction %s\n" + +#~ msgid "%6.2f%% of %d branches executed in function %s\n" +#~ msgstr "%6.2f%% de branchements %d excuts dans la fonction %s\n" + +#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n" +#~ msgstr "%6.2f%% de branchements %d pris au mons une fois dans la fonction %s\n" + +#~ msgid "No branches in function %s\n" +#~ msgstr "Pas de branchement dans la fonction %s\n" + +#~ msgid "%6.2f%% of %d calls executed in function %s\n" +#~ msgstr "%6.2f%% d'appels %d excuts dans la fonction %s\n" + +#~ msgid "No calls in function %s\n" +#~ msgstr "Pas d'appel dans la fonction %s\n" + +#~ msgid "call %d returns = %s%%\n" +#~ msgstr "appel %d a retourn = %s%%\n" + +#~ msgid "branch %d taken = %s%%\n" +#~ msgstr "branchement %d a pris = %s%%\n" + +#~ msgid ".da file contents exhausted too early" +#~ msgstr "Le contenu du fichier .da a t puis trop rapidement" + +#~ msgid "conversion from NaN to int" +#~ msgstr "conversion de NaN en int" + +#~ msgid "floating point overflow" +#~ msgstr "dbordement de virgule flottante" + +#~ msgid "overflow on truncation to integer" +#~ msgstr "dbordement de troncation d'un entier" + +#~ msgid "overflow on truncation to unsigned integer" +#~ msgstr "dbordement lors de la troncation d'un entier non sign" + +#~ msgid "%s: argument domain error" +#~ msgstr "%s: erreur d'argument de domaine" + +#~ msgid "%s: function singularity" +#~ msgstr "%s: singularit de fonction" + +#~ msgid "%s: underflow range error" +#~ msgstr "%s: erreur de sous dbordement de bornes" + +#~ msgid "%s: total loss of precision" +#~ msgstr "%s: perte totale de prcision" + +#~ msgid "%s: partial loss of precision" +#~ msgstr "%s: perte partielle de prcision" + +#~ msgid "%s: NaN - producing operation" +#~ msgstr "%s: NaN - opration produite" + +#~ msgid "Pretend that host and target use the same FP format" +#~ msgstr "Prtendre que l'hte et la cible utilise le format FP" + +#~ msgid "Compile pointers as triples: value, base & end" +#~ msgstr "Compiler les pointeurs comme des triplets: valeur, base et fin" + +#~ msgid "Do not promote floats to double if using -traditional" +#~ msgstr "Ne pas promouvoir les flottants des doubles avec -traditional" + +#~ msgid "Attempt to support traditional K&R style C" +#~ msgstr "Tenter de supporter le style de langage C traditionnel K&R" + +#~ msgid "internal error: %s" +#~ msgstr "erreur interne: %s" + +#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block" +#~ msgstr "saut crois dsactiv: %d > 1000 blocs de base et %d >= 20 blocs edges/basic" + +#~ msgid " -a Enable block profiling \n" +#~ msgstr " -a autoriser le profilage des blocs \n" + +#~ msgid " -ax Enable jump profiling \n" +#~ msgstr " -ax autoriser le profilage des sauts \n" + +#~ msgid "profiling does not work without a frame pointer" +#~ msgstr "profilage ne fonctionne pas sans un pointeur de trames" + +#~ msgid "floating point numbers not allowed in #if expressions" +#~ msgstr "nombres flottants ne sont pas permis dans les expressions #if" + +#~ msgid "invalid number in #if expression" +#~ msgstr "nombre invalide dans l'expression #if" + +#~ msgid "invalid character constant in #if" +#~ msgstr "constante de caractres invalide dans le #if" + +#~ msgid "double quoted strings not allowed in #if expressions" +#~ msgstr "chanes entre quillemets ne sont pas alloues dans les expression #if" + +#~ msgid "octal character constant does not fit in a byte" +#~ msgstr "constante de caractres en octal ne peut tre insre dans un octet" + +#~ msgid "empty #if expression" +#~ msgstr "expression #if vide" + +#~ msgid "Junk after end of expression." +#~ msgstr "Rebut la fin de l'expression." + +#~ msgid "macro or #include recursion too deep" +#~ msgstr "macro ou rcursion de #include trop profonde" + +#~ msgid "usage: %s [switches] input output" +#~ msgstr "usage: %s [options] entre sortie" + +#~ msgid "-traditional is not supported in C++" +#~ msgstr "-traditional n'est pas support en C++" + +#~ msgid "-traditional and -ansi are mutually exclusive" +#~ msgstr "-traditional et -ansi sont mutuellement exclusives" + +#~ msgid "filename missing after -i option" +#~ msgstr "nom de fichier manquant aprs l'option -i" + +#~ msgid "filename missing after -o option" +#~ msgstr "nom de fichier manquant aprs l'option -o" + +#~ msgid "target missing after %s option" +#~ msgstr "cible manquante aprs l'option %s" + +#~ msgid "filename missing after %s option" +#~ msgstr "nom de fichier manquant aprs l'option %s" + +#~ msgid "macro name missing after -%c option" +#~ msgstr "nom de macro manquant aprs l'option -%c" + +#~ msgid "-trigraphs and -traditional are mutually exclusive" +#~ msgstr "-trigraphs et -traditional sont mutuellement exclusives" + +#~ msgid "directory name missing after -I option" +#~ msgstr "nom de rpertoire manquant aprs l'option -I" + +#~ msgid "`/*' within comment" +#~ msgstr " /* l'intrieur d'un commentaire" + +#~ msgid "unterminated #%s conditional" +#~ msgstr "#%s conditionel non termin" + +#~ msgid "not in any file?!" +#~ msgstr "n'est pas dans aucun fichier?!" + +#~ msgid "`defined' must be followed by ident or (ident)" +#~ msgstr " defined doit tre suivi par ident ou (ident)" + +#~ msgid "cccp error: invalid special hash type" +#~ msgstr "erreur cccp: type de hachage spcial invalide" + +#~ msgid "#include expects \"fname\" or " +#~ msgstr "#include espre fname ou " + +#~ msgid "no include path in which to find %.*s" +#~ msgstr "pas de chemin d'inclusion dans lequel trouver %.*s" + +#~ msgid "invalid macro name" +#~ msgstr "nom de macro invalide" + +#~ msgid "invalid macro name `%s'" +#~ msgstr "nom de macro invalide %s " + +#~ msgid "parameter name starts with a digit in #define" +#~ msgstr "nom de paramtre dbute avec un chiffre dans #define" + +#~ msgid "badly punctuated parameter list in #define" +#~ msgstr "liste de paramtres incorrectement ponctus dans #define" + +#~ msgid "unterminated parameter list in #define" +#~ msgstr "liste de paramtres non termine dans #define" + +#~ msgid "\"%.*s\" redefined" +#~ msgstr "\"%.*s\" redfini" + +#~ msgid "# operator should be followed by a macro argument name" +#~ msgstr "# oprator derait tre suivi par le nom d'un argument macro" + +#~ msgid "invalid format #line command" +#~ msgstr "format invalide dans la commande #ligne" + +#~ msgid "undefining `defined'" +#~ msgstr "indfinition defined " + +#~ msgid "undefining `%s'" +#~ msgstr "indfinition %s " + +#~ msgid "extra text at end of directive" +#~ msgstr "texte superflu la fin de la directive" + +#~ msgid "#error%.*s" +#~ msgstr "#error%.*s" + +#~ msgid "#warning%.*s" +#~ msgstr "#warning%.*s" + +#~ msgid "#elif not within a conditional" +#~ msgstr "#elif n'est pas l'intrieur d'un conditionel" + +#~ msgid "#%s not within a conditional" +#~ msgstr "#%s n'est pas l'intrieur d'un conditionel" + +#~ msgid "#else or #elif after #else" +#~ msgstr "#else ou #elif aprs #else" + +#~ msgid "#else not within a conditional" +#~ msgstr "#else n'est pas l'intrieur d'un conditionel" + +#~ msgid "unbalanced #endif" +#~ msgstr "#endif non pair" + +#~ msgid "unterminated string or character constant" +#~ msgstr "chane non termine ou constante caractre" + +#~ msgid "arguments given to macro `%s'" +#~ msgstr "argument donne la macro %s " + +#~ msgid "no args to macro `%s'" +#~ msgstr "aucun argument pour la macro %s " + +#~ msgid "only 1 arg to macro `%s'" +#~ msgstr "seulement 1 argument pour la macro %s " + +#~ msgid "only %d args to macro `%s'" +#~ msgstr "seulement %d arguments pour la macro %s " + +#~ msgid "too many (%d) args to macro `%s'" +#~ msgstr "trop d'arguments (%d) pour la macro %s " + +#~ msgid "" +#~ "internal error in %s, at tradcpp.c:%d\n" +#~ "Please submit a full bug report.\n" +#~ "See %s for instructions." +#~ msgstr "" +#~ "Erreur interne dans %s, tradcpp.c:%d\n" +#~ "SVP soumettre un rapport complet des anomalies rencontres.\n" +#~ "Consulter %s pour les instructions." + +#~ msgid "optimization turned on" +#~ msgstr "optimisation active" + +#~ msgid "optimization turned off" +#~ msgstr "optimisation dsactive" + +#~ msgid "optimization level restored" +#~ msgstr "niveau d'optimisation restaur" + +#~ msgid "Use VAX-C alignment" +#~ msgstr "Utiliser l'alignement VAX-C" + +#~ msgid "Generate code assuming DW bit is set" +#~ msgstr "Gnrer le code en assumant que le bit DW est initialis" + +#~ msgid "Generate code assuming DW bit is not set" +#~ msgstr "Gnrer le code en assumant que le bit DW n'est pas initialis" + +#~ msgid "Generate code using byte writes" +#~ msgstr "Gnrer le code en utilisant des critures par octets" + +#~ msgid "Do not generate byte writes" +#~ msgstr "Ne pas gnrer des critures par octets" + +#~ msgid "Use small memory model" +#~ msgstr "Utiliser le modle de petite mmoire" + +#~ msgid "Use normal memory model" +#~ msgstr "Utiliser le modle normal de mmoire" + +#~ msgid "Use large memory model" +#~ msgstr "Utiliser le modle de grande mmoire" + +#~ msgid "Generate 29050 code" +#~ msgstr "Gnrer le code 29050" + +#~ msgid "Generate 29000 code" +#~ msgstr "Gnrer le code 29000" + +#~ msgid "Use kernel global registers" +#~ msgstr "Utiliser les registres globaux du kernel" + +#~ msgid "Use user global registers" +#~ msgstr "Utiliser les registres globaux" + +#~ msgid "Emit stack checking code" +#~ msgstr "Produire le code de vrification de la pile" + +#~ msgid "Do not emit stack checking code" +#~ msgstr "Ne pas produire le code de vrification de la pile" + +#~ msgid "Work around storem hardware bug" +#~ msgstr "Contourner le bug matriel de stockage" + +#~ msgid "Do not work around storem hardware bug" +#~ msgstr "Ne pas contourner le bug matriel de stockage" + +#~ msgid "Store locals in argument registers" +#~ msgstr "Stocker les var. locales dans redistres d'arguments" + +#~ msgid "Do not store locals in arg registers" +#~ msgstr "Ne pas stocker les var. locales dans redistres d'arguments" + +#~ msgid "Do symbol renaming for BSD" +#~ msgstr "Ne pas renommer les symboles pour BSD" + +#~ msgid "Do symbol renaming for X/OPEN" +#~ msgstr "Ne pas renommer les symboles pour X/OPEN" + +#~ msgid "Don't do symbol renaming" +#~ msgstr "Ne pas renommer les symboles" + +#~ msgid "Generate code for the C400" +#~ msgstr "Gnrer le code pour le C400" + +#~ msgid "Generate code for the C300" +#~ msgstr "Gnrer le code pour le C300" + +#~ msgid "Generate code for c1" +#~ msgstr "Gnrer le code pour le c1" + +#~ msgid "Generate code for c2" +#~ msgstr "Gnrer le code pour le c2" + +#~ msgid "Generate code for c32" +#~ msgstr "Gnrer le code pour le c3" + +#~ msgid "Generate code for c34" +#~ msgstr "Gnrer le code pour le c34" + +#~ msgid "Use standard calling sequence, with arg count word" +#~ msgstr "Utiliser la squence standard d'appel, avec arg et mot compteur" + +#~ msgid "Place arg count in a nop instruction (faster than push)" +#~ msgstr "Placer le compteur d'arg dans une instruction NOP (plus rapide que push)" + +#~ msgid "Don't push arg count, depend on symbol table" +#~ msgstr "Ne pas empiler le compteur d'arg, dpend de la table de symboles" + +#~ msgid "Use data cache for volatile mem refs (default)" +#~ msgstr "Utiliser la cache de donnes pour les rf. mmoire volatiles (par dfaut)" + +#~ msgid "Don't use data cache for volatile mem refs" +#~ msgstr "Ne pas utiliser la cache de donnes pour les rf. mmoire volatiles" + +#~ msgid "Bypass data cache for volatile mem refs" +#~ msgstr "viter la cache de donnes pour les rf. mmoire volatiles" + +#~ msgid "Use 64-bit longs" +#~ msgstr "Utiliser des longs de 64 bits" + +#~ msgid "Use cc- and libc-compatible 32-bit longs" +#~ msgstr "Utiliser cc- et libc-compatible longs de 32 bits" + +#~ msgid "inline float constants not supported on this host" +#~ msgstr "enlignage des constantes flottantes n'est pas support sur cet hte" + +#~ msgid "Generate code the unix assembler can handle" +#~ msgstr "Gnrer du code que l'assembleur UNIX peut traiter" + +#~ msgid "Retain standard MXDB information" +#~ msgstr "Retenir l'information standard MXDB" + +#~ msgid "Retain legend information" +#~ msgstr "Retenir les informations de lgende" + +#~ msgid "Generate external legend information" +#~ msgstr "Gnrer les informations externes de lgende" + +#~ msgid "Emit identifying info in .s file" +#~ msgstr "Produire les infos d'identification dans le fichier .s" + +#~ msgid "Warn when a function arg is a structure" +#~ msgstr "Avertir lorsque l'arg d'une fonction est une structure" + +#~ msgid "argument is a structure" +#~ msgstr "argument est une structure" + +#~ msgid "half-pic init called on systems that don't support it" +#~ msgstr "init demi PIC appel sur un systme qui ne le supporte pas" + +#~ msgid "Profiling uses mcount" +#~ msgstr "Profilage utilise mcount" + +#~ msgid "Emit half-PIC code" +#~ msgstr "Produire du code moiti PIC" + +#~ msgid "Emit ELF object code" +#~ msgstr "Produire du code objet ELF" + +#~ msgid "Emit ROSE object code" +#~ msgstr "Produire du code objet ROSE" + +#~ msgid "Symbols have a leading underscore" +#~ msgstr "Les symboles sont prcdes d'un caractre de soulignement " + +#~ msgid "Align to >word boundaries" +#~ msgstr "Aligner sur >frontires de mots" + +#~ msgid "Use mcount for profiling" +#~ msgstr "Utiliser mcount pour le profilage" + +#~ msgid "Use mcount_ptr for profiling" +#~ msgstr "Utiliser mcount_ptr pour le profilage" + +#~ msgid "the -mlong-double-64 option does not work yet" +#~ msgstr "l'option -mlong-double-64 n'est pas fonctionnelle encore" + +#~ msgid "The -march option is incompatible to -mipsN and therefore ignored." +#~ msgstr "L'option -march est incompatible avec -mipsN et est alors ignore." + +#~ msgid "-mips%d not supported" +#~ msgstr "-mips%d n'est pas support" + +#~ msgid "-mabi=%s does not support -mips%d" +#~ msgstr "-mabi=%s ne supporte pas -mips%d" + +#~ msgid "this target does not support the -mabi switch" +#~ msgstr "cette cible ne supporte pas l'option -mabi" + +#~ msgid "-mips%d does not support 64 bit fp registers" +#~ msgstr "-mips%d ne supporte pas les registres FP de 64 bits" + +#~ msgid "-mips%d does not support 64 bit gp registers" +#~ msgstr "-mips%d ne supporte pas les registres GP de 64 bits" + +#~ msgid "Use OSF PIC" +#~ msgstr "Utiliser le code PIC OSF" + +#~ msgid "Don't use OSF PIC" +#~ msgstr "Ne pas utiliser le code PIC OSF" + +#~ msgid "Optimize for 3900" +#~ msgstr "Optimiser pour le 3900" + +#~ msgid "Optimize for 4650" +#~ msgstr "Optimiser pour le 4650" + +#~ msgid "stack frame too big" +#~ msgstr "trame de pile trop grande" + +#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs" +#~ msgstr "ni varargs ou stdarg dans mmix_setup_incoming_varargs" + +#~ msgid "oops, not debugged; fixing up value:" +#~ msgstr "oops, pas mis au point; correction de la valeur:" + +#~ msgid "Generate little endian data" +#~ msgstr "Gnrer des donnes pour systmes octets de poids faible" + +#~ msgid "Generate big endian data" +#~ msgstr "Gnrer des donnes pour systmes octets de poids fort" + +#~ msgid "Turn on maintainer testing code" +#~ msgstr "Mettre en marche le code d'entretien de mise au point" + +#~ msgid "Enable Transmeta picoJava extensions" +#~ msgstr "Autoriser les extensions Transmeta picoJava" + +#~ msgid "Disable Transmeta picoJava extensions" +#~ msgstr "Interdire les extensions Transmeta picoJava" + +#~ msgid "Disable reorganization pass" +#~ msgstr "Dsactiver la passe de rorganisation" + +#~ msgid "-f%s ignored (all code is position independent)" +#~ msgstr "-f%s ignor (tout le code est indpendant de la position)" + +#~ msgid "-ffunction-sections disabled on AIX when debugging" +#~ msgstr "-ffunction-sections dsactiv sur AIX lors de la mise au point" + +#~ msgid "-fdata-sections not supported on AIX" +#~ msgstr "-fdata-sections n'est pas support sur AIX" + +#~ msgid "%%S computed all 1's mask" +#~ msgstr "%%S calcul avec un masque que uns" + +#~ msgid "%%S computed all 0's mask" +#~ msgstr "%%S calcul avec un masque de zros" + +#~ msgid "no viable candidates" +#~ msgstr "pas de candidats viables" + +#~ msgid "`%D' has already been declared in `%T'" +#~ msgstr " %D a dj t dclar dans %T " + +#~ msgid "`%D' as declarator" +#~ msgstr " %D comme dclarateur" + +#~ msgid "cannot declare %s to references" +#~ msgstr "ne peut dclarer %s comme rfrences" + +#~ msgid "invalid type: `void &'" +#~ msgstr "type invalide: void & " + +#~ msgid "typedef declaration includes an initializer" +#~ msgstr "dclaration typedef inclut un initialiseur" + +#~ msgid "-fname-mangling-version is no longer supported" +#~ msgstr "-fname-mangling-version n'est plus supporte" + +#~ msgid " %#D" +#~ msgstr " %#D" + +#~ msgid "member initializers for `%#D'" +#~ msgstr "initialiseur du membre pour %#D " + +#~ msgid " will be re-ordered to match declaration order" +#~ msgstr " sera r-odonn pour concorder avec l'ordre dclar" + +#~ msgid "multiple initializations given for member `%D'" +#~ msgstr "initialisations multiples donnes pour le membre %D " + +#~ msgid " will be re-ordered to match inheritance order" +#~ msgstr " sera r-ordonn pour concorder avec l'ordre d'hritage" + +#~ msgid "implementation-reserved name `%D' used" +#~ msgstr "nom d'implantation rserv %D est utilis" + +#~ msgid "explicit instantiation of `%#D' after" +#~ msgstr "instanciation explicite de %#D aprs" + +#~ msgid "explicit specialization here" +#~ msgstr "spcialisation explicite ici" + +#~ msgid "explicit instantiation of `%#T' after" +#~ msgstr "instanciation explicite de %#T aprs" + +#~ msgid "base initializer for `%T'" +#~ msgstr "initialiseur de base %T " + +#~ msgid " will be re-ordered to precede member initializations" +#~ msgstr " sera r-ordonn pour prcder les initialisations de membre" + +#~ msgid "ignoring `%V' qualifiers on `%T'" +#~ msgstr "qualificateurs %V ignors pour %T " + +#~ msgid "`sizeof' applied to non-static member" +#~ msgstr " sizeof appliqu un membre non statique" + +#~ msgid "`sizeof' applied to incomplete type `%T'" +#~ msgstr " sizeof appliqu sur un type incomplet %T " + +#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'" +#~ msgstr "requte du membre %T::%D dans l'expression du type non aggrgat %T " + +#~ msgid "invalid use of type decl `%#D' as expression" +#~ msgstr "utilisation invalide du type decl %#D comme expression" + +#~ msgid "invalid use of template `%#D' as expression" +#~ msgstr "utilisation invalide du canevas %#D comme expression" + +#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead" +#~ msgstr "offsetof invalide du type non POD %#T ; utiliser un pointeur vers un membre la place" + +#~ msgid "pointer to member function called, but not in class scope" +#~ msgstr "appel d'un pointeur vers un membre de fonction, mais n'est pas dans le champ de la classe" + +#~ msgid "object missing in call to method `%D'" +#~ msgstr "objet manquant dans l'appel de la mthode %D " + +#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?" +#~ msgstr "fontion %D dclare surcharge, mais aucune dfinition n'apparat pour la rsoudre?!?" + +#~ msgid "invalid call to member function needing `this' in static member function scope" +#~ msgstr "appel invalide vers un membre de fonction ayant besoin de ceci dans le champ du membre statique de la fonction" + +#~ msgid "invalid use of undefined type `%#T'" +#~ msgstr "utilisation invalide d'un type indfini %#T " + +#~ msgid "invalid use of `%T'" +#~ msgstr "utilisation invalide de %T " + +#~ msgid "invalid use of member (did you forget the `&' ?)" +#~ msgstr "utilisation invalide de membre (avez-vous oubli le & ?)" + +#~ msgid "address of overloaded function with no contextual type information" +#~ msgstr "adresse de la fonction surcharge sans information contextuelle de type" + +#~ msgid "overloaded function with no contextual type information" +#~ msgstr "fonction surcharge sans information contextuelle de type" + +#~ msgid "insufficient contextual information to determine type" +#~ msgstr "information contextuelle insuffisante pour dterminer le type" + +#~ msgid "initializer list construction invalid for derived class object `%D'" +#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe drive %D " + +#~ msgid "initializer list construction invalid for polymorphic class object `%D'" +#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe polymorphique %D " + +#~ msgid "initializer list construction invalid for `%D'" +#~ msgstr "construction de la liste d'initialiseurs invalide pour %D " + +#~ msgid "due to the presence of a constructor" +#~ msgstr "en raison de la prsence d'un constructeur" + +#~ msgid "due to non-public access of member `%D'" +#~ msgstr "en raison d'un accs non public du membre %D " + +#~ msgid "The meaning of `\\x' (at %0) varies with -traditional" +#~ msgstr "La signification de \\x ( %0) varie avec l'option -traditional" + +#~ msgid "The meaning of `\\a' (at %0) varies with -traditional" +#~ msgstr "La signification de \\a( %0) varie avec -traditional" + +#~ msgid "the meaning of `\\x' varies with -traditional" +#~ msgstr "la signification de \\x varie avec l'option -traditional" + +#~ msgid "the meaning of `\\a' varies with -traditional" +#~ msgstr "le sens de \\a varie avec -traditional" + +#~ msgid "parse error; also virtual memory exceeded" +#~ msgstr "erreur d,analyse syntaxique; aussi la mmoire virtuelle est puise" + +#~ msgid "Can't specify array dimension in a declaration" +#~ msgstr "Ne peut spcifier la dimension du tableau dans la dclaration" + +#~ msgid "internal error - use of undefined type" +#~ msgstr "erreur interne - utilisation d'un type non dfini" + +#~ msgid "no class name specified as argument to -fconstant-string-class" +#~ msgstr "pas de nom de classe spcifier dans l'argument -fconstant-string-class" + +#~ msgid "-p profiling is no longer supported. Use -pg instead" +#~ msgstr "-p profilage n'est plus support. Utiliser -pg la place." + +#~ msgid "incompatible interworking options" +#~ msgstr "options d'inter-rseautage incompatibles" + +#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive" +#~ msgstr "options -mabi=mmixware et -mabi=gnu sont mutuellement exclusives" + +#~ msgid "-p option not supported: use -pg instead" +#~ msgstr "l'option -p n'est pas supporte: utitilse -pg la place" + +#~ msgid "-mbsd and -pedantic incompatible" +#~ msgstr "-mbsd et -pedantic incompatibles" + +#~ msgid "-mbsd and -mxopen incompatible" +#~ msgstr "-mbsd et -mxopen incompatibles" + +#~ msgid "-mxopen and -pedantic incompatible" +#~ msgstr "-mxopen et -pedantic incompatibles" + +#~ msgid "may not use both -mfp64 and -msingle-float" +#~ msgstr "ne peut utiliser ensemble -mfp64 et -msingle-float" + +#~ msgid "may not use both -mfp64 and -m4650" +#~ msgstr "ne peut utiliser ensemble -mfp64 et -m4650" + +#~ msgid "may not use both -mgp32 and -mfp64" +#~ msgstr "ne peut utiliser ensemble -mfp32 et -mfp64" + +#~ msgid "declaration of `%#T'" +#~ msgstr "dclaration de %#T " + +#~ msgid "a -ifile option requires a -map option" +#~ msgstr "l'option -ifile requiert l'option -map" + +#~ msgid "__builtin_trap not supported by this target" +#~ msgstr "__builtin_trap n'est pas support par la cible" + +#~ msgid "`%s' previously defined here" +#~ msgstr " %s prcdemment dfini ici" + +#~ msgid "`%s' previously declared here" +#~ msgstr " %s prcdemment dclar ici" + +#~ msgid "increment" +#~ msgstr "incrment" + +#~ msgid "decrement" +#~ msgstr "dcrment" + +#~ msgid "Usage: %s [switches] input output\n" +#~ msgstr "Usage: %s [options] entre sortie\n" + +#~ msgid "output_operand: %s" +#~ msgstr "output_operand: %s" + +#~ msgid "invalid %H value" +#~ msgstr "valeur %H invalide" + +#~ msgid "invalid %h value" +#~ msgstr "valeur %h invalide" + +#~ msgid "invalid %Q value" +#~ msgstr "valeur %Q invalide" + +#~ msgid "invalid %q value" +#~ msgstr "valeur %q invalide" + +#~ msgid "invalid %p value" +#~ msgstr "valeur %p invalide" + +#~ msgid "invalid %B value" +#~ msgstr "valeur %B invalide" + +#~ msgid "invalid %C value" +#~ msgstr "valeur %C invalide" + +#~ msgid "invalid %E value" +#~ msgstr "valeur %E invalide" + +#~ msgid "invalid %r value" +#~ msgstr "valeur %r invalide" + +#~ msgid "-march=%s does not support -mips%d" +#~ msgstr "-march=%s ne supporte pas -mips%d" + +#~ msgid "no code label found" +#~ msgstr "pas d'tiquette de code trouve" + +#~ msgid "profiling does not support code models other than medlow" +#~ msgstr "profilage ne supporte pas le code pour les modles autre que medlow" + +#~ msgid "%s and profiling conflict: disabling %s" +#~ msgstr "%s avec des conflit de profilage: dsactivation de %s" + +#~ msgid "Use function_epilogue()" +#~ msgstr "Utiliser fonction_epilogue()" + +#~ msgid "Do not use function_epilogue()" +#~ msgstr "Ne pas utiliser fonction_epilogue()" + +#~ msgid "%d errors, %d sorries, do granting" +#~ msgstr "%d erreurs, %d plaintes, donner la permission" + +#~ msgid "GNU compiler does not support statically allocated objects" +#~ msgstr "compilateur GNU ne supporte pas les objets allous de manire statique" + +#~ msgid "causing unhandled exception `%s' (this is flaged only once)" +#~ msgstr "causant l'exception non trait %s (ceci est relev seulement une fois)" + +#~ msgid "range failure (not inside function)" +#~ msgstr "chec sur l'tendue (n'est pas l'intrieur de la fonction)" + +#~ msgid "possible range failure (not inside function)" +#~ msgstr "chec possible de l'tendue (pas l'intrique de la fonction)" + +#~ msgid "expression will always cause RANGEFAIL" +#~ msgstr "l'expression causera toujours RENGEFAIL" + +#~ msgid "right hand side of assignment is a mode" +#~ msgstr "ct droit de l'affectation est un mode" + +#~ msgid "bad string length in %s" +#~ msgstr "chane de longueur errone dans %s" + +#~ msgid "mode mismatch in %s expression" +#~ msgstr "non concordance de mode dans l'expression %s" + +#~ msgid "%s expression must be referable" +#~ msgstr "expression %s doit tre rfrable" + +#~ msgid "%s not allowed outside a PROC" +#~ msgstr "%s n'est pas permis en dehors d'une procdure" + +#~ msgid "%s action in PROC with no declared RESULTS" +#~ msgstr "action %s dans la procdure sans RSULTATS dclars" + +#~ msgid "RETURN not allowed outside PROC" +#~ msgstr "RETURN n'est pas permis en dehors d'une procdure" + +#~ msgid "RETURN with a value, in PROC returning void" +#~ msgstr "RETURN avec valeur dans une procdure retournant void" + +#~ msgid "RETURN with no value and no RESULT action in procedure" +#~ msgstr "RETURN sans valeur et sans RSULTAT d'action dans la procdure" + +#~ msgid "no label named `%s'" +#~ msgstr "pas d'tiquette nomme %s " + +#~ msgid "cannot GOTO label `%s' outside current function" +#~ msgstr "ne peut aller L'tiquette %s en dehors de la fonction courante" + +#~ msgid "no EXITable label named `%s'" +#~ msgstr "pas d'tiquette de sortie portant le nom %s " + +#~ msgid "cannot EXIT label `%s' outside current function" +#~ msgstr "ne sortir l'aide de l'tiquette %s en dehors de la fonction courante" + +#~ msgid "ELSE label not within a CASE statement" +#~ msgstr "tiquette du ELSE n'est pas n'est pas l'intrieur de la dclaration du CASE" + +#~ msgid "multiple default labels found in a CASE statement" +#~ msgstr "tiquettes multiples de dfaut dans la dclaration d'un case" + +#~ msgid "this is the first ELSE label" +#~ msgstr "ceci est la premire tiquette ELSE" + +#~ msgid "label found outside of CASE statement" +#~ msgstr "tiquette trouve en dehors de la dclaration du CASE" + +#~ msgid "duplicate CASE value" +#~ msgstr "valeur de CASE double" + +#~ msgid "this is the first entry for that value" +#~ msgstr "c'est la premire entre pour cette valeur" + +#~ msgid "CASE value out of range" +#~ msgstr "valeur du CASE hors gamme" + +#~ msgid "empty range" +#~ msgstr "bornes vides" + +#~ msgid "label within scope of cleanup or variable array" +#~ msgstr "tiquette l'intrieur de la porte du nettoyage ou du tableau de variables" + +#~ msgid "mode in label is not discrete" +#~ msgstr "mode dans l'tiquette n'est pas discret" + +#~ msgid "label not within a CASE statement" +#~ msgstr "tiquette n'est pas l'intrieur de la dclaration du CASE" + +#~ msgid "lower bound of range must be a discrete literal expression" +#~ msgstr "borne infrieure de l'tendue doit tre une expression litrale discrte" + +#~ msgid "upper bound of range must be a discrete literal expression" +#~ msgstr "borne suprieure de l'tendue doit tre une expression litrale discrte" + +#~ msgid "CASE label is not valid" +#~ msgstr "tiquette du CASE n'est pas valide" + +#~ msgid "number of CASE selectors does not match the number of CASE label lists" +#~ msgstr "nombre de slecteurs de CASE ne concorde pas avec la liste des tiquettes du CASE" + +#~ msgid "incomplete CASE - %s not handled" +#~ msgstr "CASE incomplet - %s n'est pas trait" + +#~ msgid "CASE selector with variable range" +#~ msgstr "slecteur du CASE avec un tendue variable" + +#~ msgid "too many cases to do CASE completeness testing" +#~ msgstr "trop de cas pour la compltion de tests du CASE" + +#~ msgid "type of tuple cannot be implicit in multiple assignent" +#~ msgstr "type de tuple ne peut tre implicite dans de multiples affectations" + +#~ msgid "conditional expression cannot be used in multiple assignent" +#~ msgstr "expression conditionnelle ne peut tre utilis dans de multiples affectations" + +#~ msgid "internal error - unknown type in multiple assignment" +#~ msgstr "erreur interne - type inconnu dans une affectation multiple" + +#~ msgid "no operator allowed in multiple assignment," +#~ msgstr "pas d'oprateur permis dans de multiples affectations" + +#~ msgid "location modes in multiple assignment are not equivalent" +#~ msgstr "modes de localisation dans de multiples affectations ne sont pas quivalents" + +#~ msgid "you may not assign a value to a BUFFER or EVENT location" +#~ msgstr "vous pouvez affecter une valeur la localisation d'un TAMPON ou d'un VNEMENT " + +#~ msgid "can't assign value to READonly location" +#~ msgstr "ne peut affecter une valeur une localisation en mode LECTURE seulement" + +#~ msgid "cannot assign to location with non-value property" +#~ msgstr "ne peut affecter une localisation avec une proprit sans valeur" + +#~ msgid "lefthand side of assignment is not a location" +#~ msgstr "ct gauche de l'affectation n'est pas un localisation" + +#~ msgid "bitstring slice" +#~ msgstr "tranche d'une chane de bits" + +#~ msgid "LENGTH on left-hand-side is non-portable" +#~ msgstr "LONGUEUR sur le ct droit n'est pas portable" + +#~ msgid "can only set LENGTH of array location" +#~ msgstr "peut seulement fixer la LONGUEUR de la localisation d'un tableau" + +#~ msgid "internal error: trying to make loc-identity with non-location" +#~ msgstr "erreur interne: tentative de crer une identit de localisation avec une non localisation" + +#~ msgid "cannot convert to a boolean mode" +#~ msgstr "ne peut convertir en un mode boolen" + +#~ msgid "cannot convert to a char mode" +#~ msgstr "ne peut convertir en mode caractre" + +#~ msgid "powerset tuple element out of range" +#~ msgstr "lment du tuple du powerset est hors gamme" + +#~ msgid "incompatible member of powerset tuple (at position #%d)" +#~ msgstr "membre incompatible du tuple du powerset ( la position #%d)" + +#~ msgid "non-constant value for tag field `%s'" +#~ msgstr "valeur non constante pour l'tiquette de champ %s " + +#~ msgid "field `%s' in wrong variant" +#~ msgstr "champ %s dans un variant erron" + +#~ msgid "missing variant fields (at least `%s')" +#~ msgstr "champs variants manquants (au moins %s )" + +#~ msgid "bad initializer for field `%s'" +#~ msgstr "initialiseur erron pour le champ %s " + +#~ msgid "no initializer value for variant field `%s'" +#~ msgstr "pas de valeur d'initialiseur pour le champ %s " + +#~ msgid "no selected variant" +#~ msgstr "pas de variant slectionn" + +#~ msgid "mixture of labelled and unlabelled tuple elements" +#~ msgstr "mlange de tuple d'lments tiquetts et non tiquetts" + +#~ msgid "probably not a structure tuple" +#~ msgstr "probablement pas une structure de tuple" + +#~ msgid "excess initializer for field `%s'" +#~ msgstr "dbordement de l'initialiseur pour le champ %s " + +#~ msgid "excess unnamed initializers" +#~ msgstr "dbordement d'initialiseurs sans nom" + +#~ msgid "non-constant start index for tuple" +#~ msgstr "index de dpart du tuple n'est pas une constante" + +#~ msgid "invalid array tuple label" +#~ msgstr "tiquette invalide d'un tuple de tableau" + +#~ msgid "non-constant array tuple index range" +#~ msgstr "tendue de l'index du tableau de tuples n'est pas une constante" + +#~ msgid "incompatible array tuple element %s" +#~ msgstr "lment incompatible du tableau de tuples %s" + +#~ msgid "multiple (*) or (ELSE) array tuple labels" +#~ msgstr "multiples tiquettes de tuples de tableaux (*) ou (ELSE)" + +#~ msgid "empty range in array tuple" +#~ msgstr "tendue vide dans le tableau de tuples" + +#~ msgid "array tuple has duplicate index %s" +#~ msgstr "tableau de tuples a un double index %s" + +#~ msgid "array tuple index out of range" +#~ msgstr "index du tableau de tuples est hors gamme" + +#~ msgid "too many array tuple values" +#~ msgstr "trop de valeurs de tuples de tableaux" + +#~ msgid "dynamic array tuple without (*) or (ELSE)" +#~ msgstr "tuple de tableau dynamique sans (*) ou (ELSE)" + +#~ msgid "missing array tuple element %s" +#~ msgstr "lment de tuple de tableau manquant %s" + +#~ msgid "missing array tuple elements %s : %s" +#~ msgstr "lments de tuple de tableau manquant %s : %s" + +#~ msgid "initializer is not an array or string mode" +#~ msgstr "initialiseur n'est pas en mode tableau ou chane" + +#~ msgid "destination is too small" +#~ msgstr "destination trop petite" + +#~ msgid "internal error: unknown type of expression" +#~ msgstr "erreur interne: type d'expression inconnue" + +#~ msgid "`%s' must not be declared readonly" +#~ msgstr " %s ne doit pas tre dclar en lecture seulement" + +#~ msgid "declaration of readonly variable without initialization" +#~ msgstr "dclaration d'une variable en lecture seuelement sans initialisation" + +#~ msgid "no initialization allowed for `%s'" +#~ msgstr "pas d'initialisation permise pour %s " + +#~ msgid "value for loc-identity `%s' is not a location" +#~ msgstr "valeur pour l'identit de localisation %s n'est pas une localisation" + +#~ msgid "location for `%s' not read-compatible" +#~ msgstr "localisation pour %s n'est pas compatible en lecture" + +#~ msgid "nonconstant initializer for `%s'" +#~ msgstr "initialiseur n,est pas un constante pour %s " + +#~ msgid "do_decl: internal error: don't know what to initialize" +#~ msgstr "do_decl: erreur interne: ne sait pas quoi initialiser" + +#~ msgid "RECURSIVE PROCs" +#~ msgstr "PROCDURES RCURSIVES" + +#~ msgid "`%s' must not be READonly" +#~ msgstr " %s ne doit pas tre en lecture seulement" + +#~ msgid "POS may not be specified for a list of field declarations" +#~ msgstr "POS ne peut pas tre spcifis pour une liste de dclarations de champs" + +#~ msgid "(ELSE) case label as well as ELSE variant" +#~ msgstr "tiquette du cas (ELSE) aussi bien que le ELSE variant" + +#~ msgid "inconsistent modes between labels and tag field" +#~ msgstr "modes inconsistents entre les tiquettes et le champ tiquette" + +#~ msgid "too few tag labels" +#~ msgstr "pas assez d'tiquettes" + +#~ msgid "too many tag labels" +#~ msgstr "trop d'tiquettes" + +#~ msgid "case label lower limit is not a discrete constant expression" +#~ msgstr "limite infrieure de l'tiquette du CASE n'est pas une expression d'une constante discrte" + +#~ msgid "case label upper limit is not a discrete constant expression" +#~ msgstr "limite suprieure de l'tiquette du CASE n'est pas une expression d'une constante discrte" + +#~ msgid "case label must be a discrete constant expression" +#~ msgstr "l'tiquette du CASE doit tre une expression de constante discrte" + +#~ msgid "variant label declared here..." +#~ msgstr "tiquette variante dclare ici..." + +#~ msgid "...is duplicated here" +#~ msgstr "...est dupliqu ici" + +#~ msgid "no field (yet) for tag %s" +#~ msgstr "pas de champ (encore) pour l'tiquette %s" + +#~ msgid "non-value mode may only returned by LOC" +#~ msgstr "mode non-valeur peut seulement tre retourn par LOC" + +#~ msgid "`%s' may only be passed by LOC" +#~ msgstr " %s peut seulement tre pass par LOC" + +#~ msgid "nothing named `%s' to grant" +#~ msgstr "rien de nomm %s autoriser" + +#~ msgid "duplicate grant for `%s'" +#~ msgstr "duplication autorise pour %s " + +#~ msgid "duplicate definition `%s'" +#~ msgstr "double dfinition de %s " + +#~ msgid "previous definition of `%s'" +#~ msgstr "dfinition prcdente de %s " + +#~ msgid "ambiguous choice for seize `%s' -" +#~ msgstr "choix ambigu pour valuer %s -" + +#~ msgid " - can seize this `%s' -" +#~ msgstr " - peut valuer ceci %s -" + +#~ msgid " - or this granted decl `%s'" +#~ msgstr " - ou cette decl %s autoris" + +#~ msgid "enumerator value for `%s' is less than 0" +#~ msgstr "valeur de l'numrateur pour %s est plus petit que 0" + +#~ msgid "enumerators `%s' and `%s' have equal values" +#~ msgstr "numrateurs %s et %s ont les mmes valeurs" + +#~ msgid "undefined value in SET mode is obsolete and deprecated" +#~ msgstr "valeur non dfinie dans le mode SET est obsolte" + +#~ msgid "BASE variable never declared" +#~ msgstr "variable de BASE jamais dclare" + +#~ msgid "cannot BASE a variable on a PROC/PROCESS name" +#~ msgstr "ne peut tablir une variable sur le nom du PROC/PROCESSUS" + +#~ msgid "INTERNAL ERROR: handle_one_level is broken" +#~ msgstr "ERREUR INTERNE: handle_one_level est bris" + +#~ msgid "tuple without specified mode not allowed in %s" +#~ msgstr "tuple sans mode spcifi n'est pas permis dans %s" + +#~ msgid "conditional expression not allowed in %s" +#~ msgstr "expression conditionnelle n'est pas permise dans %s " + +#~ msgid "internal error: unknown expression mode in %s" +#~ msgstr "erreur interne: mode d'expression inconnnu dans %s" + +#~ msgid "CASE selector is not a discrete expression" +#~ msgstr "slecteur du CASE n'est pas une expression discrte" + +#~ msgid "The number of CASE selectors does not match the number of CASE label lists" +#~ msgstr "Le nombre de slecteurs de CASE ne concordent pas avec le nombre de listes d'tiquettes du CASE" + +#~ msgid "powerset is not addressable" +#~ msgstr "powerset n'est pas adressable" + +#~ msgid "array is not addressable" +#~ msgstr "tableau n'est pas adressable" + +#~ msgid "too few arguments in call to `%s'" +#~ msgstr "pas assez d'argument pour l'appel de %s " + +#~ msgid "too many arguments in call to `%s'" +#~ msgstr "trop d'arguments pour l'appel de %s " + +#~ msgid "cannot dereference, not a pointer" +#~ msgstr "ne peut drfrencer, n'est pas un pointeur" + +#~ msgid "missing '.' operator or undefined mode name `%s'" +#~ msgstr "oprateur . manquant ou nom de mode %s indfini" + +#~ msgid "you have forgotten the '.' operator which must" +#~ msgstr "vous avez oubli l'oprateur . lequel doit tre" + +#~ msgid " precede a STRUCT field reference, or `%s' is an undefined mode" +#~ msgstr " prcde une rfrence sur champ STRUCT ou %s est un mode indfini" + +#~ msgid "invalid type argument of `->'" +#~ msgstr "type d'argument invalide de ->" + +#~ msgid "operand of '.' is not a STRUCT" +#~ msgstr "l'oprande de '. nest pas un STRUCT" + +#~ msgid "no field named `%s'" +#~ msgstr "pas de champ nomm %s " + +#~ msgid "ABS argument must be discrete or real mode" +#~ msgstr "argument ABS doit tre en mode discret ou rel" + +#~ msgid "argument %d to ABSTIME must be of integer type" +#~ msgstr "argument %d ABSTIME doit tre un type entier" + +#~ msgid "parameter 1 must be referable" +#~ msgstr "paramtre 1 doit pouvoir tre rfrenc" + +#~ msgid "parameter 2 must be a positive integer" +#~ msgstr "paramtre 2 doit tre un entier positif" + +#~ msgid "CARD argument must be powerset mode" +#~ msgstr "argument CARD doit tre un mode powerset" + +#~ msgid "expression for DESCR-built-in must be referable" +#~ msgstr "expression pour DESCR-built-in doit pouvoir tre rfrenc" + +#~ msgid "argument to `%s' must be of integer type" +#~ msgstr "argument de %s doit tre de type entier" + +#~ msgid "argument 1 to `%s' must be of floating point mode" +#~ msgstr "argument 1 de %s doit tre en mode virgule flottante" + +#~ msgid "first argument to `%s' must be a mode" +#~ msgstr "premier argument de %s doit tre un mode" + +#~ msgid "READonly modes for %s must have a value" +#~ msgstr "mode LECTRURE seulement pour %s doit avoir une valeur" + +#~ msgid "argument to TERMINATE must be a reference primitive value" +#~ msgstr "argument TERMINATE doit tre une rfrence une valeur primitive" + +#~ msgid "argument 1 to INTTIME must be of mode TIME" +#~ msgstr "argument 1 de INTTIME doit tre de mode TIME" + +#~ msgid "LENGTH argument must be string, buffer, event mode, text location or mode" +#~ msgstr "LONGUEUR de l'argument doit tre une chane, un tampon, un mode d'vnement, la localisation d'un texte ou un mode" + +#~ msgid "UPPER argument must have a mode, or be a mode" +#~ msgstr "argument du HAUT doit avoir un mode ou tre un mode" + +#~ msgid "LOWER argument must have a mode, or be a mode" +#~ msgstr "argument du BAS doit avoir un mode ou tre un mode" + +#~ msgid "UPPER argument must be string, array, mode or integer" +#~ msgstr "argument du HAUT doit tre une chane, un tableau, un mode ou un entier" + +#~ msgid "LOWER argument must be string, array, mode or integer" +#~ msgstr "argument du BAS doit tre une chane, un tableau, un mode ou un entier" + +#~ msgid "%s argument must be POWERSET mode" +#~ msgstr "argument %s doit tre un mode POWERSET" + +#~ msgid "%s called for empty POWERSET" +#~ msgstr "%s appel pour un POWERSET vide" + +#~ msgid "argument to NUM is not discrete" +#~ msgstr "argument NUM n'est pas discret" + +#~ msgid "no integer mode which matches expression's mode" +#~ msgstr "pas de mode entier concordant au mode de l'expresion" + +#~ msgid "NUM's parameter is below its mode range" +#~ msgstr "paramtre NUMRIQUE est en dessous de l'tendue de son mode" + +#~ msgid "NUM's parameter is above its mode range" +#~ msgstr "paramtre NUMRIQUE est au dessus de l'tendue de son mode" + +#~ msgid "cannot take SUCC or PRED of a numbered SET" +#~ msgstr "ne peut prendre le SUIVANT ou le PRCDENT d'un ensemble numr" + +#~ msgid "SUCC or PRED must not be done on a PTR" +#~ msgstr "SUIVANT ou PRCDENT ne peuvent tre pris sur un PTR" + +#~ msgid "SUCC or PRED for a reference type is not standard" +#~ msgstr "SUIVANT ou PRCDENT pour un type rfrenc n'est pas standard" + +#~ msgid "SUCC or PRED argument must be a discrete mode" +#~ msgstr "SUIVANT ou PRCDENT comme argument doit tre en mode discret" + +#~ msgid "taking the %s of a value already at its %s value" +#~ msgstr "prendre le %s d'une valeur dj sa %s valeur" + +#~ msgid "size applied to a function mode" +#~ msgstr "taille applique au mode de la fonction" + +#~ msgid "sizeof applied to a void mode" +#~ msgstr "sizeof appliqu sur un mode void" + +#~ msgid "sizeof applied to an incomplete mode" +#~ msgstr "sizeof appliqu sur un mode incomplet" + +#~ msgid "cannot call a PROCESS, you START a PROCESS" +#~ msgstr "ne peut lancer un PROCESSUS, vous devez lancer le PROCESSUS" + +#~ msgid "%s parameter %d must be a location" +#~ msgstr "%s paramtre %d doit tre une localisation" + +#~ msgid "%s parameter %d is READ-only" +#~ msgstr "%s paramtre %d est en mode LECTURE seulement" + +#~ msgid "LOC actual parameter %d is a non-referable location" +#~ msgstr "LOCALISATION du paramtre actuel %d est dans une localisation non rfrenable" + +#~ msgid "mode mismatch in parameter %d" +#~ msgstr "non concordance du mode dans le paramtre %d" + +#~ msgid "too many arguments to procedure `%s'" +#~ msgstr "trop d'arguments pour la procdure %s " + +#~ msgid "too many arguments to procedure" +#~ msgstr "trop d'arguments pour la procdure" + +#~ msgid "too few arguments to procedure `%s'" +#~ msgstr "pas assez d'argument pour la procdure %s " + +#~ msgid "too few arguments to procedure" +#~ msgstr "trop peu d'arguments pour la procdure" + +#~ msgid "syntax error (integer used as function)" +#~ msgstr "erreur de syntaxe (entier utilis comme un fonction)" + +#~ msgid "syntax error - missing operator, comma, or '('?" +#~ msgstr "erreur de syntaxe - oprateur manquant virgule ou (?" + +#~ msgid "unimplemented built-in function `%s'" +#~ msgstr "fonction interne non implante %s " + +#~ msgid "internal error - bad built-in function `%s'" +#~ msgstr "erreur interne - mauvaise fonction interne %s " + +#~ msgid "empty expression in string index" +#~ msgstr "expression vide dans la chane d'index" + +#~ msgid "only one expression allowed in string index" +#~ msgstr "seul un expression est permise dans une chane d'index" + +#~ msgid "invalid: primval ( untyped_exprlist )" +#~ msgstr "invalide: primval ( untyped_exprlist )" + +#~ msgid "operand is variable-size bitstring/power-set" +#~ msgstr "oprande est de taille variable bitstring/power-set" + +#~ msgid "tree code `%s' unhandled in build_compare_set_expr" +#~ msgstr "code de l'arbre %s n'est pas traite dans build_compare_set_expr" + +#~ msgid "incompatible modes in concat expression" +#~ msgstr "modes incompatibles dans l'expression de concatnation" + +#~ msgid "invalid operation on array of chars" +#~ msgstr "opration invalide pour des tableaux de caractres" + +#~ msgid "comparison of variant structures is unsafe" +#~ msgstr "comparaison de structures variantes n'est pas sre" + +#~ msgid "compare with variant records" +#~ msgstr "comparaison avec des enregistrements vairants" + +#~ msgid "incompatible operands to %s" +#~ msgstr "type d'oprandes incompatibles pour %s" + +#~ msgid "relational operator not allowed for this mode" +#~ msgstr "oprateur relationnel n'est pas permis pour ce mode" + +#~ msgid "cannot use %s operator on PROC mode variable" +#~ msgstr "ne peut utiliser l'oprateur %s pour une variable en mode PROCDURE" + +#~ msgid "invalid left operand of %s" +#~ msgstr "oprande de gauche invalide pour %s" + +#~ msgid "invalid right operand of %s" +#~ msgstr "oprande de droite invalide pour %s" + +#~ msgid "repetition expression must be constant" +#~ msgstr "rptitions d'expressions doit tre une constante" + +#~ msgid "left argument to MOD/REM operator must be integral" +#~ msgstr "argument de gauche de l'oprateur MOD/REM doit tre entier" + +#~ msgid "right argument to MOD/REM operator must be integral" +#~ msgstr "argument de droite de l'oprateur MOD/REM doit tre entier" + +#~ msgid "right operand of IN is not a powerset" +#~ msgstr "l'oprande de droite de IN n'est pas un POWERSET" + +#~ msgid "left operand of IN incompatible with right operand" +#~ msgstr "oprande de gauche de IN incompatible avec l'oprande de droite" + +#~ msgid "-> operator not allow in constant expression" +#~ msgstr "oprateur -> n'est pas permis dans l'expression d'une constante" + +#~ msgid "taking the address of a function is non-standard" +#~ msgstr "prendre l'adresse d'une fonction n'est pas standard" + +#~ msgid "ADDR requires a LOCATION argument" +#~ msgstr "ADDR requiert un argument de LOCALISATION" + +#~ msgid "-> expression is not addressable" +#~ msgstr "expression -> n'est pas adressable" + +#~ msgid "ADDR parameter must be a LOCATION" +#~ msgstr "paramtre ADDR doit tre une LOCALISATION" + +#~ msgid "possible internal error in build_chill_arrow_expr" +#~ msgstr "erreur interne possible dans build_chill_arrow_expr" + +#~ msgid "%s is not addressable" +#~ msgstr "%s n'est pas adressable" + +#~ msgid "repetition count is not an integer constant" +#~ msgstr "compteur de rptition n'est pas une constante entire" + +#~ msgid "repetition count < 0" +#~ msgstr "compteur de rptition > que 0" + +#~ msgid "repetition value not constant" +#~ msgstr "valeur de rptition n'est pas une constante" + +#~ msgid "bitstring repetition of non-constant boolean" +#~ msgstr "rptition de chane de bits d'un boolen non constant" + +#~ msgid "string repetition operand is non-constant bitstring" +#~ msgstr "oprande de rptition de chanes n'est pas une contante de chane de bits" + +#~ msgid "non-char, non-bit string repetition" +#~ msgstr "rptition de chane n'est pas de caractres ni de bits" + +#~ msgid "right operand of %s is not array of boolean" +#~ msgstr "oprande de droite de %s n'est pas un tableau de boolens" + +#~ msgid "%s operator applied to boolean variable" +#~ msgstr "oprateur %s appliqu une variable boolenne" + +#~ msgid "non-boolean mode in conditional expression" +#~ msgstr "mode non boolen dans l'expression conditionnelle" + +#~ msgid "decode_constant: invalid component_ref" +#~ msgstr "decode_constant: component_ref invalide" + +#~ msgid "decode_constant: mode and value mismatch" +#~ msgstr "decode_constant: mode et valeur ne concordent pas" + +#~ msgid "decode_constant: cannot decode this mode" +#~ msgstr "decode_constant: ne peut dcoder ce mode" + +#~ msgid "decode_constant_selective: mode and value mismatch" +#~ msgstr "decode_constant_selective: mode et value ne concorde pas" + +#~ msgid "decode_constant_selective: cannot decode this mode" +#~ msgstr "decode_constant_selective: ne peut dcoder ce mode" + +#~ msgid "FORBID is not yet implemented" +#~ msgstr "FORBID n'est pas encore implante" + +#~ msgid "function \"really_grant_this\" called for `%s'" +#~ msgstr "fonction really_grant_this appele pour %s " + +#~ msgid "non-integral text length" +#~ msgstr "longueur de texte non entier" + +#~ msgid "non-constant text length" +#~ msgstr "longueur de texte non constante" + +#~ msgid "text length must be greater than 0" +#~ msgstr "la longueur de texte doit tre plus grande que 0" + +#~ msgid "argument %d of %s must be of mode ASSOCIATION" +#~ msgstr "argument %d de %s doit tre de mode ASSOCIATION" + +#~ msgid "argument %d of %s must be a location" +#~ msgstr "argument %d de %s doit tre une localisation" + +#~ msgid "argument 2 of ASSOCIATE must not be an empty string" +#~ msgstr "argument 2 de ASSOCIATE ne doit pas tre une chane vide" + +#~ msgid "argument 2 to ASSOCIATE must be a string" +#~ msgstr "argument 2 de ASSOCIATE doit tre une chane" + +#~ msgid "argument 3 to ASSOCIATE must be a string" +#~ msgstr "argument 3 de ASSOCIATE doit tre une chane" + +#~ msgid "too many arguments in call to MODIFY" +#~ msgstr "trop d'arguments dans l'appel de MODIFY" + +#~ msgid "argument 2 of MODIFY must not be an empty string" +#~ msgstr "argument 2 de MODIFY ne doit pas tre une chane vide" + +#~ msgid "argument 2 to MODIFY must be a string" +#~ msgstr "argument 2 de MODIFY doit tre une chane" + +#~ msgid "argument 3 to MODIFY must be a string" +#~ msgstr "argument 3 de MODIFY doit tre une chane" + +#~ msgid "argument %d of %s must be an ACCESS or TEXT mode" +#~ msgstr "argument %d de %s doit tre de mode ACCESS ou TEXT" + +#~ msgid "argument 4 of CONNECT must be of mode WHERE" +#~ msgstr "argument 4 de CONNECT doit tre de mode WHERE" + +#~ msgid "index expression for ACCESS without index" +#~ msgstr "expression d'index pour ACCESS sans index" + +#~ msgid "incompatible index mode" +#~ msgstr "mode incompatible d'index" + +#~ msgid "argument 3 to CONNECT must be of mode USAGE" +#~ msgstr "argument 3 de CONNECT doit tre de mode USAGE" + +#~ msgid "argument %d of %s must be of mode ACCESS" +#~ msgstr "argument %d de %s doit tre de mode ACCESS" + +#~ msgid "too few arguments in call to `readrecord'" +#~ msgstr "pas assez d'arguments dans l'appel de readrecord()" + +#~ msgid "store location must not be READonly" +#~ msgstr "localisation de stockage ne doit pas tre en LECTURE seulement" + +#~ msgid "too few arguments in call to `writerecord'" +#~ msgstr "pas assez d'arguments pour l'appel de writerecord()" + +#~ msgid "transfer to ACCESS without record mode" +#~ msgstr "transfer vers ACCESS sans mode d'enregistrement" + +#~ msgid "argument %d of %s must be of mode TEXT" +#~ msgstr "argument %d de %s doit tre de mode TEXT" + +#~ msgid "TEXT doesn't have a location" +#~ msgstr "TEXT n'a pas de localisation" + +#~ msgid "incompatible index mode for SETETEXTACCESS" +#~ msgstr "mode d'index incompatible pour SETETEXTACCESS" + +#~ msgid "incompatible record mode for SETTEXTACCESS" +#~ msgstr "mode d'enregistrement incompatible pour SETTEXTACCESS" + +#~ msgid "parameter 2 must be a location" +#~ msgstr "paramtre 2 doit tre une localisation" + +#~ msgid "incompatible modes in parameter 2" +#~ msgstr "modes incompatible dans le paramtre 2" + +#~ msgid "conditional expression not allowed in this context" +#~ msgstr "expression conditionnelle n'est pas permise dans ce contexte" + +#~ msgid "untyped expression as argument %d" +#~ msgstr "expression sans type comme argument %d" + +#~ msgid "cannot process %d bits integer for READTEXT argument %d" +#~ msgstr "ne peut traiter %d bits entiers pour l'argument de READTEXT %d" + +#~ msgid "cannot process %d bits integer WRITETEXT argument %d" +#~ msgstr "ne peut traiter %d bits entiers pour l'argument de WRITETEXT %d" + +#~ msgid "argument %d is READonly" +#~ msgstr "argument %d est en LECTURE seulement" + +#~ msgid "argument %d must be referable" +#~ msgstr "argument %d doit pouvoir tre rfrenc" + +#~ msgid "cannot process argument %d of WRITETEXT, unknown size" +#~ msgstr "ne peut traiter l'argument %d de WRITETEXT, taille inconnue" + +#~ msgid "cannot process mode of argument %d for %sTEXT" +#~ msgstr "ne peut traiter le mode de l'argument %d pour %s de type TEXTE" + +#~ msgid "too few arguments for this format string" +#~ msgstr "trop peu d'arguments pour ce format de chane" + +#~ msgid "type of argument %d invalid for conversion code at offset %d" +#~ msgstr "type d'argument %d invalide pour la conversion du code au dcalage %d" + +#~ msgid "unmatched open paren" +#~ msgstr "parenthse ouverte non paire" + +#~ msgid "bad format specification character (offset %d)" +#~ msgstr "caractre de format de spcification erron (dcalage %d)" + +#~ msgid "repetition factor overflow (offset %d)" +#~ msgstr "dbordement du facteur de rptition (dcalage %d)" + +#~ msgid "duplicate qualifier (offset %d)" +#~ msgstr "duplication du qualificateur (dcalage %d)" + +#~ msgid "clause width overflow (offset %d)" +#~ msgstr "dbordement de la largeur de la clause (dcalage %d)" + +#~ msgid "no fraction (offset %d)" +#~ msgstr "pas de fraction (dcalage %d)" + +#~ msgid "no fraction width (offset %d)" +#~ msgstr "pas de largeur de fraction (dcalage %d)" + +#~ msgid "fraction width overflow (offset %d)" +#~ msgstr "dbordement de largeur de fraction (dcalage %d)" + +#~ msgid "no exponent (offset %d)" +#~ msgstr "pas d'exposant (dcalage %d)" + +#~ msgid "no exponent width (offset %d)" +#~ msgstr "pas de largeur d'exposant (dcalage %d)" + +#~ msgid "exponent width overflow (offset %d)" +#~ msgstr "dbordement de largeur d'exposant (dcalage %d)" + +#~ msgid "internal error in check_format_string" +#~ msgstr "erreur interne dans check_format_string" + +#~ msgid "no padding character (offset %d)" +#~ msgstr "pas de caractre de remplissage (dcalage %d)" + +#~ msgid "missing index expression" +#~ msgstr "expresion d'index manquante" + +#~ msgid "too few arguments in call to `writetext'" +#~ msgstr "pas assez d'arguments pour l'appel de writext()" + +#~ msgid "argument 1 for WRITETEXT must be a TEXT or CHARS(n) VARYING location" +#~ msgstr "argument 1 de WRITETEXT doit tre TEXT ou CHARS(n) VARYING location" + +#~ msgid "`format string' for WRITETEXT must be a CHARACTER string" +#~ msgstr "format string pour WRITETEXT doit tre une chane de caractres" + +#~ msgid "too few arguments in call to `readtext'" +#~ msgstr "trop peu d'arguments dans l'appel de readtext()" + +#~ msgid "argument 1 for READTEXT must be a TEXT location or CHARS(n) [ VARYING ] expression" +#~ msgstr "argument 1 de READTEXT doit tre de localisation TEXT ou CHARS(n) [ VARYING ] expression" + +#~ msgid "`format string' for READTEXT must be a CHARACTER string" +#~ msgstr "format string de READTEXT doit tre une chane de caractres" + +#~ msgid "non-constant expression" +#~ msgstr "expression n'est pas une constante" + +#~ msgid "ignoring case upon input and" +#~ msgstr "ignorer la casse durant l'entre et" + +#~ msgid "making special words uppercase wouldn't work" +#~ msgstr "rendre les mots spciaux en majuscule ne fonctionnerait pas" + +#~ msgid "making special words uppercase and" +#~ msgstr "rendant les mots spciaux en majuscule et" + +#~ msgid " ignoring case upon input wouldn't work" +#~ msgstr " ignorer la casse durant ne fonctionnerait pas" + +#~ msgid "invalid C'xx' " +#~ msgstr "Cxx invalide" + +#~ msgid "malformed exponent part of floating-point literal" +#~ msgstr "partie de l'exposant mal compose du litral en virgule flottante" + +#~ msgid "real number exceeds range of REAL" +#~ msgstr "nombre rel excde les limites de REAL" + +#~ msgid "end-of-file in '<>' directive" +#~ msgstr "fin de fichier dans la directive <>" + +#~ msgid "unrecognized compiler directive" +#~ msgstr "directive du compilateur non reconnue" + +#~ msgid "unrecognized compiler directive `%s'" +#~ msgstr "directive du compilateur %s non reconnue" + +#~ msgid "unterminated control sequence" +#~ msgstr "squence de contrle non termine" + +#~ msgid "invalid integer literal in control sequence" +#~ msgstr "chane d'entiers invalide dans la squence de contrle" + +#~ msgid "control sequence overflow" +#~ msgstr "dbordement de la chane de contrle" + +#~ msgid "invalid base in read control sequence" +#~ msgstr "base invalide dans la squence de contrle de lecture" + +#~ msgid "unterminated string literal" +#~ msgstr "chane litrale non termine" + +#~ msgid "invalid number format `%s'" +#~ msgstr "format de numro %s invalide" + +#~ msgid "integer literal too big" +#~ msgstr "litral d'entier trop grand" + +#~ msgid "can't find %s" +#~ msgstr "ne peut reprer %s" + +#~ msgid "USE_SEIZE_FILE directive must be followed by string" +#~ msgstr "directive USE_SEIZE_FILE doit tre suivie d'une chane" + +#~ msgid "missing `=' in compiler directive" +#~ msgstr "= manquant dans la directtive au compilateur" + +#~ msgid "invalid value follows `=' in compiler directive" +#~ msgstr "valeur invalide suivant = dans la directive au compilateur" + +#~ msgid "invalid `%c' character in name" +#~ msgstr "caractre %c invalide dans le nom" + +#~ msgid "`%s' not integer constant synonym " +#~ msgstr " %s n'est pas un synonyme de constante entire" + +#~ msgid "value out of range in compiler directive" +#~ msgstr "valeur hors gamme dans la directive au compilateur" + +#~ msgid "no modules seen" +#~ msgstr "aucun module vu" + +#~ msgid "modeless tuple not allowed in this context" +#~ msgstr "tuple sans modle n'est pas permis dans ce contexte" + +#~ msgid "IN expression does not have a mode" +#~ msgstr "expression IN n'a pas de mode" + +#~ msgid "location enumeration for BOOLS" +#~ msgstr "localisation d'numration pour BOOLENS" + +#~ msgid "location enumeration for bit-packed arrays" +#~ msgstr "localisation d'numration tableaux de bits paquets" + +#~ msgid "loop's IN expression is not a composite object" +#~ msgstr "boucle dans l'expression IN n'est pas un objet composite" + +#~ msgid "start expr must have discrete mode" +#~ msgstr "dbut de l'expression doit avoir un mode discret" + +#~ msgid "DO FOR start expression is a numbered SET" +#~ msgstr "expression de dpart de DO FOR est un SET numr" + +#~ msgid "TO expression is a numbered SET" +#~ msgstr "expression TO est un SET numr" + +#~ msgid "TO expr must have discrete mode" +#~ msgstr "expression TO doit avoir un mode discret" + +#~ msgid "start expr and TO expr must be compatible" +#~ msgstr "dbut de l'expression et l'expression TO doivent tre compatibles" + +#~ msgid "BY expr must have discrete mode" +#~ msgstr "expression BY doit avoir un mode discret" + +#~ msgid "start expr and BY expr must be compatible" +#~ msgstr "dbut de l'expression et l'expression BY doivent tre compatibles" + +#~ msgid "loop identifier undeclared" +#~ msgstr "identificateur de boucle non dclar" + +#~ msgid "loop variable incompatible with start expression" +#~ msgstr "variable de boucle incompatible avec le dbut de l'expression" + +#~ msgid "body of DO FOR will never execute" +#~ msgstr "corps de DO FOR ne sera jamais excut" + +#~ msgid "BY expression is negative or zero" +#~ msgstr "expression BY est ngative ou zro" + +#~ msgid "can't iterate through array of BOOL" +#~ msgstr "ne peut faire d'itration travers le tableau de BOOLENS" + +#~ msgid "Can't iterate through array of BOOL" +#~ msgstr "ne peut faire d'itration travers le tableau de BOOLENS" + +#~ msgid "there was no start label to match the end label '%s'" +#~ msgstr "il n'y a pas d'tiquette de dpart concordant avec l'tiquette de fin %s " + +#~ msgid "start label '%s' does not match end label '%s'" +#~ msgstr "tiquette de dpart %s ne concorde pas avec l'tiquette de fin %s " + +#~ msgid "no RETURN or RESULT in procedure" +#~ msgstr "pas de RETURN ou RESULT dans la procdure" + +#~ msgid "PREFIXED clause with no prelix in unlabeled module" +#~ msgstr "cluase PREFIX sans no prelix dans un module sans tiquette" + +#~ msgid "'%s!' is not followed by an identifier" +#~ msgstr " %s n'est pas suivi d'un identificateur" + +#~ msgid "expected a name string here" +#~ msgstr "un nom de chane est attendu ici" + +#~ msgid "`%s' undeclared" +#~ msgstr " %s non dclar" + +#~ msgid "action not allowed in SPEC MODULE" +#~ msgstr "action n,est pas permise dans le MODULE SPEC" + +#~ msgid "missing defining occurrence" +#~ msgstr "dfinition d'occurence manquante" + +#~ msgid "bad defining occurrence following ','" +#~ msgstr "dfinition d'occurence errone suivant ," + +#~ msgid "missing '(' in exception list" +#~ msgstr ") manquante dans la liste d'exceptions" + +#~ msgid "ON exception names must be unique" +#~ msgstr "noms d'exception ON doivent tre uniques" + +#~ msgid "syntax error in exception list" +#~ msgstr "erreur de syntaxe dans la liste d'exception" + +#~ msgid "empty ON-condition" +#~ msgstr "condition ON vide" + +#~ msgid "INIT not allowed at loc-identity declaration" +#~ msgstr "INIT n'est pas permis dans la dclaration d'identit de localisation" + +#~ msgid "'=' used where ':=' is required" +#~ msgstr "= utilis o := est requis" + +#~ msgid "loc-identity declaration without initialization" +#~ msgstr "dclaration de loc n'a pas d'initialisation" + +#~ msgid "bad syntax following FORBID" +#~ msgstr "syntaxe errone suivant FORBID" + +#~ msgid "expected a postfix name here" +#~ msgstr "nom postfixe attendu ici" + +#~ msgid "expected another rename clause" +#~ msgstr "attendait une autre clause de changement de nom" + +#~ msgid "NONREF specific without LOC in result attribute" +#~ msgstr "NONREF spcifique sans LOCALISATION dans l'attribut rsultant" + +#~ msgid "DYNAMIC specific without LOC in result attribute" +#~ msgstr "DYNAMIC spcifique sans LOCALISATION dans l'attribut rsultant" + +#~ msgid "exception names must be unique" +#~ msgstr "noms d'exceptions doivent tre uniques" + +#~ msgid "must specify a PROCESS name" +#~ msgstr "doit spcifier un nom de processus" + +#~ msgid "SIGNAL must be in global reach" +#~ msgstr "SIGNAL doit tre dans l'tendue globale" + +#~ msgid "syntax error while parsing signal definition statement" +#~ msgstr "erreur de syntaxe lors de l'analyse syntaxique de la dclaration de la dfinition" + +#~ msgid "case range list" +#~ msgstr "liste d'tendue du CASE" + +#~ msgid "misplaced colon in case label" +#~ msgstr ": mal placs dans l'tiquette du CASE" + +#~ msgid "unrecognized case label list after ','" +#~ msgstr "tiquette non reconnue du CASE aprs ," + +#~ msgid "readonly location modified by 'asm'" +#~ msgstr "localisation en lecture seulement modifie par asm" + +#~ msgid "expected 'TO' in step enumeration" +#~ msgstr "attendait TO dans l'numration du PAS" + +#~ msgid "expected 'IN' in FOR control here" +#~ msgstr "attendait IN dans le contrle du FOR ici" + +#~ msgid "missing DELAY CASE alternative" +#~ msgstr "alternative de dlais du CASE manquante" + +#~ msgid "non-referable location in DO WITH" +#~ msgstr "localisation non rfrenable dans le DO WITH" + +#~ msgid "WITH element must be of STRUCT mode" +#~ msgstr "lment WITH doit tre de mode STRUCT" + +#~ msgid "missing ')' in signal/buffer receive alternative" +#~ msgstr ") manquant dans la rception alternative de signal/tampon" + +#~ msgid "misplaced 'IN' in signal/buffer receive alternative" +#~ msgstr "IN mal plac dans la rception alternative de signal/tampon" + +#~ msgid "missing RECEIVE alternative" +#~ msgstr "RECEIVE alternative manquant" + +#~ msgid "PROCESS copy number must be integer" +#~ msgstr "processus de copie de nombres doit tre entier" + +#~ msgid "missing parenthesis for procedure call" +#~ msgstr "parenthse manquante dans l'appel de procdure" + +#~ msgid "syntax error in action" +#~ msgstr "erreur de syntaxe dans l,action" + +#~ msgid "no handler is permitted on this action" +#~ msgstr "pas de handler permis pour cette action" + +#~ msgid "definition follows action" +#~ msgstr "dfinition suit l'action" + +#~ msgid "bad tuple field name list" +#~ msgstr "nom erron de liste de champ de tuple" + +#~ msgid "invalid syntax for label in tuple" +#~ msgstr "syntaxe invalide pour l'tiquette dans le tuple" + +#~ msgid "bad syntax in tuple" +#~ msgstr "syntaxe errone dans le tuple" + +#~ msgid "non-mode name before tuple" +#~ msgstr "nom sans mode avant le tuple" + +#~ msgid "invalid expression/location syntax" +#~ msgstr "expression/localisation syntaxe invalide" + +#~ msgid "RECEIVE expression" +#~ msgstr "expression RECEIVE" + +#~ msgid "there should not be a ';' here" +#~ msgstr "il ne devrait pas y avoir un ; ici" + +#~ msgid "missing ELSE/ELSIF in IF expression" +#~ msgstr "ELSE/ELSIF manquant dans l'expresion IF" + +#~ msgid "conditional expression not allowed inside parentheses" +#~ msgstr "expression conditionnelle non permise l'intrieur des parenthses" + +#~ msgid "mode-less tuple not allowed inside parentheses" +#~ msgstr "tuple sans modle n'est pas permis l'intrieur des parenthses" + +#~ msgid "mixed numbered and unnumbered set elements is not standard" +#~ msgstr "lments de l'ensemble numrots et non numrots mlangs n'est pas standard" + +#~ msgid "SET mode must define at least one named value" +#~ msgstr "mode SET doit dfinir au moins une valeur nomme" + +#~ msgid "POS not allowed for ARRAY" +#~ msgstr "POSITION n'est pas permise pour un TABLEAU" + +#~ msgid "bad field name following ','" +#~ msgstr "nom de champ erron aprs ," + +#~ msgid "expected ':' in structure variant alternative" +#~ msgstr ": attendu dans la structure variante alternative" + +#~ msgid "missing field" +#~ msgstr "champ manquant" + +#~ msgid "VARYING bit-strings not implemented" +#~ msgstr "chane variante de bits n'est pas implante" + +#~ msgid "BUFFER modes may not be readonly" +#~ msgstr "modes des TAMPOONS ne peuvent pas tre en LECTURE seulement" + +#~ msgid "EVENT modes may not be readonly" +#~ msgstr "modes d'VVEMENTS ne peuvent pas tre en LECTURE seulement" + +#~ msgid "SIGNAL is not a valid mode" +#~ msgstr "SIGNAL n'est pas un mode valide" + +#~ msgid "syntax error - missing mode" +#~ msgstr "erreur de syntaxe - mode manquant" + +#~ msgid "syntax error - expected a module or end of file" +#~ msgstr "erreur de syntaxe - module attendu ou fin de fichier" + +#~ msgid " `%s', which depends on ..." +#~ msgstr " %s , laquel dpend de ..." + +#~ msgid "cycle: `%s' depends on ..." +#~ msgstr "cycle: %s dpend de ..." + +#~ msgid " `%s'" +#~ msgstr " %s " + +#~ msgid "SYN of this mode not allowed" +#~ msgstr "SYN de de mode n'est pas permis" + +#~ msgid "mode of SYN incompatible with value" +#~ msgstr "mode de SYN incompatible avec la valeur" + +#~ msgid "SYN value outside range of its mode" +#~ msgstr "valeur de SYN en dehors de l'tendue de son mode" + +#~ msgid "INIT string too large for mode" +#~ msgstr "chane d'INIT trop grande pour ce mode" + +#~ msgid "mode with non-value property in signal definition" +#~ msgstr "mode sans proprit de non valeur dans la dfinition de signal" + +#~ msgid "RETURNS spec with invalid mode" +#~ msgstr "spcification de RETOUR avec un mode invalide" + +#~ msgid "operand to REF is not a mode" +#~ msgstr "l'oprande de REF n'est pas un mode" + +#~ msgid "field with non-value mode in variant structure not allowed" +#~ msgstr "champ avec un mode non valeur dans une structure variante n'est pas permis" + +#~ msgid "buffer element mode must not have non-value property" +#~ msgstr "mode lment du tampon ne doit pas avoir une proprit de non valeur" + +#~ msgid "recordmode must not have the non-value property" +#~ msgstr "mode d'enregistrement ne doit pas avoir une proprit de non valeur" + +#~ msgid "invalid attribute for argument `%s' (only IN or LOC allowed)" +#~ msgstr "attribue invalide pour l'argument %s (seul IN ou LOC est permis)" + +#~ msgid "PROCESS may only be declared at module level" +#~ msgstr "PROCESSUS peut seulement tre dclar au niveau module" + +#~ msgid "process name %s never declared" +#~ msgstr "nom de processus %s n'a jamais t dclar" + +#~ msgid "you may only START a process, not a proc" +#~ msgstr "vous pouvez seulement LANCER un processus, pas une procdure" + +#~ msgid "SET expression not a location" +#~ msgstr "expression de l'ENSEMBLE n'est pas une localisation" + +#~ msgid "SET location must be INSTANCE mode" +#~ msgstr "localisation de l'ENSEMBLE doit tre un mode d'INSTANCE" + +#~ msgid "too many arguments to process `%s'" +#~ msgstr "trop d'arguments traiter pour %s " + +#~ msgid "too many arguments to process" +#~ msgstr "trop d'arguments traiter" + +#~ msgid "too few arguments to process `%s'" +#~ msgstr "pas assez d'arguments pour traiter %s " + +#~ msgid "too few arguments to process" +#~ msgstr "trop peu d'arguments pour le traitement" + +#~ msgid "COPY_NUMBER argument must be INSTANCE expression" +#~ msgstr "argument de COPY_NUMBER doit tre une expression d'INSTANCE" + +#~ msgid "GEN_CODE argument must be a process or signal name" +#~ msgstr "argument GEN_CODE doit tre une processus ou un nom de signal" + +#~ msgid "GEN_INST parameter 2 must be an integer mode" +#~ msgstr "paramtre 2 de GEN_INST doit tre un mode entier" + +#~ msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression" +#~ msgstr "paramtre 1 de GEN_INST doit tre une PROCESSUS ou une expression entire" + +#~ msgid "%s is not a declared process" +#~ msgstr "%s n'est pas processus dclar" + +#~ msgid "PROC_TYPE argument must be INSTANCE expression" +#~ msgstr "argument de PROC_TYPE doit tre une expression d'INSTANCE" + +#~ msgid "QUEUE_LENGTH argument must be a BUFFER/EVENT location" +#~ msgstr "argument de QUEUE_LENGTH doit avoir une localisation de TAMPON/VNEMENT" + +#~ msgid "SEND requires a SIGNAL; %s is not a SIGNAL name" +#~ msgstr "TRANSMISSION requiert un SIGNAL; %s n'est pas un nom de SIGNAL" + +#~ msgid "too many values for SIGNAL `%s'" +#~ msgstr "trop de valeurs pour le SIGNAL %s " + +#~ msgid "too few values for SIGNAL `%s'" +#~ msgstr "pas assez de valeurs pour le SIGNAL %s " + +#~ msgid "signal sent without priority" +#~ msgstr "signal transmis sans priorit" + +#~ msgid " and no default priority was set." +#~ msgstr " et aucune priorit par dfaut n'a t dfinie." + +#~ msgid " PRIORITY defaulted to 0" +#~ msgstr " PRIORIT par dfaut est 0" + +#~ msgid "SEND without a destination instance" +#~ msgstr "TRANSMISSION sans instance de destination" + +#~ msgid " and no destination process specified" +#~ msgstr " et aucune destination de processus spcifie" + +#~ msgid " for the signal" +#~ msgstr " pour le signal" + +#~ msgid "SEND to ANY copy of process `%s'" +#~ msgstr "TRANSMISSION vers N'IMPORTE QUELLE copie de processus %s " + +#~ msgid "SEND TO must be an INSTANCE mode" +#~ msgstr "TRANSMISSION TO doit avoir un mode d'INSTANCE" + +#~ msgid "SEND WITH must have a mode" +#~ msgstr "TRANSMISSION WITH doit avoir un mode" + +#~ msgid "internal error: RECEIVE CASE stack invalid" +#~ msgstr "erreur interne: pile du RECEIVE CASE invalide" + +#~ msgid "SET requires INSTANCE location" +#~ msgstr "ENSEMBLE requiert une INSTANCE de localisation" + +#~ msgid "SIGNAL in RECEIVE CASE alternative follows" +#~ msgstr "SIGNAL dans un CASE de RCEPTION alternative suit" + +#~ msgid " a BUFFER name on line %d" +#~ msgstr " un nom de TAMPON sur la ligne %d" + +#~ msgid "SIGNAL `%s' has no data fields" +#~ msgstr "SIGNAL %s n'a pas de champs de donnes" + +#~ msgid "SIGNAL `%s' requires data fields" +#~ msgstr "SIGNAL %s requiert des champs de donnes" + +#~ msgid "too few data fields provided for `%s'" +#~ msgstr "trop peu de champs de donnes fournies pour %s " + +#~ msgid "too many data fields provided for `%s'" +#~ msgstr "trop de champs de donnes fournis pour %s " + +#~ msgid "BUFFER in RECEIVE CASE alternative follows" +#~ msgstr "TAMPON du CASE de RCEPTION alternative suit" + +#~ msgid " a SIGNAL name on line %d" +#~ msgstr " un nom de SIGNAL sur la ligne %d" + +#~ msgid "BUFFER in RECEIVE CASE alternative must be a location" +#~ msgstr "TAMPON dans un CASE de RCEPTION alternative doit tre une localisation " + +#~ msgid "buffer receive alternative requires only 1 defining occurrence" +#~ msgstr "tampon de rception alternatif requiert une seule dfinition d'occurence" + +#~ msgid "incompatible modes in receive buffer alternative" +#~ msgstr "modes incompatibles dans le tampon alternatif de rception" + +#~ msgid "defining occurrence in receive buffer alternative must be a location" +#~ msgstr "dfinition d'occurence dans un tampon de rception alternatif doit tre une localisation" + +#~ msgid "buffer receive alternative without `IN location'" +#~ msgstr "tampon de rception alternative sans IN location" + +#~ msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location" +#~ msgstr "alternative de RCEPTION DE CASE doit spcifier un nom de SIGNAL ou la localisation d'un TAMPON" + +#~ msgid "RECEIVE CASE without alternatives" +#~ msgstr "RCEPTION DE CASE sans alternative" + +#~ msgid "CONTINUE requires an event location" +#~ msgstr "CONTINUE requiert une localisation d'vnement" + +#~ msgid "PRIORITY must be of integer type" +#~ msgstr "PRIORIT doit avoir un type entier" + +#~ msgid "delay alternative must be an EVENT location" +#~ msgstr "dlai alternatif doit avoir une localisation d'VNEMENT" + +#~ msgid "DELAY CASE without alternatives" +#~ msgstr "DLAI du CASE sans alternative" + +#~ msgid "DELAY action requires an event location" +#~ msgstr "DLAI d'action requiert une localisation d'vnement" + +#~ msgid "PRIORITY in DELAY action must be of integer type" +#~ msgstr "PRIORIT dans le DLAI d'action doit avoir un type entier" + +#~ msgid "DELAY action without priority." +#~ msgstr "DLAI d'action sans priorit" + +#~ msgid "send buffer action requires a BUFFER location" +#~ msgstr "le tampon d'expdition de l'action requiert une localisation de TAMPON" + +#~ msgid "there must be only 1 value for send buffer action" +#~ msgstr "il ne doit y avoir qu'une valeur pour le tampon de transmission d'action" + +#~ msgid "convert failed for send buffer action" +#~ msgstr "chec de voncversion pour le tampon de transmission d'action" + +#~ msgid "incompatible modes in send buffer action" +#~ msgstr "modes incompatibles dans le tampon de transmission d'action" + +#~ msgid "buffer sent without priority" +#~ msgstr "tampon de transmission sans priorit" + +#~ msgid "WITH not allowed for send buffer action" +#~ msgstr "WITH n'est pas permis pour le tampon de transmission d'action" + +#~ msgid "TO not allowed for send buffer action" +#~ msgstr "TO n'est pas permis pour le tampon de transmission d'action" + +#~ msgid "SEND requires a BUFFER; `%s' is not a BUFFER name" +#~ msgstr "SEND requiert un TAMPON; %s n'est pas un nom de TAMPON" + +#~ msgid "non-integral max queue size for EVENT/BUFFER mode" +#~ msgstr "taille maximale de queue n'est pas un entier pour un mode VNEMENT/TAMPON" + +#~ msgid "non-constant max queue size for EVENT/BUFFER mode" +#~ msgstr "taille maximale de queue n'est pas une constante pour un mode VNEMENT/TAMPON" + +#~ msgid "max queue_size for EVENT/BUFFER is not positive" +#~ msgstr "taille maximale de queue pour un VNEMENT/TAMPON n'est pas positive" + +#~ msgid "absolute time value must be of mode TIME" +#~ msgstr "valeur absolue de temps doit tre du mode TEMPS" + +#~ msgid "duration primitive value must be of mode DURATION" +#~ msgstr "valeur de la dure de la primitive doit tre un mode de DURE" + +#~ msgid "string length > UPPER (UINT)" +#~ msgstr "longueur de la chane > UPPER (UINT)" + +#~ msgid "can only build a powerset from a discrete mode" +#~ msgstr "peut seulement construire un powerset partir d'un mode discret" + +#~ msgid "non-constant bitstring size invalid" +#~ msgstr "taille du champ de bits n'est pas une constante valide" + +#~ msgid "non-constant powerset size invalid" +#~ msgstr "taille de la non constante du powerset est invalide" + +#~ msgid "array or string index is a mode (instead of a value)" +#~ msgstr "tableau ou chane d'index est une mode (au lieu d'une valeur)" + +#~ msgid "index is not an integer expression" +#~ msgstr "index n'est pas une expression entire" + +#~ msgid "index is not discrete" +#~ msgstr "index n'est pas discret" + +#~ msgid "possible internal error - slice argument is neither referable nor constant" +#~ msgstr "erreur interne possible - l'argument de dcoupage n'est ni rfrenable ni une constante" + +#~ msgid "bit array slice with non-constant length" +#~ msgstr "dcoupage de tableau de bits avec une longueur non constante" + +#~ msgid "bitstring slice with non-constant length" +#~ msgstr "dcoupage de chane de bits avec une longueur non constante" + +#~ msgid "slice operation on non-array, non-bitstring value not supported" +#~ msgstr "opration de dcoupage sur un non tableau ou sur une valeur non chane de bits n'est pas supporte" + +#~ msgid "can only take slice of array or string" +#~ msgstr "peut seulement faire le dcoupage d'un tableau ou d'une chane" + +#~ msgid "slice length out-of-range" +#~ msgstr "tranche de la longueur est hors gamme" + +#~ msgid "too many index expressions" +#~ msgstr "trop d'expressions d'index" + +#~ msgid "array index is not discrete" +#~ msgstr "index de tableau n'est pas discret" + +#~ msgid "invalid compound index for bitstring mode" +#~ msgstr "index compos invalide pour un mode chane de bits" + +#~ msgid "conversions from variable_size value" +#~ msgstr "conversions partir de la valeur variable_size" + +#~ msgid "conversions to variable_size mode" +#~ msgstr "conversion vers un mode variable_size" + +#~ msgid "cannot convert to float" +#~ msgstr "ne peut convertir en un type flottant" + +#~ msgid "cannot convert float to this mode" +#~ msgstr "ne peut convertir un flottant vers ce mode" + +#~ msgid "OVERFLOW in expression conversion" +#~ msgstr "DBORDEMENT dans la conversion d'expression" + +#~ msgid "overflow (not inside function)" +#~ msgstr "dbordement (pas l'intrieur de la fonction)" + +#~ msgid "possible overflow (not inside function)" +#~ msgstr "dbordement possible (pas l'intrieur de la fonction)" + +#~ msgid "expression will always cause OVERFLOW" +#~ msgstr "expression causera toujours un DBORDEMENT" + +#~ msgid "not implemented: constant conversion from that kind of expression" +#~ msgstr "pas implant: conversion de constante depuis quel sorte d'expression" + +#~ msgid "not implemented: constant conversion to that kind of mode" +#~ msgstr "pas implant: conversion de constante vers quell sorte de mode" + +#~ msgid "non-standard, non-portable value conversion" +#~ msgstr "non standard, conversion de valeur non portable" + +#~ msgid "location conversion between differently-sized modes" +#~ msgstr "conversion de localisation entre des mode de taille diffrentes" + +#~ msgid "size %d of BIN too big - no such integer mode" +#~ msgstr "taille %d de BIN trop grand - pas de tel mode entier" + +#~ msgid "BIN in pass 2" +#~ msgstr "BIN dans la passe 2" + +#~ msgid "mode of tuple is neither ARRAY, STRUCT, nor POWERSET" +#~ msgstr "mode du tuple n'est pas ARRAY, STRUCT, ni POWERSET" + +#~ msgid "internal error in chill_root_resulting_mode" +#~ msgstr "erreur interne dans chill_root_resulting_mode" + +#~ msgid "string lengths not equal" +#~ msgstr "longueurs de chanes ingales" + +#~ msgid "can't do ARRAY assignment - too large" +#~ msgstr "ne peut effectuer une affectation de tableau - trop grand" + +#~ msgid "rhs of array assignment is not addressable" +#~ msgstr "rhs de l'affectation de tableau n'est pas adressable" + +#~ msgid "non-constant expression for BIN" +#~ msgstr "expression n'est pas un constante pour BIN" + +#~ msgid "expression for BIN must not be negative" +#~ msgstr "expression pour BIN ne doit pas tre ngatif" + +#~ msgid "cannot process BIN (>32)" +#~ msgstr "ne peut traiter BIN (>32)" + +#~ msgid "bounds of range are not compatible" +#~ msgstr "bornes de l'tendue ne sont pas compatibles" + +#~ msgid "negative string length" +#~ msgstr "longueur ngative de chane" + +#~ msgid "range's lower bound and parent mode don't match" +#~ msgstr "borne infrieure de l'tendue et le mode parent ne concordent pas" + +#~ msgid "range's upper bound and parent mode don't match" +#~ msgstr "borne suprieure de l'tendue et le mode parent ne concordent pas" + +#~ msgid "making range from non-mode" +#~ msgstr "faisant une tendue partir de non mode" + +#~ msgid "floating point ranges" +#~ msgstr "tendues en virgules flottantes" + +#~ msgid "range mode has non-constant limits" +#~ msgstr "mode d'tendue a des limites non contantes" + +#~ msgid "range's high bound < mode's low bound" +#~ msgstr "borne suprieure de l'tendue < mode de la borne infrieure" + +#~ msgid "range's high bound > mode's high bound" +#~ msgstr "borne suprieure de l'tendue > mode de la borne suprieure" + +#~ msgid "range mode high bound < range mode low bound" +#~ msgstr "borne suprieure de l'tendue < mode de l'tendue la borne infrieure" + +#~ msgid "range's low bound < mode's low bound" +#~ msgstr "borne infrieure de l'tendue < mode de la borne infrieure" + +#~ msgid "range's low bound > mode's high bound" +#~ msgstr "borne infrieure de l'tendue > mode de la borne suprieure" + +#~ msgid "stepsize in STEP must be an integer constant" +#~ msgstr "taille du PAS doit tre une contante entire" + +#~ msgid "stepsize in STEP must be > 0" +#~ msgstr "taille du PAS doit tre > 0" + +#~ msgid "stepsize in STEP must be the natural width of the array element mode" +#~ msgstr "taille du PAS doit tre de largeur naturelle au mode d'lments du tableau" + +#~ msgid "starting word in POS must be an integer constant" +#~ msgstr "dbut du mot dans la POSITION doit tre une constante entire" + +#~ msgid "starting word in POS must be >= 0" +#~ msgstr "dbut du mot dans la POSITION doit tre >= 0" + +#~ msgid "starting word in POS within STEP must be 0" +#~ msgstr "dbut du mot dans la POSITION l'intrieur du PAS doit tre 0" + +#~ msgid "starting bit in POS must be an integer constant" +#~ msgstr "bit de dpart dans la POSITION doit tre une constante entire" + +#~ msgid "starting bit in POS within STEP must be 0" +#~ msgstr "bit de dpart dans la POSITION l'intrieur du PAS doit tre 0" + +#~ msgid "starting bit in POS must be >= 0" +#~ msgstr "bit de dpart dans la POSITION doit tre >= 0" + +#~ msgid "starting bit in POS must be < the width of a word" +#~ msgstr "bit de dpart dans la POSITION doit tre < que la largeur d'un mot" + +#~ msgid "length in POS must be > 0" +#~ msgstr "longueur dans la POSITION doit tre > 0" + +#~ msgid "end bit in POS must be an integer constant" +#~ msgstr "bit final dans la POSITION doit tre une constante entire" + +#~ msgid "end bit in POS must be >= the start bit" +#~ msgstr "bit final dans la POSITION doit tre >= bit de dpart" + +#~ msgid "end bit in POS must be < the width of a word" +#~ msgstr "bit final dans la POSITION doit tre < la largeur de mot" + +#~ msgid "the length specified on POS within STEP must be the natural length of the array element type" +#~ msgstr "la longueur spcifi de positionnement l'intrieur du pas doit tre naturelle la longueur des types des lments du tableau" + +#~ msgid "step size in STEP must be >= the length in POS" +#~ msgstr "la taille du PAS doit tre >= la longueur dans la POSITION" + +#~ msgid "array index must be a range, not a single integer" +#~ msgstr "l'index d'un tableau doit tre une tendue, pas un simple entier" + +#~ msgid "array index is not a discrete mode" +#~ msgstr "index du tableau n'a pas un mode discret" + +#~ msgid "the length specified on POS must be the natural length of the field type" +#~ msgstr "la longueur spcifie de positionnement doit tre de longueur naturel au type du champ" + +#~ msgid "STRUCT fields must be layed out in monotonically increasing order" +#~ msgstr "champs STRUCT doit avoir t disposs en ordre monotonique croissant" + +#~ msgid "if one field has a POS layout, then all fields must have a POS layout" +#~ msgstr "si un champ a une disposition de positionnement, alors tous les champs doivent avoir une disposition de positionnement" + +#~ msgid "parameterized structures not implemented" +#~ msgstr "structure paramtrises ne sont pas implantes" + +#~ msgid "invalid parameterized type" +#~ msgstr "type paramtris invalide" + +#~ msgid "abstract virtual `%#D' called from constructor" +#~ msgstr "abstrait virtuel %#D appel partir d'un constructeur" + +#~ msgid "abstract virtual `%#D' called from destructor" +#~ msgstr "abstrait virtuel %#D appel partir d'un destructeur" + +#~ msgid "discarding `const' applied to a reference" +#~ msgstr "mis de ct const appliqu une rfrence" + +#~ msgid "discarding `volatile' applied to a reference" +#~ msgstr "mis de ct volatile appliqu une rfrence" + +#~ msgid "parser lost in parsing declaration of `%D'" +#~ msgstr "analyseur syntaxique perdu dans l'analyse de la dclaration de %D" + +#~ msgid "methods cannot be converted to function pointers" +#~ msgstr "mthode ne peuvent tre converties en des pointeurs de fonction" + +#~ msgid "ambiguous request for method pointer `%s'" +#~ msgstr "requte ambigue pour la mthode sur pointeur %s " + +#~ msgid "`%T' cannot be `restrict'-qualified" +#~ msgstr "%T ne peut tre restrict-qualified" + +#~ msgid "`%T' cannot be `const'-, `volatile'-, or `restrict'-qualified" +#~ msgstr "%T ne peut tre const-, volatile- ou restrict-qualified" + +#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead" +#~ msgstr "rfrence invalide un pointeur NUL, utiliser pointeur de membre la place" + +#~ msgid "internal error #%d" +#~ msgstr "erreur interne #%d" + +#~ msgid "can't create cross-reference file `%s'" +#~ msgstr "ne peut produire un fichier de rfrences croises %s " + +#~ msgid "support non-32-bit machines better as of version 0.6" +#~ msgstr "le support des machines n'ayant pas 32 bits est meilleur avec la version 0.6" + +#~ msgid "Extra label definition %A at %0 -- perhaps previous label definition %B at %1 should have CONTINUE statement?" +#~ msgstr "Dfinition superflue d'tiquette %A %0 -- peut-tre que la dfinition prcdente d'tiquette %B %1 aurait besoin d'une dclaration CONTINUE?" + +#~ msgid "Extra label definition %A at %0 following label definition %B at %1" +#~ msgstr "Dfinition superflue d'tiquette %A %0 aprs la dfinition de l'tiquette %B %1" + +#~ msgid "Continuation indicator at %0 invalid on first non-comment line of file or following END or INCLUDE [info -f g77 M LEX]" +#~ msgstr "Indicateur de continuation %0 invalide sur la premire ligne de non commentaire du fichier ou suivant END ou INCLUDE [info -f g77 M LEX]" + +#~ msgid "Continuation indicator at %0 invalid here [info -f g77 M LEX]" +#~ msgstr "Indicateur de continuation %0 invalide ici [info -f g77 M LEX]" + +#~ msgid "Non-negative integer at %0 too large" +#~ msgstr "Entier non ngatif %0 trop grand" + +#~ msgid "Integer at %0 too large (%2 has precedence over %1)" +#~ msgstr "Entier %0 trop grand (%2 a prcdence sur %1)" + +#~ msgid "Period at %0 not followed by valid keyword forming a valid binary operator; `.%A.' is not a valid binary operator" +#~ msgstr "Priode %0 n'est pas suivie d'un mot cl valide formant un oprateut binaire valide; .%A, n'est pas un oprateur binaire valide" + +#~ msgid "`.%A.' at %0 not a binary operator" +#~ msgstr ".%A. n'est pas un oprateur binaire valide" + +#~ msgid "Double-quote at %0 not followed by a string of valid octal digits at %1" +#~ msgstr "Double apostrophe %0 pas suivi par une chane valide de chiffres en octal %1" + +#~ msgid "Invalid octal constant at %0" +#~ msgstr "constante octale invalide %0" + +#~ msgid "Invalid binary digit(s) found in string of digits at %0" +#~ msgstr "Chiffre binaire invalide trouv dans la chane de chiffres %0" + +#~ msgid "Invalid binary constant at %0" +#~ msgstr "constante binaire invalide %0" + +#~ msgid "Invalid hexadecimal digit(s) found in string of digits at %0" +#~ msgstr "Chiffre hexadcimal invalide trouv dans la chane de chiffres %0" + +#~ msgid "Invalid hexadecimal constant at %0" +#~ msgstr "constante hexadcimale invalide %0" + +#~ msgid "Invalid octal digit(s) found in string of digits at %0" +#~ msgstr "Chiffre octal invalide trouv dans la chane de chiffres %0" + +#~ msgid "Invalid radix specifier `%A' at %0 for typeless constant at %1" +#~ msgstr "Spcificateur de base invalide %A %0 pour un constante sans type %1" + +#~ msgid "Invalid typeless constant at %1" +#~ msgstr "constante sans type invalide %1" + +#~ msgid "%A part of complex constant at %0 must be a real or integer constant -- otherwise use CMPLX() or COMPLEX() in place of ()" +#~ msgstr "la partie %A de la constante complexe %0 doit tre une constante relle ou entire -- autrement utiliser CMPLX() ou COMPLEX() la place de ()" + +#~ msgid "%A part of complex constant at %0 not a real or integer constant" +#~ msgstr "la partie %A de la constante complexe %0 n'est pas une constante relle ou entire" + +#~ msgid "Invalid keyword `%%%A' at %0 in this context" +#~ msgstr "mot cl invalide %%%A %0 dans ce contexte" + +#~ msgid "Invalid keyword `%%%A' at %0" +#~ msgstr "mot cl invalide %%%A %0" + +#~ msgid "Null expression between %0 and %1 invalid in this context" +#~ msgstr "expression nulle entre %0 et %1 invalide dans ce contexte" + +#~ msgid "Invalid null expression between %0 and %1" +#~ msgstr "expression null invalide entre %0 et %1" + +#~ msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but neither subexpression at %1 or %2 is of character type" +#~ msgstr "oprateur de concatnation %0 doit oprer sur deux sous-expressions de type caractre, mais aucune des sous-expressions %1 ou %2 n'est de type caractre" + +#~ msgid "Invalid operands at %1 and %2 for concatenation operator at %0" +#~ msgstr "Oprandes invalides %1 et %2 pour l'oprateur de concatnation %0" + +#~ msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but the subexpression at %1 is not of character type" +#~ msgstr "Oprateur de concatnation %0 doit oprer sur deux sous-expressions de type caractre, mais la sous-expression %1 n'est pas de type caractre" + +#~ msgid "Invalid operand at %1 for concatenation operator at %0" +#~ msgstr "Oprande invalide %1 pour l'oprateur de concatnation %0" + +#~ msgid "Concatenation operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning character scalars, or a combination of both -- but the subexpression at %1 is %A" +#~ msgstr "Oprateur de concatnation %0 doit oprer sur deux sous-expressions scalaires (non pas de tableau), deux invocations de fonctions retournant des caractres scalaires ou une combinaison des deux -- mais la sous-expression %1 est %A" + +#~ msgid "Invalid operand (is %A) at %1 for concatenation operator at %0" +#~ msgstr "Oprande invalide (est %A) %1 pour l'oprateur de concatnation %0" + +#~ msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but neither subexpression at %1 or %2 is of arithmetic type" +#~ msgstr "Oprateur arithmtique %0 doit oprer sur deux sous-expressions de type artihmtique, mais aucune des sous-expressions %1 ou %2 n'est pas de type arithmtique" + +#~ msgid "Invalid operands at %1 and %2 for arithmetic operator at %0" +#~ msgstr "Oprande invalide %1 et %2 pour l'oprateur arithmtique %0" + +#~ msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but the subexpression at %1 is not of arithmetic type" +#~ msgstr "Oprateur arithmtique %0 doit oprer sur deux sous-expressions de type artihmtique, mais la sous-expression %1 n'est pas de type arithmtique" + +#~ msgid "Invalid operand at %1 for arithmetic operator at %0" +#~ msgstr "Oprande invalide %1 pour l'oprateur arithmtique %0" + +#~ msgid "Arithmetic operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic scalars, or a combination of both -- but the subexpression at %1 is %A" +#~ msgstr "Oprateur arithmtique %0 doit oprer sur deux sous-expressions scalaires (pas de tableau), l'invocation des deux fonctions retournant un scalaire arithmtique ou une combinaison des deux -- mais la sous-expressions %1 est %A" + +#~ msgid "Invalid operand (is %A) at %1 for arithmetic operator at %0" +#~ msgstr "Oprande invalide (est %A) %1 pour l'oprateur arithmtique %0" + +#~ msgid "Character constant at %0 has no closing quote at %1 [info -f g77 M LEX]" +#~ msgstr "Constante caractre %0 n'a pas de guillemets de fermeture %1 [info -f g77 M LEX]" + +#~ msgid "Unterminated character constant at %0 [info -f g77 M LEX]" +#~ msgstr "constante de caractres non termine %0 [info -f g77 M LEX]" + +#~ msgid "Missing initial `&' on continuation line at %0 [info -f g77 M LEX]" +#~ msgstr "& initial manquant sur la ligne de continuation %0 [info -f g77 M LEX]" + +#~ msgid "Continuation line at %0 invalid because it consists only of a single `&' as the only nonblank character" +#~ msgstr "Ligne de continuation %0 invalide parce qu'elle contient seulement un simple & comme seul caractre non blanc" + +#~ msgid "Invalid continuation line at %0" +#~ msgstr "ligne de continuation invalide %0" + +#~ msgid "Invalid statement at %0 [info -f g77 M LEX]" +#~ msgstr "Dclaration invalide %0 [info -f g77 M LEX]" + +#~ msgid "Unrecognized statement name at %0 and invalid form for assignment or statement-function definition at %1" +#~ msgstr "Dclaration de nom non reconnue %0 et forme invalide pour l'affectation ou la dfinition de dclaration de fonction %1" + +#~ msgid "Invalid statement at %0" +#~ msgstr "Dclaration invalide %0" + +#~ msgid "Invalid form for %A statement at %0" +#~ msgstr "Forme invalide pour la dclaration %A %0" + +#~ msgid "Invalid %A statement at %0" +#~ msgstr "Dclaration %A invalide %0" + +#~ msgid "Invalid use of hollerith constant in statement at %0 -- enclose the constant in parentheses (for example, change BACKSPACE 2HAB to BACKSPACE (2HAB))" +#~ msgstr "Utilisation invalide d'une constante Hollerith la dclaration %0 -- encapsuler la constante entre parenthses (par exemple, changer BACKSPACE 2HAB en BACKSPACE (2HAB) )" + +#~ msgid "Invalid I specifier in FORMAT statement at %0" +#~ msgstr "spcificateur I invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid B specifier in FORMAT statement at %0" +#~ msgstr "spcificateur B invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid O specifier in FORMAT statement at %0" +#~ msgstr "spcificateur O invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid Z specifier in FORMAT statement at %0" +#~ msgstr "spcificateur Z invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid F specifier in FORMAT statement at %0" +#~ msgstr "spcificateur F invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid E specifier in FORMAT statement at %0" +#~ msgstr "spcificateur E invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid EN specifier in FORMAT statement at %0" +#~ msgstr "spcificateur EN invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid G specifier in FORMAT statement at %0" +#~ msgstr "spcificateur G invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid L specifier in FORMAT statement at %0" +#~ msgstr "spcificateur L invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid A specifier in FORMAT statement at %0" +#~ msgstr "spcificateur A invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid D specifier in FORMAT statement at %0" +#~ msgstr "spcificateur D invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid Q specifier in FORMAT statement at %0" +#~ msgstr "spcificateur Q invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid $ specifier in FORMAT statement at %0" +#~ msgstr "spcificateur $ invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid P specifier in FORMAT statement at %0" +#~ msgstr "spcificateur P invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid T specifier in FORMAT statement at %0" +#~ msgstr "spcificateur T invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid TL specifier in FORMAT statement at %0" +#~ msgstr "spcificateur TL invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid TR specifier in FORMAT statement at %0" +#~ msgstr "spcificateur TR invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid X specifier in FORMAT statement at %0" +#~ msgstr "spcificateur X invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid S specifier in FORMAT statement at %0" +#~ msgstr "spcificateur S invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid SP specifier in FORMAT statement at %0" +#~ msgstr "spcificateur SP invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid SS specifier in FORMAT statement at %0" +#~ msgstr "spcificateur SS invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid BN specifier in FORMAT statement at %0" +#~ msgstr "spcificateur BN invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid BZ specifier in FORMAT statement at %0" +#~ msgstr "spcificateur BZ invalide dans la dclaration de FORMAT %0" + +#~ msgid "Invalid : specifier in FORMAT statement at %0" +#~ msgstr "Invalide: spcificateur de dclaration de FORMAT %0" + +#~ msgid "Invalid H specifier in FORMAT statement at %0" +#~ msgstr "spcificateur H invalide dans la dclaration de FORMAT %0" + +#~ msgid "Nonletter in defined operator at %0" +#~ msgstr "ne contient pas une non lettre dans l'oprateur dfini %0" + +#~ msgid "Invalid type-declaration attribute at %0" +#~ msgstr "type d'attribut de dclaration invalide %0" + +#~ msgid "Unrecognized value for character constant at %0 -- expecting %A" +#~ msgstr "valeur non reconnue pour la constante caractre %0 -- %A attendu" + +#~ msgid "Unrecognized value for character constant at %0" +#~ msgstr "valeur non reconnnue pour la constante caractre %0" + +#~ msgid "Range specification at %0 invalid -- at least one expression must be specified, or use CASE DEFAULT" +#~ msgstr "spcification d'tendue %0 invalide -- au moins une expression doit tre spcifi ou utiliser CASE DEFAULT" + +#~ msgid "Range specification at %0 invalid" +#~ msgstr "spcification d'tendue %0 invalide" + +#~ msgid "Useless range at %0" +#~ msgstr "tendue inutile %0" + +#~ msgid "Invalid kind at %0 for type at %1 -- unsupported or not permitted" +#~ msgstr "sorte invalide %0 pour le type %1 -- non support ou non permis" + +#~ msgid "Invalid kind at %0 for type at %1" +#~ msgstr "sorte invalide %0 pour le type %1" + +#~ msgid "Cannot establish implicit type for initial letter `%A' at %0 -- already explicitly established or used to set implicit type of some name, or backwards order of letters in letter range" +#~ msgstr "ne peut tablir un type implicite pour la lettre initiale %A %0 -- dj explicitement tablie ou utilis pour initialiser un type implicite pour un nom quelconque ou un ordre arrire de lettres dans une tendue de lettres" + +#~ msgid "Cannot establish implicit type for initial letter `%A' at %0" +#~ msgstr "ne peut tablir un type implicite pour la lettre initiale %A %0" + +#~ msgid "Label definition %A (at %0) invalid -- must be in columns 1-5" +#~ msgstr "dfinition d'tiquette %A ( %0) invalide -- doit tre en colonnes 1-5" + +#~ msgid "Invalid label definition %A (at %0)" +#~ msgstr "dfinition d'tiquette invalide %A ( %0)" + +#~ msgid "Run-time expression at %0 in FORMAT statement that does not follow the first executable statement in the program unit -- move the statement" +#~ msgstr "expression lors de l'excution %0 dans la dclaration de FORMAT qui ne suit pas la premire dclaration excutable dans l'unit programme -- dplacer la dclaration" + +#~ msgid "FORMAT at %0 with run-time expression must follow first executable statement" +#~ msgstr "FORMAT %0 dans l'expression lors de l'excution doit suivre la premire dclaration excutable" + +#~ msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but neither subexpression at %1 or %2 is of logical type" +#~ msgstr "oprateur boolen/logique %0 doit oprer sur deux sous-expressions de type logique mais aucune des sous-expressions %1 ou %2 n'est de type logique" + +#~ msgid "Invalid operands at %1 and %2 for boolean operator at %0" +#~ msgstr "oprandes invalides %1 et %2 pour l'oprateur boolen %0" + +#~ msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but the subexpression at %1 is not of logical type" +#~ msgstr "oprateur boolen/logique %0 doit oprer sur deux sous-expressions de type logique mais la sous-expression %1 n'est pas de type logique" + +#~ msgid "Invalid operand at %1 for boolean operator at %0" +#~ msgstr "oprande invalide %1 pour l'oprateur boolen %0" + +#~ msgid "Boolean/logical operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning logical scalars, or a combination of both -- but the subexpression at %1 is %A" +#~ msgstr "oprateur boolen/logique %0 doit oprer sur deux sous-expressions de type scalaire (pas tableau), deux invocations de fonction retournant des scalaires logique ou une combinaison des deux -- mais la sous-expression %1 est %A" + +#~ msgid "Invalid operand (is %A) at %1 for boolean operator at %0" +#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur boolen %0" + +#~ msgid ".NOT. operator at %0 must operate on subexpression of logical type, but the subexpression at %1 is not of logical type" +#~ msgstr "oprateur .NOT. %0 doit oprer sur une sous-expression de type logique mais la sous-expression %1 n'est pas de type logique" + +#~ msgid "Invalid operand at %1 for .NOT. operator at %0" +#~ msgstr "oprande invalide %1 pour l'oprateur .NOT. %0" + +#~ msgid ".NOT. operator at %0 must operate on scalar subexpressions -- but the subexpression at %1 is %A" +#~ msgstr "oprateur .NOT. %0 doit oprer sur une sous-expression scalaire mais la sous-expression %1 est %A" + +#~ msgid "Invalid operand (is %A) at %1 for .NOT. operator at %0" +#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur .NOT. %0" + +#~ msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but neither subexpression at %1 or %2 is of arithmetic or character type" +#~ msgstr "oprateur d'galit %0 doit oprer sur deux sous-expressions de type artihmtique ou caractre mais aucune des sous-expressions %1 ou %2 n'est de type arithmtique ou caractre" + +#~ msgid "Invalid operands at %1 and %2 for equality operator at %0" +#~ msgstr "oprandes invalides %1 et %2 pour l'oprateur d'galit %0" + +#~ msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but the subexpression at %1 is not of arithmetic or character type" +#~ msgstr "oprateur d'galit %0 doit oprer sur deux sous-expressions de type artihmtique ou caractre mais la sous-expression %1 n'est pas de type arithmtique ou caractre" + +#~ msgid "Invalid operand at %1 for equality operator at %0" +#~ msgstr "oprande invalide %1 pour l'oprateur d'galit %0" + +#~ msgid "Equality operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic or character scalars, or a combination of both -- but the subexpression at %1 is %A" +#~ msgstr "oprateur d'galit %0 doit oprer sur deux sous-expressions de type scalaire (non pas de tableau), deux invocations de fonction retournant un type arithmtique ou scalaires caractre ou une combinaison des deux mais la sous-expression %1 est %A" + +#~ msgid "Invalid operand (is %A) at %1 for equality operator at %0" +#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur d'galit %0" + +#~ msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but neither subexpression at %1 or %2 is of integer, real, or character type" +#~ msgstr "oprateur relationnal %0 doit oprer sur deux sous-expressions de type entier, rel ou caractre, mais aucune des sous-expression %1 ou %2 n'est de type entier, rel ou caractre" + +#~ msgid "Invalid operands at %1 and %2 for relational operator at %0" +#~ msgstr "oprandes invalides %1 et %2 pour l'oprateur relationnel %0" + +#~ msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but the subexpression at %1 is not of integer, real, or character type" +#~ msgstr "oprateur relationnal %0 doit oprer sur deux sous-expressions de type entier, rel ou caractre, mais la sous-expression %1 n'est pas de type entier, rel ou caractre" + +#~ msgid "Invalid operand at %1 for relational operator at %0" +#~ msgstr "oprande invalide %1 pour l'oprateur relationnel %0" + +#~ msgid "Relational operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning integer, real, or character scalars, or a combination of both -- but the subexpression at %1 is %A" +#~ msgstr "oprateur relationnal %0 doit oprer sur deux sous-expressions de type scalaire (non pas de tableau), deux invocations de fonction retournant un type entier, rel ou caractre ou une combinaison des deux mais la sous-expression %1 est %A" + +#~ msgid "Invalid operand (is %A) at %1 for relational operator at %0" +#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur relationnel %0" + +#~ msgid "Reference to intrinsic `%A' at %0 invalid -- one or more arguments have incorrect type" +#~ msgstr "rfrence l'intrinsque %A %0 invalide -- un ou plusieurs d'arguments ont un type incorrect" + +#~ msgid "Invalid reference to intrinsic `%A' at %0" +#~ msgstr "rfrence invalide vers l'intrinsque %A %0" + +#~ msgid "Too few arguments passed to intrinsic `%A' at %0" +#~ msgstr "trop peu d'arguments passs l'intrinsque %A %0" + +#~ msgid "Too few arguments for intrinsic `%A' at %0" +#~ msgstr "trop peu d'arguments passs l'intrinsque %A %0" + +#~ msgid "Too many arguments passed to intrinsic `%A' at %0" +#~ msgstr "trop d'arguments passs l'intrinsque %A %0" + +#~ msgid "Too many arguments for intrinsic `%A' at %0" +#~ msgstr "trop d'arguments passs l'intrinsque %A %0" + +#~ msgid "Reference to disabled intrinsic `%A' at %0" +#~ msgstr "rfrence l'intrinsque dsactiv %A %0" + +#~ msgid "Disabled intrinsic `%A' at %0" +#~ msgstr "Dsactiver les intrinsques %A %0" + +#~ msgid "Reference to intrinsic subroutine `%A' as if it were a function at %0" +#~ msgstr "rfrence la sous-routine intrinsque %A comme s'il est une fonction %0" + +#~ msgid "Function reference to intrinsic subroutine `%A' at %0" +#~ msgstr "rfrence de fonction la sous-routine intrinsque %A %0" + +#~ msgid "Reference to intrinsic function `%A' as if it were a subroutine at %0" +#~ msgstr "rfrence une fonction intrinsque %A comme s'il est une sous-routine %0" + +#~ msgid "Subroutine reference to intrinsic function `%A' at %0" +#~ msgstr "rfrence de sous-routine la fonction %A %0" + +#~ msgid "Reference to unimplemented intrinsic `%A' at %0 -- use EXTERNAL to reference user-written procedure with this name" +#~ msgstr "rfrence un intrinsque non implant %A %0 -- utiliser EXTERNAL pour rfrence la procdure ayant ce nom et crite par l'usager" + +#~ msgid "Unimplemented intrinsic `%A' at %0" +#~ msgstr "intrinsque %A non implant %0" + +#~ msgid "Reference to unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)" +#~ msgstr "rfrence un intrinsque non implant %A (EXTERNAL assum)" + +#~ msgid "Unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)" +#~ msgstr "intrinsque non implante %A (EXTERNAL assum)" + +#~ msgid "Attempt to modify variable `%A' at %0 while it serves as DO-loop iterator at %1" +#~ msgstr "Tentative de modification de la variable %A %0 alors qu'il sert l'itration de la boucle DO %1" + +#~ msgid "Modification of DO-loop iterator `%A' at %0" +#~ msgstr "Modification de l'itration de la boucle DO %A %0" + +#~ msgid "Attempt to modify variable `%A' via item #%B in list at %0 while it serves as implied-DO iterator at %1" +#~ msgstr "Tentative de modification de la variable %A par le biais de l'item #%b dans la liste %0 alors qu'il sert l'itration implicite de la boucle DO %1" + +#~ msgid "Array has too many dimensions, as of dimension specifier at %0" +#~ msgstr "Tableau trop de dimensions comme spcificateur de dimension %0" + +#~ msgid "Too many dimensions at %0" +#~ msgstr "trop de dimensions %0" + +#~ msgid "Unsupported OPEN control item at %0 -- ACTION=, ASSOCIATEVARIABLE=, BLOCKSIZE=, BUFFERCOUNT=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, DISPOSE=, EXTENDSIZE=, INITIALSIZE=, KEY=, MAXREC=, NOSPANBLOCKS, ORGANIZATION=, PAD=, POSITION=, READONLY=, RECORDTYPE=, SHARED=, and USEROPEN= are not supported" +#~ msgstr "Item de contrle OPEN non support %0 -- ACTION=, ASSOCIATEVARIABLE=, BLOCKSIZE=, BUFFERCOUNT=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, DISPOSE=, EXTENDSIZE=, INITIALSIZE=, KEY=, MAXREC=, NOSPANBLOCKS, ORGANIZATION=, PAD=, POSITION=, READONLY=, RECORDTYPE=, SHARED= et USEROPEN= ne sont pas supports" + +#~ msgid "Unsupported OPEN control item at %0" +#~ msgstr "item de contrle OPEN non support %0" + +#~ msgid "Unsupported INQUIRE control item at %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE=, and WRITE= are not supported" +#~ msgstr "item de contrle INQUIRE non support %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE= et WRITE= ne sont pas supports" + +#~ msgid "Unsupported INQUIRE control item at %0" +#~ msgstr "item de contrle INQUIRE non support %0" + +#~ msgid "Unsupported READ control item at %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS=, and SIZE= are not supported" +#~ msgstr "item de contrle READ non support %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS= et SIZE= ne sont pas supports" + +#~ msgid "Unsupported READ control item at %0" +#~ msgstr "item de contrle READ non support %0" + +#~ msgid "Unsupported WRITE control item at %0 -- ADVANCE= and EOR= are not supported" +#~ msgstr "item de contrle WRITE non support %0 -- ADVANCE= et EOR= ne sont pas supports" + +#~ msgid "Unsupported WRITE control item at %0" +#~ msgstr "item de contrle WRITE non support %0" + +#~ msgid "Padding of %A %D required before `%B' in common block `%C' at %0 -- consider reordering members, largest-type-size first" +#~ msgstr "Remplissage de %A %D requis avant %B dans le bloc commun %C %0 -- considrer reordonner les membres, celui de plus grande taille en premier" + +#~ msgid "Padding of %A %D required before `%B' in common block `%C' at %0" +#~ msgstr "Remplissage de %A %D requis avant %B dans le bloc commun %C %0" + +#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type" +#~ msgstr "Type du point d'entre %0 de la fonction est en conflit avec le type de point d'entre prcdent de la fonction -- doit tre de longueur indentique ou zro pour un type caractre" + +#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s)" +#~ msgstr "type de point d'entr %0 la fonction est en conflit avec le type de point d'entre prcdent de la fonction" + +#~ msgid "Common block `%A' initialized at %0 already initialized at %1 -- only one program unit may specify initial values for a particular common block" +#~ msgstr "bloc commun %A initialis %0 est dj initialis %1 -- une seule unit de programme peut spcifier les valeurs initiales pour un bloc commun particulier" + +#~ msgid "Common block `%A' initialized at %0 already initialized at %1" +#~ msgstr "bloc commun %A initialis %0 est dj initialis %1" + +#~ msgid "Initial padding for common block `%A' is %B %C at %0 -- consider reordering members, largest-type-size first" +#~ msgstr "remplissage initial pour le bloc commun %A est %B %C %0 -- considrer rordonner les membres, celui de plus grande taille en premier" + +#~ msgid "Initial padding for common block `%A' is %B %C at %0" +#~ msgstr "remplissage initial pour le bloc commun %A est %B %C %0" + +#~ msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1 -- consider reordering members, largest-type-size first" +#~ msgstr "remplissage initial pour le bloc commun %A est %B %D %0 mais %C %E %1 -- considrer rordonner les membres, ceux de plus grande taille en premier" + +#~ msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1" +#~ msgstr "remplissage initial pour le bloc commun %A est %B %D %0 mais %C %E %1" + +#~ msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1 -- use consistent definitions or reorder program units in source file" +#~ msgstr "bloc commun %A initialis un longueur %B %D %0 mais augment %C %E %1 -- utiliser des dfinitions consistantes ou rordonner les units de programmes dans le fichier source" + +#~ msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1" +#~ msgstr "bloc commun %A initialis un longueur %B %D %0 mais augment %C %E %1" + +#~ msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0 -- unexpected behavior likely" +#~ msgstr "variable DO %A est de type REEL ou DOUBLE PRECISION %0 -- comportement inattendue est prvoir" + +#~ msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0" +#~ msgstr "variable DO %A est de type REEL ou DOUBLE PRECISION %0" + +#~ msgid "Invalid actual argument at %0 -- replace hollerith constants with %%REF('string') and typeless constants with INTEGER constant equivalents, or use -fugly-args or -fugly" +#~ msgstr "argument actuel invalide %0 -- remplacer les constantes Hollerith avec %%REF('chane') et des constantes sans type avec des quivalents entiers ou utiliser -fugly-args ou -fugly" + +#~ msgid "Invalid actual argument at %0" +#~ msgstr "argument actuel invalide %0" + +#~ msgid "Quadruple-precision floating-point unsupported -- treating constant at %0 as double-precision" +#~ msgstr "virgule flottante en quadruple prcision non support -- tratement de la constante %0 en double prcision" + +#~ msgid "Quadruple-precision floating-point unsupported" +#~ msgstr "virgule flottante en quadruple prcision non support" + +#~ msgid "Initialization of large (%B-unit) aggregate area `%A' at %0 currently very slow and takes lots of memory during g77 compile -- to be improved in 0.6" +#~ msgstr "initialisation d'une large zone aggrgat (unit %B) %A %0 couramment lente et prenant beaucoup de mmoire durant la compilation g77 -- tre amlior dans 0.6" + +#~ msgid "This could take a while (initializing `%A' at %0)..." +#~ msgstr "Cela pourrait prendre du temps (initialisation %A %0)..." + +#~ msgid "can't to open %s" +#~ msgstr "ne peut ouvrir %s" + +#~ msgid "Set class path and suppress system path" +#~ msgstr "Initialiser le chemin des classes et supprimer le chemin systmes" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "hard register `%s' listed as input operand to `asm'" +#~ msgstr "registre matriel `%s' est list comme une oprande d'entre `asm'" + +#~ msgid "floating point trap outputting a constant" +#~ msgstr "la trappe en virgule flottante produit une constante" + +#~ msgid "no file-scope type named `%D'" +#~ msgstr "pas de type de porte de fichier nomm `%D'" + +#~ msgid "%T is not a class type" +#~ msgstr " %T n'est pas un type de classe" + +#~ msgid "base clause without member specification for `%#T'" +#~ msgstr "clause de base sans spcification de membre pour `%#T'" + +#~ msgid "non-`union' tag used in declaring `%#T'" +#~ msgstr "tiquette non-`union' utilis dans la dclaration de `%#T'" + +#~ msgid "invalid use of %D" +#~ msgstr "utilisation invalide de %D" + +#~ msgid "return value from function receives multiple initializations" +#~ msgstr "valeur retourne de la fonction reoit de multiples initialisations" + +#~ msgid "Can't use '$' as a separator for inner classes" +#~ msgstr "Ne peut utiliser '$' comme sparateur pour des classes internes" + +#~ msgid "-mlong32 and -mlong64 can not both be specified" +#~ msgstr "-mlong32 et -mlong64 ne peuvent tre spcifis ensembles." + +#~ msgid "type with more precision than %s" +#~ msgstr "type avec plus de precision que %s" + +#~ msgid "ANSI C forbids const or volatile function types" +#~ msgstr "C ANSI interdit les types `const' ou de fonctions volatiles" + +#~ msgid "leaving more files than we entered" +#~ msgstr "laissant plus de fichiers que nous en avons entre" + +#~ msgid "universal-character-name used for '%c'" +#~ msgstr "nom-de-caractre-universel utilis pour `%c'" + +#~ msgid "unknown escape sequence: '\\' followed by char 0x%x" +#~ msgstr "squence d'chappement inconnue: '\\' suivi du caractre 0x%x" + +#~ msgid "wrong type argument to %s" +#~ msgstr "type d'argument erron pour %s" + +#~ msgid "deprecated initialization of zero-length array" +#~ msgstr "initialisation obsolte d'un tableau de taille zro" + +#~ msgid "initialization of zero-length array before end of structure" +#~ msgstr "initialisation d'un tableau de taille zro avant la fin de la structure" + +#~ msgid "initialization of zero-length array inside a nested context" +#~ msgstr "initialisation d'un tableau de taille zro l'intrieur d'un contexte imbriqu" + +#~ msgid "Unable to find a temporary location for static chain register" +#~ msgstr "Incapable de trouver une location temporaire pour un registre chan statique" + +#~ msgid "Internal gcc abort from %s:%d" +#~ msgstr "Abandon interne gcc partir de %s:%d" + +#~ msgid "The local variable `insn' has the value:" +#~ msgstr "La variable locale `insn' a la valeur:" + +#~ msgid "Register '%c' already specified in allocation order" +#~ msgstr "Registre '%c' est dj spcifi dans l'ordre d'allocation" + +#~ msgid "Same as -mcpu=i386" +#~ msgstr "Identique -mcpu=i386" + +#~ msgid "Same as -mcpu=i486" +#~ msgstr "Identique -mcpu=i486" + +#~ msgid "Same as -mcpu=pentium" +#~ msgstr "Identique -mcpu=pentium" + +#~ msgid "Same as -mcpu=pentiumpro" +#~ msgstr "Identique -mcpu=pentiumpro" + +#~ msgid "Emit Intel syntax assembler opcodes" +#~ msgstr "Produire les code-op pour la syntaxe d'assembleur Intel" + +#~ msgid "Control allocation order of integer registers" +#~ msgstr "Contrle l'ordre d'allocation des registres entier" + +#~ msgid "The -mabi=32 support does not work yet." +#~ msgstr "L'option -mabi=32 n'est pas fonctionnelle encore." + +#~ msgid "-mcpu=%s does not support -mips%d" +#~ msgstr "-mcpu=%s ne supporte par -mips%d" + +#~ msgid "Use FUNCTION_EPILOGUE" +#~ msgstr "Utiliser FUNCTION_EPILOGUE" + +#~ msgid "Do not use FUNCTION_EPILOGUE" +#~ msgstr "Ne pas utiliser FUNCTION_EPILOGUE" + +#~ msgid "object size exceeds built-in limit for virtual function table implementation" +#~ msgstr "taille des objets excde les limites internes pour la table implante de fonctions virtuelles" + +#~ msgid "object size exceeds normal limit for virtual function table implementation, recompile all source and use -fhuge-objects" +#~ msgstr "taille des objets excde la limite normale pour la table implante de foncions virtuelles, recompiler tous les sources et utiliser -fhuge-objects" + +#~ msgid "the ABI requires vtable thunks" +#~ msgstr "l'ABI requiert vtable thunks" + +#~ msgid "`__alignof__' applied to a bit-field" +#~ msgstr "`__alignof__' appliqu un champ de bits" + +#~ msgid "Do not treat the namespace `std' as a normal namespace" +#~ msgstr "Ne pas traiter l'espace nom `std' comme un espace nom normal" + +#~ msgid "taking dynamic typeid of object with -fno-rtti" +#~ msgstr "prendre le typeid dynamique d'objet avec -fno-rtti" + +#~ msgid "recoverable compiler error, fixups for virtual function" +#~ msgstr "erreur de recouvrement du compilateur, correctifs pour les fonctions virtuelles" + +#~ msgid "`com_interface' only supported with -fvtable-thunks" +#~ msgstr "`com_interface' support seulement avec -fvtable-thunks" + +#~ msgid "\"defined\" operator appears during macro expansion" +#~ msgstr "oprateur \"defined\" apparat durant l'expansion de macro" + +#~ msgid "-include and -imacros cannot be used with -fpreprocessed" +#~ msgstr "-include et -imacros ne peuvent tre utiliss avec -fpreprocessed" + +#~ msgid "buffers still stacked in cpp_finish" +#~ msgstr "tampons toujours empils dans cpp_finish" + +#~ msgid "# followed by integer" +#~ msgstr "# suivi d'un entier" + +#~ msgid "attempt to push file buffer with contexts stacked" +#~ msgstr "tentative d'empilage du tampon fichier dans un contexte de pile" + +#~ msgid "file \"%s\" left but not entered" +#~ msgstr "fichier \"%s\" a t laiss mais n'a pas t entr" + +#~ msgid "expected to return to file \"%s\"" +#~ msgstr "attendait retourner au fichier \"%s\"" + +#~ msgid "header flags for \"%s\" have changed" +#~ msgstr "fanion d'en-tte de \"%s\" a chang" + +#~ msgid "file \"%s\" entered but not left" +#~ msgstr "fichier \"%s\" entre mais non laiss" + +#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n" +#~ msgstr "NOTE_INSN_BASIC_BLOCK est manquant por le bloc %d\n" + +#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n" +#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o RP_OBJ] fichier\n" + +#~ msgid "Premature end of input file %s" +#~ msgstr "Fin prmatur du fichier d'entre %s" + +#~ msgid "Make is_compiled_class return 1" +#~ msgstr "Faire que is_compiled_class retourne 1" + +#~ msgid "Dump class files to .class" +#~ msgstr "Vidanger les fichiers de classs dans .class" + +#~ msgid "input file is list of file names to compile" +#~ msgstr "fichier d'entre est list dans les noms de fichiers compiler" + +#~ msgid "Generate code for Boehm GC" +#~ msgstr "Gnrer le code pour Boehm GC" + +#~ msgid "Don't put synchronization structure in each object" +#~ msgstr "Ne pas insrer de structure de synchronisation dans cahque objet" + +#~ msgid "Arc profiling: some edge counts were bad." +#~ msgstr "profilage Arc: quelques compteurs de bordures taient errones." + +#~ msgid "`asm' cannot be used in function where memory usage is checked" +#~ msgstr "`asm' ne peut tre utilis dans une fonction o l'usage de la mmoire est vrifi" + +#~ msgid "`asm' cannot be used with `-fcheck-memory-usage'" +#~ msgstr "`asm' ne peut tre utilis `-fcheck-memory-usage'" + +#~ msgid "output operand constraint %d contains `+'" +#~ msgstr "contrainte de sortie de l'oprande %d contient `+'" + +#~ msgid "\"%s\" and \"%s\" identical in first %d characters" +#~ msgstr "\"%s\" et \"%s\" identique pour les premiers %d caractres" + +#~ msgid "Improve FP speed by violating ANSI & IEEE rules" +#~ msgstr "Amliorer la vitesse FP en violant les rgles ANSI & IEEE" + +#~ msgid "Generate code to check every memory access" +#~ msgstr "Gnrer du code pour vrifier chaque accs mmoire" + +#~ msgid "Add a prefix to all function names" +#~ msgstr "Ajouter un prfixe tous les noms de fonctions" + +#~ msgid "Errors detected in input file (your bison.simple is out of date)\n" +#~ msgstr "Erreurs dtectes dans le fichier d'entre (votre bison.simple est prim)\n" + +#~ msgid " -Wid-clash- Warn if 2 identifiers have the same first chars\n" +#~ msgstr " -Wid-clash- avertir si 2 identificateurs one les mmes premiers de caractres\n" + +#~ msgid "Unrecognized option `%s'" +#~ msgstr "Option non reconnue `%s'" + +#~ msgid "`-a' option (basic block profile) not supported" +#~ msgstr "`-a' option (profile de blocs de base) non support" + +#~ msgid "`-ax' option (jump profiling) not supported" +#~ msgstr "`-ax' option (profilage des sauts) non support" + +#~ msgid "`-ax' and `-a' are conflicting options. `-a' ignored." +#~ msgstr "`-ax' et `-a' sont des options conflictuelles. `-a' ignor." + +#~ msgid "Data size %ld.\n" +#~ msgstr "Taille des donnes %ld.\n" + +#~ msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n" +#~ msgstr "Copyright 2001 Free Software Foundation, Inc.\n" + +#~ msgid "Name `%s' contains quotes" +#~ msgstr "Nom %s contient des guillemets" + +#~ msgid "invalid string `%s' in define_query_cpu_unit" +#~ msgstr "chane invalide %s dans define_query_cpu_unit" + +#~ msgid "invalid first string `%s' in presence_set" +#~ msgstr "premire chane invalide %s dans presence_set" + +#~ msgid "invalid first string `%s' in absence_set" +#~ msgstr "premire chane invalide %s dans absence_set" + +#~ msgid "invalid second string `%s' in absence_set" +#~ msgstr "seconde chane invalide %s dans absence_set" + +#~ msgid "invalid string `%s' in define_automaton" +#~ msgstr "chane invalide %s dans define_automaton" + +#~ msgid "garbage after ) in reservation `%s'" +#~ msgstr "rebut aprs ) dans la rservation %s " + +#~ msgid "repetition `%s' <= 1 in reservation `%s'" +#~ msgstr "rptition %s <= 1 dans la rservation %s " + +#~ msgid "`%s' in exclusion is not unit" +#~ msgstr " %s dans l'exclusion n'est pas une unit" + +#~ msgid "units `%s' and `%s' in exclusion set belong to different automata" +#~ msgstr "units %s et %s dans l'ensemble d'exclusions appartient un automate diffrent" + +#~ msgid "unit `%s' excludes and requires presence of `%s'" +#~ msgstr "unit %s exclue et requiert la prsence de %s " + +#~ msgid "unit `%s' requires absence and presence of `%s'" +#~ msgstr "unit %s exclue et requiert l'absence ou la prsence de %s " + +#~ msgid "define_insn_reservation `%s' has negative latency time" +#~ msgstr "define_insn_reservation %s a un temps de latence ngatif" + +#~ msgid "define_bypass `%s - %s' has negative latency time" +#~ msgstr "define_bypass %s - %s a un temps de latence ngatif" + +#~ msgid "define_unit `%s' without automaton when one defined" +#~ msgstr "define_unit %s sans automate alors qu'il y en a un dfini" + +#~ msgid "Units `%s' and `%s' should be in the same automaton" +#~ msgstr "Units %s et %s devraient tre dans le mme automate" + +#~ msgid "Automaton `%s': Insn `%s' will never be issued" +#~ msgstr "Automate %s : Insn %s ne sera jamais mis" + +#~ msgid "Insn `%s' will never be issued" +#~ msgstr "Insn %s ne sera jamais mis" + +#~ msgid "Profile does not match flowgraph of function %s (out of date?)" +#~ msgstr "Profil ne concorde pas le graphe de flux de la fonction %s (prim?)" + +#~ msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter" +#~ msgstr "La pente de la fonction linaire d'trnaglement d'enlignage aprs avoir atteint rcursivement la limite d'enlignage rcursif est obtenue par la valeur ngative rciproque de ce paramtre" + +#~ msgid "push %s level %p line %d\n" +#~ msgstr "empiler %s niveau %p ligne %d\n" + +#~ msgid "pop %s level %p line %d\n" +#~ msgstr "dpiler %s niveau %p ligne %d\n" + +#~ msgid "suspend %s level %p line %d\n" +#~ msgstr "suspendre %s niveau %p ligne %d\n" + +#~ msgid "resume %s level %p line %d\n" +#~ msgstr "complter %s niveau %p ligne %d\n" + +#~ msgid "\\x%x" +#~ msgstr "\\x%x" + +#~ msgid "invalid use of template `%D'" +#~ msgstr "utilisation invalide du canevas %D " + +#~ msgid "qualified name does not name a class" +#~ msgstr "nom qualifi ne nomme pas une classe" + +#~ msgid "assignment to non-static member `%D' of enclosing class `%T'" +#~ msgstr "affectation un membre non statique %D de la classe %T entoure" + +#~ msgid "ISO C++ does not permit named return values" +#~ msgstr "ISO C++ ne permet pas les valeurs retournes nommes" + +#~ msgid "exception handler inside code that is being protected" +#~ msgstr "traitement d'exception l'intrieur du code qui est protg" + +#~ msgid "(debug) trace parsing process" +#~ msgstr "(dbug) tracer le traitement de l'analyse" + +#~ msgid "(debug) trace lexical analysis" +#~ msgstr "(dbug) trace l'analyse lexicale" diff --git a/libcpp/po/id.gmo b/libcpp/po/id.gmo new file mode 100644 index 000000000..0b99443dd Binary files /dev/null and b/libcpp/po/id.gmo differ diff --git a/libcpp/po/id.po b/libcpp/po/id.po new file mode 100644 index 000000000..96809072b --- /dev/null +++ b/libcpp/po/id.po @@ -0,0 +1,972 @@ +# 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 , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-02-05 19:00+0700\n" +"Last-Translator: Arif E. Nugroho \n" +"Language-Team: Indonesian \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:1041 +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 " +msgstr "#%s diduga \"NAMA BERKAS\" atau " + +#: 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "direktif #%s tidak valid" + +#: directives.c:1156 +#, 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:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s telah terdaftar" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s telah terdaftar" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "mendaftarkan pragma dengan penanganan KOSONG" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma sekali dalam berkas utama" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "#pragma push_macro direktif tidak valid" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "#pragma pop_macro direktif tidak valid" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "#pragma GCC tidak valid merusak direktif" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "merusak makro \"%s\" yang sudah ada" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header diabaikan diluar berkas include" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "tidak dapat menemukan berkas sumber %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "berkas ini lebih lama daripada %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma mengambil sebuah string literal tanda kurung" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else tanpa #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else setelah #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "kondisional berawal disini" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif tanpa #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif setelah #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif tanpa #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "hilang '(' setelah predikat" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "hilang ')' untuk melengkapi jawaban" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "jawaban predikat kosong" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "assertion tanpa predikat" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "predikat harus berupa sebuah pengidentifikasi" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" re-asserted" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "tidak terakhiri #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "terlalu banyak titik desimal dalam angka" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "konstanta titik-tetap adalah sebuah ekstensi GCC" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "angka \"%c\" tidak valid dalam konstanta binari" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "angka \"%c\" tidak valid dalam konstanta oktal" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "awalan \"0b\" tidak valid untuk konstanta pecahan" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "tidak ada angka dalam konstanta pecahan heksa desimal" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "penggunaan dari konstanta pecahan heksa desimal C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "eksponen tidak memiliki digits" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "konstanta pecahan heksa desimal membutuhkan sebuah eksponen" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "akhiran \"%.*s\" tidak valid dalam konstanta pecahan" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "dalam tradisi C menolak akhiran \"%.*s\"" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "akhiran untuk konstanta ganda adalah sebuah ekstensi GCC" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "akhiran \"%.*s\" tidak valid dengan konstanta pecahan heksa desimal" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "konstanta pecahan desimal adalah sebuah ekstensi GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "akhiran \"%.*s\" tidak valid dalam konstanta integer" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "penggunaan dari konstanta integer long long C++0x" + +#: expr.c:434 +#, 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:448 +msgid "imaginary constants are a GCC extension" +msgstr "konstanta imaginari adalah sebuah ekstensi GCC" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "konstanta binari adalah sebuah ekstensi GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "konstanta integer terlalu besar untuk tipenya" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "konstanta integer terlalu besar yang itu unsigned" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "hilang ')' setelah \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "operator \"defined\" membutuhkan sebuah pengidentifikasi" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(\"%s\" adalah sebuah tanda alternatif untuk \"%s\" dalam C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "penggunaan ini dari \"defined\" mungkin tidak portabel" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "konstanta pecahan dalam ekspresi preprosesor" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "angka imaginari dalam ekspresi preprosesor" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" tidak didefinisikan" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "assertions adalah sebuah ekstensi GCC" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "assertions adalah sebuah ekstensi yang sudah ditinggalkan" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "hilang operator binari sebelum tanda \"%s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "tanda \"%s\" bukan sebuah ekspresi preprosesor yang valid" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "hilang ekspresi diantara '(' dan ')'" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s dengan tanpa ekspresi" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "operator '%s' tidak memiliki operan kanan" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "operator '%s' tidak memiliki operan kiri" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ':' tanpa awalan '?'" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "stack dalam %s tidak seimbang" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "operator '%u' tidak mungkin" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "hilang ')' dalam ekspresi" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' tanpa diikuti ':'" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "integer overflow dalam ekspresi preprosesor" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "hilang '(' dalam ekspresi" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "operan kiri dari \"%s\" berubah tanda ketika dipromosikan" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "operan kanan dari \"%s\" berubah tanda ketika dipromosikan" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "tradisional C menolak operator unary plus" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "operator koma dalam operator dari #if" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Multiple include guards mungkin berguna untuk:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t harus berupa sebuah tipe unsigned" + +#: init.c:493 +#, 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:500 +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:503 +msgid "target char is less than 8 bits wide" +msgstr "target char lebih kecil dari 8 bits wide" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "target wchar_t lebih kecil dari target char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "target int lebih kecil dari target char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP integer-setengah lebih kecil dari karakter CPP" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "backslash dan baris baru dipisahkan dengan spasi" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "backslash baris baru diakhir dari berkas" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigraph ??%c diubah ke %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "trigraph ??%c diabaikan, gunakan -trigraph untuk mengaktifkan" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" di dalam komentar" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s dalam direktif preprosesing" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "karakter kosong diabaikan" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "`%.*s' tidak dalam NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "`%.*s' tidak dalam NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "mencoba untuk menggunakan terusak \"%s\"" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "pengidentifikasi \"%s\" adalah nama operator spesial dalam C++" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "pembatas mentah string lebih panjang dari 16 karakter" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "karakter '%c' tidak valid dalam pembatas mentah string" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "tidak terselesaikan raw string" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "karakter kosong dijaga dalam literal" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "hilang karakter pengakhir %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "komentar gaya C++ tidak diijinkan dalam ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(ini hanya akan dilaporkan sekali setiap berkas masukan)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "komentar multi baris" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "tanda %s tidak dapat disebutkan" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "makro \"%s\" tidak digunakan" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "makro bawaan \"%s\" tidak valid" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "tidak dapat menentukan berkas timestamp" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "tidak dapat menentukan tanggal dan waktu" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ diekspans didalam direktif dengan -fdirectives-only" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "string literal tidak valid, mengabaikan final '\\'" + +#: macro.c:490 +#, 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:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 membutuhkan argumen rest untuk digunakan" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "makro \"%s\" membutuhkan %u argumen, tetapi hanya %u diberikan" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "makro \"%s\" melewatkan %u argumen, tetapi hanya mengambil %u" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "daftar argumen tidak terselesaikan memanggil makro \"%s\"" + +#: macro.c:866 +#, 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:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "duplikasi parameter makro \"%s\"" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" mungkin tidak muncul dalam daftar parameter makro" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "parameter makro yang berupa koma dipisahkan" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "nama parameter hilang" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "anonymous variadik makro diperkenalkan dalam C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C tidak mengijinkan makro variadik bernama" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "hilang ')' dalam daftar parameter makro" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' tidak dapat muncul baik diakhir dari sebuah ekspansi makro" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 membutuhkan whitespace setelah nama makro" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "kurang spasi setelah nama makro" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' tidak diikuti dengan sebuah parameter makro" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" redefinisi" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "ini adalah lokasi dari definisi sebelumnya" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "argumen makro \"%s\" akan stringified dalam tradisional C" + +#: macro.c:2004 +#, 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:891 +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/libcpp/po/ja.gmo b/libcpp/po/ja.gmo new file mode 100644 index 000000000..29dd8d9fb Binary files /dev/null and b/libcpp/po/ja.gmo differ diff --git a/libcpp/po/ja.po b/libcpp/po/ja.po new file mode 100644 index 000000000..b00bf4c77 --- /dev/null +++ b/libcpp/po/ja.po @@ -0,0 +1,954 @@ +# Japanese messages for GNU gcc cpplib +# Copyright (C) 2001, 2010, 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the gcc package. +# Daisuke Yamashita , 1999-2001 +# Masahito Yamaga , 1999. +# IIDA Yosiaki , 1999. +# Yasuaki Taniguchi , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.6-b20101113\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2011-01-23 20:13+0900\n" +"Last-Translator: Yasuaki Taniguchi \n" +"Language-Team: Japanese \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:1041 +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 " +msgstr "#%s は \"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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "無効な #%s 指示です" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "名前空間 \"%s\" 内に pragma を一致しない名前展開で登録しています" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "pragma \"%s\" を名前展開有りおよび名前空間無しで登録しています" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "\"%s\" を pragma および pragma 名前空間の両方として登録しています" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s は既に登録されています" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s は既に登録されています" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "NULL ハンドラで pragma を登録しています" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once がメインファイルにあります" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "無効な #pragma push_macro 指示です" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "無効な #pragma pop_macro 指示です" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "#pragma GCC 汚染ディレクティヴが無効です" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "既存のマクロ \"%s' を汚染します" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "include ファイル外の #pragma system_header は無視されました" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "ソースファイル %s が見つかりません" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "現在のファイルは %s より古いです" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pramga が括弧で囲まれた文字列リテラルを受け取りました" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else に #if がありません" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else が #else の後ろにあります" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "その条件はここから始まります" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif に #if がありません" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif が #else の後ろにあります" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif に #if がありません" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "述語の後ろの '(' を欠いています" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "解を補完する ')' を欠いています" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "述語の解が空です" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "述語のないアサーションです" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "述語は識別子でなければなりません" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" が再アサートされました" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "終端のない #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "数字の中に小数点が多すぎます" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "固定小数点定数は GCC 拡張です" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "二進定数内に無効な数字 \"%c\" があります" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "八進定数内に無効な数字 \"%c\" があります" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "浮動小数定数に対する無効な接頭辞 \"0b\" です" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "十六進浮動小数定数内に数字がありません" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "C99 十六進浮動小数定数を使用しています" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "べき乗の数字がありません" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "十六進浮動小数定数にはべき乗が必要です" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "浮動小数定数に無効な接尾辞 \"%.*s\" があります" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "古い (traditional) C では \"%.*s\" 接尾辞は拒否されます" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "倍精度定数の接尾辞は GCC 拡張です" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "十六進浮動小数定数に無効な接尾辞 \"%.*s\" があります" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "十進浮動小数定数は GCC 拡張です" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "整数定数に無効な接尾辞 \"%.*s\" があります" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "C++0x の long long 整数定数を使用しています" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "C99 の long long 整数定数を使用しています" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "虚数定数は GCC 拡張です" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "二進定数は GCC 拡張です" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "整数定数が型に対して大きすぎます" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "整数定数が大きすぎるので unsigned になりました" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "\"defined\" の後ろの ')' がありません" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "\"defined\" 演算子は識別子を要求します" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(C++ では \"%s\" が \"%s\" の代替トークンです)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "この \"defined\" の使用法は移植性がありません" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "前処理式の中に浮動小数定数があります" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "前処理式の中に虚数があります" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" は定義されていません" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "アサーションは GCC 拡張です" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "アサーションは廃止された拡張です" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "トークン \"%s\" の前に二項演算子がありません" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "トークン \"%s\" は有効な前処理式ではありません" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "'(' と ')' の間に式がありません" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "式が無い %s です" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "演算子 '%s' に右側被演算子がありません" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "演算子 '%s' に左側被演算子がありません" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "前に '?' が無い ':' です" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "%s 内に釣り合いがとれていないスタックがあります" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "不可能な演算子 '%u' です" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "式の中に ')' がありません" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "後に ':' が続いていない '?' です" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "整数が前処理式内で溢れました" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "式内に '(' がありません" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "\"%s\" の左側の被演算子は実行時に符号を変更します" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "\"%s\" の右側の演算子は実行時に符号を変更します" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "古い (traditional) C では単項プラス演算子は拒否されます" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "カンマ演算子が #if の被演算子内にあります" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "多重 include からの保護が有益となるでしょう:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t は符号無し型でなければいけません" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "前処理の数値演算の最大精度は %lu ビットですが、ターゲットは %lu ビットを要求しています" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "CPP 数値演算はターゲットの int 以上の精度がなければいけません" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "ターゲットの char が 8 ビットより小さいです" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "ターゲットの wchar_t がターゲットの char より小さいです" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "ターゲットの int がターゲットの char より小さいです" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP ハーフ整数は CPP character より小さいです" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "バックスラッシュと改行が空白で分割されました" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "ファイルの終りにバックスラッシュ-改行があります" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "トライグラフ ??%c は %c に変換されました" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "トライグラフ ??%c は無視されました。有効にするには -trigraphs を使用してください" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "コメント内に \"/*\" があります" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "前処理指示中に %s があります" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "null 文字は無視されました" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "`%.*s' は NFKC ではありません" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "`%.*s' は NFC ではありません" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "汚染された '%s' 使おうとしています" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ は C99 可変引数マクロ拡張でのみ出現できます" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "識別子 \"%s\" は C++ の特別な演算子名です" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "生の文字列区切りが 16 文字より大きいです" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "生の文字列区切り内に無効な文字 '%c' があります" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "終端されていない生の文字列です" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "リテラル中で null 文字が確保されました" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "%c 文字での終端を欠いています" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++ スタイルのコメントは ISO C90 では許可されていません" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(これは入力ファイルにつき一回だけ報告されます)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "複数行のコメント" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "綴ることができないトークン %s です" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "マクロ \"%s\" は使用されません" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "無効な組み込みマクロ \"%s\" です" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "ファイルのタイムスタンプを決定できません" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "日付と時間を決定できません" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ が -fdirectives-only がある指示内で展開されました" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "文字列リテラルが無効です、最後の '\\' を無視します" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "\"%s\" と \"%s\" を貼付けましたが正常な前処理トークンとなりません" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 は使用されるべき残りのの引数を要求します" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "マクロ \"%s\" は引数を %u 要求しますが、%u 個しか与えられていません" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "マクロ \"%s\" に引数が %u 渡されましたが、%u しか受け取りません" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "終端されていない引数リストがマクロ \"%s\" を起動しようとしました" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "古い C では、関数型マクロ \"%s\" に引数が与えられねばなりません" + +#: macro.c:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "マクロ仮引数 \"%s\" が重複しています" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "マクロ仮引数はカンマ区切りされなければなりません" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "仮引数名を欠いています" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "無名可変引数マクロは C99 で導入されました" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C では名前つき可変引数マクロを許しません" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "マクロ仮引数リストに ')' がありません" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' はマクロ展開の両端には出現できません" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 ではマクロ名の後に空白が必要です" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "マクロ名の後に空白がありません" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' にマクロ仮引数名が続いていません" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" が再定義されました" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "ここが以前の宣言がある位置です" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "マクロ引数 \"%s\" は古い (traditional) C では文字列化されます" + +#: macro.c:2004 +#, 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:891 +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/libcpp/po/nl.gmo b/libcpp/po/nl.gmo new file mode 100644 index 000000000..6c97757f1 Binary files /dev/null and b/libcpp/po/nl.gmo differ diff --git a/libcpp/po/nl.po b/libcpp/po/nl.po new file mode 100644 index 000000000..bab8077ce --- /dev/null +++ b/libcpp/po/nl.po @@ -0,0 +1,978 @@ +# 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 , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-02-06 14:43+0100\n" +"Last-Translator: Tim Van Holder \n" +"Language-Team: Dutch \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:1041 +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 " +msgstr "#%s verwacht \"BESTAND\" of " + +#: 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "ongeldig #%s commando" + +# goede vertaling voor 'mismatched'? +#: directives.c:1156 +#, 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:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s is reeds geregistreerd" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s is reeds geregistreerd" + +# betere vertaling voor 'handler'? +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "registratie van pragma met NULL als afhandelingsroutine" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once in hoofdbestand" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "ongeldig #pragma push_macro commando" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "ongeldig #pragma pop_macro commando" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "ongeldig #pragma GCC poison commando" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "bestaande macro \"%s\" wordt 'vergiftigd'" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header wordt genegeerd buiten een invoegbestand" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "kan bronbestand %s niet vinden" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "huidig bestand is ouder dan %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma verwacht een stringconstante tussen haakjes als argument" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else zonder #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else na #else" + +# of gewoon "de conditie"? +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "het conditionele blok begon hier" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif zonder #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif na #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif zonder #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "'(' ontbreekt na predicaat" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "')' ontbreekt als afronding van het antwoord" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "antwoord van het predicaat is leeg" + +# dit moet beter kunnen... +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "assertie zonder predicaat" + +# ... dit klinkt echt niet - maar wat is hier een beter vertaling voor identifier? +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "predicaat moet een naam zijn" + +# is "asserteren" wel een echt woord? +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" opnieuw geasserteerd" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "niet-beëindigde #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "teveel komma's in getal" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "fixed-point constantes zijn een uitbreiding van GCC" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "ongeldig cijfer \"%c\" in binaire constante" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "ongeldig cijfer \"%c\" in octale constante" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "ongeldige prefix \"0b\" voor floating-point constante" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "geen cijfers in hexadecimale floating-point constante" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "gebruik van C99 hexadecimale floating-point constante" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "exponent heeft geen cijfers" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "hexadecimale floating-point constante vereist een exponent" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "ongeldige suffix \"%.*s\" aan floating-point constante" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "traditionele C aanvaardt de \"%.*s\" suffix niet" + +#: expr.c:383 +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:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "ongeldige suffix \"%.*s\" bij hexadecimale floating-point constante" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "decimale float-constantes zijn een uitbreiding van GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "ongeldige suffix \"%.*s\" aan integerconstante" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "gebruik van C++0x long long integerconstante" + +#: expr.c:434 +#, 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:448 +msgid "imaginary constants are a GCC extension" +msgstr "imaginaire constantes zijn een uitbreiding van GCC" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "binaire constantes zijn een uitbreiding van GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "integerconstante is te groot voor zijn type" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "integerconstante is zo groot dat hij tekenloos is" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "')' ontbreekt na \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "de \"defined\" operator verwacht een naam als argument" + +#: expr.c:685 +#, 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:695 +msgid "this use of \"defined\" may not be portable" +msgstr "dit gebruik van \"define\" is mogelijk niet portabel" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "floating-point constante in preprocessor-expressie" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "imaginair getal in preprocessor-expressie" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" is niet gedefinieerd" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "assertions zijn een uitbreiding van GCC" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "assertions zijn een afgekeurde uitbreiding" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "binaire operator ontbreekt voor het \"%s\" token" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "token \"%s\" is niet geldig in preprocessor-expressies" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "expressie ontbreekt tussen '(' en ')'" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s zonder expressie" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "operator '%s' heeft geen rechtse operand" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "operator '%s' heeft geen linkse operand" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ':' zonder voorafgaande '?'" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "niet-gebalanceerde stack in %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "operator '%u' is onmogelijk" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "')' ontbreekt in expressie" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' zonder daaropvolgende ':'" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "integer-overflow in preprocessor-expressie" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "'(' ontbreekt in expressie" + +#: expr.c:1256 +#, 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:1261 +#, 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:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "traditionele C verwerpt de unaire plus-operator" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "comma operator in operand van #if" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Meerdere invoegbeschermingen zouden nuttig kunnen zijn voor:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t moet een tekenloos type zijn" + +#: init.c:493 +#, 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:500 +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:503 +msgid "target char is less than 8 bits wide" +msgstr "char is minder dan 8 bits breed in de doelomgeving" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "wchar_t is smaller dan char in de doelomgeving" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "int is smaller dan char in de doelomgeving" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP half-integer is smaller dan een CPP character" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "backslash en newline gescheiden door spatie(s)" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "backslash-newline aan einde van bestand" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigraph ??%c omgezet naar %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "trigraph ??%c genegeerd, gebruik -trigraphs om ondersteuning in te schakelen" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" binnen commentaar" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s binnen preprocessor-commando" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "nulkarakter(s) worden genegeerd" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "`%.*s' zit niet in NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "`%.*s' zit niet in NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "poging tot gebruik van 'vergiftigde' \"%s\"" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, 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:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "rauwe stringscheiding is langer dan 16 tekens" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "ongeldig teken '%c' in rauwe stringscheiding" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "niet-beëindigde rauwe string" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "nulkarakter(s) in een constante worden behouden" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "sluitend %c teken ontbreekt" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "commentaar in C++ stijl is niet toegestaan in ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(dit wordt maar een keer gemeld per invoerbestand)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "commentaar gespreid over meerdere lijnen" + +# lijkt een vreemde boodschap... +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "kan token %s niet spellen" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "macro \"%s\" wordt nergens gebruikt" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "ongeldige ingebouwde macro \"%s\"" + +# betere vertaling voor 'timestamp'? +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "kan tijdsinformatie van bestand niet bepalen" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "kan datum en tijd niet bepalen" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "expansie van __COUNTER__ binnenin commando terwijl -fdirectives-only opgegeven is" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "ongeldige stringconstante, laatste '\\' wordt genegeerd" + +#: macro.c:490 +#, 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:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 verplicht het gebruik van restargumenten" + +#: macro.c:570 +#, 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:575 +#, 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:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "niet-beëindigde argumentenlijst bij oproep van macro \"%s\"" + +#: macro.c:866 +#, 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:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "herhaalde macro-parameter \"%s\"" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" mag niet voorkomen in lijst van macro-parameters" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "macro-parameters moet door komma's gescheiden worden" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "parameternaam weggelaten" + +#: macro.c:1596 +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:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C staat het gebruik benoemde variadische macro's niet toe" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "')' ontbreekt in lijst van macro-parameters" + +#: macro.c:1659 +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:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 vereist witruimte na de macronaam" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "witruimte ontbreekt na de macronaam" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' wordt niet gevolgd door de naam van een macro-parameter" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" opnieuw gedefinieerd" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "dit is de locatie van de eerdere definitie" + +#: macro.c:1977 +#, 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:2004 +#, 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:891 +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/libcpp/po/ru.gmo b/libcpp/po/ru.gmo new file mode 100644 index 000000000..e44d575c7 Binary files /dev/null and b/libcpp/po/ru.gmo differ diff --git a/libcpp/po/ru.po b/libcpp/po/ru.po new file mode 100644 index 000000000..b5877a8a5 --- /dev/null +++ b/libcpp/po/ru.po @@ -0,0 +1,953 @@ +# translation of cpplib to Russian +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the gcc package. +# +# Yuri Kozlov , 2011. +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.6-b20101218\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2011-01-07 16:23+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: \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:1041 +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 " +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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "неправильная директива #%s" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "регистрируется прагма в пространстве имён «%s» с несовпадающим именным расширением" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "регистрируется прагма «%s» с именным расширением, но без пространства имён" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "регистрируется «%s» как прагма и как пространство имён для прагм" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s уже зарегистрирована" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s уже зарегистрирована" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "регистрируется прагма со значением обработчика равным NULL" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once в главном файле" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "неверная директива #pragma push_macro" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "неверная директива #pragma pop_macro" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "неверная директива #pragma GCC poison" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "отравление существующего макроса «%s»" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header игнорируется вне включаемого файла" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "не удалось найти исходный файл %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "текущий файл старее чем %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "для _Pragma требуется указать строковый литерал в скобках" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else без #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else после #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "условие начинается здесь" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif без #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif после #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif без #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "отсутствует «(» после предиката" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "отсутствует «)» для завершения ответа" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "ответ предиката пуст" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "утверждение без предиката" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "предикат должен быть идентификатором" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "повторное утверждение «%s»" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "незавершённая #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "слишком много десятичных точек в числе" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "константы с фиксированный точкой являются расширением GCC" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "неправильная цифра «%c» в двоичной константе" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "неправильная цифра «%c» в восьмеричной константе" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "неверный префикс «0b» в плавающей константе" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "отсутствуют цифры в шестнадцатеричной плавающей константе" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "использование шестнадцатеричной плавающей константы C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "в экспоненте нет цифр" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "в шестнадцатеричных плавающих константах должна быть экспонента" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "неверный суффикс «%.*s» в плавающей константе" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "в традиционном C отвергается суффикс «%.*s»" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "суффикс для констант типа double является расширением GCC" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "неверный суффикс «%.*s» в шестнадцатеричной плавающей константе" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "десятичные плавающие константы являются расширением GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "неверный суффикс «%.*s» в целочисленной константе" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "использование целочисленной константы C++0x long long" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "использование целочисленной константы C99 long long" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "мнимые константы являются расширением GCC" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "двоичные константы являются расширением GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "значение целочисленной константы слишком велико для своего типа" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "значение целочисленной константы так велико что стало беззнаковым" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "отсутствует «)» после «defined»" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "для оператора «defined» требуется идентификатор" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(«%s» является альтернативой токену «%s» в C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "такое использование «defined» может оказаться непереносимым" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "плавающая константа в препроцессорном выражении" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "мнимое число в препроцессорном выражении" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "«%s» не определена" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "утверждения являются расширением GCC" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "утверждения являются устаревшим расширением" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "отсутствует двоичный оператор перед токеном «%s»" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "токен «%s» не допустим в препроцессорных расширениях" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "отсутствует выражение между «(» и «)»" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s без выражения" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "оператор «%s» не имеет правого операнда" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "оператор «%s» не имеет левого операнда" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " «:» без начального «?»" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "несбалансированный стек в %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "невозможный оператор «%u»" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "отсутствующая «)» в выражении" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "«?» без последующего «:»" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "целочисленное переполнение в препроцессорном выражении" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "отсутствующая «(» в выражении" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "левый операнд «%s» изменяет знак при появлении" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "операнд операнд «%s» изменяет знак при появлении" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "в традиционном C отвергается оператор унарного сложения" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "оператор запятая в операнде #if" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Несколько защит подключения может быть полезно для:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t должна быть беззнакового типа" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "препроцессорная арифметика имеет максимальную точность равную %lu бит; для цели требуется %lu бит" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "точность арифметики CPP должна быть не менее значения int цели" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "ширина char у цели менее 8 бит" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "wchar_t цели уже чем char цели" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "int цели уже чем char цели" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "ширина половины integer CPP уже чем символ CPP" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "обратная косая черта и символ новой строки разделены пробелом" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "обратная косая черта/символ новой строки в конце файла" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "триграф ??%c преобразован в %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "триграф ??%c игнорируется, для включения используйте -trigraphs" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "«/*» внутри комментария" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s в препроцессорной директиве" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "игнорируется символ(ы) null" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "«%.*s» не является NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "«%.*s» не является NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "попытка использовать отравленный «%s»" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ может появляться только в расширении C99: вариативном макросе" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "идентификатор «%s» является именем специального оператора в C++" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "разделитель сырой строки больше 16 символов" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "неверный символ «%c» в разделителе сырой строки" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "незавершённая сырая строка" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "символ(ы) null сохраняются в литерале" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "отсутствует завершающий символ %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "комментарии в стиле C++ не разрешены в ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(об этом будет сообщено только один раз для каждого файла)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "многострочный комментарий" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "неразбираемый токен %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "макрос «%s» не используется" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "неверный встроенный макрос «%s»" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "не удалось определить временную метку файла" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "не удалось определить дату и время" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ раскрывается внутри директивы при указании параметра -fdirectives-only" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "неверный строковый литерал, игнорируется завершающий «\\»" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "вставка «%s» и «%s» не даёт правильного препроцессорного токена" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "согласно ISO C99 требуется использование остальных аргументов" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "для макроса «%s» требуется %u аргументов, но указано только %u" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "в макрос «%s» передано %u аргументов, но используется только %u" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "незавершённый список аргументов вызывает макрос «%s»" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "макрос «%s», похожий на функцию, должен использоваться с аргументами в традиционном C" + +#: macro.c:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "повторяющийся параметр макроса «%s»" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "«%s» может не появиться в списке параметров макроса" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "параметры макроса должны указываться через запятую" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "отсутствует имя параметра" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "анонимные вариатические макросы появились в C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "в ISO C не разрешены вариатические именованные макросы" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "отсутствует «)» в списке параметров макроса" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "«##» не может указываться в конце макрорасширения" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "в ISO C99 требуется пробельный символ после имени макроса" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "отсутствует пробельный символ после имени макроса" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "после «#» нет параметра макроса" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "«%s» переопределён" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "это расположение предыдущего определения" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "аргумент макроса «%s» был бы строкой, оформленной в традиционном стиле С" + +#: macro.c:2004 +#, 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:891 +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/libcpp/po/sv.gmo b/libcpp/po/sv.gmo new file mode 100644 index 000000000..5b7e06ba0 Binary files /dev/null and b/libcpp/po/sv.gmo differ diff --git a/libcpp/po/sv.po b/libcpp/po/sv.po new file mode 100644 index 000000000..31f0029f9 --- /dev/null +++ b/libcpp/po/sv.po @@ -0,0 +1,954 @@ +# This file is distributed under the same license as the gcc package. +# Swedish messages for cpplib. +# Copyright 2000, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# Dennis Bjrklund , 2000, 2001, 2002. +# Gran Uddeborg , 2005, 2006, 2007, 2008, 2009, 2010. +# +# Remember: GCC team does not want RCS keywords in the header! +# +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.6-b20101113\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-11-14 22:54+0100\n" +"Last-Translator: Gran Uddeborg \n" +"Language-Team: Swedish \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 frn %s till %s stds 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 frn %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 kllkodens grundteckenuppsttning\n" + +#: charset.c:798 charset.c:1444 +msgid "converting to execution character set" +msgstr "konverterar till teckenuppsttning fr krning" + +#: 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 teckenupsttning fr krning" + +#: 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 "ofullstndigt 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:1041 +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 brjan av en identifierare" + +#: charset.c:1102 charset.c:1674 +msgid "converting UCN to source character set" +msgstr "vid konvertering av UCN kllteckenuppsttning" + +#: charset.c:1106 +msgid "converting UCN to execution character set" +msgstr "vid konverting av UCN till teckenuppsttning fr krning" + +#: 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 anvnt utan ngra fljande hexadecimala siffror" + +#: charset.c:1202 +msgid "hex escape sequence out of range" +msgstr "hexadecimal specialsekvens utanfr intervallet" + +#: charset.c:1240 +msgid "octal escape sequence out of range" +msgstr "oktal specialsekvens utanfr 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 "oknd escape-sekvens: \"\\%c\"" + +#: charset.c:1329 +#, c-format +msgid "unknown escape sequence: '\\%s'" +msgstr "oknd escape-sekvens: \"\\%s\"" + +#: charset.c:1336 +msgid "converting escape sequence to execution character set" +msgstr "vid konvertering av specialsekvens till teckenuppsttning fr krning" + +#: charset.c:1509 charset.c:1573 +msgid "character constant too long for its type" +msgstr "teckenkonstant fr lng fr 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 avrdes ifrn" + +#: directives.c:374 +msgid "suggest not using #elif in traditional C" +msgstr "freslr att inte anvnda #elif i traditionell C" + +#: directives.c:377 +#, c-format +msgid "traditional C ignores #%s with the # indented" +msgstr "traditionell C ignorerar #%s dr tecknet # r indenterat" + +#: directives.c:381 +#, c-format +msgid "suggest hiding #%s from traditional C with an indented #" +msgstr "freslr att dlja #%s frn traditionell C med en indenterad #" + +#: directives.c:407 +msgid "embedding a directive within macro arguments is not portable" +msgstr "att bdda 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 anvndas 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 anvndas 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 mste 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 " +msgstr "#%s frvntar \"FILNAMN\" eller " + +#: 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 nstlad fr djupt" + +#: directives.c:822 +msgid "#include_next in primary source file" +msgstr "#include_next i primr kllkodsfil" + +#: 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 "ovntat 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 utanfr mjligt 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "ogiltigt #%s-direktiv" + +#: directives.c:1156 +#, 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:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "registrerar pragma \"%s\" med namnexpansion och utan namnrymd" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "registrerar \"%s\" bde som ett pragma och ett pragma namespace" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s r redan registrerat" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s r redan registrerat" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "registrerar pragma med NULL-hanterare" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once i huvudfil" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "ogiltigt direktiv #pragma push_macro" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "ogiltigt direktiv #pragma pop_macro" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "ogiltigt direktiv #pragma GCC poison" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "frgiftar existerande makro \"%s\"" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header ignorerat utanfr huvudfil" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "kan inte hitta kllfil %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "aktuell fil r ldre n %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma tar en strngkonstant inom parenteser" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else utan #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else efter #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "villkorssatsen brjade hr" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif utan #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif efter #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif utan #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "saknas '(' efter predikat" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "saknas ')' fr att avsluta svaret" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "predikatets svar r tomt" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "frskran utan predikat" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "predikat mste vara en identifierare" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" omfrskrat" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "oavslutad #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "fr mnga decimalpunker i tal" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "fastdecimalskonstanter r en GCC-utvidgning" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "ogiltig siffra \"%c\" i binr konstant" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "ogiltigt siffra \"%c\" i oktal konstant" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "ogiltigt prefix \"0b\" p flyttalskonstant" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "inga siffror i hexadecimal flyttalskonstant" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "anvndning av hexadecimal flyttalskonstant enligt C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "exponenten har inga siffror" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "hexadecimala flyttalskonstanter mste ha en exponent" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "ogiltigt suffix \"%.*s\" p flyttalskonstant" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "traditionell C tillter inte suffixet \"%.*s\"" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "suffix fr double-konstanter r en GCC-utvidgning" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "ogiltigt suffix \"%.*s\" p hexadecimal flyttalskonstant" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "decimala flyttalskonstanter r en GCC-utvidgning" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "ogiltig ndelse \"%.*s\" p heltalskonstant" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "anvndning av long long heltalskonstant enligt C++0x" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "anvndning av long long heltalskonstant enligt C99" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "imaginra konstanter r en GCC-utvidgning" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "binra konstanter r en GCC-utvidgning" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "heltalskonstant r fr stor fr sin typ" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "heltalskonstant r s stor att den r teckenls" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "saknar ')' efter \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "operatorn \"defined\" mste ha en identiferare" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(\"%s\" r en alternativ symbol fr \"%s\" i C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "denna anvndning av \"defined\" r kanske inte portabel" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "flyttalskonstant i preprocessoruttryck" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "imaginrt tal i preprocessoruttryck" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" r inte definierad" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "frskringar r en GCC-utvidgning" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "frskringar r en GCC-utvidgning som avrdes ifrn" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "saknad binr operator fre symbolen \"%s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "symbolen \"%s\" r inte ett giltigt preprocessoruttryck" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "saknat uttryck mellan \"(\" och \")\"" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s utan uttryck" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "operatorn \"%s\" har ingen hgra operand" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "operatorn \"%s\" har ingen vnstra operand" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "\":\" utan fregende \"?\"" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "obalanserad stack i %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "omjlig operator \"%u\"" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "saknad \")\" i uttryck" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "\"?\" utan fljande \":\"" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "heltalsspill i preprocessoruttryck" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "saknad \"(\" i uttryck" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "vnsteroperanden till \"%s\" byter tecken vid befodran" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "hgeroperanden till \"%s\" byter tecken vid befodran" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "traditionell C hanterar inte operatorn unrt plus" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "kommaoperator i operand till #if" + +#: expr.c:1739 +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 "anvnd -Winvalid-pch fr 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 fr stor" + +#: files.c:646 +#, c-format +msgid "%s is shorter than expected" +msgstr "%s r kortare n frvntat" + +#: files.c:881 +#, c-format +msgid "no include path in which to search for %s" +msgstr "ingen huvudfilsskvg att leta efter %s i" + +#: files.c:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Multipla inkluderingsvakter kan vara anvndbart fr:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t mste vare en teckenls typ" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "preprocessoraretmetik har en hgsta precision p %lu bitar; mlet krver %lu bitar" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "CPP-aritmetik mste vara tminstone s precis som mlets int" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "mlets char r mindre n 8 bitar bred" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "mlets wchar_t r smalare n mlets char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "mlets int r smalare n mlets char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP:s halva heltal r smalare n CPP:s tecken" + +#: init.c:520 +#, 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 vrd kan inte hantera breda teckenkonstanter ver %lu bitar, men mlet krver %lu bitar" + +#: lex.c:835 +msgid "backslash and newline separated by space" +msgstr "baktstreck och nyrad skiljda av mellanrum" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "baktstreck-nyrad vid filslut" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "trigraph ??%c konverterad till %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "trigraph ??%c ingorerad, anvnd -trigraphs fr att aktivera" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" i kommentar" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s i preprocessordirektiv" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "nolltecken ignorerat" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "\"%.*s\" r inte i NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "\"%.*s\" r inte i NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "frsk att anvnda frgiftad \"%s\"" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "identifieraren \"%s\" r ett speciellt operatornamn i C++" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "avgrnsare fr r strng lngre n 16 tecken" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "ogiltigt tecken \"%c\" i avgrnsare fr r strng" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "oavslutad r strng" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "nolltecken bevarade i konstant" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "avslutande %c-tecken saknas" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++ kommentarer tillts inte i ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(detta rapporteras bara en gng per infil)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "flerradskommentar" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "ostavbar symbol %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "makrot \"%s\" r inte anvnt" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "ogiltigt inbyggt makro \"%s\"" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "det gick inte att avgra fils tidsstmpel" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "det gick inte att avgra datum och tid" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ expanderad inuti direktiv med -fdirectives-only" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "ogiltig strngkonstant, inorerar avslutande \"\\\"" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "att stta ihop \"%s\" och \"%s\" ger inte en giltigt preprocessorsymbol" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 krver att restargument anvnds" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "makrot \"%s\" krver %u argument, men endast %u anges" + +#: macro.c:575 +#, 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:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "oavslutad argumentlista vid anrop av makrot \"%s\"" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "funktionsliknande makrot \"%s\" mste anvndas med ett argument i traditionell C" + +#: macro.c:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "dubblerad makroparameter \"%s\"" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" fr inte frekomma i en makroparameterlista" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "makroparametrar mste avdelas av komman" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "parameternamn saknas" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "anonyma variabla makron introducerades i C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C tillter inte namngivna variabla makron" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "saknad \")\" i makroparameterlista" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "\"##\" kan inte frekomma vid ngon av ndarna av makroexpansionen" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 krver mellanrum efter makronamnet" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "mellanrum saknas efter makronamn" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "\"#\" fljs inte av en makroparameter" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" omdefinierad" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "detta r platsen fr den tidigare definitionen" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "makroargumentet \"%s\" skulle bli gjort till strng i traditionell C" + +#: macro.c:2004 +#, 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 frkompilerat huvud" + +#: pch.c:608 +#, c-format +msgid "%s: not used because `%.*s' is poisoned" +msgstr "%s: inte anvnd fr att \"%.*s\" r frgiftad" + +#: pch.c:630 +#, c-format +msgid "%s: not used because `%.*s' not defined" +msgstr "%s: inte anvnd fr att \"%.*s\" inte r definierad" + +#: pch.c:642 +#, c-format +msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" +msgstr "%s: anvnds inte fr att \"%.*s\" definieras som \"%s\" inte \"%.*s\"" + +#: pch.c:683 +#, c-format +msgid "%s: not used because `%s' is defined" +msgstr "%s: inte anvnd fr att \"%s\" r definierad" + +#: pch.c:703 +#, c-format +msgid "%s: not used because `__COUNTER__' is invalid" +msgstr "%s: inte anvnd fr att \"__COUNTER__\" r ogiltig" + +#: pch.c:712 pch.c:891 +msgid "while reading precompiled header" +msgstr "vid lsning av frkompilerat huvud" + +#: traditional.c:751 +#, c-format +msgid "detected recursion whilst expanding macro \"%s\"" +msgstr "upptckte rekursion vid under expansion av makrot \"%s\"" + +#: traditional.c:969 +msgid "syntax error in macro parameter list" +msgstr "syntaxfel i makroparameterlista" diff --git a/libcpp/po/tr.gmo b/libcpp/po/tr.gmo new file mode 100644 index 000000000..45432baad Binary files /dev/null and b/libcpp/po/tr.gmo differ diff --git a/libcpp/po/tr.po b/libcpp/po/tr.po new file mode 100644 index 000000000..f5eb478be --- /dev/null +++ b/libcpp/po/tr.po @@ -0,0 +1,1006 @@ +# Turkish translations for cpplib messages. +# Copyright (C) 2007 Free Software Foundation, Inc. +# +# Nilgün Belma Bugüner , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2007-05-23 01:17+0300\n" +"Last-Translator: Nilgün Belma Bugüner \n" +"Language-Team: Turkish \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:1041 +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 " +msgstr "#%s \"DOSYA\" ya da 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "#%s yönergesi geçersiz" + +#: directives.c:1156 +#, 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:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s zaten kayıtlı" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s zaten kayıtlı" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "pragma NULL eylemci ile kaydediliyor" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "main dosyasında '#pragma once'" + +#: directives.c:1454 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma push_macro directive" +msgstr "geçersiz #pragma GCC poison yönergesi" + +#: directives.c:1509 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma pop_macro directive" +msgstr "geçersiz #pragma GCC poison yönergesi" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "geçersiz #pragma GCC poison yönergesi" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "zehirlenen mevcut makro \"%s\"" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "başlık dosyasının dışındaki '#pragma system_header' yoksayıldı" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "%s kaynak dosyası bulunamıyor" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "mevcut dosya %s den daha eski" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma bir parantezli dizge sabiti alır" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#if siz #else" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else den sonra #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "koşul başlangıcı burası" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#if siz #elif " + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#else den sonra #elif" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#if siz #endif" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "dayanaktan sonra '(' eksik" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "yanıtı tamamlayacak ')' eksik" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "dayanakların cevabı boş" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "dayanaksız olumlama" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "dayanak bir tanımlayıcı olmalı" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" tekrar olumlanmış" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "sonlandırılmamış #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "sayı içindeki ondalık nokta sayısı çok fazla" + +#: expr.c:311 expr.c:396 +#, 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:324 +#, 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:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "sekizlik sabit içindeki \"%c\" geçersiz" + +#: expr.c:334 +#, 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:339 +#, 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:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "C99 onaltılık gerçel sayı sabit kullanımı" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "üs rakam içermiyor" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "onaltılık gerçel sabitler bir üs gerektirir" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "gerçel sabitin \"%.*s\" soneki geçersiz" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "geleneksel C \"%.*s\" sonekini kullanmaz" + +#: expr.c:383 +#, 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:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz" + +#: expr.c:400 +#, 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:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz" + +#: expr.c:433 +#, 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:434 +msgid "use of C99 long long integer constant" +msgstr "ISO C99 long long tamsayı sabitleri yasaklar" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "sanal sabitler bir GCC genişletmesidir" + +#: expr.c:451 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "binary constants are a GCC extension" +msgstr "sanal sabitler bir GCC genişletmesidir" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "tamsayı sabit, türü için oldukça büyük" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "tamsayı sabit unsigned olarak oldukça büyük" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "\"defined\" dan sonra ')' eksik" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "\"defined\" işleci bir tanımlayıcı gerektirir" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(C++'da \"%s\" \"%s\" için bir alternatif dizgeciktir)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "önişlemci ifadesinde gerçel sayı taşması" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "önişlemci ifadesinde sanal sayı" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" tanımlı değil" + +#: expr.c:821 +#, fuzzy +#| msgid "#%s is a GCC extension" +msgid "assertions are a GCC extension" +msgstr "#%s bir GCC uzantısıdır" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "\"%s\" dizgeciğinden önceki iki terimli işleç eksik" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "\"%s\" dizgeciği önişlemci ifadelerinde geçersizdir" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "'(' ve ')' arasında ifade eksik" + +#: expr.c:997 +#, fuzzy, c-format +#| msgid "#if with no expression" +msgid "%s with no expression" +msgstr "#if ifadesiz" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "`%s' işlecinin sağ tarafı yok" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "`%s' işlecinin sol terimi yok" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "':' den önce '?' yok" + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced stack in #if" +msgid "unbalanced stack in %s" +msgstr "#if ifadesinde karşılıksız yığın" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "işleç '%u' imkansız" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "ifadede ')' eksik" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' dan sonra ':' yok" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "önişlemci ifadesinde tamsayı taşması" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "ifadede '(' eksik" + +#: expr.c:1256 +#, 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:1261 +#, 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:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "geleneksel C tekil artı işlecini dışlar" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "#if'in teriminde virgül" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t bir usigned tür olmalı" + +#: init.c:493 +#, 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:500 +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:503 +msgid "target char is less than 8 bits wide" +msgstr "hedef char 8bitlik genişlikten küçük" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "hedef wchar_t hedef char'dan daha dar" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "hedef int hedef char'dan daha dar" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP half-integer'ı CPP character'dan daha dar" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "ters bölü ve satırsonu arasında boşluk var" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "dosyanın sonunda tersbölülü satırsonu" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "??%c üçlü harfi %c olarak dönüştürüldü" + +#: lex.c:864 +#, 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:913 +msgid "\"/*\" within comment" +msgstr "açıklama içinde \"/*\" bulundu" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "önişlem yönergesi içinde %s" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "null karakter(ler) yoksayıldı" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "`%.*s' NFKC'de yok" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "`%.*s' NFC'de yok" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "zehirli \"%s\" kullanılmaya çalışılıyor" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, 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:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated #%s" +msgid "unterminated raw string" +msgstr "sonlandırılmamış #%s" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "null karakter(ler) sabit içinde saklanmış" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "sonlandıran %c karakteri eksik" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++ tarzı açıklamalara ISO C90'da izin verilmez" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(her girdi dosyasında sadece bir kere raporlanacaktır)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "çok satırlı açıklama" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "dizgecik %s okunabilir değil" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "\"%s\" makrosu kullanılmadı" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "geçersiz yerleşik makro \"%s\"" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "dosya tarih damgası saptanamadı" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "tarih ve saat saptanamadı" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "geçersiz dizge sabit, son '\\' yoksayılıyor" + +#: macro.c:490 +#, 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:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C kalan argümanların kullanılmış olmasını gerektirir" + +#: macro.c:570 +#, 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:575 +#, 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:734 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:866 +#, 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:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "yinelenmiş makro parametresi \"%s\"" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" makro parametre listesinde görünmeyebilir" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "makro parametreleri virgüllerle ayrılmış olmalı" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "parametre ismi eksik" + +#: macro.c:1596 +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:1601 +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:1610 +msgid "missing ')' in macro parameter list" +msgstr "makro parametre listesinde ')' eksik" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' bir makronun her iki ucunda da görünemez" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 makro isminden sonra boşluk gerektirir" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "makro isminden sonra boşluk gerekir" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' işaretinden sonra bir makro parametresi yok" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "\"%s\" yeniden tanımlanmış" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "burası evvelki tanımın yapıldığı yer" + +#: macro.c:1977 +#, 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:2004 +#, 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:891 +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/libcpp/po/uk.gmo b/libcpp/po/uk.gmo new file mode 100644 index 000000000..59771e3ce Binary files /dev/null and b/libcpp/po/uk.gmo differ diff --git a/libcpp/po/uk.po b/libcpp/po/uk.po new file mode 100644 index 000000000..8977e324d --- /dev/null +++ b/libcpp/po/uk.po @@ -0,0 +1,1003 @@ +# Ukrainian translation of cpplib. +# Copyright (C) 2007 Free Software Foundation, Inc. +# Maxim V. Dziumanenko , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.2.1\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2007-08-17 11:23+0300\n" +"Last-Translator: Maxim V. Dziumanenko \n" +"Language-Team: Ukrainian \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" + +#: 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:1041 +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 +#, fuzzy, c-format +#| msgid "unknown escape sequence '\\%c'" +msgid "unknown escape sequence: '\\%c'" +msgstr "Невідома escape-послідовність '\\%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 +#, 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 "рекомендується не використовувати #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 " +msgstr "#%s очікує \"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 "" + +#: 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "некоректна директива #%s" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "прагми реєструються у просторі назв \"%s\" за відсутності розширення назв" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "прагма \"%s\" реєструється з розширенням назви але без простору назви" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "\"%s\" реєструється як прагма та як прострі назв прагм" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s вже зареєстровано" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s вже зареєстровано" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "реєструється pragma з NULL-обробником" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma один раз у головному файлі" + +#: directives.c:1454 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma push_macro directive" +msgstr "некоректна #pragma GCC poison директива" + +#: directives.c:1509 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma pop_macro directive" +msgstr "некоректна #pragma GCC poison директива" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "некоректна #pragma GCC poison директива" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "poisoning існуючих макросів \"%s\"" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header проігноровано за межами включеного файлу" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "не вдається знайти первинний файл %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "поточний файл старіший ніж %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma охоплює дужками символьний літерал" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else без #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else після #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "умова починається тут" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif без #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif після #else" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif беp #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "відсутня '(' після предикату" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "відсутня ')' для завершення відповіді" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "відповідь предиката порожня" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "твердження без предикату" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "предикат має бути ідентифікатором" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "\"%s\" повторне ствердження" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "незавершене #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "надто багато десяткових точок у числі" + +#: expr.c:311 expr.c:396 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "fixed-point constants are a GCC extension" +msgstr "уявні константи є розширенням GCC" + +#: expr.c:324 +#, fuzzy, c-format +#| msgid "invalid digit \"%c\" in octal constant" +msgid "invalid digit \"%c\" in binary constant" +msgstr "некоректна цифра \"%c\" у вісімковій константі" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "некоректна цифра \"%c\" у вісімковій константі" + +#: expr.c:334 +#, fuzzy +#| msgid "invalid suffix \"%.*s\" on floating constant" +msgid "invalid prefix \"0b\" for floating constant" +msgstr "некоректний суфікс \"%.*s\" у константі з плаваючою комою" + +#: expr.c:339 +#, fuzzy +#| msgid "use of C99 hexadecimal floating constant" +msgid "no digits in hexadecimal floating constant" +msgstr "використовуйте десятково-шістнадцяткову константу з плаваючою комою мови C99" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "використовуйте десятково-шістнадцяткову константу з плаваючою комою мови C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "експонента не має цифр" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "для десятково-шістнадцяткової константи з плаваючою комою потрібна експонента" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "некоректний суфікс \"%.*s\" у константі з плаваючою комою" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "традиційною мовою C не сприймається суфікс \"%.*s\"" + +#: expr.c:383 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "suffix for double constant is a GCC extension" +msgstr "уявні константи є розширенням GCC" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "некоректний суфікс \"%.*s\" з десятково-шістнадцятковою константою з плаваючою комою" + +#: expr.c:400 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "decimal float constants are a GCC extension" +msgstr "уявні константи є розширенням GCC" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "некоректний суфікс \"%.*s\" у цілій константі" + +#: expr.c:433 +#, fuzzy +#| msgid "use of C99 long long integer constant" +msgid "use of C++0x long long integer constant" +msgstr "використовуйте цілу константу long long з C99" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "використовуйте цілу константу long long з C99" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "уявні константи є розширенням GCC" + +#: expr.c:451 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "binary constants are a GCC extension" +msgstr "уявні константи є розширенням GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "ціла константа надто велика для вказаного типу" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "ціла константа така велика, що вона не матиме знаку" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "відсутня ')' після \"defined\"" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "для оператора \"defined\" потрібен ідентифікатор" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(\"%s\" - альтернативна лексема для \"%s\" у C++)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "використання \"defined\" може бути непереносимим" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "константа з плаваючою комою у виразі препроцесора" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "уявне число у виразі препроцесора" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "\"%s\" не визначено" + +#: expr.c:821 +#, fuzzy +#| msgid "#%s is a GCC extension" +msgid "assertions are a GCC extension" +msgstr "#%s є розширенням GCC" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "відсутній двійковий оператор перед лексемою \"%s\"" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "лексема \"%s\" не є допустимим у виразі препроцесора" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "відсутній вираз між '(' та ')'" + +#: expr.c:997 +#, fuzzy, c-format +#| msgid "#if with no expression" +msgid "%s with no expression" +msgstr "відсутній вираз після #if" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "оператор '%s' не містить коректного операнду" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "оператор '%s' не містить лівого операнду" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr " ':' без подовження '?'" + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced stack in #if" +msgid "unbalanced stack in %s" +msgstr "незбалансований стек у #if" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "неможливий оператор '%u'" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "відсутня ')' у виразі" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "'?' без наступного ':'" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "переповнення цілого числа у виразі препроцесора" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "відсутня '(' у виразі" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "лівий операнд \"%s\" змінює знак при підвищенні" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "правий оператор \"%s\" змінює знак при підвищенні" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "у традиційній мові C не допускається унарний оператор плюс" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "оператор кома у операнді #if" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "Декілька include guards можуть бути корисні для:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t має бути беззнакового типу" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "арифметика препроцесора має максимальну точність %lu біт; ціль вимагає %lu біт" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "арифметика CPP повинна мати принаймні таку ж точність я у цільового цілого числа" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "ширина цільового типу char менша за 8 біт" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "цільовий wchar_t є вужчим за цільовий char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "цільовий тип int є вужчим ніж цільовий char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP half-integer є вужчим за CPP character" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "зворотна коса риска та символ нового рядка відділяються пробілом" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "зворотна коса риска та символ нового рядка наприкінці файлу" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "тристоронній ??%c перетворено на %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "тристоронній ??%c проігноровано, використовуйте -trigraphs, щоб увімкнути" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "\"/*\" всередині коментаря" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "%s в директиві препроцесора" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "null-символи проігноровані" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "`%.*s' не у NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "`%.*s' не у NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "спроба використати poisoned \"%s\"" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ може з'являтися лише у розширенні макросу variadic з мови C99" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, 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:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated #%s" +msgid "unterminated raw string" +msgstr "незавершене #%s" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "null-символи збережені буквально" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "відсутній завершальний символ %c" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "Коментарі у стилі C++ неприпустимі згідно ISO C90" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(повідомлення про це з'явиться лише один для вхідного файлу)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "багаторядковий коментар" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "неможливо розібрати лексему %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "макрос \"%s\" не використовується" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "некоректний вбудований макрос \"%s\"" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "не вдається визначити часову мітку файлу" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "не вдається визначити дату та час" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "некоректний символьний літерал, ігнорується завершальний символ '\\'" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "вставка \"%s\" та \"%s\" не призводить до коректної лексеми препроцесора" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 вимагає, щоб використовувались решта аргументів" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "для макросу \"%s\" потрібно вказати %u аргументів, але вказано лише %u" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "макросу \"%s\" передано %u аргументів, але з них використано лише %u" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "незавершений список аргументів у виклику макросу \"%s\"" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "подібний до функції макрос \"%s\" має використовуватися з аргументами у традиційній мові C" + +#: macro.c:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "дублікат параметра макросу \"%s\"" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "\"%s\" не може з'являтися у списку параметрів макросу" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "параметри макросу мають бути розділені комами" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "відсутня назва параметра" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "анонімні макроси variadic започатковані у C99" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C не припускає іменовані макроси variadic" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "відсутня ')' у списку параметрів макросу" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "'##' не може з'являтися з обох кінців макро-розширення" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "у ISO C99 має бути пробіл після назви маросу" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "відсутні пробіл після назви макросу" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "'#' не супроводжується параметром макросу" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "повторне визначення \"%s\"" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "...це місце першого визначення" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "аргумент макросу \"%s\" був би перетворений на рядок у традиційній мові C" + +#: macro.c:2004 +#, 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 +#, 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:891 +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/libcpp/po/vi.gmo b/libcpp/po/vi.gmo new file mode 100644 index 000000000..8bbd572a5 Binary files /dev/null and b/libcpp/po/vi.gmo differ diff --git a/libcpp/po/vi.po b/libcpp/po/vi.po new file mode 100644 index 000000000..4fa87cd19 --- /dev/null +++ b/libcpp/po/vi.po @@ -0,0 +1,954 @@ +# Vietnamese translation for CPPlib. +# Copyright © 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the gcc package. +# Clytie Siddall , 2005-2010. +msgid "" +msgstr "" +"Project-Id-Version: cpplib 4.5.0\n" +"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +"POT-Creation-Date: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2010-04-16 21:28+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \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" + +#: 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 "chưa thi hành iconv 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:1041 +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 ISO chuẩn: « \\%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 » (đã xác định) 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 xác định « %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 " +msgstr "#%s ngờ \"TÊN_TẬP_TIN\" hoặc " + +#: 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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "chỉ thị #%s không hợp lệ" + +#: directives.c:1156 +#, 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:1165 +#, 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:1183 +#, 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:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "« #pragma %s %s » đã được đăng ký" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "« #pragma %s » đã được đăng ký" + +#: directives.c:1219 +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:1431 +msgid "#pragma once in main file" +msgstr "Có « #pragma » một lần trong tập tin chính" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "gặp chỉ thị #pragma push_macro sai" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "gặp chỉ thị #pragma pop_macro sai" + +#: directives.c:1564 +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:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "đang vô hiệu hóa vĩ lệnh tồn tại « %s »" + +#: directives.c:1592 +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:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "không tìm thấy tập tin nguồn %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "tập tin hiện thời là cũ hơn %s" + +#: directives.c:1806 +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:1927 +msgid "#else without #if" +msgstr "#else (nếu không) không có #if (nếu)" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else (nếu không) nằm sau #else" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "bộ điều kiện đã bắt đầu ở đây" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif (nếu không thì nếu) không có #if (nếu)" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif (nếu không thì nếu) nằm sau #else (nếu không)" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif (thôi nếu) không có #if (nếu)" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "thiếu « ( » nằm sau vị ngữ" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "thiếu « ) » để xong trả lời" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "vị ngữ chứa trả lời trống" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "sự khẳng định không có vị ngữ" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "vị ngữ phải là bộ nhận diện" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "« %s » được khẳng định lại" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "#%s chưa chấm dứt" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "con số chứa quá nhiều dấu thập phân" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "hằng định điểm là phần mở rộng GCC" + +#: expr.c:324 +#, 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:326 +#, 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:334 +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:339 +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:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "dùng hằng trôi nổi thập lục C99" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "số mũ không co chữ số nào" + +#: expr.c:359 +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:365 +#, 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:375 expr.c:425 +#, 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:383 +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:389 +#, 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:400 +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:410 +#, 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:433 +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:434 +#, fuzzy +#| msgid "use of C++0x long long integer constant" +msgid "use of C99 long long integer constant" +msgstr "dùng hằng số nguyên dài dài C++0x" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "hằng ảo là phần mở rộng GCC" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "hằng nhị phân là phần mở rộng GCC" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "hằng số nguyên quá lớn cho kiểu nó" + +#: expr.c:575 +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:670 +msgid "missing ')' after \"defined\"" +msgstr "thiếu « ) » nằm sau « defined » (đã xác định)" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "toán tử « defined » (đã xác định) cần đến bộ nhận diện" + +#: expr.c:685 +#, 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:695 +msgid "this use of \"defined\" may not be portable" +msgstr "khả năng dùng « defined » (đã xác định) có lẽ không thể mạng theo" + +#: expr.c:756 +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:762 +msgid "imaginary number in preprocessor expression" +msgstr "gặp số ảo nằm trong biểu thức tiền xử lý" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "chưa xác định « %s »" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "khẳng định là một phần mở rộng GCC" + +#: expr.c:824 +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:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "thiếu toán từ nhị phân nằm trước hiệu bài « %s »" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "hiệu bài « %s » không hợp lệ trong biểu thức tiền xử lý" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "thiếu biểu thức nằm giữa « ( » và « ) »" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s không có biểu thức" + +#: expr.c:1000 +#, 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:1005 +#, 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:1031 +msgid " ':' without preceding '?'" +msgstr " Dấu hai chấm « : » không có dấu hỏi « ? » đi trước" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "có đống không cân bằng trong %s" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "toán từ không thể « %u »" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "thiếu « ) » nằm trong biểu thức" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "Dấu hỏi « ? » không có dấu hai chấm « : » đi sau" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "tràn số nguyên trong biểu thức tiền xử lý" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "thiếu « ( » nằm trong biểu thức" + +#: expr.c:1256 +#, 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:1261 +#, 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:1520 +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:1603 +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:1739 +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:1307 +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:489 +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:493 +#, 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:500 +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:503 +msgid "target char is less than 8 bits wide" +msgstr "« char » đích có độ rộng ít hơn 8 bit" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "« wchar_t » đích có độ rộng ít hơn « char » đích" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "« int » đích có độ rộng ít hơn « char » đích" + +#: init.c:516 +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:520 +#, 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:835 +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:840 +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:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "chữ ba « ??%c » đã được chuyển đổi thành « %c »" + +#: lex.c:864 +#, 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:913 +msgid "\"/*\" within comment" +msgstr "gặp « /* » nằm trong chú thích" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "gặp %s nằm trong chỉ thị tiền xử lý" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "(mọi) ký tự rỗng bị bỏ qua" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "« %.*s » không phải nằm trong NFKC" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "« %.*s » không phải nằm trong NFC" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "đã cố gắng dùng « %s » bị vô hiệu hóa" + +#: lex.c:1096 lex.c:1173 +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:1102 lex.c:1179 +#, 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:1324 +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:1327 +#, 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:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "chuỗi thô chưa chấm dứt" + +#: lex.c:1487 lex.c:1586 +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:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "thiếu ký tự « %c » chấm dứt" + +#: lex.c:2088 +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:2090 +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:2095 +msgid "multi-line comment" +msgstr "gặp chú thích đa dòng" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "gặp hiệu bài không thể chính tả %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "bộ đối số « %s » không được dùng" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "vĩ lệnh có sẳn không hợp lệ « %s »" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "không thể quyết định nhãn giờ của tập tin" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "không thể quyết định ngày và giờ" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "__COUNTER__ đã mở rộng bên trong chỉ thị với « -fdirectives-only »" + +#: macro.c:430 +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:490 +#, 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 hiệu bài tiền xử lý hợp lệ" + +#: macro.c:565 +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:570 +#, 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:575 +#, 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:734 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:866 +#, 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:1040 +#, 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 xác định tùy theo tiêu chuẩn ISO C90 và ISO C++98 " + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "tham số vĩ lệnh trùng « %s »" + +#: macro.c:1553 +#, 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:1561 +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:1578 +msgid "parameter name missing" +msgstr "thiếu tên tham số" + +#: macro.c:1596 +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:1601 +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:1610 +msgid "missing ')' in macro parameter list" +msgstr "thiếu « ) » trong danh sách tham số bộ đối số" + +#: macro.c:1659 +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:1694 +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:1718 +msgid "missing whitespace after the macro name" +msgstr "thiếu khoảng trắng nằm sau tên vĩ lệnh" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "« # » không có tham số vĩ lệnh đi theo" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "« %s » đã được xác định lại" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "đây là vị trí của lời xác định trước" + +#: macro.c:1977 +#, 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:2004 +#, 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 xác định 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 xác định « %.*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 xác định 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 xác định" + +#: 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:891 +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/libcpp/po/zh_CN.gmo b/libcpp/po/zh_CN.gmo new file mode 100644 index 000000000..02882064c Binary files /dev/null and b/libcpp/po/zh_CN.gmo differ diff --git a/libcpp/po/zh_CN.po b/libcpp/po/zh_CN.po new file mode 100644 index 000000000..c2d44c7f1 --- /dev/null +++ b/libcpp/po/zh_CN.po @@ -0,0 +1,975 @@ +# 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 , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2011-05-12 17:23+0800\n" +"Last-Translator: Meng Jie \n" +"Language-Team: Chinese (simplified) \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:1041 +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 " +msgstr "#%s 需要 \"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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "%s" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "无效的 #%s 指示" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "在命名空间“%s”中注册 pragma 时名称扩展不匹配" + +#: directives.c:1165 +#, c-format +msgid "registering pragma \"%s\" with name expansion and no namespace" +msgstr "pragma “%s”被注册为一个命名扩展,而没有命名空间" + +#: directives.c:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "“%s”既被注册为一个pragma 又被注册为一个 pragma 命名空间" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s 已经被注册" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s 已经被注册" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "pragma 注册为被 NULL 处理" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once 出现在主文件中" + +#: directives.c:1454 +msgid "invalid #pragma push_macro directive" +msgstr "无效的 #pragma push_macro 指示" + +#: directives.c:1509 +msgid "invalid #pragma pop_macro directive" +msgstr "无效的 #pragma pop_macro 指示" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "无效的 #pragma GCC poison 指示" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "对已存在的宏“%s”投毒" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_heade 在包含文件外被忽略" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "找不到源文件 %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "当前文件早于 %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma 需要一个括起的字符串字面常量" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else 没有匹配的 #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else 出现在 #else 后" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "条件自此开始" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif 没有匹配的 #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif 出现在 #else 后" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif 没有匹配的 #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "谓词后缺少‘(’" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "完整的答案缺少‘)’" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "谓词的答案为空" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "断言后没有谓词" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "谓词必须是一个标识符" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "重断言“%s”" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "未终止的 #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "数字中有太多小数点" + +#: expr.c:311 expr.c:396 +msgid "fixed-point constants are a GCC extension" +msgstr "定点常量是一个 GCC 扩展" + +#: expr.c:324 +#, c-format +msgid "invalid digit \"%c\" in binary constant" +msgstr "二进制常量中有无效数字“%c”" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "8 进制常量中有非法字符“%c”" + +#: expr.c:334 +msgid "invalid prefix \"0b\" for floating constant" +msgstr "浮点常量的“0b”前缀无效" + +#: expr.c:339 +msgid "no digits in hexadecimal floating constant" +msgstr "16 进制浮点常量中没有数字" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "使用 C99 式的 16 进制浮点常量" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "指数部分没有数字" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "16 进制浮点常量需要指数部分" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "浮点常量的“%.*s”后缀无效" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "传统 C 不接受“%.*s”后缀" + +#: expr.c:383 +msgid "suffix for double constant is a GCC extension" +msgstr "双精度常量后缀是一个 GCC 扩展" + +#: expr.c:389 +#, c-format +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "十六进制浮点常量的“%.*s”后缀无效" + +#: expr.c:400 +msgid "decimal float constants are a GCC extension" +msgstr "十进制浮点常量是一个 GCC 扩展" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "整数常量的“%.*s”后缀无效" + +#: expr.c:433 +msgid "use of C++0x long long integer constant" +msgstr "使用 C++0x long long 整数常量" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "使用 C99 long long 整数常量" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "虚数常量是一个 GCC 扩展" + +#: expr.c:451 +msgid "binary constants are a GCC extension" +msgstr "二进制常量是一个 GCC 扩展" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "整数常量值超出其类型" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "整数常量太大,认定为 unsigned" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "“defined” 后出现‘)’" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "操作符“defined”需要一个标识符" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(在 C++ 中“%s”会是“%s”的替代标识符)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "使用“defined”可能不利于移植" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "浮点常量出现在预处理表达式中" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "预处理表达式中出现虚数" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "“%s”未定义" + +#: expr.c:821 +msgid "assertions are a GCC extension" +msgstr "断言是一个 GCC 扩展" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "断言是一个已过时的 GCC 扩展" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "标识符“%s”前缺少二元运算符" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "标识符“%s”在预处理表达式中无效" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "‘(’与‘)’之间缺少表达式" + +#: expr.c:997 +#, c-format +msgid "%s with no expression" +msgstr "%s 后没有表达式" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "操作符‘%s’没有右操作数" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "操作符‘%s’没有左操作数" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "‘:’前没有‘?’" + +#: expr.c:1059 +#, c-format +msgid "unbalanced stack in %s" +msgstr "%s 中堆栈不平衡" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "不可能的操作‘%u’" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "表达式中缺少‘)’" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "‘?’后没有‘:’" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "预处理表达式中整数溢出" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "表达式中缺少‘(’" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "“%s”的左操作数在提升时变换了符号" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "“%s”的右操作数在提升时变换了符号" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "传统 C 不接受单目 + 运算符" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "#if 操作数中出现逗号" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "多个防止重包含可能对其有用:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t 必须是无符号型" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "预处理算术的最高精度为 %lu 位;目标需要 %lu 位" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "CPP 算术必须至少具有目标 int 的精度" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "目标 char 短于 8 位" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "目录 wchar_t 短于目标 char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "目标 int 短于目标 char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP 半整数短于 CPP 字符" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "反斜杠和换行为空格所分隔" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "反斜杠续行出现在文件末尾" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "三元符 ??%c 转换为 %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "三元符 ??%c 被忽略,请使用 -trigraphs 来启用" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "“/*”出现在注释中" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "预处理指示中出现 %s" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "忽略空字符" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "‘%.*s’不在 NFKC 中" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "‘%.*s’不在 NFC 中" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "试图使用有毒的“%s”" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ 只能出现在 C99 可变参数宏的展开中" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "标识符“%s”是 C++ 中的一个特殊操作符" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "原始字符串分隔符长过 16 个字符" + +#: lex.c:1327 +#, c-format +msgid "invalid character '%c' in raw string delimiter" +msgstr "原始字符串分隔符中有无效字符‘%c’" + +#: lex.c:1450 lex.c:1472 +msgid "unterminated raw string" +msgstr "未终止的原始字符串" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "空字符将保留在字面字符串中" + +#: lex.c:1589 +#, c-format +msgid "missing terminating %c character" +msgstr "缺少结尾的 %c 字符" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++ 风格的注释在 ISO C90 中不被允许" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(此警告为每个输入文件只报告一次)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "多行注释" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "无法拼出的标识符 %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "宏“%s”未被使用" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "无效的内建宏“%s”" + +#: macro.c:160 +msgid "could not determine file timestamp" +msgstr "无法决定文件的时间戳" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "无法决定日期与时间" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "带 -fdirectives-only 时 __COUNTER__ 在指示中扩展" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "无效的字面字符串,忽略最后的‘\\’" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "毗连“%s”和“%s”不能给出一个有效的预处理标识符" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 需要使用剩余的参数" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "宏“%s”需要 %u 个参数,但只给出了 %u 个" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "宏“%s”传递了 %u 个参数,但只需要 %u 个" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "调用宏“%s”时参数列表未终止" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "类似函数的宏“%s”在传统 C 中必须与参数一起使用" + +#: macro.c:1040 +#, 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:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "重复的宏参数“%s”" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "“%s”不能出现在宏参数列表中" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "宏参数必须由逗号隔开" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "缺少形参名" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "匿名可变参数宏在 C99 中被引入" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C 不允许有名的可变参数宏" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "在宏参数表中缺少‘)’" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "‘##’不能出现在宏展开的两端" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 要求宏名后必须有空白" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "宏名后缺少空白" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "‘#’后没有宏参数" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "“%s”重定义" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "这是先前定义的位置" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "宏参数“%s”将在传统 C 中被字符串化" + +#: macro.c:2004 +#, 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:891 +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/libcpp/po/zh_TW.gmo b/libcpp/po/zh_TW.gmo new file mode 100644 index 000000000..edbaf6b95 Binary files /dev/null and b/libcpp/po/zh_TW.gmo differ diff --git a/libcpp/po/zh_TW.po b/libcpp/po/zh_TW.po new file mode 100644 index 000000000..66ad309e3 --- /dev/null +++ b/libcpp/po/zh_TW.po @@ -0,0 +1,1010 @@ +# 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 , 2005. +# Wei-Lun Chao , 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: 2011-06-21 10:26+0000\n" +"PO-Revision-Date: 2006-03-09 12:37+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \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:1041 +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 " +msgstr "#%s 需要 \"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:1065 directives.c:1067 directives.c:1069 +#, c-format +msgid "%s" +msgstr "" + +#: directives.c:1093 +#, c-format +msgid "invalid #%s directive" +msgstr "無效的 #%s 指令" + +#: directives.c:1156 +#, c-format +msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" +msgstr "" + +#: directives.c:1165 +#, 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:1183 +#, c-format +msgid "registering \"%s\" as both a pragma and a pragma namespace" +msgstr "「%s」既被註冊為一個 pragma 又被註冊為一個 pragma 命名空間" + +#: directives.c:1186 +#, c-format +msgid "#pragma %s %s is already registered" +msgstr "#pragma %s %s 已經被註冊" + +#: directives.c:1189 +#, c-format +msgid "#pragma %s is already registered" +msgstr "#pragma %s 已經被註冊" + +#: directives.c:1219 +msgid "registering pragma with NULL handler" +msgstr "" + +#: directives.c:1431 +msgid "#pragma once in main file" +msgstr "#pragma once 出現在主檔案中" + +#: directives.c:1454 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma push_macro directive" +msgstr "無效的 #pragma GCC poison 指令" + +#: directives.c:1509 +#, fuzzy +#| msgid "invalid #pragma GCC poison directive" +msgid "invalid #pragma pop_macro directive" +msgstr "無效的 #pragma GCC poison 指令" + +#: directives.c:1564 +msgid "invalid #pragma GCC poison directive" +msgstr "無效的 #pragma GCC poison 指令" + +#: directives.c:1573 +#, c-format +msgid "poisoning existing macro \"%s\"" +msgstr "對已存在的巨集「%s」加料" + +#: directives.c:1592 +msgid "#pragma system_header ignored outside include file" +msgstr "#pragma system_header 在包含檔案外被忽略" + +#: directives.c:1617 +#, c-format +msgid "cannot find source file %s" +msgstr "找不到來源檔案 %s" + +#: directives.c:1621 +#, c-format +msgid "current file is older than %s" +msgstr "目前檔案早於 %s" + +#: directives.c:1806 +msgid "_Pragma takes a parenthesized string literal" +msgstr "_Pragma 需要一個括起的字串原文" + +#: directives.c:1927 +msgid "#else without #if" +msgstr "#else 沒有匹配的 #if" + +#: directives.c:1932 +msgid "#else after #else" +msgstr "#else 出現在 #else 後" + +#: directives.c:1934 directives.c:1967 +msgid "the conditional began here" +msgstr "條件自此開始" + +#: directives.c:1960 +msgid "#elif without #if" +msgstr "#elif 沒有匹配的 #if" + +#: directives.c:1965 +msgid "#elif after #else" +msgstr "#elif 出現在 #else 後" + +#: directives.c:2003 +msgid "#endif without #if" +msgstr "#endif 沒有匹配的 #if" + +#: directives.c:2083 +msgid "missing '(' after predicate" +msgstr "述語後缺少「(」" + +#: directives.c:2098 +msgid "missing ')' to complete answer" +msgstr "完整的答案缺少「)」" + +#: directives.c:2118 +msgid "predicate's answer is empty" +msgstr "述語的答案為空" + +#: directives.c:2145 +msgid "assertion without predicate" +msgstr "判定語後沒有述語" + +#: directives.c:2148 +msgid "predicate must be an identifier" +msgstr "述語必須是一個識別字" + +#: directives.c:2234 +#, c-format +msgid "\"%s\" re-asserted" +msgstr "已再判定「%s」" + +#: directives.c:2525 +#, c-format +msgid "unterminated #%s" +msgstr "未終止的 #%s" + +#: directives-only.c:222 lex.c:2077 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:282 +msgid "too many decimal points in number" +msgstr "數字中有太多小數點" + +#: expr.c:311 expr.c:396 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "fixed-point constants are a GCC extension" +msgstr "虛數常數是一個 GCC 擴充功能" + +#: expr.c:324 +#, fuzzy, c-format +#| msgid "invalid digit \"%c\" in octal constant" +msgid "invalid digit \"%c\" in binary constant" +msgstr "八進位常數中有無效字元「%c」" + +#: expr.c:326 +#, c-format +msgid "invalid digit \"%c\" in octal constant" +msgstr "八進位常數中有無效字元「%c」" + +#: expr.c:334 +#, fuzzy +#| msgid "invalid suffix \"%.*s\" on floating constant" +msgid "invalid prefix \"0b\" for floating constant" +msgstr "浮點常數的「%.*s」字尾無效" + +#: expr.c:339 +#, fuzzy +#| msgid "use of C99 hexadecimal floating constant" +msgid "no digits in hexadecimal floating constant" +msgstr "使用 C99 式的十六進位浮點常數" + +#: expr.c:343 +msgid "use of C99 hexadecimal floating constant" +msgstr "使用 C99 式的十六進位浮點常數" + +#: expr.c:352 +msgid "exponent has no digits" +msgstr "指數部分沒有數字" + +#: expr.c:359 +msgid "hexadecimal floating constants require an exponent" +msgstr "十六進位浮點常數需要指數部分" + +#: expr.c:365 +#, c-format +msgid "invalid suffix \"%.*s\" on floating constant" +msgstr "浮點常數的「%.*s」字尾無效" + +#: expr.c:375 expr.c:425 +#, c-format +msgid "traditional C rejects the \"%.*s\" suffix" +msgstr "傳統 C 不接受「%.*s」字尾" + +#: expr.c:383 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "suffix for double constant is a GCC extension" +msgstr "虛數常數是一個 GCC 擴充功能" + +#: expr.c:389 +#, fuzzy, c-format +#| msgid "invalid suffix \"%.*s\" on floating constant" +msgid "invalid suffix \"%.*s\" with hexadecimal floating constant" +msgstr "浮點常數的「%.*s」字尾無效" + +#: expr.c:400 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "decimal float constants are a GCC extension" +msgstr "虛數常數是一個 GCC 擴充功能" + +#: expr.c:410 +#, c-format +msgid "invalid suffix \"%.*s\" on integer constant" +msgstr "整數常數的「%.*s」字尾無效" + +#: expr.c:433 +#, fuzzy +#| msgid "use of C99 long long integer constant" +msgid "use of C++0x long long integer constant" +msgstr "使用 C99 long long 整數常數" + +#: expr.c:434 +msgid "use of C99 long long integer constant" +msgstr "使用 C99 long long 整數常數" + +#: expr.c:448 +msgid "imaginary constants are a GCC extension" +msgstr "虛數常數是一個 GCC 擴充功能" + +#: expr.c:451 +#, fuzzy +#| msgid "imaginary constants are a GCC extension" +msgid "binary constants are a GCC extension" +msgstr "虛數常數是一個 GCC 擴充功能" + +#: expr.c:544 +msgid "integer constant is too large for its type" +msgstr "整數常數值超出其類型" + +#: expr.c:575 +msgid "integer constant is so large that it is unsigned" +msgstr "整數常數太大,認定為 unsigned" + +#: expr.c:670 +msgid "missing ')' after \"defined\"" +msgstr "「defined」 後缺少「)」" + +#: expr.c:677 +msgid "operator \"defined\" requires an identifier" +msgstr "運算子「defined」需要一個識別字" + +#: expr.c:685 +#, c-format +msgid "(\"%s\" is an alternative token for \"%s\" in C++)" +msgstr "(在 C++ 中「%s」會是「%s」的替代識別字)" + +#: expr.c:695 +msgid "this use of \"defined\" may not be portable" +msgstr "使用「defined」可能不利於移植" + +#: expr.c:756 +msgid "floating constant in preprocessor expression" +msgstr "浮點常數出現在預先處理運算式中" + +#: expr.c:762 +msgid "imaginary number in preprocessor expression" +msgstr "預先處理運算式中出現虛數" + +#: expr.c:809 +#, c-format +msgid "\"%s\" is not defined" +msgstr "「%s」未定義" + +#: expr.c:821 +#, fuzzy +#| msgid "#%s is a GCC extension" +msgid "assertions are a GCC extension" +msgstr "#%s 是 GCC 擴充功能" + +#: expr.c:824 +msgid "assertions are a deprecated extension" +msgstr "" + +#: expr.c:957 expr.c:986 +#, c-format +msgid "missing binary operator before token \"%s\"" +msgstr "識別字「%s」前缺少二元運算子" + +#: expr.c:977 +#, c-format +msgid "token \"%s\" is not valid in preprocessor expressions" +msgstr "識別字「%s」在預先處理運算式中無效" + +#: expr.c:994 +msgid "missing expression between '(' and ')'" +msgstr "「(」與「)」之間缺少運算式" + +#: expr.c:997 +#, fuzzy, c-format +#| msgid "#if with no expression" +msgid "%s with no expression" +msgstr "#if 後沒有運算式" + +#: expr.c:1000 +#, c-format +msgid "operator '%s' has no right operand" +msgstr "運算子「%s」沒有右運算元" + +#: expr.c:1005 +#, c-format +msgid "operator '%s' has no left operand" +msgstr "運算子「%s」沒有左運算元" + +#: expr.c:1031 +msgid " ':' without preceding '?'" +msgstr "「:」前沒有「?」" + +#: expr.c:1059 +#, fuzzy, c-format +#| msgid "unbalanced stack in #if" +msgid "unbalanced stack in %s" +msgstr "#if 中不平衡的堆疊" + +#: expr.c:1079 +#, c-format +msgid "impossible operator '%u'" +msgstr "不可能的運算子「%u」" + +#: expr.c:1180 +msgid "missing ')' in expression" +msgstr "運算式中缺少「)」" + +#: expr.c:1209 +msgid "'?' without following ':'" +msgstr "「?」後沒有「:」" + +#: expr.c:1219 +msgid "integer overflow in preprocessor expression" +msgstr "預先處理運算式中整數溢出" + +#: expr.c:1224 +msgid "missing '(' in expression" +msgstr "運算式中缺少「(」" + +#: expr.c:1256 +#, c-format +msgid "the left operand of \"%s\" changes sign when promoted" +msgstr "「%s」的左運算元在提升時變換了符號" + +#: expr.c:1261 +#, c-format +msgid "the right operand of \"%s\" changes sign when promoted" +msgstr "「%s」的右運算元在提升時變換了符號" + +#: expr.c:1520 +msgid "traditional C rejects the unary plus operator" +msgstr "傳統 C 不接受單元 + 運算子" + +#: expr.c:1603 +msgid "comma operator in operand of #if" +msgstr "#if 運算元中出現逗號" + +#: expr.c:1739 +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:1307 +msgid "Multiple include guards may be useful for:\n" +msgstr "多個防止重包含可能對其有用:\n" + +#: init.c:489 +msgid "cppchar_t must be an unsigned type" +msgstr "cppchar_t 必須是無號類型" + +#: init.c:493 +#, c-format +msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" +msgstr "預先處理算術的最高精度為 %lu 位;目標需要 %lu 位" + +#: init.c:500 +msgid "CPP arithmetic must be at least as precise as a target int" +msgstr "CPP 算術必須至少具有目標 int 的精度" + +#: init.c:503 +msgid "target char is less than 8 bits wide" +msgstr "目標 char 短於 8 位" + +#: init.c:507 +msgid "target wchar_t is narrower than target char" +msgstr "目標 wchar_t 短於目標 char" + +#: init.c:511 +msgid "target int is narrower than target char" +msgstr "目標 int 短於目標 char" + +#: init.c:516 +msgid "CPP half-integer narrower than CPP character" +msgstr "CPP 半整數短於 CPP 字元" + +#: init.c:520 +#, 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:835 +msgid "backslash and newline separated by space" +msgstr "反斜線和換列為空格所分隔" + +#: lex.c:840 +msgid "backslash-newline at end of file" +msgstr "反斜線-換列出現在檔案末尾" + +#: lex.c:856 +#, c-format +msgid "trigraph ??%c converted to %c" +msgstr "三元符 ??%c 轉換為 %c" + +#: lex.c:864 +#, c-format +msgid "trigraph ??%c ignored, use -trigraphs to enable" +msgstr "三元符 ??%c 被忽略,請使用 -trigraphs 來啟用" + +#: lex.c:913 +msgid "\"/*\" within comment" +msgstr "「/*」出現在註釋中" + +#: lex.c:971 +#, c-format +msgid "%s in preprocessing directive" +msgstr "預先處理指令中出現 %s" + +#: lex.c:980 +msgid "null character(s) ignored" +msgstr "忽略空字元" + +#: lex.c:1017 +#, c-format +msgid "`%.*s' is not in NFKC" +msgstr "「%.*s」不在 NFKC 中" + +#: lex.c:1020 +#, c-format +msgid "`%.*s' is not in NFC" +msgstr "「%.*s」不在 NFC 中" + +#: lex.c:1088 lex.c:1165 +#, c-format +msgid "attempt to use poisoned \"%s\"" +msgstr "試圖使用已加料的「%s」" + +#: lex.c:1096 lex.c:1173 +msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro" +msgstr "__VA_ARGS__ 只能出現在 C99 可變參數巨集的展開中" + +#: lex.c:1102 lex.c:1179 +#, c-format +msgid "identifier \"%s\" is a special operator name in C++" +msgstr "" + +#: lex.c:1324 +msgid "raw string delimiter longer than 16 characters" +msgstr "" + +#: lex.c:1327 +#, 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:1450 lex.c:1472 +#, fuzzy +#| msgid "unterminated #%s" +msgid "unterminated raw string" +msgstr "未終止的 #%s" + +#: lex.c:1487 lex.c:1586 +msgid "null character(s) preserved in literal" +msgstr "空字元將保留在原文中" + +#: lex.c:1589 +#, fuzzy, c-format +#| msgid "missing terminating > character" +msgid "missing terminating %c character" +msgstr "缺少結尾的 > 字元" + +#: lex.c:2088 +msgid "C++ style comments are not allowed in ISO C90" +msgstr "C++ 風格的註釋在 ISO C90 中不被允許" + +#: lex.c:2090 +msgid "(this will be reported only once per input file)" +msgstr "(此警告為每個輸入檔案只報告一次)" + +#: lex.c:2095 +msgid "multi-line comment" +msgstr "多列註釋" + +#: lex.c:2415 +#, c-format +msgid "unspellable token %s" +msgstr "無法拼出的識別字 %s" + +#: macro.c:87 +#, c-format +msgid "macro \"%s\" is not used" +msgstr "巨集「%s」未被使用" + +#: macro.c:126 macro.c:321 +#, c-format +msgid "invalid built-in macro \"%s\"" +msgstr "無效的內建巨集「%s」" + +#: macro.c:160 +#, fuzzy +#| msgid "could not determine date and time" +msgid "could not determine file timestamp" +msgstr "無法決定日期與時間" + +#: macro.c:256 +msgid "could not determine date and time" +msgstr "無法決定日期與時間" + +#: macro.c:272 +msgid "__COUNTER__ expanded inside directive with -fdirectives-only" +msgstr "" + +#: macro.c:430 +msgid "invalid string literal, ignoring final '\\'" +msgstr "無效的原文字串,忽略最後的「\\」" + +#: macro.c:490 +#, c-format +msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" +msgstr "粘貼「%s」和「%s」不能給出一個有效的預先處理識別字" + +#: macro.c:565 +msgid "ISO C99 requires rest arguments to be used" +msgstr "ISO C99 需要使用剩餘的引數" + +#: macro.c:570 +#, c-format +msgid "macro \"%s\" requires %u arguments, but only %u given" +msgstr "巨集「%s」需要 %u 個引數,但只給出了 %u 個" + +#: macro.c:575 +#, c-format +msgid "macro \"%s\" passed %u arguments, but takes just %u" +msgstr "巨集「%s」傳遞了 %u 個引數,但只需要 %u 個" + +#: macro.c:734 traditional.c:681 +#, c-format +msgid "unterminated argument list invoking macro \"%s\"" +msgstr "呼叫巨集「%s」時引數清單未終止" + +#: macro.c:866 +#, c-format +msgid "function-like macro \"%s\" must be used with arguments in traditional C" +msgstr "類似函式的巨集「%s」在傳統 C 中必須與引數一起使用" + +#: macro.c:1040 +#, c-format +msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98" +msgstr "" + +#: macro.c:1507 +#, c-format +msgid "duplicate macro parameter \"%s\"" +msgstr "重複的巨集參數「%s」" + +#: macro.c:1553 +#, c-format +msgid "\"%s\" may not appear in macro parameter list" +msgstr "「%s」不能出現在巨集參數清單中" + +#: macro.c:1561 +msgid "macro parameters must be comma-separated" +msgstr "巨集參數必須由逗號隔開" + +#: macro.c:1578 +msgid "parameter name missing" +msgstr "缺少參數名" + +#: macro.c:1596 +msgid "anonymous variadic macros were introduced in C99" +msgstr "匿名可變參數巨集在 C99 中被引入" + +#: macro.c:1601 +msgid "ISO C does not permit named variadic macros" +msgstr "ISO C 不允許具名的可變參數巨集" + +#: macro.c:1610 +msgid "missing ')' in macro parameter list" +msgstr "在巨集參數表中缺少「)」" + +#: macro.c:1659 +msgid "'##' cannot appear at either end of a macro expansion" +msgstr "「##」不能出現在巨集展開的兩端" + +#: macro.c:1694 +msgid "ISO C99 requires whitespace after the macro name" +msgstr "ISO C99 要求巨集名後必須有空白" + +#: macro.c:1718 +msgid "missing whitespace after the macro name" +msgstr "巨集名後缺少空白" + +#: macro.c:1752 +msgid "'#' is not followed by a macro parameter" +msgstr "「#」後沒有巨集參數" + +#: macro.c:1910 +#, c-format +msgid "\"%s\" redefined" +msgstr "「%s」重定義" + +#: macro.c:1916 +msgid "this is the location of the previous definition" +msgstr "這是先前定義的位置" + +#: macro.c:1977 +#, c-format +msgid "macro argument \"%s\" would be stringified in traditional C" +msgstr "巨集引數「%s」將在傳統 C 中被字串化" + +#: macro.c:2004 +#, 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:891 +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/libcpp/symtab.c b/libcpp/symtab.c new file mode 100644 index 000000000..48a5338b1 --- /dev/null +++ b/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 +. + + 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/libcpp/system.h b/libcpp/system.h new file mode 100644 index 000000000..5bdfeeda0 --- /dev/null +++ b/libcpp/system.h @@ -0,0 +1,430 @@ +/* Get common system includes and various definitions and declarations based + on autoconf macros. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009, 2010 + 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 +. */ + + +#ifndef LIBCPP_SYSTEM_H +#define LIBCPP_SYSTEM_H + +/* We must include stdarg.h before stdio.h. */ +#include + +#ifdef HAVE_STDDEF_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif + +#include + +/* Define a generic NULL if one hasn't already been defined. */ +#ifndef NULL +#define NULL 0 +#endif + +/* Use the unlocked open routines from libiberty. */ +#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 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 + +#endif + +/* ??? Glibc's fwrite/fread_unlocked macros cause + "warning: signed and unsigned type in conditional expression". */ +#undef fread_unlocked +#undef fwrite_unlocked + +#include +#include + +#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 +# include +#else +# ifdef HAVE_STRING_H +# include +# else +# ifdef HAVE_STRINGS_H +# include +# endif +# endif +#endif + +#ifdef HAVE_STDLIB_H +# include +#endif + +#ifdef HAVE_UNISTD_H +# include +#endif + +#if HAVE_LIMITS_H +# include +#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 +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# ifdef HAVE_TIME_H +# include +# endif +# endif +#endif + +#ifdef HAVE_FCNTL_H +# include +#else +# ifdef HAVE_SYS_FILE_H +# include +# endif +#endif + +#ifdef HAVE_LOCALE_H +# include +#endif + +#ifdef HAVE_LANGINFO_CODESET +# include +#endif + +#ifndef HAVE_SETLOCALE +# define setlocale(category, locale) (locale) +#endif + +#ifdef ENABLE_NLS +#include +#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_*)". */ + +#if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT +extern void abort (void); +#endif + +#if HAVE_SYS_STAT_H +# include +#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 + +/* Be conservative and only use enum bitfields with GCC. + FIXME: provide a complete autoconf test for buggy enum bitfields. */ + +#if (GCC_VERSION > 2000) +#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE +#else +#define ENUM_BITFIELD(TYPE) unsigned int +#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/libcpp/traditional.c b/libcpp/traditional.c new file mode 100644 index 000000000..7ff11bb20 --- /dev/null +++ b/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 +. */ + +#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->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 *) ¯o->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, "e1); + len2 = canonicalize_text (p2, b2->text, b2->text_len, "e2); + 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, "e1); + len2 = canonicalize_text (p2, macro2->exp.text, macro2->count, "e2); + mismatch = (len1 != len2 || memcmp (p1, p2, len1)); + } + + free (p1); + return mismatch; +} diff --git a/libcpp/ucnid.h b/libcpp/ucnid.h new file mode 100644 index 000000000..e5690b223 --- /dev/null +++ b/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 + . + + + 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/libcpp/ucnid.tab b/libcpp/ucnid.tab new file mode 100644 index 000000000..2d1f34727 --- /dev/null +++ b/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 +; . +; +; 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 + -- cgit v1.2.3