diff options
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 14 | ||||
-rw-r--r-- | libcpp/include/line-map.h | 19 | ||||
-rw-r--r-- | libcpp/line-map.cc | 33 | ||||
-rw-r--r-- | libcpp/po/ChangeLog | 8 | ||||
-rw-r--r-- | libcpp/po/es.po | 60 | ||||
-rw-r--r-- | libcpp/po/zh_CN.po | 61 |
6 files changed, 132 insertions, 63 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index eef6ec7..3c5bae1 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,17 @@ +2025-06-17 Jason Merrill <jason@redhat.com> + + * line-map.cc (linemap_location_from_module_p): Add. + * include/line-map.h: Declare it. + +2025-06-11 David Malcolm <dmalcolm@redhat.com> + + PR other/116792 + * include/line-map.h (typedef expanded_location): Convert to... + (struct expanded_location): ...this. + (operator==): New decl, for expanded_location. + (operator!=): Likewise. + * line-map.cc (operator==): New decl, for expanded_location. + 2025-05-07 Jakub Jelinek <jakub@redhat.com> PR preprocessor/108900 diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h index 75cc1ad..21a59af 100644 --- a/libcpp/include/line-map.h +++ b/libcpp/include/line-map.h @@ -1111,6 +1111,10 @@ extern location_t linemap_module_loc extern void linemap_module_reparent (line_maps *, location_t loc, location_t new_parent); +/* TRUE iff the location comes from a module import. */ +extern bool linemap_location_from_module_p + (const line_maps *, location_t); + /* Restore the linemap state such that the map at LWM-1 continues. Return start location of the new map. */ extern location_t linemap_module_restore @@ -1280,7 +1284,7 @@ linemap_location_before_p (const line_maps *set, return linemap_compare_locations (set, loc_a, loc_b) >= 0; } -typedef struct +struct expanded_location { /* The name of the source file involved. */ const char *file; @@ -1294,7 +1298,18 @@ typedef struct /* In a system header?. */ bool sysp; -} expanded_location; +}; + +extern bool +operator== (const expanded_location &a, + const expanded_location &b); +inline bool +operator!= (const expanded_location &a, + const expanded_location &b) +{ + return !(a == b); +} + /* This is enum is used by the function linemap_resolve_location below. The meaning of the values is explained in the comment of diff --git a/libcpp/line-map.cc b/libcpp/line-map.cc index cf65571..33701b5 100644 --- a/libcpp/line-map.cc +++ b/libcpp/line-map.cc @@ -767,6 +767,17 @@ linemap_module_restore (line_maps *set, line_map_uint_t lwm) return 0; } +/* TRUE iff the location comes from a module import. */ + +bool +linemap_location_from_module_p (const line_maps *set, location_t loc) +{ + const line_map_ordinary *map = linemap_ordinary_map_lookup (set, loc); + while (map && map->reason != LC_MODULE) + map = linemap_included_from_linemap (set, map); + return !!map; +} + /* Returns TRUE if the line table set tracks token locations across macro expansion, FALSE otherwise. */ @@ -1949,6 +1960,28 @@ linemap_expand_location (const line_maps *set, return xloc; } +bool +operator== (const expanded_location &a, + const expanded_location &b) +{ + /* "file" can be null; for them to be equal they must both + have either null or nonnull values, and if non-null + they must compare as equal. */ + if ((a.file == nullptr) != (b.file == nullptr)) + return false; + if (a.file && strcmp (a.file, b.file)) + return false; + + if (a.line != b.line) + return false; + if (a.column != b.column) + return false; + if (a.data != b.data) + return false; + if (a.sysp != b.sysp) + return false; + return true; +} /* Dump line map at index IX in line table SET to STREAM. If STREAM is NULL, use stderr. IS_MACRO is true if the caller wants to diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog index 262bcb1..d9f18ea 100644 --- a/libcpp/po/ChangeLog +++ b/libcpp/po/ChangeLog @@ -1,3 +1,11 @@ +2025-05-16 Joseph Myers <josmyers@redhat.com> + + * es.po: Update. + +2025-05-15 Joseph Myers <josmyers@redhat.com> + + * zh_CN.po: Update. + 2025-05-14 Joseph Myers <josmyers@redhat.com> * es.po: Update. diff --git a/libcpp/po/es.po b/libcpp/po/es.po index 4c55a08..65207a8 100644 --- a/libcpp/po/es.po +++ b/libcpp/po/es.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: cpplib 15.1-b20250316\n" "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n" "POT-Creation-Date: 2025-03-14 22:05+0000\n" -"PO-Revision-Date: 2025-05-14 12:48-0600\n" +"PO-Revision-Date: 2025-05-16 12:16-0600\n" "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n" "Language-Team: Spanish <es@tp.org.es>\n" "Language: es\n" @@ -58,7 +58,7 @@ msgstr "los nombres universales de carácter de C99 son incompatibles con C90" #: charset.cc:1556 #, gcc-internal-format msgid "the meaning of %<\\%c%> is different in traditional C" -msgstr "el significado de <\\%c> es diferente en C tradicional" +msgstr "el significado de %<\\%c%> es diferente en C tradicional" #: charset.cc:1595 #, gcc-internal-format @@ -95,7 +95,7 @@ msgstr "¿Quiso decir %<\\N{%s}%>?" #: charset.cc:1693 #, gcc-internal-format msgid "%<\\N{%> not terminated with %<}%> after %.*s; treating it as separate tokens" -msgstr "%<\\N{%> no termina con %<}%> después de %.*s; se trata como elemntos separados" +msgstr "%<\\N{%> no termina con %<}%> después de %.*s; se trata como elementos separados" #: charset.cc:1702 #, gcc-internal-format @@ -247,11 +247,11 @@ msgstr "secuencia de escape desconocida: %<\\%s%>" #: charset.cc:2436 msgid "converting escape sequence to execution character set" -msgstr "se convierte una secuencia de escape al conjunto de caracteres de ejecución" +msgstr "se convierte la secuencia de escape al conjunto de caracteres de ejecución" #: charset.cc:2576 msgid "missing open quote" -msgstr "falta comilla abierta" +msgstr "falta comilla al inicio" #: charset.cc:2807 msgid "character not encodable in a single execution character code unit" @@ -373,7 +373,7 @@ msgstr "los nombres de macro deben ser identificadores" #: directives.cc:743 directives.cc:747 #, gcc-internal-format msgid "undefining %qs" -msgstr "borrando la definición de %qs" +msgstr "se borra la definición de %qs" #: directives.cc:805 #, gcc-internal-format @@ -383,7 +383,7 @@ msgstr "falta el carácter de terminación %<>%>" #: directives.cc:865 #, gcc-internal-format msgid "%<#%s%> expects %<\"FILENAME\"%> or %<<FILENAME>%>" -msgstr "%<#%s$> espera %<«NOMBREFICHERO»%> o %<<NOMBREFICHERO>%>" +msgstr "%<#%s$> espera %<\"NOMBREFICHERO\"%> o %<<NOMBREFICHERO>%>" #: directives.cc:911 directives.cc:1391 #, gcc-internal-format, gfc-internal-format @@ -398,7 +398,7 @@ msgstr "la profundidad anidada %u de %<#include%> excede el máximo de %u (utili #: directives.cc:965 #, gcc-internal-format msgid "%<#include_next%> in primary source file" -msgstr "%<#include_next%> en fichero primario de código fuente" +msgstr "%<#include_next%> en fichero de código fuente primario" #: directives.cc:1037 directives.cc:1059 directives.cc:1062 directives.cc:1065 #, gcc-internal-format, gfc-internal-format @@ -447,7 +447,7 @@ msgstr "se esperaba %<(%>" #: directives.cc:1269 #, gcc-internal-format msgid "too large %<gnu::offset%> argument" -msgstr "argumento %<gnu::offset%> demasiado grande" +msgstr "el argumento %<gnu::offset%> es demasiado grande" #: directives.cc:1316 msgid "expected character string literal" @@ -682,7 +682,7 @@ msgstr "uso de una constante de coma flotante hexadecimal C99" #: expr.cc:789 #, gcc-internal-format msgid "invalid suffix %<%.*s%> on floating constant" -msgstr "sufijo %<%.*s%> inválido en la constante de coma flotante" +msgstr "sufijo %<%.*s%> inválido en una constante de coma flotante" #: expr.cc:800 expr.cc:870 #, gcc-internal-format @@ -696,7 +696,7 @@ msgstr "el sufijo para una constante doble es una extensión GCC" #: expr.cc:815 #, gcc-internal-format msgid "invalid suffix %<%.*s%> with hexadecimal floating constant" -msgstr "sufijo %<%.*s%> inválido en la constante de coma flotante hexadecimal" +msgstr "sufijo %<%.*s%> inválido en una constante de coma flotante hexadecimal" #: expr.cc:829 expr.cc:833 msgid "decimal floating constants are a C23 feature" @@ -705,7 +705,7 @@ msgstr "las constantes de coma flotante decimal son una característica de C23" #: expr.cc:853 #, gcc-internal-format msgid "invalid suffix %<%.*s%> on integer constant" -msgstr "sufijo %<%.*s%> inválido en la constante entera" +msgstr "sufijo %<%.*s%> inválido en una constante entera" #: expr.cc:878 msgid "use of C++11 long long integer constant" @@ -744,7 +744,7 @@ msgstr "las constantes imaginarias son una característica de C2Y" #: expr.cc:956 msgid "binary constants are a C++14 feature or GCC extension" -msgstr "las constantes binarias son una característica C++14 o una extensión de GCC" +msgstr "las constantes binarias son una característica de C++14 o una extensión de GCC" #: expr.cc:961 msgid "binary constants are a C23 feature or GCC extension" @@ -838,7 +838,7 @@ msgstr "operando de parámetro imbuído demasiado grande" #: expr.cc:1658 #, gcc-internal-format, gfc-internal-format msgid "impossible operator '%u'" -msgstr "operador '%u' imposible" +msgstr "operador «%u» imposible" #: expr.cc:1759 #, gcc-internal-format @@ -852,7 +852,7 @@ msgstr "%<?%> sin %<:%> a continuación" #: expr.cc:1798 msgid "integer overflow in preprocessor expression" -msgstr "desbordamiento entero en expresión del preprocesador" +msgstr "desbordamiento entero en una expresión del preprocesador" #: expr.cc:1803 #, gcc-internal-format @@ -871,7 +871,7 @@ msgstr "el operando derecho de %qs cambia de signo cuando es promovido" #: expr.cc:2099 msgid "traditional C rejects the unary plus operator" -msgstr "C tradicional rechaza el operador unario mas" +msgstr "C tradicional rechaza el operador unario más" #: expr.cc:2197 #, gcc-internal-format, gfc-internal-format @@ -890,7 +890,7 @@ msgstr "directorio NULL en %<find_file%>" #: files.cc:603 msgid "one or more PCH files were found, but they were invalid" -msgstr "se encontró uno o más ficheros PCH, pero eran inválidos" +msgstr "se encontraron uno o más ficheros PCH, pero eran inválidos" #: files.cc:607 #, gcc-internal-format @@ -934,7 +934,7 @@ msgstr "Guardias múltiples de include pueden ser útiles para:\n" #: files.cc:2306 #, gcc-internal-format msgid "header guard %qs followed by %<#define%> of a different macro" -msgstr "guarda de encabezado %qs seguida por %<#define%> de un macro diferente" +msgstr "guarda de cabecera %qs seguida por %<#define%> de un macro diferente" #: files.cc:2310 #, gcc-internal-format @@ -954,7 +954,7 @@ msgstr "la aritmética del preprocesador tiene una precisión máxima de %lu bit #: init.cc:687 #, gcc-internal-format msgid "CPP arithmetic must be at least as precise as a target %<int%>" -msgstr "la aritmética de CPP debe se al menos tan precisa como un %<int%> del objetivo" +msgstr "la aritmética de CPP debe ser al menos tan precisa como un %<int%> del objetivo" #: init.cc:691 #, gcc-internal-format @@ -1111,7 +1111,7 @@ msgstr "%<__VA_OPT__%> solamente puede aparecer en la expansión de una macro va #: lex.cc:2186 #, gcc-internal-format msgid "attempt to use poisoned %qs" -msgstr "intento de utilizar %qs envenenado" +msgstr "se intenta usar %qs envenenado" #: lex.cc:2191 msgid "poisoned here" @@ -1151,7 +1151,7 @@ msgstr "carácter inválido nueva línea en un delimitador de cadena cruda" #: lex.cc:2731 lex.cc:5671 #, gcc-internal-format, gfc-internal-format msgid "invalid character '%c' in raw string delimiter" -msgstr "carácter inválido '%c' en un delimitador de cadena cruda" +msgstr "carácter inválido «%c» en un delimitador de cadena cruda" #: lex.cc:2770 lex.cc:2793 msgid "unterminated raw string" @@ -1168,7 +1168,7 @@ msgstr "falta el carácter de terminación %c" #: lex.cc:2986 msgid "C++11 requires a space between string literal and macro" -msgstr "C++11 requiere un espacio entre cadena literal y macro" +msgstr "C++11 requiere un espacio entre una cadena literal y un macro" #: lex.cc:3579 msgid "module control-line cannot be in included file" @@ -1177,7 +1177,7 @@ msgstr "la línea de control del módulo no puede estar en un fichero incluido" #: lex.cc:3593 #, gcc-internal-format msgid "module control-line %qs cannot be an object-like macro" -msgstr "la línea de control del módulo %qs no puede ser una macro de tipo objeto" +msgstr "la línea de control del módulo %qs no puede ser un macro de tipo objeto" #: lex.cc:3631 #, gcc-internal-format @@ -1187,7 +1187,7 @@ msgstr "el nombre de módulo %qs no puede ser una macro de tipo objeto" #: lex.cc:3637 #, gcc-internal-format msgid "module partition %qs cannot be an object-like macro" -msgstr "la partición de módulo %qs no puede ser una macro de tipo objeto" +msgstr "la partición de módulo %qs no puede ser un macro de tipo objeto" #: lex.cc:3658 #, gcc-internal-format @@ -1290,7 +1290,7 @@ msgstr "macro interna %qs inválida" #: macro.cc:579 macro.cc:687 #, gcc-internal-format msgid "macro %qs might prevent reproducible builds" -msgstr "macro %qs quizá previene compilaciones reproducibles" +msgstr "el macro %qs quizá previene compilaciones reproducibles" #: macro.cc:610 msgid "could not determine file timestamp" @@ -1401,7 +1401,7 @@ msgstr "se esperaba %<)%> después de %<...%>" #: macro.cc:3624 msgid "anonymous variadic macros were introduced in C++11" -msgstr "las macros variadic anónimas se introdujeron en C++11" +msgstr "los macros variadic anónimos se introdujeron en C++11" #: macro.cc:3625 macro.cc:3629 msgid "anonymous variadic macros were introduced in C99" @@ -1440,7 +1440,7 @@ msgstr "%<#%> no es seguido por un parámetro de macro" #: macro.cc:3961 #, gcc-internal-format msgid "%qs redefined" -msgstr "%qs redefinido" +msgstr "se redefine %qs" #: macro.cc:3965 msgid "this is the location of the previous definition" @@ -1453,7 +1453,7 @@ msgstr "el argumento de macro %qs debería ser convertido a cadena en C tradicio #: pch.cc:90 pch.cc:342 pch.cc:356 pch.cc:374 pch.cc:380 pch.cc:389 pch.cc:396 msgid "while writing precompiled header" -msgstr "al escribir el encabezado precompilado" +msgstr "al escribir la cabecera precompilada" #: pch.cc:616 #, gcc-internal-format @@ -1482,7 +1482,7 @@ msgstr "%s: no se usa porque %<__COUNTER__%> es inválido" #: pch.cc:722 pch.cc:885 msgid "while reading precompiled header" -msgstr "al leer el encabezado precompilado" +msgstr "al leer la cabecera precompilada" #: traditional.cc:891 #, gcc-internal-format @@ -1523,7 +1523,7 @@ msgstr "error de sintaxis en la lista de parámetros de macro" #~ msgstr "#include anidado con demasiada profundidad" #~ msgid "missing ')' after \"__has_include__\"" -#~ msgstr "falta ')' tras \"__has_include__\"" +#~ msgstr "falta ')' después de \"__has_include__\"" #~ msgid "\"%s\" may not appear in macro parameter list" #~ msgstr "«%s» podría faltar en la lista de parámetro de macro" diff --git a/libcpp/po/zh_CN.po b/libcpp/po/zh_CN.po index 467575b..2262520 100644 --- a/libcpp/po/zh_CN.po +++ b/libcpp/po/zh_CN.po @@ -2,22 +2,24 @@ # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the gcc package. # Meng Jie <zuxy.meng@gmail.com>, 2005-2010. +# Boyuan Yang <073plan@gmail.com>, 2025. +# Anbang LI <anbangli@foxmail.com>, 2025. # Zhanhaoxiang Zhang <zzhx2006@outlook.com>, 2024, 2025. # msgid "" msgstr "" -"Project-Id-Version: cpplib 15-b20250216\n" +"Project-Id-Version: cpplib 15.1-b20250316\n" "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n" "POT-Creation-Date: 2025-03-14 22:05+0000\n" -"PO-Revision-Date: 2025-02-20 18:32+0800\n" -"Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n" +"PO-Revision-Date: 2025-05-15 12:47-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.5\n" +"X-Generator: Poedit 3.6\n" #: charset.cc:759 #, gcc-internal-format, gfc-internal-format @@ -49,12 +51,12 @@ msgstr "字符 0x%lx 在执行字符集中不是单字节的" #: charset.cc:1549 msgid "universal character names are only valid in C++ and C99" -msgstr "Unicode 字符名只在 C++ 和 C99 中有效" +msgstr "通用字符名只在 C++ 和 C99 中有效" #: charset.cc:1553 #, gcc-internal-format msgid "C99%'s universal character names are incompatible with C90" -msgstr "C99 的 Unicode 字符名与 C90 不兼容" +msgstr "C99 的通用字符名与 C90 不兼容" #: charset.cc:1556 #, gcc-internal-format @@ -64,29 +66,29 @@ msgstr "%<\\%c%> 的意义与在传统 C 中不同" #: charset.cc:1595 #, gcc-internal-format msgid "%<\\N%> not followed by %<{%>" -msgstr "%<\\N%> 后没有 %<{%>" +msgstr "%<\\N%> 后面没有 %<{%>" #: charset.cc:1625 msgid "empty named universal character escape sequence; treating it as separate tokens" -msgstr "空的命名 Unicode 字符转义序列;将其视为独立 token 处理" +msgstr "空命名通用字符转义序列; 将其视为单独的词元" #: charset.cc:1632 msgid "empty named universal character escape sequence" -msgstr "空的命名 Unicode 字符转义序列" +msgstr "空的命名通用字符转义序列" #: charset.cc:1639 msgid "named universal character escapes are only valid in C++23" -msgstr "命名 Unicode 字符转义序列(named universal character escapes)仅在 C++23 中有效" +msgstr "命名通用字符转义仅在 C++23 中有效" #: charset.cc:1659 #, gcc-internal-format msgid "%<\\N{%.*s}%> is not a valid universal character; treating it as separate tokens" -msgstr "%<\\N{%.*s}%> 不是一个有效的 Unicode 字符;将其视为独立 token 处理" +msgstr "%<\\N{%.*s}%> 不是有效的通用字符; 将其视为独立的词元" #: charset.cc:1665 #, gcc-internal-format msgid "%<\\N{%.*s}%> is not a valid universal character" -msgstr "%<\\N{%.*s}%> 不是一个有效的 Unicode 字符" +msgstr "%<\\N{%.*s}%> 不是一个有效的通用字符" #: charset.cc:1675 #, gcc-internal-format @@ -96,7 +98,7 @@ msgstr "你是说 %<\\N{%s}%> 吗?" #: charset.cc:1693 #, gcc-internal-format msgid "%<\\N{%> not terminated with %<}%> after %.*s; treating it as separate tokens" -msgstr "在 %.*s 之后 %<\\N{%> 未以 %<}%> 结束;将其视为独立 token 处理" +msgstr "在 %.*s 之后 %<\\N{%> 未以 %<}%> 结束;将其视为独立词元" #: charset.cc:1702 #, gcc-internal-format @@ -110,7 +112,7 @@ msgstr "在 %<_cpp_valid_ucn%> 中但不是一个 UCN" #: charset.cc:1753 msgid "empty delimited escape sequence; treating it as separate tokens" -msgstr "空的带分隔符的转义序列;将其视为独立 token 处理" +msgstr "空的带分隔符的转义序列;将其视为独立词元" #: charset.cc:1760 charset.cc:2163 charset.cc:2280 msgid "empty delimited escape sequence" @@ -128,12 +130,12 @@ msgstr "带分隔符的转义序列仅在 C2Y 中有效" #: charset.cc:1794 #, gcc-internal-format msgid "%<\\u{%> not terminated with %<}%> after %.*s; treating it as separate tokens" -msgstr "在 %.*s 之后 %<\\u{%> 未以 %<}%> 结束;将其视为独立 token 处理" +msgstr "在 %.*s 之后 %<\\u{%> 未以 %<}%> 结束;将其视为独立词元" #: charset.cc:1806 #, gcc-internal-format msgid "incomplete universal character name %.*s" -msgstr "不完全的 Unicode 字符名 %.*s" +msgstr "不完整的通用字符名 %.*s" #: charset.cc:1810 #, gcc-internal-format @@ -143,12 +145,12 @@ msgstr "在 %.*s 之后 %<\\u{%> 未以 %<}%> 结束" #: charset.cc:1818 #, gcc-internal-format msgid "%.*s is not a valid universal character" -msgstr "%.*s 不是一个有效的 Unicode 字符" +msgstr "%.*s 不是一个有效的通用字符" #: charset.cc:1834 charset.cc:1838 #, gcc-internal-format msgid "%.*s is not a valid universal character name before C23" -msgstr "在C23之前,%.*s 不是一个有效的 Unicode 字符名" +msgstr "在C23之前,%.*s 不是一个有效的通用字符名" #: charset.cc:1854 lex.cc:2096 #, gcc-internal-format @@ -158,17 +160,17 @@ msgstr "%<$%> 出现在标识符或数字中" #: charset.cc:1864 #, gcc-internal-format msgid "universal character %.*s is not valid in an identifier" -msgstr "Unicode 字符 %.*s 在标识符中无效" +msgstr "通用字符 %.*s 在标识符中无效" #: charset.cc:1868 #, gcc-internal-format msgid "universal character %.*s is not valid at the start of an identifier" -msgstr "Unicode 字符 %.*s 在标识符开头无效" +msgstr "通用字符 %.*s 在标识符开头无效" #: charset.cc:1875 #, gcc-internal-format msgid "%.*s is outside the UCS codespace" -msgstr "%.*s 超出了 UCS 码空间" +msgstr "%.*s 在 UCS 码空间之外" #: charset.cc:1919 charset.cc:3072 msgid "converting UCN to source character set" @@ -186,7 +188,7 @@ msgstr "扩展字符 %.*s 在标识符中无效" #: charset.cc:2007 #, gcc-internal-format msgid "extended character %.*s is not valid at the start of an identifier" -msgstr "扩展字符 %.*s 在标识符开头无效" +msgstr "扩展字符 %.*s 在标识符的开头无效" #: charset.cc:2129 #, gcc-internal-format @@ -208,10 +210,9 @@ msgid "hex escape sequence out of range" msgstr "16 进制转义序列越界" #: charset.cc:2247 -#, fuzzy, gcc-internal-format -#| msgid "%<\\o%> not followed by %<}%>" +#, gcc-internal-format msgid "%<\\o%> not followed by %<{%>" -msgstr "%<\\o%> 后没有 %<}%>" +msgstr "%<\\o%> 后面没有 %<{%>" #: charset.cc:2305 #, gcc-internal-format @@ -461,16 +462,14 @@ msgid "%<#embed%> not supported in traditional C" msgstr "在传统C中不支持 %<#embed%>" #: directives.cc:1370 -#, fuzzy, gcc-internal-format -#| msgid "%<#%s%> before C++23 is a GCC extension" +#, gcc-internal-format msgid "%<#%s%> before C++26 is a GCC extension" -msgstr "%<#%s%> 在C++23以前是一个 GCC 扩展" +msgstr "%<#%s%> 在 C++26 以前是一个 GCC 扩展" #: directives.cc:1379 -#, fuzzy, gcc-internal-format -#| msgid "%<#%s%> is a GCC extension" +#, gcc-internal-format msgid "%<#%s%> is a C23 feature" -msgstr "%<#%s%> 是一个 GCC 扩展" +msgstr "%<#%s%> 是一个 C23 特性" #: directives.cc:1436 #, gcc-internal-format |