From 0bf09c37211e410fbe66de3d52b40d1981a5a0d6 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 18 Mar 2019 21:22:30 +0000 Subject: Add a test for PR c++/89630 PR c++/89630 * g++.target/i386/pr89630.C: New test. From-SVN: r269781 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.target/i386/pr89630.C | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 gcc/testsuite/g++.target/i386/pr89630.C (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index de31e36..267b2cd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-19 H.J. Lu + + PR c++/89630 + * g++.target/i386/pr89630.C: New test. + 2019-03-18 Kito Cheng * gcc.target/riscv/arch-1.c: Add quotes around march in dg-error. diff --git a/gcc/testsuite/g++.target/i386/pr89630.C b/gcc/testsuite/g++.target/i386/pr89630.C new file mode 100644 index 0000000..240aa74 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/pr89630.C @@ -0,0 +1,15 @@ +// { dg-do compile } +// { dg-options "-std=c++14 -mrtm -march=skylake-avx512" } + +template class A; +template class B; +template struct C; +template class D { + using B::rank_; + void operator()(typename C>::i); +}; + +template class F { + using B::rank_; + void operator()(typename C>::i); +}; -- cgit v1.1 From 3d8ce9bab1e52abe4762320bbc74e5e8d4fa734e Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 18 Mar 2019 21:36:44 +0000 Subject: * sv.po: Update. From-SVN: r269783 --- gcc/po/ChangeLog | 4 ++ gcc/po/sv.po | 203 ++++++++++++++++++++++++++----------------------------- 2 files changed, 100 insertions(+), 107 deletions(-) (limited to 'gcc') diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 30a8eb7..7d63ba4 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,7 @@ +2019-03-18 Joseph Myers + + * sv.po: Update. + 2019-03-07 Joseph Myers * fi.po: Update. diff --git a/gcc/po/sv.po b/gcc/po/sv.po index 1a38e28..9d54358 100644 --- a/gcc/po/sv.po +++ b/gcc/po/sv.po @@ -1,8 +1,8 @@ # Swedish messages for GCC. -# Copyright © 2000, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc. +# Copyright © 2000, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc. # This file is distributed under the same license as the gcc package. # Dennis Björklund , 2000, 2001, 2002. -# Göran Uddeborg , 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 +# Göran Uddeborg , 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019. # # Reminder to translator: GCC team does not want RCS keywords in the header! # @@ -17,14 +17,15 @@ # rank ordning # scope räckvidd # store lagra +# stride steg # tile bricka # thunk snutt msgid "" msgstr "" -"Project-Id-Version: gcc 8.2.0\n" +"Project-Id-Version: gcc 9.1-b20190203\n" "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n" "POT-Creation-Date: 2019-02-01 23:01+0000\n" -"PO-Revision-Date: 2018-07-29 13:05+0200\n" +"PO-Revision-Date: 2019-03-17 13:54+0100\n" "Last-Translator: Göran Uddeborg \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -154,7 +155,7 @@ msgstr "kompilering avslutad.\n" #: diagnostic.c:618 msgid "In file included from" -msgstr "" +msgstr "I filen inkluderad ifrån" #: diagnostic.c:619 #, fuzzy @@ -847,7 +848,7 @@ msgstr " -h, --help Visa denna hjälp, avsluta sedan\n" #: gcov.c:889 #, c-format msgid " -i, --json-format\t\t Output JSON intermediate format into .gcov.json.gz file\n" -msgstr "" +msgstr " -i, --json-format\t\t Skriv ut JSON mellanformat i en .gcov.json.gz-fil\n" #: gcov.c:890 #, c-format @@ -1582,7 +1583,7 @@ msgstr "funktionsattributen stämmer inte" #: cif-code.def:138 msgid "function has external linkage when the user requests only inlining static for live patching" -msgstr "" +msgstr "funktionen har extern länkning när användaren begär endast inline:ade static för uppdatering i drift" #: cif-code.def:143 msgid "unreachable" @@ -1660,38 +1661,34 @@ msgid "The maximum number of instructions when automatically inlining." msgstr "Det maximala antalet instruktioner vid automatisk inline:ing." #: params.def:87 -#, fuzzy, no-c-format -#| msgid "The maximum number of instructions when automatically inlining." +#, no-c-format msgid "The maximum number of instructions when automatically inlining small functions." -msgstr "Det maximala antalet instruktioner vid automatisk inline:ing." +msgstr "Det maximala antalet instruktioner vid automatisk inline:ing av små funktioner." #: params.def:92 -#, fuzzy, no-c-format -#| msgid "The maximum number of instructions when automatically inlining." +#, no-c-format msgid "The maximum number of instructions when inlining for size." -msgstr "Det maximala antalet instruktioner vid automatisk inline:ing." +msgstr "Det maximala antalet instruktioner vid inline:ing för storlek." #: params.def:97 -#, fuzzy, no-c-format -#| msgid "Use subroutines for function prologues and epilogues." +#, no-c-format msgid "Instruction accounted for function prologue, epilogue and other overhead." -msgstr "Använd subrutiner för funktionprologer och -epiloger." +msgstr "Instruktion inräknad för funktionprolog, -epilog och andra omkostnader." #: params.def:103 -#, fuzzy, no-c-format -#| msgid "Use subroutines for function prologues and epilogues." +#, no-c-format msgid "Time accounted for function prologue, epilogue and other overhead." -msgstr "Använd subrutiner för funktionprologer och -epiloger." +msgstr "Tid inräknad för funktionprolog, -epilog och andra omkostnader." #: params.def:109 #, no-c-format msgid "Instruction accounted for function thunk overhead." -msgstr "" +msgstr "Instruktion inräknad för funktionssnuttsomkostnader." #: params.def:114 #, no-c-format msgid "Time accounted for function thunk overhead." -msgstr "" +msgstr "Tid inräknad för funktionssnuttsomkostnader." #: params.def:119 #, no-c-format @@ -1998,7 +1995,7 @@ msgstr "Ange den uppskattade sannolikheten i procent för den inbyggda expect. #: params.def:488 #, no-c-format msgid "The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3." -msgstr "" +msgstr "Den maximala längden på en konstant sträng för att ett inbyggt strängjämförelseanrop skall vara tänkbar för inline:ing. Standardvärdet är 3." #: params.def:492 #, no-c-format @@ -2284,12 +2281,12 @@ msgstr "Storleken på L2-cachen." #: params.def:844 #, no-c-format msgid "Whether software prefetch hints should be issued for non-constant strides." -msgstr "" +msgstr "Huruvida mjukvaruförhandshämtningstips skall matas ut för icke-konstanta steg." #: params.def:853 #, no-c-format msgid "The minimum constant stride beyond which we should use prefetch hints for." -msgstr "" +msgstr "Det minsta konstanta steget bortom vilket vi skall använda förhandshämtningstips." #: params.def:861 #, no-c-format @@ -2742,7 +2739,7 @@ msgstr "Maximalt antal bitar för vilka vi undviker att skapa FMA:er." #: params.def:1396 #, no-c-format msgid "True if a non-short-circuit operation is optimal." -msgstr "" +msgstr "Sant om en icke kortsluten operation är optimal." #: params.def:1401 #, fuzzy, no-c-format @@ -3621,7 +3618,7 @@ msgstr "felaktig operand till output_condmove_single" #: config/gcn/gcn.c:5637 config/gcn/gcn.c:5648 config/gcn/gcn.c:5651 #, c-format msgid "bad ADDR_SPACE_GLOBAL address" -msgstr "" +msgstr "felaktig ADDR_SPACE_GLOBAL-adress" #: config/gcn/gcn.c:5423 config/gcn/gcn.c:5446 config/gcn/gcn.c:5475 #: config/gcn/gcn.c:5491 config/gcn/gcn.c:5510 config/gcn/gcn.c:5586 @@ -5051,11 +5048,11 @@ msgstr "vektortilldelning" #. Macros for unified error messages. #: fortran/frontend-passes.c:3746 msgid "Incorrect extent in argument B in MATMUL intrinsic in dimension " -msgstr "" +msgstr "Felaktig utsträckning i argument B i inbyggd MATMUL i dimension " #: fortran/frontend-passes.c:3749 msgid "Array bound mismatch for dimension " -msgstr "" +msgstr "Vektorbindning stämmer inte för dimension " #: fortran/gfortranspec.c:427 #, c-format @@ -5810,7 +5807,7 @@ msgstr "överväg att använda ”-pg” istället för ”-p” med gprof(1)" #: config/rs6000/rs6000.h:139 msgid "Missing -mcpu option in ASM_CPU_SPEC?" -msgstr "" +msgstr "Saknas flaggan -mcpu i ASM_CPU_SPEC?" #: config/rx/rx.h:80 msgid "-mas100-syntax is incompatible with -gdwarf" @@ -6065,7 +6062,7 @@ msgstr "Aktivera språkutvidgningar från DEC." #: fortran/lang.opt:445 msgid "Enable legacy parsing of INCLUDE as statement." -msgstr "" +msgstr "Aktivera gammaldags tolkning av INCLUDE som en sats." #: fortran/lang.opt:449 msgid "Enable kind-specific variants of integer intrinsic functions." @@ -6160,7 +6157,7 @@ msgstr "-ffixed-line-length-\tAnvänd radlängd med n tecken i fast läge." #: fortran/lang.opt:541 msgid "Pad shorter fixed form lines to line width with spaces." -msgstr "" +msgstr "Fyll ut kortare rader av fast form till radbredden med blanktecken." #: fortran/lang.opt:545 msgid "-ffpe-trap=[...]\tStop on following floating point exceptions." @@ -6261,7 +6258,7 @@ msgstr "Skydda parenteser i uttryck." #: fortran/lang.opt:675 msgid "Path to header file that should be pre-included before each compilation unit." -msgstr "" +msgstr "Sökväg till huvudfil som skall för-inkluderas före varje kompileringsenhet." #: fortran/lang.opt:679 msgid "Enable range checking during compilation." @@ -6499,7 +6496,7 @@ msgstr "Varna om ett underobjekt har ett abi_tag-attribut som det fullständiga #: c-family/c.opt:276 msgid "Warn on suspicious calls of standard functions computing absolute values." -msgstr "" +msgstr "Varna för misstänkta anrop av standardfunktioner som beräknar absoluta värden." #: c-family/c.opt:280 msgid "Warn about suspicious uses of memory addresses." @@ -6531,7 +6528,7 @@ msgstr "-Walloc-size-larger-than= Varna för anrop till allokeringsfunktio #: c-family/c.opt:317 msgid "-Wno-alloc-size-larger-than Disable Walloc-size-larger-than= warning. Equivalent to Walloc-size-larger-than= or larger." -msgstr "" +msgstr "-Wno-alloc-size-larger-than Avaktivera varningen Walloc-size-larger-than=. Eqvivalent med Walloc-size-larger-than= eller större." #: c-family/c.opt:321 msgid "-Walloc-zero Warn for calls to allocation functions that specify zero bytes." @@ -6543,7 +6540,7 @@ msgstr "-Walloca-larger-than=\tVarna vid obegränsade användningar av al #: c-family/c.opt:331 msgid "-Wno-alloca-larger-than Disable Walloca-larger-than= warning. Equivalent to Walloca-larger-than= or larger." -msgstr "" +msgstr "-Wno-alloca-larger-than Avaktivera varningen Walloca-larger-than=. Ekvivalent med Walloca-larger-than= eller större." #: c-family/c.opt:343 msgid "Warn whenever an Objective-C assignment is being intercepted by the garbage collector." @@ -6682,11 +6679,11 @@ msgstr "Varna för radering av polymorfa objekt med ickevirtuella destruerare." #: c-family/c.opt:485 msgid "Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation." -msgstr "" +msgstr "Markera att implicit deklarerade kopieringsoperationer bör undvikas om klassen har en kopieringsoperator tillhandahållen av användaren." #: c-family/c.opt:490 msgid "Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation or destructor." -msgstr "" +msgstr "Markera att implicit deklarerade kopieringsoperationer bör undvikas om klassen har en kopieringsoperator eller destruerare tillhandahållen av användaren." #: c-family/c.opt:495 msgid "Warn about positional initialization of structs requiring designated initializers." @@ -6810,7 +6807,7 @@ msgstr "Varna när det är en konvertering mellan pekare som har ofullständiga #: c-family/c.opt:630 msgid "Warn when the address of packed member of struct or union is taken." -msgstr "" +msgstr "Varna när adressen till en packad medlem i en post eller union tas." #: c-family/c.opt:634 msgid "Warn about variables which are initialized to themselves." @@ -6818,7 +6815,7 @@ msgstr "Varna för variabler som initieras till sig själva." #: c-family/c.opt:638 msgid "Warn about uses of std::initializer_list that can result in dangling pointers." -msgstr "" +msgstr "Varna för användningar av std::initializer_list som kan resultera i hängande pekare." #: c-family/c.opt:642 msgid "Warn about implicit declarations." @@ -7092,7 +7089,7 @@ msgstr "Varna för eventuellt saknade parenteser." #: c-family/c.opt:963 msgid "Warn about calling std::move on a local object in a return statement preventing copy elision." -msgstr "" +msgstr "Varna för att anrop av std::move på ett lokalt objekt i en retursats förhindrar att kopiering undviks." #: c-family/c.opt:967 msgid "Warn when converting the type of pointers to member functions." @@ -7120,7 +7117,7 @@ msgstr "Varna för missbruk av pragman." #: c-family/c.opt:991 msgid "Warn if constructor or destructors with priorities from 0 to 100 are used." -msgstr "" +msgstr "Varna om konstruerare eller destruerare med prioriteter från 0 till 100 används." #: c-family/c.opt:995 msgid "Warn if a property for an Objective-C object has no assign semantics specified." @@ -7140,7 +7137,7 @@ msgstr "Varna för multipla deklarationer av samma objekt." #: c-family/c.opt:1015 msgid "Warn about redundant calls to std::move." -msgstr "" +msgstr "Varna för överflödiga anrop av std::move." #: c-family/c.opt:1019 msgid "Warn about uses of register storage specifier." @@ -7290,7 +7287,7 @@ msgstr "-Wvla-larger-than=\tVarna för obegränsade användningar av vekt #: c-family/c.opt:1206 msgid "-Wno-vla-larger-than Disable Wvla-larger-than= warning. Equivalent to Wvla-larger-than= or larger." -msgstr "" +msgstr "-Wno-vla-larger-than Avaktivera varningen Wvla-larger-than=. Ekvivalent med Wvla-larger-than= eller större." #: c-family/c.opt:1210 msgid "Warn when a register variable is declared volatile." @@ -7375,7 +7372,7 @@ msgstr "När de är kortare, använd kanoniska sökvägar till systemhuvuden." #: c-family/c.opt:1305 msgid "Enable the char8_t fundamental type and use it as the type for UTF-8 string and character literals." -msgstr "" +msgstr "Aktivera den fundamentala typen char8_t och använd den som typen för UTF-8-sträng- och -teckenliteraler." #: c-family/c.opt:1393 msgid "Deprecated in GCC 8. This switch has no effect." @@ -7963,7 +7960,7 @@ msgstr "Fördefiniera inte systemspecifika och GCC-specifika makron." #: brig/lang.opt:36 msgid "Assume we are finalizing for phsa and its libhsail-rt. Enables additional phsa-specific optimizations (default)." -msgstr "" +msgstr "Anta att vi avslutar för phsa och dess libhsail-rt. Aktiverar ytterligare phsa-specifika optimeringar (standard)." #: ada/gcc-interface/lang.opt:61 msgid "Synonym of -gnatk8." @@ -7995,7 +7992,7 @@ msgstr "Ignorerad." #: d/lang.opt:51 msgid "-Hd \tWrite D interface files to directory ." -msgstr "" +msgstr "-Hd \tSkriv D-gränssnittsfiler till katalogen ." #: d/lang.opt:55 #, fuzzy @@ -8011,7 +8008,7 @@ msgstr "Varna för typkonvertering som slänger kvalificerare." #: d/lang.opt:139 msgid "Warn from speculative compiles such as __traits(compiles)." -msgstr "" +msgstr "Varna för spekulativa kompileringar såsom __traits(compiles)." #: d/lang.opt:151 #, fuzzy @@ -8027,11 +8024,11 @@ msgstr "-MF \tSkriv beroendeutdata till den angivna filen." #: d/lang.opt:159 msgid "Debug library to use instead of phobos." -msgstr "" +msgstr "Felsökningsbibliotek att använda istället för phobos." #: d/lang.opt:163 msgid "Default library to use instead of phobos." -msgstr "" +msgstr "Standardbibliotek att använda istället för phobos." #: d/lang.opt:170 #, fuzzy @@ -8047,7 +8044,7 @@ msgstr "Generera kod för GNU-assembler (gas)." #: d/lang.opt:182 msgid "-fbounds-check=[on|safeonly|off]\tTurn array bounds checks on, in @safe code only, or off." -msgstr "" +msgstr "-fbounds-check=[on|safeonly|off]\tLåt gränskontroller för vektorer vara på, endast i @safe-kod eller av." #: d/lang.opt:185 #, fuzzy, c-format @@ -8063,7 +8060,7 @@ msgstr "Kompilera kod för rak byteordning." #: d/lang.opt:206 msgid "-fdebug=\tCompile in debug code, code <= , or code identified by ." -msgstr "" +msgstr "-fdebug=\tKompilera in felsökningskod, kod ≤ , eller kod identifierad av ." #: d/lang.opt:210 #, fuzzy @@ -8073,7 +8070,7 @@ msgstr "Generera norm-instruktion." #: d/lang.opt:214 msgid "-fdoc-dir=\tWrite documentation file to directory ." -msgstr "" +msgstr "-fdoc-dir=\tSkriv dokumentationsfilen till katalogen ." #: d/lang.opt:218 #, fuzzy @@ -8083,7 +8080,7 @@ msgstr "-o \tSkriv utdata i ." #: d/lang.opt:222 msgid "-fdoc-inc=\tInclude a Ddoc macro ." -msgstr "" +msgstr "-fdoc-inc=\t\tInkludera ett Ddoc-makro ." #: d/lang.opt:226 #, fuzzy @@ -8093,7 +8090,7 @@ msgstr "Visa kodträdet efter tolkning, flaggan bör undvikas." #: d/lang.opt:230 msgid "Ignore unsupported pragmas." -msgstr "" +msgstr "Ignorera pragma som inte stödjs." #: d/lang.opt:234 #, fuzzy @@ -8103,11 +8100,11 @@ msgstr "Generera kod för arkitekturen CR16C." #: d/lang.opt:238 msgid "Generate a default D main() function when compiling." -msgstr "" +msgstr "Generera en standard D-funktion main() vid kompilering." #: d/lang.opt:242 msgid "-fmodule-file==\tuse as source file for ." -msgstr "" +msgstr "-fmodule-file==\tanvänd som källfil för ." #: d/lang.opt:246 #, fuzzy @@ -8117,7 +8114,7 @@ msgstr "Generera kod för användarläget." #: d/lang.opt:250 msgid "Process all modules specified on the command line, but only generate code for the module specified by the argument." -msgstr "" +msgstr "Bearbeta alla moduler angivna på kommandoraden, men generera endast kod för den modul som anges av argumentet." #: d/lang.opt:254 #, fuzzy @@ -8145,35 +8142,35 @@ msgstr "Generera kod för övervakarläget (standard)." #: d/lang.opt:270 msgid "List information on all language changes." -msgstr "" +msgstr "Lista information om alla språkändringar." #: d/lang.opt:274 msgid "Give deprecation messages about -ftransition=import anomalies." -msgstr "" +msgstr "Ge meddelanden om undvikande av -ftransition=import-anomalier." #: d/lang.opt:278 msgid "List all usages of complex or imaginary types." -msgstr "" +msgstr "Lista alla användningar av komplexa eller imaginära typer." #: d/lang.opt:282 msgid "Implement DIP1000: Scoped pointers (experimental)." -msgstr "" +msgstr "Implementera DIP1000: pekare med räckvidd (experimentellt)." #: d/lang.opt:286 msgid "Implement DIP25: Sealed references (experimental)." -msgstr "" +msgstr "Implementera DIP25: förseglade referenser (expermimentellt)." #: d/lang.opt:290 msgid "List all non-mutable fields which occupy an object instance." -msgstr "" +msgstr "Lista alla icke förändringsbara fält som tar upp en objektinstans." #: d/lang.opt:294 msgid "Revert to single phase name lookup." -msgstr "" +msgstr "Återgå till enfas namnuppslagning." #: d/lang.opt:298 msgid "List all hidden GC allocations." -msgstr "" +msgstr "Lista alla dolda GC-allokeringar." #: d/lang.opt:302 #, fuzzy @@ -8183,11 +8180,11 @@ msgstr "Använd angiven trådlokal lagringsdialekt." #: d/lang.opt:306 msgid "Compile in unittest code." -msgstr "" +msgstr "Kompilera in enhetsstestkod." #: d/lang.opt:310 msgid "-fversion=\tCompile in version code >= or identified by ." -msgstr "" +msgstr "-fversion=\tKompilera in versionskod ≥ eller identifierad av ." #: d/lang.opt:334 #, fuzzy @@ -8197,11 +8194,11 @@ msgstr "Anta inte att standard C-bibliotek och ”main” finns." #: d/lang.opt:342 msgid "Link the standard D library statically in the compilation." -msgstr "" +msgstr "Länka standard D-biblioteket statiskt i kompileringen." #: d/lang.opt:346 msgid "Link the standard D library dynamically in the compilation." -msgstr "" +msgstr "Länka standard D-biblioteket dynamiskt i kompileringen." #: go/lang.opt:42 msgid "-fgo-c-header=\tWrite Go struct definitions to file as C code." @@ -8961,7 +8958,7 @@ msgstr "Aktiverar utförlig dump av kostnadsmodellen i dumpfilerna för felsökn #: config/aarch64/aarch64.opt:227 msgid "Generate code to track when the CPU might be speculating incorrectly." -msgstr "" +msgstr "Generera kod för att spåra när CPU:n kan spekulera felaktigt." #: config/aarch64/aarch64.opt:231 config/i386/i386.opt:983 #: config/rs6000/rs6000.opt:535 @@ -8974,11 +8971,11 @@ msgstr "Giltiga argument till -mstack-protector-guard=:" #: config/aarch64/aarch64.opt:245 msgid "Use the system register specified on the command line as the stack protector guard register. This option is for use with fstack-protector-strong and not for use in user-land code." -msgstr "" +msgstr "Använd systemregistret som anges på kommandoraden som registret för stackskyddsvakt. Denna flagga skall användas med fstack-protector-strong och är inte till för kod i användarmarken." #: config/aarch64/aarch64.opt:251 msgid "Use an immediate to offset from the stack protector guard register, sp_el0. This option is for use with fstack-protector-strong and not for use in user-land code." -msgstr "" +msgstr "Använd en omedelbar för att få avstånd från stackskyddsvaktregistret, sp_el0. Denna flagga skall användas med fstack-protector-strong och är inte till för kod i användarmarken." #: config/linux.opt:24 msgid "Use Bionic C library." @@ -10107,11 +10104,11 @@ msgstr "Generera mcount-/__fentry__-anrop som nop:ar. För att aktiveras behöv #: config/i386/i386.opt:939 msgid "Set name of __fentry__ symbol called at function entry." -msgstr "" +msgstr "Ange namnet på __fentry__-symbolen som anropas vid funktionsingång." #: config/i386/i386.opt:943 msgid "Set name of section to record mrecord-mcount calls." -msgstr "" +msgstr "Ange namnet på sektionen för att räkna anrop av mrecord-mcount." #: config/i386/i386.opt:947 msgid "Skip setting up RAX register when passing variable arguments." @@ -10171,7 +10168,7 @@ msgstr "Slå på CET-instrumentering för switch-satser som använder en hopptab #: config/i386/i386.opt:1033 msgid "Insert ENDBR instruction at function entry only via cf_check attribute for CET instrumentation." -msgstr "" +msgstr "Infoga ENDBR-instruktioner vid funktionsingång endast via attributet cf_check för CET-instrumentation." #: config/i386/i386.opt:1038 msgid "Make all function calls indirect." @@ -10221,7 +10218,7 @@ msgstr "Instrumentera endast funktioner markerade med attributet bnd_instrument. #: config/i386/i386.opt:1090 msgid "Known choices for return instrumentation with -minstrument-return=" -msgstr "" +msgstr "Kända val för returintstrumentering med -minstrument-return=" #: config/i386/i386.opt:1103 #, fuzzy @@ -11778,11 +11775,11 @@ msgstr "Använd användardefinierade instruktioner." #: config/or1k/elf.opt:28 msgid "Configure board specific runtime." -msgstr "" +msgstr "Konfigurera kortspecifik körtid." #: config/or1k/elf.opt:32 msgid "For compatibility, it's always newlib for elf now." -msgstr "" +msgstr "För kompatibilitet är det alltid newlib för elf nu." #: config/or1k/or1k.opt:28 #, fuzzy @@ -11798,7 +11795,7 @@ msgstr "Använd instruktioner i hårdvara för heltalsdivision." #: config/or1k/or1k.opt:36 msgid "Allows generation of binaries which use the l.cmov instruction. If your target does not support this the compiler will generate the equivalent using set and branch." -msgstr "" +msgstr "Tillåt generering av binärer som använder instruktionen l.cmov. Om ditt mål inte stödjer detta kommer kompilatorn generera motsvarigheten med set och branch." #: config/or1k/or1k.opt:42 #, fuzzy @@ -11808,15 +11805,15 @@ msgstr "Tillåt grenar att packas med andra instruktioner." #: config/or1k/or1k.opt:46 msgid "Allows generation of binaries which use sign-extension instructions. If your target does not support this the compiler will use memory loads to perform sign extension." -msgstr "" +msgstr "Tillåt generering av binärer som använder instruktionen för teckenutökning. Om ditt mål inte stödjer detta kommer kompilatorn generera minnesinläsning för att utföra teckenutökning." #: config/or1k/or1k.opt:52 msgid "Allows generation of binaries which use l.sf*i instructions. If your target does not support this the compiler will generate instructions to store the immediate to a register first." -msgstr "" +msgstr "Tillåt generering av binärer som använder instruktionenerna l.sf*i. Om ditt mål inte stödjer detta kommer kompilatorn generera instruktioner för att lagra den omedelbara i ett register först." #: config/or1k/or1k.opt:58 msgid "Allows generation of binaries which support shifts and rotate instructions supporting immediate arguments, for example l.rori." -msgstr "" +msgstr "Tillåt generering av binärer som stödjer instruktionen för att skifta och rotera som stödjer omedelbara argument, till exempel l.rori." #: config/or1k/or1k.opt:63 #, fuzzy @@ -12582,26 +12579,18 @@ msgstr "Använd flyttalskonverteringsinstruktioner i hårdvara." msgid "Use hardware floating point square root instruction." msgstr "Använd flyttalsinstruktion för kvadratrot i hårdvara." -# Den ofärdiga beskrivningen är felrapporterad: -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47105 #: config/microblaze/microblaze.opt:112 msgid "Description for mxl-mode-executable." msgstr "Beskrivning för mxl-mode-executable." -# Den ofärdiga beskrivningen är felrapporterad: -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47105 #: config/microblaze/microblaze.opt:116 msgid "Description for mxl-mode-xmdstub." msgstr "Beskrivning för mxl-mode-xmdstub." -# Den ofärdiga beskrivningen är felrapporterad: -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47105 #: config/microblaze/microblaze.opt:120 msgid "Description for mxl-mode-bootstrap." msgstr "Beskrivning för mxl-mode-bootstrap." -# Den ofärdiga beskrivningen är felrapporterad: -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47105 #: config/microblaze/microblaze.opt:124 msgid "Description for mxl-mode-novectors." msgstr "Beskrivning för mxl-mode-novectors." @@ -12612,7 +12601,7 @@ msgstr "Använd instruktioner för förhandshämtning (prefetch) i hårdvara" #: config/microblaze/microblaze.opt:132 msgid "Data referenced by offset from start of text instead of GOT (with -fPIC/-fPIE)." -msgstr "" +msgstr "Data refererad med avstånd från början på texten istället för GOT (med -fPIC/-fPIE)." #: config/vax/vax.opt:23 config/vax/vax.opt:27 msgid "Target DFLOAT double precision code." @@ -12872,11 +12861,11 @@ msgstr "Justera funktionsingångar till 4 byte." #: config/nds32/nds32.opt:97 msgid "Prevent $fp being allocated during register allocation so that compiler is able to force performing fp-as-gp optimization." -msgstr "" +msgstr "Förhindra att $fp allokeras under registerallokeringen så att kompilatorn kan framtvinga att fp-as-gp-optimeringar utförs." #: config/nds32/nds32.opt:101 msgid "Forbid using $fp to access static and global variables. This option strictly forbids fp-as-gp optimization regardless of '-mforce-fp-as-gp'." -msgstr "" +msgstr "Förbud användning av $fp för att komma åt statiska och globala variabler. Denna flagga förbjuder strikt fp-as-gp-optimeringar oavsett ”-mforce-fp-as-gp”." #: config/nds32/nds32.opt:105 #, fuzzy @@ -12998,7 +12987,7 @@ msgstr "Generera flyttalsinstruktioner med dubbel precision." #: config/nds32/nds32.opt:445 msgid "Force disable hardware loop, even use -mext-dsp." -msgstr "" +msgstr "Tvinga avaktivering av hårdvaruslingor, även med användning av -mext-dsp." #: config/nds32/nds32.opt:449 #, fuzzy @@ -13018,7 +13007,7 @@ msgstr "Spara alltid $lp på stacken." #: config/nds32/nds32.opt:465 msgid "Allow use r15 for inline ASM." -msgstr "" +msgstr "Tillåt användning av r15 för inline-ASM." #: config/iq2000/iq2000.opt:31 msgid "Specify CPU for code generation purposes." @@ -13160,7 +13149,7 @@ msgstr "Generera kod för en 5206e." #: config/csky/csky.opt:138 msgid "Enable use of R16-R31 (default)." -msgstr "" +msgstr "Aktivera användning av R16-R31 (standard)." #: config/csky/csky.opt:142 #, fuzzy @@ -13182,7 +13171,7 @@ msgstr "Generera isel-instruktioner." #: config/csky/csky.opt:157 msgid "Generate constant pools in the compiler instead of assembler." -msgstr "" +msgstr "Generera konstantpooler i kompilatorn istället för assemblern." #: config/csky/csky.opt:161 #, fuzzy @@ -13576,7 +13565,7 @@ msgstr "Använd LRA istället för reload (tillfällig)." #: config/gcn/gcn.opt:26 msgid "GCN GPU type to use:" -msgstr "" +msgstr "GCN GPU-typ att använda:" #: config/gcn/gcn.opt:39 config/gcn/gcn.opt:43 #, fuzzy @@ -13586,11 +13575,11 @@ msgstr "Ange namnet på målprocessorn." #: config/gcn/gcn.opt:55 msgid "Enable OpenMP GPU offloading." -msgstr "" +msgstr "Aktivera OpenMP GPU-avlastning." #: config/gcn/gcn.opt:71 msgid "-mstack-size=\tSet the private segment size per wave-front, in bytes." -msgstr "" +msgstr "-mstack-size=\tAnge det privata segmentets storlek per vågfront, i byte." #: config/gcn/gcn.opt:78 #, fuzzy @@ -13966,7 +13955,7 @@ msgstr "Policyer tillgängliga att användas med -mcompact-branches=:" #: config/mips/mips.opt:469 msgid "Use Loongson MultiMedia extensions Instructions (MMI) instructions." -msgstr "" +msgstr "Använd instruktionerna Loongson Multimedia extensions Instructions (MMI)." #: config/mips/mips.opt:473 #, fuzzy @@ -14334,7 +14323,7 @@ msgstr "Möjliggör användning av RX FPU-instruktionerna. Detta är standard." #: config/arc/arc.opt:541 msgid "Enable ENTER_S and LEAVE_S opcodes for ARCv2." -msgstr "" +msgstr "Aktivera operationskoderna ENTER_S och LEAVE_S för ARCv2." #: lto/lang.opt:28 #, c-format @@ -14367,7 +14356,7 @@ msgstr "Upplösningsfilen." #: common.opt:243 msgid "Provide bash completion for options starting with provided string." -msgstr "" +msgstr "Tillhandahåll bash-kompletteringar för flaggor som startar med leverantörssträngen." #: common.opt:292 msgid "Display this information." @@ -14429,7 +14418,7 @@ msgstr "Varna för typsäkerhet och liknande fel i attributalias och relaterade. #: common.opt:563 msgid "Warn when profiling instrumentation was requested, but could not be applied to a certain function." -msgstr "" +msgstr "Varna när profileringsinstrumentering begärdes, men inte kunde tillämpas på vissa funktioner." #: common.opt:568 common.opt:572 msgid "Warn about pointer casts which increase alignment." @@ -14917,11 +14906,11 @@ msgstr "Visa källkodsrader med en cirkumflex som indikerar kolumnen." #: common.opt:1254 msgid "Show labels annotating ranges of source code when showing source" -msgstr "" +msgstr "Visa etiketter som markerar avsnitt av källkod när källan visas" #: common.opt:1258 msgid "Show line numbers in the left margin when showing source" -msgstr "" +msgstr "Visa radnummer i vänstermarginalen när källan visas" #: common.opt:1266 msgid "-fdiagnostics-color=[never|always|auto]\tColorize diagnostics." @@ -14929,7 +14918,7 @@ msgstr "-fdiagnostics-color=[never|always|auto]\tFärglägg felmeddelanden." #: common.opt:1286 msgid "-fdiagnostics-format=[text|json] Select output format" -msgstr "" +msgstr "-fdiagnostics-format=[text|json] Välj utmatningsformat" #: common.opt:1303 msgid "Print fix-it hints in machine-readable form." -- cgit v1.1 From c46c9745aaa1a6e7df1d2421ad906d2a6a30d465 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Mon, 18 Mar 2019 23:48:50 +0000 Subject: PR tree-optimization/89720 - Spurious -Warray-bounds warning on a range with max < min gcc/ChangeLog: PR tree-optimization/89720 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min more conservatively, the same as anti-range. gcc/testsuite/ChangeLog: PR tree-optimization/89720 * gcc.dg/Warray-bounds-42.c: New test. From-SVN: r269785 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/Warray-bounds-42.c | 26 ++++++++++++++++++++++++++ gcc/tree-vrp.c | 33 ++++++++++++++------------------- 4 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/Warray-bounds-42.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a8d41e4..e0df9e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-18 Martin Sebor + + PR tree-optimization/89720 + * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min + more conservatively, the same as anti-range. + 2019-03-18 Richard Biener PR middle-end/88945 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 267b2cd..97bfd50 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-18 Martin Sebor + + PR tree-optimization/89720 + * gcc.dg/Warray-bounds-42.c: New test. + 2019-03-19 H.J. Lu PR c++/89630 diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-42.c b/gcc/testsuite/gcc.dg/Warray-bounds-42.c new file mode 100644 index 0000000..005e145 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Warray-bounds-42.c @@ -0,0 +1,26 @@ +/* PR tree-optimization/89720 - Spurious -Warray-bounds warning on a range + with max < min + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +void f (char*, int); + +#if __SIZEOF_POINTER__ == 8 + +void g (__INT64_TYPE__ i) +{ + char a[65536] = ""; + char *p = a + (i & (__INT64_TYPE__)0xffffffff3fffffffLL); + f (p, *(p - 6)); /* { dg-bogus "\\\[-Warray-bounds" } */ +} + +#elif __SIZEOF_POINTER__ == 4 + +void h (__INT32_TYPE__ i) +{ + char a[65536] = ""; + char *p = a + (i & (__INT32_TYPE__)0x8fffffffLL); + f (p, *(p - 6)); /* { dg-bogus "\\\[-Warray-bounds" } */ +} + +#endif diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 1092fe0..0a17271 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -4546,9 +4546,9 @@ vrp_prop::check_mem_ref (location_t location, tree ref, const value_range *vr = NULL; /* Determine the offsets and increment OFFRANGE for the bounds of each. - The loop computes the the range of the final offset for expressions - such as (A + i0 + ... + iN)[CSTOFF] where i0 through iN are SSA_NAMEs - in some range. */ + The loop computes the range of the final offset for expressions such + as (A + i0 + ... + iN)[CSTOFF] where i0 through iN are SSA_NAMEs in + some range. */ while (TREE_CODE (arg) == SSA_NAME) { gimple *def = SSA_NAME_DEF_STMT (arg); @@ -4583,26 +4583,21 @@ vrp_prop::check_mem_ref (location_t location, tree ref, if (vr->kind () == VR_RANGE) { - if (tree_int_cst_lt (vr->min (), vr->max ())) + offset_int min + = wi::to_offset (fold_convert (ptrdiff_type_node, vr->min ())); + offset_int max + = wi::to_offset (fold_convert (ptrdiff_type_node, vr->max ())); + if (min < max) { - offset_int min - = wi::to_offset (fold_convert (ptrdiff_type_node, vr->min ())); - offset_int max - = wi::to_offset (fold_convert (ptrdiff_type_node, vr->max ())); - if (min < max) - { - offrange[0] += min; - offrange[1] += max; - } - else - { - offrange[0] += max; - offrange[1] += min; - } + offrange[0] += min; + offrange[1] += max; } else { - /* Conservatively add [-MAXOBJSIZE -1, MAXOBJSIZE] + /* When MIN >= MAX, the offset is effectively in a union + of two ranges: [-MAXOBJSIZE -1, MAX] and [MIN, MAXOBJSIZE]. + Since there is no way to represent such a range across + additions, conservatively add [-MAXOBJSIZE -1, MAXOBJSIZE] to OFFRANGE. */ offrange[0] += arrbounds[0]; offrange[1] += arrbounds[1]; -- cgit v1.1 From 7babd3e4f197e59638addba04717609adebde4de Mon Sep 17 00:00:00 2001 From: GCC Administrator Date: Tue, 19 Mar 2019 00:16:11 +0000 Subject: Daily bump. From-SVN: r269788 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index f3597e0..a61f3fc 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20190318 +20190319 -- cgit v1.1 From 855cd9b166c70a6e5a90e342314e71203f15b8f4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Mar 2019 07:55:31 +0100 Subject: re PR c/89734 (const qualifier on return type not erased inside __typeof__) PR c/89734 * c-decl.c (grokdeclarator): Call c_build_qualified_type on function return type even if quals_used is 0. Formatting fixes. * gcc.dg/pr89734.c: New test. From-SVN: r269789 --- gcc/c/ChangeLog | 6 ++++++ gcc/c/c-decl.c | 9 +++++---- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr89734.c | 12 ++++++++++++ 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr89734.c (limited to 'gcc') diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index fafc6a5..fd3d009 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Jakub Jelinek + + PR c/89734 + * c-decl.c (grokdeclarator): Call c_build_qualified_type on function + return type even if quals_used is 0. Formatting fixes. + 2019-03-14 Richard Biener * c-tree.h (enum c_declspec_il): New. diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index d8fa109..e8b7ca4 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -6611,10 +6611,12 @@ grokdeclarator (const struct c_declarator *declarator, quals_used &= TYPE_QUAL_ATOMIC; if (quals_used && VOID_TYPE_P (type) && really_funcdef) pedwarn (specs_loc, 0, - "function definition has qualified void return type"); + "function definition has qualified void " + "return type"); else warning_at (specs_loc, OPT_Wignored_qualifiers, - "type qualifiers ignored on function return type"); + "type qualifiers ignored on function " + "return type"); /* Ensure an error for restrict on invalid types; the DR#423 resolution is not entirely clear about @@ -6624,8 +6626,7 @@ grokdeclarator (const struct c_declarator *declarator, && (!POINTER_TYPE_P (type) || !C_TYPE_OBJECT_OR_INCOMPLETE_P (TREE_TYPE (type)))) error_at (loc, "invalid use of %"); - if (quals_used) - type = c_build_qualified_type (type, quals_used); + type = c_build_qualified_type (type, quals_used); } type_quals = TYPE_UNQUALIFIED; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 97bfd50..308753e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-19 Jakub Jelinek + + PR c/89734 + * gcc.dg/pr89734.c: New test. + 2019-03-18 Martin Sebor PR tree-optimization/89720 diff --git a/gcc/testsuite/gcc.dg/pr89734.c b/gcc/testsuite/gcc.dg/pr89734.c new file mode 100644 index 0000000..4dc2754 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr89734.c @@ -0,0 +1,12 @@ +/* PR c/89734 */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +typedef const int CI; +typedef _Atomic int AI; + +CI foo (void); +const int foo (void); + +AI baz (void); +_Atomic int baz (void); -- cgit v1.1 From ce2c025c2480b6d36eb25b3aae877141ab4c3a5d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Mar 2019 08:25:59 +0100 Subject: re PR target/89726 (Incorrect inlined version of 'ceil' for 32bit) PR target/89726 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil compensation use x2 += 1 instead of x2 -= -1 and when honoring signed zeros, do another copysign after the compensation. * gcc.target/i386/fpprec-1.c (x): Add 6 new constants. (expect_round, expect_rint, expect_floor, expect_ceil, expect_trunc): Add expected results for them. From-SVN: r269790 --- gcc/ChangeLog | 7 +++++++ gcc/config/i386/i386.c | 17 +++++++++-------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/fpprec-1.c | 8 ++++++++ 4 files changed, 29 insertions(+), 8 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e0df9e0..5684358 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-03-19 Jakub Jelinek + + PR target/89726 + * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil + compensation use x2 += 1 instead of x2 -= -1 and when honoring + signed zeros, do another copysign after the compensation. + 2019-03-18 Martin Sebor PR tree-optimization/89720 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 560170f..184c5c1 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -45563,8 +45563,10 @@ ix86_expand_floorceildf_32 (rtx operand0, rtx operand1, bool do_floor) x2 -= 1; Compensate. Ceil: if (x2 < x) - x2 -= -1; - return x2; + x2 += 1; + if (HONOR_SIGNED_ZEROS (mode)) + x2 = copysign (x2, x); + return x2; */ machine_mode mode = GET_MODE (operand0); rtx xa, TWO52, tmp, one, res, mask; @@ -45590,17 +45592,16 @@ ix86_expand_floorceildf_32 (rtx operand0, rtx operand1, bool do_floor) /* xa = copysign (xa, operand1) */ ix86_sse_copysign_to_positive (xa, xa, res, mask); - /* generate 1.0 or -1.0 */ - one = force_reg (mode, - const_double_from_real_value (do_floor - ? dconst1 : dconstm1, mode)); + /* generate 1.0 */ + one = force_reg (mode, const_double_from_real_value (dconst1, mode)); /* Compensate: xa = xa - (xa > operand1 ? 1 : 0) */ tmp = ix86_expand_sse_compare_mask (UNGT, xa, res, !do_floor); emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp))); - /* We always need to subtract here to preserve signed zero. */ - tmp = expand_simple_binop (mode, MINUS, + tmp = expand_simple_binop (mode, do_floor ? MINUS : PLUS, xa, tmp, NULL_RTX, 0, OPTAB_DIRECT); + if (!do_floor && HONOR_SIGNED_ZEROS (mode)) + ix86_sse_copysign_to_positive (tmp, tmp, res, mask); emit_move_insn (res, tmp); emit_label (label); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 308753e..ae077a1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-03-19 Jakub Jelinek + PR target/89726 + * gcc.target/i386/fpprec-1.c (x): Add 6 new constants. + (expect_round, expect_rint, expect_floor, expect_ceil, expect_trunc): + Add expected results for them. + PR c/89734 * gcc.dg/pr89734.c: New test. diff --git a/gcc/testsuite/gcc.target/i386/fpprec-1.c b/gcc/testsuite/gcc.target/i386/fpprec-1.c index 1c17c1d..4e55a22 100644 --- a/gcc/testsuite/gcc.target/i386/fpprec-1.c +++ b/gcc/testsuite/gcc.target/i386/fpprec-1.c @@ -11,6 +11,9 @@ double x[] = { __builtin_nan(""), __builtin_inf(), -__builtin_inf(), 0x1.0000000000001p-1, 0x1.fffffffffffffp-2, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.8000000000001p+0, 0x1.7ffffffffffffp+0, + -0x1.0000000000001p-1, -0x1.fffffffffffffp-2, + -0x1.0000000000001p+0, -0x1.fffffffffffffp-1, + -0x1.8000000000001p+0, -0x1.7ffffffffffffp+0, -0.0, 0.0, -0.5, 0.5, -1.0, 1.0, -1.5, 1.5, -2.0, 2.0, -2.5, 2.5 }; #define NUM (sizeof(x)/sizeof(double)) @@ -19,6 +22,7 @@ double expect_round[] = { __builtin_nan(""), __builtin_inf(), -__builtin_inf(), -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 2.0, 1.0, + -1.0, -0.0, -1.0, -1.0, -2.0, -1.0, -0.0, 0.0, -1.0, 1.0, -1.0, 1.0, -2.0, 2.0, -2.0, 2.0, -3.0, 3.0 }; @@ -26,6 +30,7 @@ double expect_rint[] = { __builtin_nan(""), __builtin_inf(), -__builtin_inf(), -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 2.0, 1.0, + -1.0, -0.0, -1.0, -1.0, -2.0, -1.0, -0.0, 0.0, -0.0, 0.0, -1.0, 1.0, -2.0, 2.0, -2.0, 2.0, -2.0, 2.0 }; @@ -33,6 +38,7 @@ double expect_floor[] = { __builtin_nan(""), __builtin_inf(), -__builtin_inf(), -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, + -1.0, -1.0, -2.0, -1.0, -2.0, -2.0, -0.0, 0.0, -1.0, 0.0, -1.0, 1.0, -2.0, 1.0, -2.0, 2.0, -3.0, 2.0 }; @@ -40,6 +46,7 @@ double expect_ceil[] = { __builtin_nan(""), __builtin_inf(), -__builtin_inf(), -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0.0, 1.0, 1.0, 1.0, 2.0, 1.0, 2.0, 2.0, + -0.0, -0.0, -1.0, -0.0, -1.0, -1.0, -0.0, 0.0, -0.0, 1.0, -1.0, 1.0, -1.0, 2.0, -2.0, 2.0, -2.0, 3.0 }; @@ -47,6 +54,7 @@ double expect_trunc[] = { __builtin_nan(""), __builtin_inf(), -__builtin_inf(), -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, + -0.0, -0.0, -1.0, -0.0, -1.0, -1.0, -0.0, 0.0, -0.0, 0.0, -1.0, 1.0, -1.0, 1.0, -2.0, 2.0, -2.0, 2.0 }; -- cgit v1.1 From 4f683506df6ae4137d5cd362ccb8a50302cf8a2d Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 19 Mar 2019 08:06:48 +0000 Subject: re PR rtl-optimization/89753 (ICE in unroll_loop_constant_iterations, at loop-unroll.c:498) PR rtl-optimization/89753 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for explicit unrolling factor even more robust. From-SVN: r269791 --- gcc/ChangeLog | 6 ++++++ gcc/loop-unroll.c | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/c-c++-common/unroll-7.c | 11 +++++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/c-c++-common/unroll-7.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5684358..5ef5871 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Eric Botcazou + + PR rtl-optimization/89753 + * loop-unroll.c (decide_unroll_constant_iterations): Make guard for + explicit unrolling factor even more robust. + 2019-03-19 Jakub Jelinek PR target/89726 diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c index 0164762..bc7840e 100644 --- a/gcc/loop-unroll.c +++ b/gcc/loop-unroll.c @@ -400,7 +400,7 @@ decide_unroll_constant_iterations (struct loop *loop, int flags) { /* However we cannot unroll completely at the RTL level a loop with constant number of iterations; it should have been peeled instead. */ - if ((unsigned) loop->unroll > desc->niter - 1) + if (desc->niter == 0 || (unsigned) loop->unroll > desc->niter - 1) { if (dump_file) fprintf (dump_file, ";; Loop should have been peeled\n"); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ae077a1..4e35805 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-03-19 Eric Botcazou + + * c-c++-common/unroll-7.c: New test. + 2019-03-19 Jakub Jelinek PR target/89726 diff --git a/gcc/testsuite/c-c++-common/unroll-7.c b/gcc/testsuite/c-c++-common/unroll-7.c new file mode 100644 index 0000000..8332e9f --- /dev/null +++ b/gcc/testsuite/c-c++-common/unroll-7.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fno-tree-dominator-opts" } */ + +int nv; + +void test (void) +{ + #pragma GCC unroll 2 + for (nv = 0; nv < 1; ++nv) + {} +} -- cgit v1.1 From edff2a0574bfab8c35737ae1b4514ec3e18c4c96 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Mar 2019 09:11:25 +0100 Subject: re PR target/89752 (ICE in emit_move_insn, at expr.c:3723) PR target/89752 * gimplify.c (gimplify_asm_expr): For output argument with TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise diagnose error. * g++.dg/ext/asm15.C: Check for particular diagnostic wording. * g++.dg/ext/asm16.C: Likewise. * g++.dg/ext/asm17.C: New test. From-SVN: r269793 --- gcc/ChangeLog | 7 +++++++ gcc/gimplify.c | 13 +++++++++++++ gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/g++.dg/ext/asm15.C | 3 ++- gcc/testsuite/g++.dg/ext/asm16.C | 3 ++- gcc/testsuite/g++.dg/ext/asm17.C | 11 +++++++++++ 6 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/ext/asm17.C (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ef5871..f96d515a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-03-19 Jakub Jelinek + + PR target/89752 + * gimplify.c (gimplify_asm_expr): For output argument with + TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise + diagnose error. + 2019-03-19 Eric Botcazou PR rtl-optimization/89753 diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 6d7a314..e264700 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -6155,6 +6155,19 @@ gimplify_asm_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) is_inout = false; } + /* If we can't make copies, we can only accept memory. */ + if (TREE_ADDRESSABLE (TREE_TYPE (TREE_VALUE (link)))) + { + if (allows_mem) + allows_reg = 0; + else + { + error ("impossible constraint in %"); + error ("non-memory output %d must stay in memory", i); + return GS_ERROR; + } + } + if (!allows_reg && allows_mem) mark_addressable (TREE_VALUE (link)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4e35805..86be3ca 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2019-03-19 Jakub Jelinek + + PR target/89752 + * g++.dg/ext/asm15.C: Check for particular diagnostic wording. + * g++.dg/ext/asm16.C: Likewise. + * g++.dg/ext/asm17.C: New test. + 2019-03-19 Eric Botcazou * c-c++-common/unroll-7.c: New test. diff --git a/gcc/testsuite/g++.dg/ext/asm15.C b/gcc/testsuite/g++.dg/ext/asm15.C index c4946dd..6c6f3df 100644 --- a/gcc/testsuite/g++.dg/ext/asm15.C +++ b/gcc/testsuite/g++.dg/ext/asm15.C @@ -6,5 +6,6 @@ struct S { S (); ~S (); int s; }; void foo (S &s) { - __asm volatile ("" : "+r" (s) : : "memory"); // { dg-error "" } + __asm volatile ("" : "+r" (s) : : "memory"); // { dg-error "impossible constraint" } + // { dg-error "must stay in memory" "" { target *-*-* } .-1 } } diff --git a/gcc/testsuite/g++.dg/ext/asm16.C b/gcc/testsuite/g++.dg/ext/asm16.C index 565cbb3..9ebb4dc 100644 --- a/gcc/testsuite/g++.dg/ext/asm16.C +++ b/gcc/testsuite/g++.dg/ext/asm16.C @@ -6,5 +6,6 @@ struct S { S (); ~S (); int s[64]; } s; void foo () { - __asm volatile ("" : "=r" (s) : : "memory"); // { dg-error "" } + __asm volatile ("" : "=r" (s) : : "memory"); // { dg-error "impossible constraint" } + // { dg-error "must stay in memory" "" { target *-*-* } .-1 } } diff --git a/gcc/testsuite/g++.dg/ext/asm17.C b/gcc/testsuite/g++.dg/ext/asm17.C new file mode 100644 index 0000000..9e7de37 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/asm17.C @@ -0,0 +1,11 @@ +// PR target/89752 +// { dg-do compile } + +struct A { A (); ~A (); short c; }; + +void +foo () +{ + A a0, a1; + __asm volatile ("" : "+rm" (a0), "+rm" (a1)); +} -- cgit v1.1 From 1504f0b4b1d481479c0fc915ae74095b7dd8065d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Mar 2019 11:05:10 +0100 Subject: re PR target/89506 (ICE: in decompose, at rtl.h:2266 with -Og -g) PR target/89506 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use subs for the first alternative except when operands[3] is 1. From-SVN: r269795 --- gcc/ChangeLog | 4 ++++ gcc/config/arm/arm.md | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f96d515a..9327ed8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2019-03-19 Jakub Jelinek + PR target/89506 + * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use + subs for the first alternative except when operands[3] is 1. + PR target/89752 * gimplify.c (gimplify_asm_expr): For output argument with TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 1805901..0aecd03 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -857,27 +857,27 @@ (set_attr "type" "alus_sreg")] ) -;; This is the canonicalization of addsi3_compare0_for_combiner when the +;; This is the canonicalization of subsi3_compare when the ;; addend is a constant. (define_insn "cmpsi2_addneg" [(set (reg:CC CC_REGNUM) (compare:CC (match_operand:SI 1 "s_register_operand" "r,r") - (match_operand:SI 2 "arm_addimm_operand" "L,I"))) + (match_operand:SI 2 "arm_addimm_operand" "I,L"))) (set (match_operand:SI 0 "s_register_operand" "=r,r") (plus:SI (match_dup 1) - (match_operand:SI 3 "arm_addimm_operand" "I,L")))] + (match_operand:SI 3 "arm_addimm_operand" "L,I")))] "TARGET_32BIT && (INTVAL (operands[2]) == trunc_int_for_mode (-INTVAL (operands[3]), SImode))" { - /* For 0 and INT_MIN it is essential that we use subs, as adds - will result in different condition codes (like cmn rather than - like cmp). For other immediates, we should choose whatever - will have smaller encoding. */ - if (operands[2] == const0_rtx - || INTVAL (operands[2]) == -HOST_WIDE_INT_C (0x80000000) - || which_alternative == 1) + /* For 0 and INT_MIN it is essential that we use subs, as adds will result + in different condition codes (like cmn rather than like cmp), so that + alternative comes first. Both alternatives can match for any 0x??000000 + where except for 0 and INT_MIN it doesn't matter what we choose, and also + for -1 and 1 with TARGET_THUMB2, in that case prefer instruction with #1 + as it is shorter. */ + if (which_alternative == 0 && operands[3] != const1_rtx) return "subs%?\\t%0, %1, #%n3"; else return "adds%?\\t%0, %1, %3"; -- cgit v1.1 From 3b595ecaeda647070c6c4ede0c09be78dfc4f763 Mon Sep 17 00:00:00 2001 From: Kelvin Nilsen Date: Tue, 19 Mar 2019 13:44:03 +0000 Subject: re PR target/89736 (New test pr87532-mc.c fails on compiler not defaulting to VSX) gcc/testsuite/ChangeLog: 2019-03-19 Kelvin Nilsen PR target/89736 * gcc.target/powerpc/pr87532-mc.c: Modify dejagnu directives to restrict this test to vsx targets. From-SVN: r269796 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gcc.target/powerpc/pr87532-mc.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 86be3ca..1b5cfeb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Kelvin Nilsen + + PR target/89736 + * gcc.target/powerpc/pr87532-mc.c: Modify dejagnu directives to + restrict this test to vsx targets. + 2019-03-19 Jakub Jelinek PR target/89752 diff --git a/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c b/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c index 400df7f..e5f79aa 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c +++ b/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c @@ -1,8 +1,8 @@ /* { dg-do run { target int128 } } */ -/* { dg-require-effective-target vmx_hw } */ -/* { dg-options "-maltivec -O2" } */ +/* { dg-require-effective-target vsx_hw } */ +/* { dg-options "-mvsx -O2" } */ -/* This test should run the same on any target that supports altivec/dfp +/* This test should run the same on any target that supports vsx instructions. Intentionally not specifying cpu in order to test all code generation paths. */ -- cgit v1.1 From 9195aa172bbc20627f23bfb1612180c83a0a7bab Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 19 Mar 2019 14:00:59 +0000 Subject: libgo: fix build on AIX Since aix/ppc64 has been added to GC toolchain, a mix between new and old files were created in gcc toolchain. This commit corrects this merge for aix/ppc64 and aix/ppc. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167658 From-SVN: r269797 --- gcc/go/gofrontend/MERGE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index a09733f..006da8c 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -87945b620b2100d33e27f33e6276a4e4e5890659 +069afe85f38c099660c5d81950d65248ed4fc516 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. -- cgit v1.1 From 2ca6d1813e47d235bb5f001b1a99b19652ea408a Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 19 Mar 2019 15:53:43 +0100 Subject: re PR lto/87089 (tree check: expected class 'type', have 'declaration' (namespace_decl) in type_with_linkage_p, at ipa-utils.h) PR lto/87809 PR lto/89335 * tree.c (free_lang_data_in_decl): Do not free context of C++ destrutors. * g++.dg/lto/pr87089_0.C: New testcase. * g++.dg/lto/pr87089_1.C: New testcase. * g++.dg/lto/pr89335_0.C: New testcase. From-SVN: r269799 --- gcc/ChangeLog | 7 +++++++ gcc/testsuite/ChangeLog | 8 ++++++++ gcc/testsuite/g++.dg/lto/pr87089_0.C | 21 +++++++++++++++++++++ gcc/testsuite/g++.dg/lto/pr87089_1.C | 12 ++++++++++++ gcc/testsuite/g++.dg/lto/pr89335_0.C | 16 ++++++++++++++++ gcc/tree.c | 10 ++++++++-- 6 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/lto/pr87089_0.C create mode 100644 gcc/testsuite/g++.dg/lto/pr87089_1.C create mode 100644 gcc/testsuite/g++.dg/lto/pr89335_0.C (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9327ed8..bb62711 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-03-19 Jan Hubicka + + PR lto/87809 + PR lto/89335 + * tree.c (free_lang_data_in_decl): Do not free context of C++ + destrutors. + 2019-03-19 Jakub Jelinek PR target/89506 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1b5cfeb..986457a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2019-03-19 Jan Hubicka + + PR lto/87809 + PR lto/89335 + * g++.dg/lto/pr87089_0.C: New testcase. + * g++.dg/lto/pr87089_1.C: New testcase. + * g++.dg/lto/pr89335_0.C: New testcase. + 2019-03-19 Kelvin Nilsen PR target/89736 diff --git a/gcc/testsuite/g++.dg/lto/pr87089_0.C b/gcc/testsuite/g++.dg/lto/pr87089_0.C new file mode 100644 index 0000000..7644534 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr87089_0.C @@ -0,0 +1,21 @@ +// { dg-lto-do link } +// { dg-extra-ld-options "-r -nostdlib -flinker-output=nolto-rel" } +namespace itpp { +template void b(a *c) { c[0].~a(); } +class CFix; +template class d { + void e(const char *); + CFix *data; +}; +class CFix { +public: + virtual ~CFix(); +}; +template <> void d::e(const char *) { b(data); } +} // namespace itpp + +int +main (void) +{ + return 0; +} diff --git a/gcc/testsuite/g++.dg/lto/pr87089_1.C b/gcc/testsuite/g++.dg/lto/pr87089_1.C new file mode 100644 index 0000000..0c243c2 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr87089_1.C @@ -0,0 +1,12 @@ +namespace itpp { +enum a { b }; +class CFix { +public: + virtual ~CFix(); +}; +template class c : CFix { + ~c() {} +}; +template class c<>; +} // namespace itpp + diff --git a/gcc/testsuite/g++.dg/lto/pr89335_0.C b/gcc/testsuite/g++.dg/lto/pr89335_0.C new file mode 100644 index 0000000..df2d2ba --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr89335_0.C @@ -0,0 +1,16 @@ +// { dg-lto-do link } +// { dg-lto-options {{-O2 -flto -Wsuggest-final-methods}} } +// { dg-extra-ld-options "-r -nostdlib -flinker-output=nolto-rel" } +class Container +{ +public: + virtual ~Container (); +}; +class List : public Container // { dg-lto-message "final would enable devirtualization" } +{ +}; +static List cache[256]; +int main (void) +{ + return 0; +} diff --git a/gcc/tree.c b/gcc/tree.c index d061a04..8ea4251 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -5772,10 +5772,16 @@ free_lang_data_in_decl (tree decl, struct free_lang_data_d *fld) not do well with TREE_CHAIN pointers linking them. Also do not drop containing types for virtual methods and tables because - these are needed by devirtualization. */ + these are needed by devirtualization. + C++ destructors are special because C++ frontends sometimes produces + virtual destructor as an alias of non-virtual destructor. In + devirutalization code we always walk through aliases and we need + context to be preserved too. See PR89335 */ if (TREE_CODE (decl) != FIELD_DECL && ((TREE_CODE (decl) != VAR_DECL && TREE_CODE (decl) != FUNCTION_DECL) - || !DECL_VIRTUAL_P (decl))) + || (!DECL_VIRTUAL_P (decl) + && (TREE_CODE (decl) != FUNCTION_DECL + || !DECL_CXX_DESTRUCTOR_P (decl))))) DECL_CONTEXT (decl) = fld_decl_context (DECL_CONTEXT (decl)); } -- cgit v1.1 From 22fdf6af1487e8920c6bd77c4c4f64ec805f21e1 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 19 Mar 2019 14:57:18 +0000 Subject: re PR debug/88389 (-flto -g -gsplit-dwarf is broken) 2019-03-19 Richard Biener PR debug/88389 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. From-SVN: r269800 --- gcc/ChangeLog | 5 +++++ gcc/opts.c | 8 ++++++++ 2 files changed, 13 insertions(+) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb62711..94d1e4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-03-19 Richard Biener + + PR debug/88389 + * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. + 2019-03-19 Jan Hubicka PR lto/87809 diff --git a/gcc/opts.c b/gcc/opts.c index 3161e0b..02f6b46 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -1077,6 +1077,14 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, "linker plugin"); opts->x_flag_fat_lto_objects = 1; } + + /* -gsplit-dwarf isn't compatible with LTO, see PR88389. */ + if (opts->x_dwarf_split_debug_info) + { + inform (loc, "%<-gsplit-dwarf%> is not supported with LTO," + " disabling"); + opts->x_dwarf_split_debug_info = 0; + } } /* We initialize opts->x_flag_split_stack to -1 so that targets can set a -- cgit v1.1 From bb48c402f4ca67c9e5d0ed1104700c50058d6fb8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Mar 2019 17:10:59 +0100 Subject: re PR target/89378 ([MIPS] FAIL: gcc.dg/vect/pr88598-3.c -mmsa (internal compiler error)) PR target/89378 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart instead of gen_rtx_SUBREG. * config/mips/mips-msa.md (vec_extract): Likewise. From-SVN: r269801 --- gcc/ChangeLog | 7 +++++++ gcc/config/mips/mips-msa.md | 4 ++-- gcc/config/mips/mips.c | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 94d1e4e..f2ce11d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-03-19 Jakub Jelinek + + PR target/89378 + * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart + instead of gen_rtx_SUBREG. + * config/mips/mips-msa.md (vec_extract): Likewise. + 2019-03-19 Richard Biener PR debug/88389 diff --git a/gcc/config/mips/mips-msa.md b/gcc/config/mips/mips-msa.md index 9777590..929646d 100644 --- a/gcc/config/mips/mips-msa.md +++ b/gcc/config/mips/mips-msa.md @@ -346,12 +346,12 @@ operands[2] accordingly. */ rtx wd = gen_reg_rtx (V16QImode); rtx ws = gen_reg_rtx (V16QImode); - emit_move_insn (ws, gen_rtx_SUBREG (V16QImode, operands[1], 0)); + emit_move_insn (ws, gen_lowpart (V16QImode, operands[1])); rtx n = GEN_INT (val * GET_MODE_SIZE (mode)); gcc_assert (INTVAL (n) < GET_MODE_NUNITS (V16QImode)); emit_insn (gen_msa_sldi_b (wd, ws, ws, n)); temp = gen_reg_rtx (mode); - emit_move_insn (temp, gen_rtx_SUBREG (mode, wd, 0)); + emit_move_insn (temp, gen_lowpart (mode, wd)); } emit_insn (gen_msa_vec_extract_ (operands[0], temp)); DONE; diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 4b42077..48f3244 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -22265,7 +22265,7 @@ mips_expand_vec_cond_expr (machine_mode mode, machine_mode vimode, if (mode != vimode) { xop1 = gen_reg_rtx (vimode); - emit_move_insn (xop1, gen_rtx_SUBREG (vimode, operands[1], 0)); + emit_move_insn (xop1, gen_lowpart (vimode, operands[1])); } emit_move_insn (src1, xop1); } @@ -22282,7 +22282,7 @@ mips_expand_vec_cond_expr (machine_mode mode, machine_mode vimode, if (mode != vimode) { xop2 = gen_reg_rtx (vimode); - emit_move_insn (xop2, gen_rtx_SUBREG (vimode, operands[2], 0)); + emit_move_insn (xop2, gen_lowpart (vimode, operands[2])); } emit_move_insn (src2, xop2); } -- cgit v1.1 From e8926ce09f3ef0795b87dc922f431157e6916748 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Tue, 19 Mar 2019 17:58:42 +0100 Subject: rs6000: Unaligned stfiwx on older CPUs (PR89746) The "classic" PowerPCs (6xx/7xx) are not STRICT_ALIGNMENT, but their floating point units are. This is not normally a problem, the ABIs make everything FP aligned. The RTL patterns converting FP to integer however get a potentially unaligned destination, and we do not want to do an stfiwx on that on such older CPUs. This fixes it. It does not change anything for TARGET_MFCRF targets (POWER4 and later). It also won't change anything for strict-alignment targets, or CPUs without hardware FP of course, or CPUs that do not implement stfiwx (older 4xx/5xx/8xx). It does not change the corresponding fixuns* pattern, because that can not be enabled on any CPU that cannot handle unaligned FP well. PR target/89746 * config/rs6000/rs6000.md (fix_truncsi2_stfiwx): If we have a non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, go via a stack temporary. From-SVN: r269802 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.md | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2ce11d..510faab8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-03-19 Segher Boessenkool + + PR target/89746 + * config/rs6000/rs6000.md (fix_truncsi2_stfiwx): If we have a + non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, + go via a stack temporary. + 2019-03-19 Jakub Jelinek PR target/89378 diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 584b9da..297b884 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -5639,13 +5639,13 @@ tmp = gen_reg_rtx (DImode); emit_insn (gen_fctiwz_ (tmp, src)); - if (MEM_P (dest)) + if (MEM_P (dest) && (TARGET_MFCRF || MEM_ALIGN (dest) >= 32)) { dest = rs6000_force_indexed_or_indirect_mem (dest); emit_insn (gen_stfiwx (dest, tmp)); DONE; } - else if (TARGET_POWERPC64 && (TARGET_MFPGPR || TARGET_DIRECT_MOVE)) + else if (TARGET_POWERPC64 && (TARGET_MFPGPR || TARGET_DIRECT_MOVE) && !MEM_P (dest)) { dest = gen_lowpart (DImode, dest); emit_move_insn (dest, tmp); -- cgit v1.1 From 2214085affb80feb19e79882ee769e28c2a85a5a Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Tue, 19 Mar 2019 18:08:28 +0100 Subject: Fix set of even probabilities (PR middle-end/89737). 2019-03-19 Martin Liska PR middle-end/89737 * predict.c (combine_predictions_for_bb): Empty likely_edges and unlikely_edges if there's an edge that belongs to both these sets. 2019-03-19 Martin Liska PR middle-end/89737 * gcc.dg/pr89737.c: New test. From-SVN: r269804 --- gcc/ChangeLog | 6 ++++++ gcc/predict.c | 17 ++++++++++++++--- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr89737.c | 17 +++++++++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr89737.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 510faab8..750d5e6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Martin Liska + + PR middle-end/89737 + * predict.c (combine_predictions_for_bb): Empty likely_edges and + unlikely_edges if there's an edge that belongs to both these sets. + 2018-03-19 Segher Boessenkool PR target/89746 diff --git a/gcc/predict.c b/gcc/predict.c index 43ee91a..60a19d7 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -1229,12 +1229,23 @@ combine_predictions_for_bb (basic_block bb, bool dry_run) if (pred->ep_probability <= PROB_VERY_UNLIKELY || pred->ep_predictor == PRED_COLD_LABEL) unlikely_edges.add (pred->ep_edge); - if (pred->ep_probability >= PROB_VERY_LIKELY - || pred->ep_predictor == PRED_BUILTIN_EXPECT - || pred->ep_predictor == PRED_HOT_LABEL) + else if (pred->ep_probability >= PROB_VERY_LIKELY + || pred->ep_predictor == PRED_BUILTIN_EXPECT + || pred->ep_predictor == PRED_HOT_LABEL) likely_edges.add (pred); } + /* It can happen that an edge is both in likely_edges and unlikely_edges. + Clear both sets in that situation. */ + for (hash_set::iterator it = likely_edges.begin (); + it != likely_edges.end (); ++it) + if (unlikely_edges.contains ((*it)->ep_edge)) + { + likely_edges.empty (); + unlikely_edges.empty (); + break; + } + if (!dry_run) set_even_probabilities (bb, &unlikely_edges, &likely_edges); clear_bb_predictions (bb); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 986457a..86cc80b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-19 Martin Liska + + PR middle-end/89737 + * gcc.dg/pr89737.c: New test. + 2019-03-19 Jan Hubicka PR lto/87809 diff --git a/gcc/testsuite/gcc.dg/pr89737.c b/gcc/testsuite/gcc.dg/pr89737.c new file mode 100644 index 0000000..cd3dc81 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr89737.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-profile_estimate" } */ + +int a, b; + +void c() { + &&d; + void *e = &&f, *g = &&h; +f: + __attribute__((hot)) h : __attribute__((cold)) for (; a;) goto *g; +d: + for (; b;) + goto *e; +} + +/* { dg-final { scan-tree-dump-times "predicted to even probabilities" 4 "profile_estimate"} } */ + -- cgit v1.1 From e3ba46bd52f9bd6db8788384dd186c9ba5963129 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Tue, 19 Mar 2019 17:45:34 +0000 Subject: PR tree-optimization/89644 - False-positive -Warray-bounds diagnostic on strncpy gcc/ChangeLog: PR tree-optimization/89644 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated arrays in determining sequence sizes in strncpy and stpncpy. gcc/testsuite/ChangeLog: PR tree-optimization/89644 * gcc.dg/Wstringop-truncation-8.c: New test. From-SVN: r269807 --- gcc/ChangeLog | 6 ++ gcc/testsuite/ChangeLog | 5 ++ gcc/testsuite/gcc.dg/Wstringop-truncation-8.c | 94 +++++++++++++++++++++++++++ gcc/tree-ssa-strlen.c | 30 ++++++--- 4 files changed, 127 insertions(+), 8 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/Wstringop-truncation-8.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 750d5e6..fe1f064 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Martin Sebor + + PR tree-optimization/89644 + * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated + arrays in determining sequence sizes in strncpy and stpncpy. + 2019-03-19 Martin Liska PR middle-end/89737 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 86cc80b..cf01b2f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-19 Martin Sebor + + PR tree-optimization/89644 + * gcc.dg/Wstringop-truncation-8.c: New test. + 2019-03-19 Martin Liska PR middle-end/89737 diff --git a/gcc/testsuite/gcc.dg/Wstringop-truncation-8.c b/gcc/testsuite/gcc.dg/Wstringop-truncation-8.c new file mode 100644 index 0000000..1745da5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wstringop-truncation-8.c @@ -0,0 +1,94 @@ +/* PR tree-optimization/89644 - False-positive -Warray-bounds diagnostic + on strncpy + { dg-do compile } + { dg-options "-O2 -Wall -ftrack-macro-expansion=0" } */ + +#define NONSTR __attribute__ ((nonstring)) + +typedef __SIZE_TYPE__ size_t; + +size_t strlen (const char*); +extern char* stpncpy (char*, const char*, size_t); +extern char* strncpy (char*, const char*, size_t); + +void sink (char*, ...); + +char f0 (char *s) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + if (*s) + strncpy (a, s, sizeof a); /* { dg-bogus "\\\[-Warray-bounds" } */ + return a[0]; +} + +void f1 (char *s) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + if (*s) + strncpy (a, s, sizeof a); /* { dg-bogus "\\\[-Warray-bounds" } */ + sink (a); +} + +char f2 (void) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + char b[6] NONSTR = { 6, 5, 4, 3, 2, 1 }; + strncpy (a, b + 1, 5); /* { dg-bogus "\\\[-Warray-bounds" } */ + return a[0]; +} + +void f3 (void) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + char b[6] NONSTR = { 6, 5, 4, 3, 2, 1 }; + strncpy (a, b + 2, 4); /* { dg-bogus "\\\[-Warray-bounds" } */ + sink (a); +} + +void f4 (NONSTR char *d) +{ + char b[6] NONSTR = { 6, 5, 4, 3, 2, 1 }; + strncpy (d, b + 3, 3); /* { dg-bogus "\\\[-Warray-bounds" } */ + sink (d); +} + + +char g0 (char *s) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + if (*s) + stpncpy (a, s, sizeof a); /* { dg-bogus "\\\[-Warray-bounds" } */ + return a[0]; +} + +void g1 (char *s) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + char *p = 0; + if (*s) + p = stpncpy (a, s, sizeof a); /* { dg-bogus "\\\[-Warray-bounds" } */ + sink (a, p); +} + +char g2 (void) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + char b[6] NONSTR = { 6, 5, 4, 3, 2, 1 }; + stpncpy (a, b + 1, 5); /* { dg-bogus "\\\[-Warray-bounds" } */ + return a[0]; +} + +void g3 (void) +{ + char a[6] NONSTR = { 1, 2, 3, 4, 5, 6 }; + char b[6] NONSTR = { 6, 5, 4, 3, 2, 1 }; + char *p = stpncpy (a, b + 2, 4); /* { dg-bogus "\\\[-Warray-bounds" } */ + sink (a, p); +} + +void g4 (NONSTR char *d) +{ + char b[6] NONSTR = { 6, 5, 4, 3, 2, 1 }; + char *p = stpncpy (d, b + 3, 3); /* { dg-bogus "\\\[-Warray-bounds" } */ + sink (d, p); +} diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c index 1eaed66..cf0f70d 100644 --- a/gcc/tree-ssa-strlen.c +++ b/gcc/tree-ssa-strlen.c @@ -2206,13 +2206,21 @@ handle_builtin_stxncpy (built_in_function, gimple_stmt_iterator *gsi) int didx = get_stridx (dst); if (strinfo *sidst = didx > 0 ? get_strinfo (didx) : NULL) { - /* Compute the size of the destination string including the NUL. */ + /* Compute the size of the destination string including the nul + if it is known to be nul-terminated. */ if (sidst->nonzero_chars) { - tree type = TREE_TYPE (sidst->nonzero_chars); - dstsize = fold_build2 (PLUS_EXPR, type, sidst->nonzero_chars, - build_int_cst (type, 1)); + if (sidst->endptr) + { + /* String is known to be nul-terminated. */ + tree type = TREE_TYPE (sidst->nonzero_chars); + dstsize = fold_build2 (PLUS_EXPR, type, sidst->nonzero_chars, + build_int_cst (type, 1)); + } + else + dstsize = sidst->nonzero_chars; } + dst = sidst->ptr; } @@ -2224,12 +2232,18 @@ handle_builtin_stxncpy (built_in_function, gimple_stmt_iterator *gsi) over the terminating nul so SISRC->DONT_INVALIDATE must be left clear. */ - /* Compute the size of the source string including the NUL. */ + /* Compute the size of the source string including the terminating + nul if its known to be nul-terminated. */ if (sisrc->nonzero_chars) { - tree type = TREE_TYPE (sisrc->nonzero_chars); - srcsize = fold_build2 (PLUS_EXPR, type, sisrc->nonzero_chars, - build_int_cst (type, 1)); + if (sisrc->endptr) + { + tree type = TREE_TYPE (sisrc->nonzero_chars); + srcsize = fold_build2 (PLUS_EXPR, type, sisrc->nonzero_chars, + build_int_cst (type, 1)); + } + else + srcsize = sisrc->nonzero_chars; } src = sisrc->ptr; -- cgit v1.1 From e0748030863e158ced48802ea42b27e5ec26995f Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Tue, 19 Mar 2019 18:35:42 +0000 Subject: PR tree-optimization/89644 - false-positive -Warray-bounds on strncpy with unterminated array gcc/ChangeLog: * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p rather than endptr as an indicator of nul-termination. From-SVN: r269809 --- gcc/ChangeLog | 4 ++++ gcc/tree-ssa-strlen.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fe1f064..991f019 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,10 @@ 2019-03-19 Martin Sebor PR tree-optimization/89644 + * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p + rather than endptr as an indicator of nul-termination. + + PR tree-optimization/89644 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated arrays in determining sequence sizes in strncpy and stpncpy. diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c index cf0f70d..a2dc9c7 100644 --- a/gcc/tree-ssa-strlen.c +++ b/gcc/tree-ssa-strlen.c @@ -2210,7 +2210,7 @@ handle_builtin_stxncpy (built_in_function, gimple_stmt_iterator *gsi) if it is known to be nul-terminated. */ if (sidst->nonzero_chars) { - if (sidst->endptr) + if (sidst->full_string_p) { /* String is known to be nul-terminated. */ tree type = TREE_TYPE (sidst->nonzero_chars); @@ -2236,7 +2236,7 @@ handle_builtin_stxncpy (built_in_function, gimple_stmt_iterator *gsi) nul if its known to be nul-terminated. */ if (sisrc->nonzero_chars) { - if (sisrc->endptr) + if (sisrc->full_string_p) { tree type = TREE_TYPE (sisrc->nonzero_chars); srcsize = fold_build2 (PLUS_EXPR, type, sisrc->nonzero_chars, -- cgit v1.1 From ea5ac5a69b4b474bb221051e705f98d8599253fa Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 19 Mar 2019 18:42:43 +0000 Subject: compiler,runtime: pass old slice's ptr/len/cap by value to growslice In the C calling convention, on AMD64, and probably a number of other architectures, a 3-word struct argument is passed on stack. This is less efficient than passing in three registers. Further, this may affect the code generation in other part of the program, even if the function is not actually called. Slices are common in Go and append is a common slice operation, which calls growslice in the growing path. To improve the code generation, pass the slice header's three fields as separate values, instead of a struct, to growslice. The drawback is that this makes the runtime implementation slightly diverges from the gc runtime. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168277 From-SVN: r269811 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/expressions.cc | 24 +++++++++++++++++------- gcc/go/gofrontend/runtime.def | 3 ++- 3 files changed, 20 insertions(+), 9 deletions(-) (limited to 'gcc') diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 006da8c..4a9853a 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -069afe85f38c099660c5d81950d65248ed4fc516 +6e5ff227d4e77d340e86bd2c5e045d5532c2d7d7 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index f41647a..018fdbb 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -7986,23 +7986,33 @@ Builtin_call_expression::flatten_append(Gogo* gogo, Named_object* function, // Using uint here means that if the computation of ntmp overflowed, // we will call growslice which will panic. - Expression* left = Expression::make_temporary_reference(ntmp, loc); - left = Expression::make_cast(uint_type, left, loc); - Named_object* capfn = gogo->lookup_global("cap"); Expression* capref = Expression::make_func_reference(capfn, NULL, loc); call_args = new Expression_list(); call_args->push_back(Expression::make_temporary_reference(s1tmp, loc)); - Expression* right = Expression::make_call(capref, call_args, false, loc); + Expression* cap = Expression::make_call(capref, call_args, false, loc); + gogo->lower_expression(function, inserter, &cap); + gogo->flatten_expression(function, inserter, &cap); + Temporary_statement* c1tmp = Statement::make_temporary(int_type, cap, loc); + inserter->insert(c1tmp); + + Expression* left = Expression::make_temporary_reference(ntmp, loc); + left = Expression::make_cast(uint_type, left, loc); + Expression* right = Expression::make_temporary_reference(c1tmp, loc); right = Expression::make_cast(uint_type, right, loc); Expression* cond = Expression::make_binary(OPERATOR_GT, left, right, loc); + Type* unsafe_ptr_type = Type::make_pointer_type(Type::make_void_type()); Expression* a1 = Expression::make_type_descriptor(element_type, loc); Expression* a2 = Expression::make_temporary_reference(s1tmp, loc); - Expression* a3 = Expression::make_temporary_reference(ntmp, loc); - Expression* call = Runtime::make_call(Runtime::GROWSLICE, loc, 3, - a1, a2, a3); + a2 = slice_type->array_type()->get_value_pointer(gogo, a2, false); + a2 = Expression::make_cast(unsafe_ptr_type, a2, loc); + Expression* a3 = Expression::make_temporary_reference(l1tmp, loc); + Expression* a4 = Expression::make_temporary_reference(c1tmp, loc); + Expression* a5 = Expression::make_temporary_reference(ntmp, loc); + Expression* call = Runtime::make_call(Runtime::GROWSLICE, loc, 5, + a1, a2, a3, a4, a5); call = Expression::make_unsafe_cast(slice_type, call, loc); ref = Expression::make_temporary_reference(s1tmp, loc); diff --git a/gcc/go/gofrontend/runtime.def b/gcc/go/gofrontend/runtime.def index 273c860..83a7152 100644 --- a/gcc/go/gofrontend/runtime.def +++ b/gcc/go/gofrontend/runtime.def @@ -202,7 +202,8 @@ DEF_GO_RUNTIME(TYPEDSLICECOPY, "runtime.typedslicecopy", // Grow a slice for append. -DEF_GO_RUNTIME(GROWSLICE, "runtime.growslice", P3(TYPE, SLICE, INT), R1(SLICE)) +DEF_GO_RUNTIME(GROWSLICE, "runtime.growslice", + P5(TYPE, POINTER, INT, INT, INT), R1(SLICE)) // Register roots (global variables) for the garbage collector. -- cgit v1.1 From 2a23a1c39fb33df0277abd4486a3da64ae5e62c2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Mar 2019 20:04:14 +0100 Subject: re PR rtl-optimization/89768 (ICE in compare_and_jump_seq at loop-unroll.c:838) PR rtl-optimization/89768 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode instead of GEN_INT. (unroll_loop_runtime_iterations): Likewise. From-SVN: r269812 --- gcc/ChangeLog | 7 +++++++ gcc/loop-unroll.c | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 991f019..f4b59d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-03-19 Jakub Jelinek + + PR rtl-optimization/89768 + * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode + instead of GEN_INT. + (unroll_loop_runtime_iterations): Likewise. + 2019-03-19 Martin Sebor PR tree-optimization/89644 diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c index bc7840e..1b4c73b 100644 --- a/gcc/loop-unroll.c +++ b/gcc/loop-unroll.c @@ -652,7 +652,7 @@ unroll_loop_constant_iterations (struct loop *loop) if (loop->any_likely_upper_bound) loop->nb_iterations_likely_upper_bound = wi::udiv_trunc (loop->nb_iterations_likely_upper_bound, max_unroll + 1); - desc->niter_expr = GEN_INT (desc->niter); + desc->niter_expr = gen_int_mode (desc->niter, desc->mode); /* Remove the edges. */ FOR_EACH_VEC_ELT (remove_edges, i, e) @@ -1020,9 +1020,9 @@ unroll_loop_runtime_iterations (struct loop *loop) preheader = split_edge (loop_preheader_edge (loop)); /* Add in count of edge from switch block. */ preheader->count += iter_count; - branch_code = compare_and_jump_seq (copy_rtx (niter), GEN_INT (j), EQ, - block_label (preheader), p, - NULL); + branch_code = compare_and_jump_seq (copy_rtx (niter), + gen_int_mode (j, desc->mode), EQ, + block_label (preheader), p, NULL); /* We rely on the fact that the compare and jump cannot be optimized out, and hence the cfg we create is correct. */ -- cgit v1.1 From 026216a753ef0a757a9e368a59fa667ea422cf09 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 19 Mar 2019 22:33:34 +0000 Subject: RISC-V: Fix %lo overflow with BLKmode references. gcc/ PR target/89411 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals align, size, offset. Use them to handle a BLKmode reference. Update comment. (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. gcc/testsuite/ PR target/89411 * gcc.target/riscv/losum-overflow.c: New test. From-SVN: r269813 --- gcc/ChangeLog | 8 +++++ gcc/config/riscv/riscv.c | 43 +++++++++++++++++++++---- gcc/testsuite/ChangeLog | 5 +++ gcc/testsuite/gcc.target/riscv/losum-overflow.c | 29 +++++++++++++++++ 4 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/losum-overflow.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f4b59d7..adf1382 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-03-19 Jim Wilson + + PR target/89411 + * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals + align, size, offset. Use them to handle a BLKmode reference. Update + comment. + (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. + 2019-03-19 Jakub Jelinek PR rtl-optimization/89768 diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c index 8e78ab7..d8446f8 100644 --- a/gcc/config/riscv/riscv.c +++ b/gcc/config/riscv/riscv.c @@ -708,11 +708,15 @@ riscv_split_symbol_type (enum riscv_symbol_type symbol_type) } /* Return true if a LO_SUM can address a value of mode MODE when the - LO_SUM symbol has type SYM_TYPE. */ + LO_SUM symbol has type SYM_TYPE. X is the LO_SUM second operand, which + is used when the mode is BLKmode. */ static bool -riscv_valid_lo_sum_p (enum riscv_symbol_type sym_type, machine_mode mode) +riscv_valid_lo_sum_p (enum riscv_symbol_type sym_type, machine_mode mode, + rtx x) { + int align, size; + /* Check that symbols of type SYMBOL_TYPE can be used to access values of mode MODE. */ if (riscv_symbol_insns (sym_type) == 0) @@ -722,11 +726,38 @@ riscv_valid_lo_sum_p (enum riscv_symbol_type sym_type, machine_mode mode) if (!riscv_split_symbol_type (sym_type)) return false; + /* We can't tell size or alignment when we have BLKmode, so try extracing a + decl from the symbol if possible. */ + if (mode == BLKmode) + { + rtx offset; + + /* Extract the symbol from the LO_SUM operand, if any. */ + split_const (x, &x, &offset); + + /* Might be a CODE_LABEL. We can compute align but not size for that, + so don't bother trying to handle it. */ + if (!SYMBOL_REF_P (x)) + return false; + + /* Use worst case assumptions if we don't have a SYMBOL_REF_DECL. */ + align = (SYMBOL_REF_DECL (x) + ? DECL_ALIGN (SYMBOL_REF_DECL (x)) + : 1); + size = (SYMBOL_REF_DECL (x) && DECL_SIZE (SYMBOL_REF_DECL (x)) + ? tree_to_uhwi (DECL_SIZE (SYMBOL_REF_DECL (x))) + : 2*BITS_PER_WORD); + } + else + { + align = GET_MODE_ALIGNMENT (mode); + size = GET_MODE_BITSIZE (mode); + } + /* We may need to split multiword moves, so make sure that each word can be accessed without inducing a carry. */ - if (GET_MODE_SIZE (mode) > UNITS_PER_WORD - && (!TARGET_STRICT_ALIGN - || GET_MODE_BITSIZE (mode) > GET_MODE_ALIGNMENT (mode))) + if (size > BITS_PER_WORD + && (!TARGET_STRICT_ALIGN || size > align)) return false; return true; @@ -772,7 +803,7 @@ riscv_classify_address (struct riscv_address_info *info, rtx x, info->symbol_type = riscv_classify_symbolic_expression (info->offset); return (riscv_valid_base_register_p (info->reg, mode, strict_p) - && riscv_valid_lo_sum_p (info->symbol_type, mode)); + && riscv_valid_lo_sum_p (info->symbol_type, mode, info->offset)); case CONST_INT: /* Small-integer addresses don't occur very often, but they diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cf01b2f..7ad6ccc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-19 Jim Wilson + + PR target/89411 + * gcc.target/riscv/losum-overflow.c: New test. + 2019-03-19 Martin Sebor PR tree-optimization/89644 diff --git a/gcc/testsuite/gcc.target/riscv/losum-overflow.c b/gcc/testsuite/gcc.target/riscv/losum-overflow.c new file mode 100644 index 0000000..9c01c7f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/losum-overflow.c @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc -mabi=ilp32 -O2 -fno-section-anchors" } */ + +/* Check for %lo overflow. Adding an offset larger than the alignment can + overflow if the data is allocated to an address mod 4KB that is between + 2KB-offset+1 and 2KB-1. */ +typedef long long int int64_t; + +#pragma pack(push) +#pragma pack(1) +struct S0 { + signed f0 : 4; + const volatile int64_t f1; + volatile signed f2 : 1; + signed f3 : 31; + unsigned f4 : 8; + signed f5 : 20; + unsigned f6 : 5; +}; +#pragma pack(pop) + +struct S0 g_3030 = {0,-9L,-0,-22553,7,-841,1}; + +int64_t +sub (void) +{ + return g_3030.f1; +} +/* { dg-final { scan-assembler-not "%lo\\(g_3030\\+4\\)" } } */ -- cgit v1.1 From bec1da64aec26a490a6de5a9aa4ee667805e8445 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Tue, 19 Mar 2019 22:43:10 +0000 Subject: PR tree-optimization/89688 - -Wstringop-overflow confused by const 2D array of char gcc/c/ChangeLog: PR tree-optimization/89688 * c-decl.c (finish_decl): Call braced_lists_to_string for more kinds of initializers. gcc/c-family/ChangeLog: PR tree-optimization/89688 * c-common.c (braced_list_to_string): Make static. (braced_lists_to_strings): Define new function. * c-common.h (braced_list_to_string): Remove. (braced_lists_to_strings): Declare. gcc/cp/ChangeLog: PR tree-optimization/89688 * typeck2.c (store_init_value): Call braced_lists_to_string for more kinds of initializers. gcc/testsuite/ChangeLog: PR tree-optimization/89688 * gcc.dg/strlenopt-61.c: New test. * g++.dg/warn/Wstringop-overflow-2.C: New test. From-SVN: r269814 --- gcc/c-family/ChangeLog | 8 + gcc/c-family/c-common.c | 50 +++++- gcc/c-family/c-common.h | 3 +- gcc/c/ChangeLog | 6 + gcc/c/c-decl.c | 9 +- gcc/cp/ChangeLog | 6 + gcc/cp/typeck2.c | 7 +- gcc/testsuite/ChangeLog | 6 + gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C | 29 +++ gcc/testsuite/gcc.dg/strlenopt-61.c | 218 +++++++++++++++++++++++ 10 files changed, 331 insertions(+), 11 deletions(-) create mode 100644 gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C create mode 100644 gcc/testsuite/gcc.dg/strlenopt-61.c (limited to 'gcc') diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 910cee8..df61b69 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,11 @@ +2019-03-19 Martin Sebor + + PR tree-optimization/89688 + * c-common.c (braced_list_to_string): Make static. + (braced_lists_to_strings): Define new function. + * c-common.h (braced_list_to_string): Remove. + (braced_lists_to_strings): Declare. + 2019-03-12 Martin Liska * c-opts.c (c_common_handle_option): Wrap option with %< and %>. diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 019f108..0e17fef 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -8814,7 +8814,7 @@ maybe_add_include_fixit (rich_location *richloc, const char *header, TYPE into a STRING_CST for convenience and efficiency. Return the converted string on success or the original ctor on failure. */ -tree +static tree braced_list_to_string (tree type, tree ctor) { if (!tree_fits_uhwi_p (TYPE_SIZE_UNIT (type))) @@ -8895,4 +8895,52 @@ braced_list_to_string (tree type, tree ctor) return res; } +/* Attempt to convert a CTOR containing braced array initializer lists + for array TYPE into one containing STRING_CSTs, for convenience and + efficiency. Recurse for arrays of arrays and member initializers. + Return the converted CTOR or STRING_CST on success or the original + CTOR otherwise. */ + +tree +braced_lists_to_strings (tree type, tree ctor) +{ + if (TREE_CODE (ctor) != CONSTRUCTOR) + return ctor; + + tree_code code = TREE_CODE (type); + + tree ttp; + if (code == ARRAY_TYPE) + ttp = TREE_TYPE (type); + else if (code == RECORD_TYPE) + { + ttp = TREE_TYPE (ctor); + if (TREE_CODE (ttp) == ARRAY_TYPE) + { + type = ttp; + ttp = TREE_TYPE (ttp); + } + } + else + return ctor; + + if (TYPE_STRING_FLAG (ttp)) + return braced_list_to_string (type, ctor); + + code = TREE_CODE (ttp); + if (code == ARRAY_TYPE || code == RECORD_TYPE) + { + /* Handle array of arrays or struct member initializers. */ + tree val; + unsigned HOST_WIDE_INT idx; + FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), idx, val) + { + val = braced_lists_to_strings (ttp, val); + CONSTRUCTOR_ELT (ctor, idx)->value = val; + } + } + + return ctor; +} + #include "gt-c-family-c-common.h" diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h index 394a0ea..104c742 100644 --- a/gcc/c-family/c-common.h +++ b/gcc/c-family/c-common.h @@ -1372,7 +1372,8 @@ extern void maybe_add_include_fixit (rich_location *, const char *, bool); extern void maybe_suggest_missing_token_insertion (rich_location *richloc, enum cpp_ttype token_type, location_t prev_token_loc); -extern tree braced_list_to_string (tree, tree); +extern tree braced_lists_to_strings (tree, tree); + extern bool has_attribute (location_t, tree, tree, tree (*)(tree)); #if CHECKING_P diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index fd3d009..fc8049e 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Martin Sebor + + PR tree-optimization/89688 + * c-decl.c (finish_decl): Call braced_lists_to_string for more + kinds of initializers. + 2019-03-19 Jakub Jelinek PR c/89734 diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index e8b7ca4..8d5c35a 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -5165,11 +5165,10 @@ finish_decl (tree decl, location_t init_loc, tree init, relayout_decl (decl); } - if (TREE_CODE (type) == ARRAY_TYPE - && TYPE_STRING_FLAG (TREE_TYPE (type)) - && DECL_INITIAL (decl) - && TREE_CODE (DECL_INITIAL (decl)) == CONSTRUCTOR) - DECL_INITIAL (decl) = braced_list_to_string (type, DECL_INITIAL (decl)); + /* Look for braced array initializers for character arrays and + recursively convert them into STRING_CSTs. */ + if (tree init = DECL_INITIAL (decl)) + DECL_INITIAL (decl) = braced_lists_to_strings (type, init); if (VAR_P (decl)) { diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 76bc8ff..2157496 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Martin Sebor + + PR tree-optimization/89688 + * typeck2.c (store_init_value): Call braced_lists_to_string for more + kinds of initializers. + 2019-03-18 Jason Merrill PR c++/89630 - ICE with dependent using-decl as template arg. diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 456c4fc..e50d6ed 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -824,10 +824,9 @@ store_init_value (tree decl, tree init, vec** cleanups, int flags) value = digest_init_flags (type, init, flags, tf_warning_or_error); } - if (TREE_CODE (type) == ARRAY_TYPE - && TYPE_STRING_FLAG (TREE_TYPE (type)) - && TREE_CODE (value) == CONSTRUCTOR) - value = braced_list_to_string (type, value); + /* Look for braced array initializers for character arrays and + recursively convert them into STRING_CSTs. */ + value = braced_lists_to_strings (type, value); current_ref_temp_count = 0; value = extend_ref_init_temps (decl, value, cleanups); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7ad6ccc..e60ec93 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2019-03-19 Martin Sebor + + PR tree-optimization/89688 + * gcc.dg/strlenopt-61.c: New test. + * g++.dg/warn/Wstringop-overflow-2.C: New test. + 2019-03-19 Jim Wilson PR target/89411 diff --git a/gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C b/gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C new file mode 100644 index 0000000..425ba83 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wstringop-overflow-2.C @@ -0,0 +1,29 @@ +/* PR tree-optimization/89688 - -Wstringop-overflow confused by const 2D + array of char + { dg-do compile } + { dg-options "-Wall -fdump-tree-gimple -fdump-tree-optimized" } */ + +extern "C" __SIZE_TYPE__ strlen (const char*); + +const char a2[2] = { '1' }; + +void a2_len () +{ + if (strlen (a2) != 1) + __builtin_abort (); +} + +const char a2_2[2][3] = { { '1' }, { '1', '2' } }; + +void a2_2_len () +{ + if (strlen (a2_2[0]) != 1) // { dg-bogus "-Wstringop-overflow" } + __builtin_abort (); + + if (strlen (a2_2[1]) != 2) // { dg-bogus "-Wstringop-overflow" } + __builtin_abort (); +} + + +/* { dg-final { scan-tree-dump-not "abort" "optimized" } } + { dg-final { scan-tree-dump-not "strlen" "gimple" } } */ diff --git a/gcc/testsuite/gcc.dg/strlenopt-61.c b/gcc/testsuite/gcc.dg/strlenopt-61.c new file mode 100644 index 0000000..4f8e9c0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/strlenopt-61.c @@ -0,0 +1,218 @@ +/* PR tree-optimization/89688 - -Wstringop-overflow confused by const + 2D array of char + { dg-do compile } + { dg-options "-Wall -fdump-tree-gimple -fdump-tree-optimized" } */ + +typedef __SIZE_TYPE__ size_t; + +size_t strlen (const char*); +#define CAT(x, y) x ## y +#define CONCAT(x, y) CAT (x, y) +#define FAILNAME(name) CONCAT (call_ ## name ##_on_line_, __LINE__) + +#define FAIL(name) do { \ + extern __attribute__ ((noreturn)) void FAILNAME (name) (void); \ + FAILNAME (name)(); \ + } while (0) + +#define A(ref, len) \ + if (strlen (ref) != len) FAIL (failure); else (void)0 + +const char a3_4[3][4] = { { 1 }, { 1, 2 }, { 1, 2, 3 } }; + +void test_a4_4 (void) +{ + A (a3_4[0], 1); + A (a3_4[1], 2); + A (a3_4[2], 3); + + A (&a3_4[0][0], 1); + A (&a3_4[0][1], 0); + A (&a3_4[0][2], 0); + A (&a3_4[0][3], 0); + + A (&a3_4[1][0], 2); + A (&a3_4[1][1], 1); + A (&a3_4[1][2], 0); + A (&a3_4[1][3], 0); + + A (&a3_4[2][0], 3); + A (&a3_4[2][1], 2); + A (&a3_4[2][2], 1); + A (&a3_4[2][3], 0); +} + + +const char a3_4_5[3][4][5] = + { + { { 1 }, { 1, 2 }, { 1, 2, 3 }, { 1, 2, 3, 4 } }, + { { 1, 2 }, { 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 } }, + { { 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 }, { 1, 2 } }, + }; + +void test_a3_4_5 (void) +{ + A (a3_4_5[0][0], 1); + A (a3_4_5[0][1], 2); + A (a3_4_5[0][2], 3); + A (a3_4_5[0][3], 4); + + A (a3_4_5[1][0], 2); + A (a3_4_5[1][1], 3); + A (a3_4_5[1][2], 4); + A (a3_4_5[1][3], 1); + + A (a3_4_5[2][0], 3); + A (a3_4_5[2][1], 4); + A (a3_4_5[2][2], 1); + A (a3_4_5[2][3], 2); +} + + +struct S +{ + char a3[3]; + char a4_5[4][5]; +}; + +const struct S sa4[4] = + { + { .a3 = { 0 }, + .a4_5 = + { + { 1 }, { 1, 2 }, { 1, 2, 3 }, { 1, 2, 3, 4 } + } + }, + { .a3 = { 1 }, + .a4_5 = + { + { 1, 2 }, { 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 } + } + }, + { .a3 = { 1, 2 }, + .a4_5 = + { + { 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 }, { 1, 2 } + } + }, + { .a3 = { 1 }, + .a4_5 = + { + { 1, 2, 3, 4 }, "1", { 1, 2 }, "123" + } + } + }; + +void test_sa4 (void) +{ + A (sa4[0].a3, 0); + A (sa4[0].a4_5[0], 1); + A (sa4[0].a4_5[1], 2); + A (sa4[0].a4_5[2], 3); + A (sa4[0].a4_5[3], 4); + + A (sa4[1].a3, 1); + A (sa4[1].a4_5[0], 2); + A (sa4[1].a4_5[1], 3); + A (sa4[1].a4_5[2], 4); + A (sa4[1].a4_5[3], 1); + + A (sa4[2].a3, 2); + A (sa4[2].a4_5[0], 3); + A (sa4[2].a4_5[1], 4); + A (sa4[2].a4_5[2], 1); + A (sa4[2].a4_5[3], 2); + + A (sa4[3].a3, 1); + A (sa4[3].a4_5[0], 4); + A (sa4[3].a4_5[1], 1); + A (sa4[3].a4_5[2], 2); + A (sa4[3].a4_5[3], 3); +} + + +struct T +{ + struct S sa2[2]; + char a4[4]; +}; + +const struct T ta2[2] = + { + [0] = + { + .sa2 = + { + [0] = + { .a3 = { 0 }, + .a4_5 = + { + { 1 }, { 1, 2 }, { 1, 2, 3 }, { 1, 2, 3, 4 } + } + }, + [1] = + { .a3 = { 1 }, + .a4_5 = + { + { 1, 2 }, { 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 } + } + }, + }, + .a4 = "12" + }, + + [1] = + { + .sa2 = + { + [0] = + { .a3 = { 1, 2 }, + .a4_5 = + { + { 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 }, { 1, 2 } + } + }, + { .a3 = { 1 }, + .a4_5 = + { + { 1, 2, 3, 4 }, "1", { 1, 2 }, "123" + } + } + }, + .a4 = "123" + } + }; + +void test_ta2 (void) +{ + A (ta2[0].sa2[0].a3, 0); + A (ta2[0].sa2[0].a4_5[0], 1); + A (ta2[0].sa2[0].a4_5[1], 2); + A (ta2[0].sa2[0].a4_5[2], 3); + A (ta2[0].sa2[0].a4_5[3], 4); + + A (ta2[0].sa2[1].a3, 1); + A (ta2[0].sa2[1].a4_5[0], 2); + A (ta2[0].sa2[1].a4_5[1], 3); + A (ta2[0].sa2[1].a4_5[2], 4); + A (ta2[0].sa2[1].a4_5[3], 1); + + A (ta2[0].a4, 2); + + A (ta2[1].sa2[0].a3, 2); + A (ta2[1].sa2[0].a4_5[0], 3); + A (ta2[1].sa2[0].a4_5[1], 4); + A (ta2[1].sa2[0].a4_5[2], 1); + A (ta2[1].sa2[0].a4_5[3], 2); + + A (ta2[1].sa2[1].a3, 1); + A (ta2[1].sa2[1].a4_5[0], 4); + A (ta2[1].sa2[1].a4_5[1], 1); + A (ta2[1].sa2[1].a4_5[2], 2); + A (ta2[1].sa2[1].a4_5[3], 3); + + A (ta2[1].a4, 3); +} + +/* { dg-final { scan-tree-dump-not "failure" "optimized" } } + { dg-final { scan-tree-dump-not "strlen" "gimple" } } */ -- cgit v1.1 From 7f129d6f1619d81cac4dd0ac58071442e99466ea Mon Sep 17 00:00:00 2001 From: GCC Administrator Date: Wed, 20 Mar 2019 00:16:16 +0000 Subject: Daily bump. From-SVN: r269817 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index a61f3fc..0031c11 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20190319 +20190320 -- cgit v1.1 From a5b821e448e6debe73e1154128b4ea6f7f73fbdd Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 20 Mar 2019 12:26:42 +0100 Subject: re PR target/89752 (ICE in emit_move_insn, at expr.c:3723) PR target/89752 * lra-constraints.c (process_alt_operands) : For BLKmode, don't update this_alternative nor this_alternative_set. * g++.target/aarch64/aarch64.exp: New file. * g++.target/aarch64/pr89752.C: New test. From-SVN: r269819 --- gcc/ChangeLog | 6 ++++ gcc/lra-constraints.c | 4 +-- gcc/testsuite/ChangeLog | 6 ++++ gcc/testsuite/g++.target/aarch64/aarch64.exp | 44 ++++++++++++++++++++++++++++ gcc/testsuite/g++.target/aarch64/pr89752.C | 11 +++++++ 5 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.target/aarch64/aarch64.exp create mode 100644 gcc/testsuite/g++.target/aarch64/pr89752.C (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index adf1382..9b32d93 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-20 Jakub Jelinek + + PR target/89752 + * lra-constraints.c (process_alt_operands) : For BLKmode, don't + update this_alternative nor this_alternative_set. + 2019-03-19 Jim Wilson PR target/89411 diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index ccca130..cba87eb 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -2350,6 +2350,8 @@ process_alt_operands (int only_alternative) break; reg: + if (mode == BLKmode) + break; this_alternative = reg_class_subunion[this_alternative][cl]; IOR_HARD_REG_SET (this_alternative_set, reg_class_contents[cl]); @@ -2360,8 +2362,6 @@ process_alt_operands (int only_alternative) IOR_HARD_REG_SET (this_costly_alternative_set, reg_class_contents[cl]); } - if (mode == BLKmode) - break; winreg = true; if (REG_P (op)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e60ec93..b6a42d9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2019-03-20 Jakub Jelinek + + PR target/89752 + * g++.target/aarch64/aarch64.exp: New file. + * g++.target/aarch64/pr89752.C: New test. + 2019-03-19 Martin Sebor PR tree-optimization/89688 diff --git a/gcc/testsuite/g++.target/aarch64/aarch64.exp b/gcc/testsuite/g++.target/aarch64/aarch64.exp new file mode 100644 index 0000000..22d8042 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/aarch64.exp @@ -0,0 +1,44 @@ +# Specific regression driver for AArch64. +# Copyright (C) 2009-2019 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 +# . */ + +# GCC testsuite that uses the `dg.exp' driver. + +# Exit immediately if this isn't an AArch64 target. +if {![istarget aarch64*-*-*] } then { + return +} + +# Load support procs. +load_lib g++-dg.exp + +global DEFAULT_CXXFLAGS +if ![info exists DEFAULT_CXXFLAGS] then { + set DEFAULT_CXXFLAGS " -pedantic-errors" +} + +# Initialize `dg'. +dg-init + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C]] \ + "" $DEFAULT_CXXFLAGS + +# All done. +dg-finish + diff --git a/gcc/testsuite/g++.target/aarch64/pr89752.C b/gcc/testsuite/g++.target/aarch64/pr89752.C new file mode 100644 index 0000000..6beea74 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/pr89752.C @@ -0,0 +1,11 @@ +// PR target/89752 +// { dg-do compile } + +struct A { A (); ~A (); short c; }; + +void +foo () +{ + A a0, a1; + __asm volatile ("" : "=rm" (a0), "=rm" (a1) : "0" (a0), "1" (a1)); // { dg-error "inconsistent operand constraints in an 'asm'" } +} -- cgit v1.1 From 3ad7fed1cc87d281881757477c5197d9d3a97232 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Wed, 20 Mar 2019 15:28:38 +0000 Subject: S/390: Fix PR89775. Stackpointer save/restore instructions removed Even if a global register is being clobbered in a function we usually do not save and restore it. However, we still have to do this if it is a special register. Most of the places in the backend handle this correctly but not the prologue/epilogue optimization. gcc/ChangeLog: 2019-03-20 Andreas Krebbel PR target/89775 * config/s390/s390.c (global_not_special_regno_p): Move to make it available to ... (s390_optimize_register_info): Use global_not_special_regno_p to check for global regs. 2019-03-20 Jakub Jelinek PR target/89775 * gcc.target/s390/pr89775-1.c: New test. * gcc.target/s390/pr89775-2.c: New test. From-SVN: r269823 --- gcc/ChangeLog | 8 ++++++++ gcc/config/s390/s390.c | 34 ++++++++++++++++--------------- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gcc.target/s390/pr89775-1.c | 17 ++++++++++++++++ gcc/testsuite/gcc.target/s390/pr89775-2.c | 25 +++++++++++++++++++++++ 5 files changed, 74 insertions(+), 16 deletions(-) create mode 100644 gcc/testsuite/gcc.target/s390/pr89775-1.c create mode 100644 gcc/testsuite/gcc.target/s390/pr89775-2.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b32d93..7774af8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-03-20 Andreas Krebbel + + PR target/89775 + * config/s390/s390.c (global_not_special_regno_p): Move to make it + available to ... + (s390_optimize_register_info): Use global_not_special_regno_p to + check for global regs. + 2019-03-20 Jakub Jelinek PR target/89752 diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 41f2665..5f26437 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -9588,6 +9588,21 @@ s390_register_info () s390_register_info_stdarg_gpr (); } +/* Return true if REGNO is a global register, but not one + of the special ones that need to be saved/restored in anyway. */ + +static inline bool +global_not_special_regno_p (int regno) +{ + return (global_regs[regno] + /* These registers are special and need to be + restored in any case. */ + && !(regno == STACK_POINTER_REGNUM + || regno == RETURN_REGNUM + || regno == BASE_REGNUM + || (flag_pic && regno == (int)PIC_OFFSET_TABLE_REGNUM))); +} + /* This function is called by s390_optimize_prologue in order to get rid of unnecessary GPR save/restore instructions. The register info for the GPRs is re-computed and the ranges are re-calculated. */ @@ -9602,8 +9617,10 @@ s390_optimize_register_info () s390_regs_ever_clobbered (clobbered_regs); + /* Global registers do not need to be saved and restored unless it + is one of our special regs. (r12, r13, r14, or r15). */ for (i = 0; i < 32; i++) - clobbered_regs[i] = clobbered_regs[i] && !global_regs[i]; + clobbered_regs[i] = clobbered_regs[i] && !global_not_special_regno_p (i); /* There is still special treatment needed for cases invisible to s390_regs_ever_clobbered. */ @@ -10345,21 +10362,6 @@ restore_fpr (rtx base, int offset, int regnum) return emit_move_insn (gen_rtx_REG (DFmode, regnum), addr); } -/* Return true if REGNO is a global register, but not one - of the special ones that need to be saved/restored in anyway. */ - -static inline bool -global_not_special_regno_p (int regno) -{ - return (global_regs[regno] - /* These registers are special and need to be - restored in any case. */ - && !(regno == STACK_POINTER_REGNUM - || regno == RETURN_REGNUM - || regno == BASE_REGNUM - || (flag_pic && regno == (int)PIC_OFFSET_TABLE_REGNUM))); -} - /* Generate insn to save registers FIRST to LAST into the register save area located at offset OFFSET relative to register BASE. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b6a42d9..00d0e97 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2019-03-20 Jakub Jelinek + PR target/89775 + * gcc.target/s390/pr89775-1.c: New test. + * gcc.target/s390/pr89775-2.c: New test. + +2019-03-20 Jakub Jelinek + PR target/89752 * g++.target/aarch64/aarch64.exp: New file. * g++.target/aarch64/pr89752.C: New test. diff --git a/gcc/testsuite/gcc.target/s390/pr89775-1.c b/gcc/testsuite/gcc.target/s390/pr89775-1.c new file mode 100644 index 0000000..2c0f6fd --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/pr89775-1.c @@ -0,0 +1,17 @@ +/* PR target/89775 */ +/* { dg-do run } */ +/* { dg-options "-O0 -fomit-frame-pointer" } */ +/* { dg-additional-sources "pr89775-2.c" } */ + +register void *sp __asm ("15"); + +__attribute__((noipa)) int +foo (const char *a, const char *b) +{ + while (1) + { + char c = *a++; + if (c != *b++) return 0; + if (c == '\0') return 1; + } +} diff --git a/gcc/testsuite/gcc.target/s390/pr89775-2.c b/gcc/testsuite/gcc.target/s390/pr89775-2.c new file mode 100644 index 0000000..645661e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/pr89775-2.c @@ -0,0 +1,25 @@ +/* PR target/89775 */ +/* { dg-do compile } */ + +extern int foo (const char *, const char *); + +__attribute__((noipa)) void +bar (const char *p) +{ + static const char *x; + if (!x) + x = p; + else if (p != x) + __builtin_abort (); +} + +int +main () +{ + char a[8] = "abcdefg"; + bar (a); + if (foo (a, a) != 1) + __builtin_abort (); + bar (a); + return 0; +} -- cgit v1.1 From 292a8bbb27fd13e87552ca7c98a9d4e82c21b385 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 20 Mar 2019 16:31:40 -0400 Subject: PR c++/87480 - decltype of member access in default template arg The issue here is that declval().d is considered instantiation-dependent within a template, as the access to 'd' might depend on the particular specialization. But when we're deducing template arguments for a call, we know that the call and the arguments are non-dependent, so we can do the substitution as though we aren't in a template. Which strictly speaking we aren't, since the default argument is considered a separate definition. * pt.c (type_unification_real): Accept a dependent result in template context. From-SVN: r269826 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/pt.c | 9 ++++++++- gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2157496..09fb3f2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2019-03-20 Jason Merrill + + PR c++/87480 - decltype of member access in default template arg + * pt.c (type_unification_real): Accept a dependent result in + template context. + 2019-03-19 Martin Sebor PR tree-optimization/89688 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 0acc16d..6c15419 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -21005,8 +21005,15 @@ type_unification_real (tree tparms, } else { + /* Even if the call is happening in template context, getting + here means it's non-dependent, and a default argument is + considered a separate definition under [temp.decls], so we can + do this substitution without processing_template_decl. This + is important if the default argument contains something that + might be instantiation-dependent like access (87480). */ + processing_template_decl_sentinel s; tree substed = NULL_TREE; - if (saw_undeduced == 1 && processing_template_decl == 0) + if (saw_undeduced == 1) { /* First instatiate in template context, in case we still depend on undeduced template parameters. */ diff --git a/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C b/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C new file mode 100644 index 0000000..86c8ea9 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C @@ -0,0 +1,15 @@ +// PR c++/87480 +// { dg-do compile { target c++11 } } + +template T&& declval(); + +template ().d)> void f(T) { } + +struct A { + double d; +}; + +template +void j(A& a) { + f(a); +} -- cgit v1.1 From 5d2df818b7752021425581455aca08f3fd0902b7 Mon Sep 17 00:00:00 2001 From: Janus Weil Date: Wed, 20 Mar 2019 22:32:23 +0100 Subject: re PR fortran/71861 ([F03] ICE in write_symbol(): bad module symbol) fix PR 71861 2019-03-20 Janus Weil PR fortran/71861 * symbol.c (check_conflict): ABSTRACT attribute conflicts with INTRINSIC attribute. 2019-03-20 Janus Weil PR fortran/71861 * gfortran.dg/interface_abstract_5.f90: New test case. From-SVN: r269827 --- gcc/fortran/ChangeLog | 6 ++++ gcc/fortran/symbol.c | 1 + gcc/testsuite/ChangeLog | 5 ++++ gcc/testsuite/gfortran.dg/interface_abstract_5.f90 | 32 ++++++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/interface_abstract_5.f90 (limited to 'gcc') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4dd35ec..2a585dc 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-03-20 Janus Weil + + PR fortran/71861 + * symbol.c (check_conflict): ABSTRACT attribute conflicts with + INTRINSIC attribute. + 2019-03-18 Thomas Koenig PR fortran/68009 diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index c342d62..ec75322 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -557,6 +557,7 @@ check_conflict (symbol_attribute *attr, const char *name, locus *where) conf (external, intrinsic); conf (entry, intrinsic); + conf (abstract, intrinsic); if ((attr->if_source == IFSRC_DECL && !attr->procedure) || attr->contained) conf (external, subroutine); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 00d0e97..2a7a379 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-20 Janus Weil + + PR fortran/71861 + * gfortran.dg/interface_abstract_5.f90: New test case. + 2019-03-20 Jakub Jelinek PR target/89775 diff --git a/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 b/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 new file mode 100644 index 0000000..fddf6b8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 @@ -0,0 +1,32 @@ +! { dg-do compile } +! +! PR 71861: [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol +! +! Contributed by Gerhard Steinmetz + +module m1 + intrinsic abs + abstract interface + function abs(x) ! { dg-error "ABSTRACT attribute conflicts with INTRINSIC attribute" } + real :: abs, x + end + end interface +end + +module m2 + abstract interface + function abs(x) + real :: abs, x + end + end interface + intrinsic abs ! { dg-error "ABSTRACT attribute conflicts with INTRINSIC attribute" } +end + +module m3 + abstract interface + function f(x) + real :: f, x + end + end interface + intrinsic f ! { dg-error "ABSTRACT attribute conflicts with INTRINSIC attribute" } +end -- cgit v1.1 From 9dddefefdf407376ed3a0bba09a14f65b194898d Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Wed, 20 Mar 2019 23:52:48 +0000 Subject: d: Fix ICE force_type_die, at dwarf2out.c using nested types In functions whose return type is instantiated from a nested template, make sure that all members of the instance are emitted before finishing the outer function, otherwise they will be removed during the prune_unused_types pass. gcc/d/ChangeLog: 2019-03-21 Iain Buclaw PR d/89017 * d-codegen.cc (d_decl_context): Skip over template instances when finding the context. * decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override. (build_type_decl): Include parameters in name of template types. gcc/testsuite/ChangeLog: 2019-03-21 Iain Buclaw PR d/89017 * gdc.dg/pr89017.d: New test. From-SVN: r269828 --- gcc/d/ChangeLog | 8 +++++++ gcc/d/d-codegen.cc | 7 +----- gcc/d/decl.cc | 41 ++++++++++++++++++++++++++++++++++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gdc.dg/pr89017.d | 49 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 gcc/testsuite/gdc.dg/pr89017.d (limited to 'gcc') diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog index 8e45c7f..39df9b8 100644 --- a/gcc/d/ChangeLog +++ b/gcc/d/ChangeLog @@ -1,3 +1,11 @@ +2019-03-21 Iain Buclaw + + PR d/89017 + * d-codegen.cc (d_decl_context): Skip over template instances when + finding the context. + * decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override. + (build_type_decl): Include parameters in name of template types. + 2019-03-13 Iain Buclaw PR d/88957 diff --git a/gcc/d/d-codegen.cc b/gcc/d/d-codegen.cc index e8233b4..2692910 100644 --- a/gcc/d/d-codegen.cc +++ b/gcc/d/d-codegen.cc @@ -67,7 +67,7 @@ d_decl_context (Dsymbol *dsym) Dsymbol *parent = dsym; Declaration *decl = dsym->isDeclaration (); - while ((parent = parent->toParent ())) + while ((parent = parent->toParent2 ())) { /* We've reached the top-level module namespace. Set DECL_CONTEXT as the NAMESPACE_DECL of the enclosing module, @@ -101,11 +101,6 @@ d_decl_context (Dsymbol *dsym) return context; } - - /* Instantiated types are given the context of their template. */ - TemplateInstance *ti = parent->isTemplateInstance (); - if (ti != NULL && decl == NULL) - parent = ti->tempdecl; } return NULL_TREE; diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc index 7edfe52..fffed97 100644 --- a/gcc/d/decl.cc +++ b/gcc/d/decl.cc @@ -255,6 +255,40 @@ public: } } + /* Templates are D's approach to generic programming. They have no members + that can be emitted, however if the template is nested and used as a + voldemort type, then it's members must be compiled before the parent + function finishes. */ + + void visit (TemplateDeclaration *d) + { + /* Type cannot be directly named outside of the scope it's declared in, so + the only way it can be escaped is if the function has auto return. */ + FuncDeclaration *fd = d_function_chain ? d_function_chain->function : NULL; + + if (!fd || !fd->isAuto ()) + return; + + /* Check if the function returns an instantiated type that may contain + nested members. Only applies to classes or structs. */ + Type *tb = fd->type->nextOf ()->baseElemOf (); + + while (tb->ty == Tarray || tb->ty == Tpointer) + tb = tb->nextOf ()->baseElemOf (); + + TemplateInstance *ti = NULL; + + if (tb->ty == Tstruct) + ti = ((TypeStruct *) tb)->sym->isInstantiated (); + else if (tb->ty == Tclass) + ti = ((TypeClass *) tb)->sym->isInstantiated (); + + /* Return type is instantiated from this template declaration, walk over + all members of the instance. */ + if (ti && ti->tempdecl == d) + ti->accept (this); + } + /* Walk over all members in the instantiated template. */ void visit (TemplateInstance *d) @@ -2228,8 +2262,13 @@ build_type_decl (tree type, Dsymbol *dsym) gcc_assert (!POINTER_TYPE_P (type)); + /* If a templated type, use the template instance name, as that includes all + template parameters. */ + const char *name = dsym->parent->isTemplateInstance () + ? ((TemplateInstance *) dsym->parent)->toChars () : dsym->ident->toChars (); + tree decl = build_decl (make_location_t (dsym->loc), TYPE_DECL, - get_identifier (dsym->ident->toChars ()), type); + get_identifier (name), type); SET_DECL_ASSEMBLER_NAME (decl, get_identifier (mangle_decl (dsym))); TREE_PUBLIC (decl) = 1; DECL_ARTIFICIAL (decl) = 1; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2a7a379..7487e91 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-21 Iain Buclaw + + PR d/89017 + * gdc.dg/pr89017.d: New test. + 2019-03-20 Janus Weil PR fortran/71861 diff --git a/gcc/testsuite/gdc.dg/pr89017.d b/gcc/testsuite/gdc.dg/pr89017.d new file mode 100644 index 0000000..b796e62 --- /dev/null +++ b/gcc/testsuite/gdc.dg/pr89017.d @@ -0,0 +1,49 @@ +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89017 +// { dg-do compile } + +enum Type +{ + Struct, + Class, + Pointer, + Array, +} + +auto f89017(Type type)() +{ + static if (type == Type.Class) + { + class C(S) + { + struct S + { + void fn(){} + } + } + } + else + { + struct C(S) + { + struct S + { + void fn(){} + } + } + } + + static if (type == Type.Struct) + return C!Type(); + static if (type == Type.Class || type == Type.Pointer) + return new C!Type(); + static if (type == Type.Array) + return new C!Type[2]; +} + +void test89017() +{ + f89017!(Type.Class); + f89017!(Type.Struct); + f89017!(Type.Pointer); + f89017!(Type.Array); +} -- cgit v1.1 From 2aecb44b403c8eed36c3d150cb5b4ebb970686b1 Mon Sep 17 00:00:00 2001 From: GCC Administrator Date: Thu, 21 Mar 2019 00:16:12 +0000 Subject: Daily bump. From-SVN: r269831 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 0031c11..eba1dd0 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20190320 +20190321 -- cgit v1.1 From c6ecc13a07cae1131fdbb91e465269402e4b0323 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 21 Mar 2019 01:03:30 +0000 Subject: re PR c++/89571 (ICE in nothrow_spec_p, at cp/except.c:1238) /cp 2019-03-21 Paolo Carlini PR c++/89571 * method.c (after_nsdmi_defaulted_late_checks): Avoid passing error_mark_node to comp_except_specs. /testsuite 2019-03-21 Paolo Carlini PR c++/89571 * g++.dg/cpp0x/noexcept37.C: New. From-SVN: r269832 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/method.c | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/noexcept37.C | 8 ++++++++ 4 files changed, 22 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/noexcept37.C (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 09fb3f2..5a28c96 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2019-03-21 Paolo Carlini + + PR c++/89571 + * method.c (after_nsdmi_defaulted_late_checks): Avoid passing + error_mark_node to comp_except_specs. + 2019-03-20 Jason Merrill PR c++/87480 - decltype of member access in default template arg diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 477d3271..da9600c 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -2274,6 +2274,9 @@ after_nsdmi_defaulted_late_checks (tree t) continue; tree eh_spec = get_defaulted_eh_spec (fn); + if (eh_spec == error_mark_node) + continue; + if (!comp_except_specs (TYPE_RAISES_EXCEPTIONS (TREE_TYPE (fn)), eh_spec, ce_normal)) DECL_DELETED_FN (fn) = true; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7487e91..12fdbd0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-21 Paolo Carlini + + PR c++/89571 + * g++.dg/cpp0x/noexcept37.C: New. + 2019-03-21 Iain Buclaw PR d/89017 diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept37.C b/gcc/testsuite/g++.dg/cpp0x/noexcept37.C new file mode 100644 index 0000000..93dfecb --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept37.C @@ -0,0 +1,8 @@ +// PR c++/89571 +// { dg-do compile { target c++11 } } + +struct A +{ + int i = ; // { dg-error "expected" } + A() noexcept = default; +}; -- cgit v1.1 From 6f5df5fdf8bfc44c65c332d299d6bc345a74ede4 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 21 Mar 2019 12:05:32 +0000 Subject: re PR c++/78645 (ICE on invalid code (Segmentation fault, cxx_eval_call_expression)) 2019-03-21 Paolo Carlini PR c++/78645 * g++.dg/cpp0x/constexpr-ice20.C: New. From-SVN: r269834 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 12fdbd0..5a343b6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-03-21 Paolo Carlini + PR c++/78645 + * g++.dg/cpp0x/constexpr-ice20.C: New. + +2019-03-21 Paolo Carlini + PR c++/89571 * g++.dg/cpp0x/noexcept37.C: New. diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C new file mode 100644 index 0000000..e2d4853 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C @@ -0,0 +1,7 @@ +// PR c++/78645 +// { dg-do compile { target c++11 } } + +typedef bool (*Function)(int); +constexpr bool check(int x, Function p) { return p(x); } // { dg-message "in .constexpr. expansion of" } + +static_assert(check(2, check), ""); // { dg-error "conversion|constant|in .constexpr. expansion of" } -- cgit v1.1 From 6d1a7fd4507f94d5ba1ac3216330280a4751a599 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 21 Mar 2019 14:27:32 +0000 Subject: =?UTF-8?q?re=20PR=20middle-end/89779=20(internal=20compiler=20err?= =?UTF-8?q?or:=20tree=20check:=20expected=20class=20=E2=80=98type=E2=80=99?= =?UTF-8?q?,=20have=20=E2=80=98exceptional=E2=80=99=20(error=5Fmark)=20in?= =?UTF-8?q?=20tree=5Fnop=5Fconversion=5Fp,=20at=20tree.c:12798)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2019-03-21 Richard Biener PR tree-optimization/89779 * tree.c (tree_nop_conversion): Consolidate and fix defensive checks with respect to released SSA names now having error_mark_node type. * fold-const.c (operand_equal_p): Likewise. * gcc.dg/torture/pr89779.c: New testcase. From-SVN: r269838 --- gcc/ChangeLog | 8 ++++++++ gcc/fold-const.c | 5 ----- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/torture/pr89779.c | 20 ++++++++++++++++++++ gcc/tree.c | 5 +---- 5 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/torture/pr89779.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7774af8..717e2f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-03-21 Richard Biener + + PR tree-optimization/89779 + * tree.c (tree_nop_conversion): Consolidate and fix defensive + checks with respect to released SSA names now having error_mark_node + type. + * fold-const.c (operand_equal_p): Likewise. + 2019-03-20 Andreas Krebbel PR target/89775 diff --git a/gcc/fold-const.c b/gcc/fold-const.c index ec28b43..86ad2cb 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2973,11 +2973,6 @@ operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags) || TREE_TYPE (arg1) == error_mark_node) return 0; - /* Similar, if either does not have a type (like a released SSA name), - they aren't equal. */ - if (!TREE_TYPE (arg0) || !TREE_TYPE (arg1)) - return 0; - /* We cannot consider pointers to different address space equal. */ if (POINTER_TYPE_P (TREE_TYPE (arg0)) && POINTER_TYPE_P (TREE_TYPE (arg1)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5a343b6..c8f9492 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-21 Richard Biener + + PR tree-optimization/89779 + * gcc.dg/torture/pr89779.c: New testcase. + 2019-03-21 Paolo Carlini PR c++/78645 diff --git a/gcc/testsuite/gcc.dg/torture/pr89779.c b/gcc/testsuite/gcc.dg/torture/pr89779.c new file mode 100644 index 0000000..2a9d240 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr89779.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ + +typedef int a; +void h(a); +void c(a *d, int b) +{ + int e, f, g; + for (; e; e++) + for (f = 0; f < 4; f++) + if (d) + for (g = e + 1; g; g++) + h(d[g]); +} +void i() +{ + a *j; + int k, l; + for (; k; k++) + c(j, l); +} diff --git a/gcc/tree.c b/gcc/tree.c index 8ea4251..ae8ff08 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -12812,13 +12812,10 @@ tree_nop_conversion (const_tree exp) if (!CONVERT_EXPR_P (exp) && TREE_CODE (exp) != NON_LVALUE_EXPR) return false; - if (TREE_OPERAND (exp, 0) == error_mark_node) - return false; outer_type = TREE_TYPE (exp); inner_type = TREE_TYPE (TREE_OPERAND (exp, 0)); - - if (!inner_type) + if (!inner_type || inner_type == error_mark_node) return false; return tree_nop_conversion_p (outer_type, inner_type); -- cgit v1.1 From cae1a424cdc285e8d75d4362476e2482841a19fd Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 21 Mar 2019 16:22:56 +0000 Subject: compiler: add a newline to function receiver type's debug dump Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168408 From-SVN: r269841 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/ast-dump.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 4a9853a..6484441 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -6e5ff227d4e77d340e86bd2c5e045d5532c2d7d7 +392e9b3da473070f24dbe6c12c282a0e06e73b54 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/ast-dump.cc b/gcc/go/gofrontend/ast-dump.cc index 48e0065..94066ca 100644 --- a/gcc/go/gofrontend/ast-dump.cc +++ b/gcc/go/gofrontend/ast-dump.cc @@ -766,7 +766,7 @@ void Type_dumper::visit_function_type(const Function_type* ft) if (rec != NULL) { this->emitpre(notag, NULL); - this->typeref("receiver ", rec->type(), NULL); + this->typeref("receiver ", rec->type(), "\n"); } const Typed_identifier_list* parameters = ft->parameters(); if (parameters != NULL) -- cgit v1.1 From bcb68daa54aeb40d2ec0d7c48633e2dc83870670 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 19:54:50 +0100 Subject: [testsuite, Fortran] Consistently set 'DEFAULT_FFLAGS' In the same 'runtest' instance, 'global' variables persist from one '*.exp' file to another. All other '*.exp' files are using " -pedantic-errors" instead of the empty string as the default for 'DEFAULT_FFLAGS'. Thus this setting of 'DEFAULT_FFLAGS' is not idempotent, depends on whether 'gfortran.dg/ieee/ieee.exp', or an other defining '*.exp' file is executed first. gcc/testsuite/ PR fortran/29383 * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in other '*.exp' files. From-SVN: r269845 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gfortran.dg/ieee/ieee.exp | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c8f9492..914ba72 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2019-03-21 Thomas Schwinge + + PR fortran/29383 + * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in + other '*.exp' files. + 2019-03-21 Richard Biener PR tree-optimization/89779 diff --git a/gcc/testsuite/gfortran.dg/ieee/ieee.exp b/gcc/testsuite/gfortran.dg/ieee/ieee.exp index 05383ce..68d4b78 100644 --- a/gcc/testsuite/gfortran.dg/ieee/ieee.exp +++ b/gcc/testsuite/gfortran.dg/ieee/ieee.exp @@ -22,15 +22,15 @@ load_lib gfortran-dg.exp load_lib target-supports.exp -# Initialize `dg'. -dg-init - -# Flags specified in each test +# If a testcase doesn't have special options, use these. global DEFAULT_FFLAGS if ![info exists DEFAULT_FFLAGS] then { - set DEFAULT_FFLAGS "" + set DEFAULT_FFLAGS " -pedantic-errors" } +# Initialize `dg'. +dg-init + # Flags for finding the IEEE modules if [info exists TOOL_OPTIONS] { set specpath [get_multilibs ${TOOL_OPTIONS}] -- cgit v1.1 From 4c1595d2367ddd184f135c717d8fb9ef1908428d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 20:16:29 +0100 Subject: [testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to 'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules' See trunk r215293. This unifies all 'dg-compile-aux-modules' instances. gcc/testsuite/ PR fortran/56408 * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround missing nexted dg-test call support in dejaGNU 1.4.4. From-SVN: r269848 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/coarray/caf.exp | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 914ba72..4044696 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2019-03-21 Thomas Schwinge + PR fortran/56408 + * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround + missing nexted dg-test call support in dejaGNU 1.4.4. + PR fortran/29383 * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in other '*.exp' files. diff --git a/gcc/testsuite/gfortran.dg/coarray/caf.exp b/gcc/testsuite/gfortran.dg/coarray/caf.exp index 4c6dba1..e3204c3 100644 --- a/gcc/testsuite/gfortran.dg/coarray/caf.exp +++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp @@ -54,8 +54,18 @@ proc dg-compile-aux-modules { args } { error "dg-set-target-env-var: needs one argument" return } + + set level [info level] + if { [info procs dg-save-unknown] != [list] } { + rename dg-save-unknown dg-save-unknown-level-$level + } + dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags - # cleanup-modules isn't intentionally invoked here. + # cleanup-modules is intentionally not invoked here. + + if { [info procs dg-save-unknown-level-$level] != [list] } { + rename dg-save-unknown-level-$level dg-save-unknown + } } # Add -latomic only where supported. Assume built-in support elsewhere. -- cgit v1.1 From a77457430eb50bff3bb071e3eb0e7c88056d373f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 20:29:57 +0100 Subject: [testsuite] Fix 'dg-compile-aux-modules' diagnostic gcc/testsuite/ PR fortran/56408 * gcc.target/powerpc/ppc-fortran/ppc-fortran.exp (dg-compile-aux-modules): Fix diagnostic. * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Likewise. * gfortran.dg/dg.exp (dg-compile-aux-modules): Likewise. From-SVN: r269851 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp | 2 +- gcc/testsuite/gfortran.dg/coarray/caf.exp | 2 +- gcc/testsuite/gfortran.dg/dg.exp | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4044696..a5211cc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,12 @@ 2019-03-21 Thomas Schwinge PR fortran/56408 + * gcc.target/powerpc/ppc-fortran/ppc-fortran.exp + (dg-compile-aux-modules): Fix diagnostic. + * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Likewise. + * gfortran.dg/dg.exp (dg-compile-aux-modules): Likewise. + + PR fortran/56408 * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround missing nexted dg-test call support in dejaGNU 1.4.4. diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp b/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp index 53c3c74..586d7dd 100644 --- a/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp +++ b/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp @@ -36,7 +36,7 @@ proc dg-compile-aux-modules { args } { global gfortran_test_path global gfortran_aux_module_flags if { [llength $args] != 2 } { - error "dg-set-target-env-var: needs one argument" + error "dg-compile-aux-modules: needs one argument" return } diff --git a/gcc/testsuite/gfortran.dg/coarray/caf.exp b/gcc/testsuite/gfortran.dg/coarray/caf.exp index e3204c3..68b60b8 100644 --- a/gcc/testsuite/gfortran.dg/coarray/caf.exp +++ b/gcc/testsuite/gfortran.dg/coarray/caf.exp @@ -51,7 +51,7 @@ proc dg-compile-aux-modules { args } { global gfortran_test_path global gfortran_aux_module_flags if { [llength $args] != 2 } { - error "dg-set-target-env-var: needs one argument" + error "dg-compile-aux-modules: needs one argument" return } diff --git a/gcc/testsuite/gfortran.dg/dg.exp b/gcc/testsuite/gfortran.dg/dg.exp index 53c3c74..586d7dd 100644 --- a/gcc/testsuite/gfortran.dg/dg.exp +++ b/gcc/testsuite/gfortran.dg/dg.exp @@ -36,7 +36,7 @@ proc dg-compile-aux-modules { args } { global gfortran_test_path global gfortran_aux_module_flags if { [llength $args] != 2 } { - error "dg-set-target-env-var: needs one argument" + error "dg-compile-aux-modules: needs one argument" return } -- cgit v1.1 From 33fc9dc962db960bde7473ef392ad3f9b4701ced Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 20:44:34 +0100 Subject: [testsuite, Fortran] Provide 'dg-compile-aux-modules' in 'gfortran.dg/goacc/goacc.exp' ..., as yet another copy from 'gfortran.dg/dg.exp', which there are a few already. gcc/testsuite/ * gfortran.dg/goacc/goacc.exp (dg-compile-aux-modules): New proc. From-SVN: r269854 --- gcc/testsuite/ChangeLog | 2 ++ gcc/testsuite/gfortran.dg/goacc/goacc.exp | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a5211cc..1f2f3eb 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2019-03-21 Thomas Schwinge + * gfortran.dg/goacc/goacc.exp (dg-compile-aux-modules): New proc. + PR fortran/56408 * gcc.target/powerpc/ppc-fortran/ppc-fortran.exp (dg-compile-aux-modules): Fix diagnostic. diff --git a/gcc/testsuite/gfortran.dg/goacc/goacc.exp b/gcc/testsuite/gfortran.dg/goacc/goacc.exp index f1adb18..1b093f6 100644 --- a/gcc/testsuite/gfortran.dg/goacc/goacc.exp +++ b/gcc/testsuite/gfortran.dg/goacc/goacc.exp @@ -28,6 +28,31 @@ if ![check_effective_target_fopenacc] { # Initialize `dg'. dg-init +global gfortran_test_path +global gfortran_aux_module_flags +set gfortran_test_path $srcdir/$subdir +set gfortran_aux_module_flags "-fopenacc" +proc dg-compile-aux-modules { args } { + global gfortran_test_path + global gfortran_aux_module_flags + if { [llength $args] != 2 } { + error "dg-compile-aux-modules: needs one argument" + return + } + + set level [info level] + if { [info procs dg-save-unknown] != [list] } { + rename dg-save-unknown dg-save-unknown-level-$level + } + + dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags + # cleanup-modules is intentionally not invoked here. + + if { [info procs dg-save-unknown-level-$level] != [list] } { + rename dg-save-unknown-level-$level dg-save-unknown + } +} + # Main loop. gfortran-dg-runtest [lsort \ [find $srcdir/$subdir *.\[fF\]{,90,95,03,08} ] ] "" "-fopenacc" -- cgit v1.1 From 64a40f1320c0edc160796266876958ffae8fdd96 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 20:44:45 +0100 Subject: [PR72741] Encode OpenACC 'routine' directive's level of parallelism inside Fortran module files If 'use'ing with an old GCC a new module file (with OpenACC 'routine' directive's level of parallelism encoded), then that expectedly fails as follows: f951: Fatal Error: Reading module 'routine_module_mod_1' at line 27 column 21: find_enum(): Enum not found If 'use'ing with a new GCC an old module file (without OpenACC 'routine' directive's level of parallelism encoded), then that (silently) continues to accept the module file, and will proceed with the previous, erroneous behavior. These seem to be acceptable compromises, instead of incrementing 'MOD_VERSION'. gcc/fortran/ PR fortran/72741 * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, AB_OACC_ROUTINE_LOP_SEQ. (attr_bits): Add these. (mio_symbol_attribute): Handle these. gcc/testsuite/ PR fortran/72741 * gfortran.dg/goacc/routine-module-1.f90: New file. * gfortran.dg/goacc/routine-module-2.f90: Likewise. * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. From-SVN: r269855 --- gcc/fortran/ChangeLog | 10 +++ gcc/fortran/module.c | 57 +++++++++++++++- gcc/testsuite/ChangeLog | 5 ++ .../gfortran.dg/goacc/routine-module-1.f90 | 47 +++++++++++++ .../gfortran.dg/goacc/routine-module-2.f90 | 31 +++++++++ .../gfortran.dg/goacc/routine-module-mod-1.f90 | 79 ++++++++++++++++++++++ 6 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/goacc/routine-module-1.f90 create mode 100644 gcc/testsuite/gfortran.dg/goacc/routine-module-2.f90 create mode 100644 gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 (limited to 'gcc') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2a585dc..2afab39 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,13 @@ +2019-03-21 Thomas Schwinge + + PR fortran/72741 + * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. + (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, + AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, + AB_OACC_ROUTINE_LOP_SEQ. + (attr_bits): Add these. + (mio_symbol_attribute): Handle these. + 2019-03-20 Janus Weil PR fortran/71861 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 0c2699c..3d4b17b 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -2011,7 +2011,9 @@ enum ab_attribute AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR, AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK, AB_OMP_DECLARE_TARGET_LINK, AB_PDT_KIND, AB_PDT_LEN, AB_PDT_TYPE, - AB_PDT_TEMPLATE, AB_PDT_ARRAY, AB_PDT_STRING + AB_PDT_TEMPLATE, AB_PDT_ARRAY, AB_PDT_STRING, + AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER, + AB_OACC_ROUTINE_LOP_VECTOR, AB_OACC_ROUTINE_LOP_SEQ }; static const mstring attr_bits[] = @@ -2081,6 +2083,10 @@ static const mstring attr_bits[] = minit ("PDT_TEMPLATE", AB_PDT_TEMPLATE), minit ("PDT_ARRAY", AB_PDT_ARRAY), minit ("PDT_STRING", AB_PDT_STRING), + minit ("OACC_ROUTINE_LOP_GANG", AB_OACC_ROUTINE_LOP_GANG), + minit ("OACC_ROUTINE_LOP_WORKER", AB_OACC_ROUTINE_LOP_WORKER), + minit ("OACC_ROUTINE_LOP_VECTOR", AB_OACC_ROUTINE_LOP_VECTOR), + minit ("OACC_ROUTINE_LOP_SEQ", AB_OACC_ROUTINE_LOP_SEQ), minit (NULL, -1) }; @@ -2128,6 +2134,15 @@ DECL_MIO_NAME (sym_intent) DECL_MIO_NAME (inquiry_type) #undef DECL_MIO_NAME +/* Verify OACC_ROUTINE_LOP_NONE. */ + +static void +verify_OACC_ROUTINE_LOP_NONE (enum oacc_routine_lop lop) +{ + if (lop != OACC_ROUTINE_LOP_NONE) + bad_module ("Unsupported: multiple OpenACC 'routine' levels of parallelism"); +} + /* Symbol attributes are stored in list with the first three elements being the enumerated fields, while the remaining elements (if any) indicate the individual attribute bits. The access field is not @@ -2292,6 +2307,30 @@ mio_symbol_attribute (symbol_attribute *attr) MIO_NAME (ab_attribute) (AB_PDT_ARRAY, attr_bits); if (attr->pdt_string) MIO_NAME (ab_attribute) (AB_PDT_STRING, attr_bits); + switch (attr->oacc_routine_lop) + { + case OACC_ROUTINE_LOP_NONE: + /* This is the default anyway, and for maintaining compatibility with + the current MOD_VERSION, we're not emitting anything in that + case. */ + break; + case OACC_ROUTINE_LOP_GANG: + MIO_NAME (ab_attribute) (AB_OACC_ROUTINE_LOP_GANG, attr_bits); + break; + case OACC_ROUTINE_LOP_WORKER: + MIO_NAME (ab_attribute) (AB_OACC_ROUTINE_LOP_WORKER, attr_bits); + break; + case OACC_ROUTINE_LOP_VECTOR: + MIO_NAME (ab_attribute) (AB_OACC_ROUTINE_LOP_VECTOR, attr_bits); + break; + case OACC_ROUTINE_LOP_SEQ: + MIO_NAME (ab_attribute) (AB_OACC_ROUTINE_LOP_SEQ, attr_bits); + break; + case OACC_ROUTINE_LOP_ERROR: + /* ... intentionally omitted here; it's only unsed internally. */ + default: + gcc_unreachable (); + } mio_rparen (); @@ -2503,6 +2542,22 @@ mio_symbol_attribute (symbol_attribute *attr) case AB_PDT_STRING: attr->pdt_string = 1; break; + case AB_OACC_ROUTINE_LOP_GANG: + verify_OACC_ROUTINE_LOP_NONE (attr->oacc_routine_lop); + attr->oacc_routine_lop = OACC_ROUTINE_LOP_GANG; + break; + case AB_OACC_ROUTINE_LOP_WORKER: + verify_OACC_ROUTINE_LOP_NONE (attr->oacc_routine_lop); + attr->oacc_routine_lop = OACC_ROUTINE_LOP_WORKER; + break; + case AB_OACC_ROUTINE_LOP_VECTOR: + verify_OACC_ROUTINE_LOP_NONE (attr->oacc_routine_lop); + attr->oacc_routine_lop = OACC_ROUTINE_LOP_VECTOR; + break; + case AB_OACC_ROUTINE_LOP_SEQ: + verify_OACC_ROUTINE_LOP_NONE (attr->oacc_routine_lop); + attr->oacc_routine_lop = OACC_ROUTINE_LOP_SEQ; + break; } } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1f2f3eb..8afdf3e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-03-21 Thomas Schwinge + PR fortran/72741 + * gfortran.dg/goacc/routine-module-1.f90: New file. + * gfortran.dg/goacc/routine-module-2.f90: Likewise. + * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. + * gfortran.dg/goacc/goacc.exp (dg-compile-aux-modules): New proc. PR fortran/56408 diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-module-1.f90 b/gcc/testsuite/gfortran.dg/goacc/routine-module-1.f90 new file mode 100644 index 0000000..4e81f11 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/routine-module-1.f90 @@ -0,0 +1,47 @@ +! Valid use of routines defined inside a Fortran module. + +! { dg-compile-aux-modules "routine-module-mod-1.f90" } +! { dg-additional-options "-fopt-info-optimized-omp" } + +program main + use routine_module_mod_1 + implicit none + + integer :: i + + call pl_1 + + !$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, 10 + call s_1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call s_2 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call g_1 ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + call w_1 ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + call v_1 ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do + !$acc end parallel loop + + !$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, 10 + call s_1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call s_2 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call w_1 ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + call v_1 ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do + !$acc end parallel loop + + !$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, 10 + call s_1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call s_2 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call v_1 ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do + !$acc end parallel loop + + !$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, 10 + call s_1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call s_2 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do + !$acc end parallel loop +end program main diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-module-2.f90 b/gcc/testsuite/gfortran.dg/goacc/routine-module-2.f90 new file mode 100644 index 0000000..eae0807 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/routine-module-2.f90 @@ -0,0 +1,31 @@ +! Invalid use of routines defined inside a Fortran module. + +! { dg-compile-aux-modules "routine-module-mod-1.f90" } + +program main + use routine_module_mod_1 + implicit none + + integer :: i + + !$acc parallel loop gang + do i = 1, 10 + call g_1 ! { dg-error "routine call uses same OpenACC parallelism as containing loop" } + end do + !$acc end parallel loop + + !$acc parallel loop worker + do i = 1, 10 + call g_1 ! { dg-error "routine call uses same OpenACC parallelism as containing loop" } + call w_1 ! { dg-error "routine call uses same OpenACC parallelism as containing loop" } + end do + !$acc end parallel loop + + !$acc parallel loop vector + do i = 1, 10 + call g_1 ! { dg-error "routine call uses same OpenACC parallelism as containing loop" } + call w_1 ! { dg-error "routine call uses same OpenACC parallelism as containing loop" } + call v_1 ! { dg-error "routine call uses same OpenACC parallelism as containing loop" } + end do + !$acc end parallel loop +end program main diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 b/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 new file mode 100644 index 0000000..3855b8c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 @@ -0,0 +1,79 @@ +! OpenACC 'routine' directives inside a Fortran module. + +! { dg-additional-options "-fopt-info-optimized-omp" } + +module routine_module_mod_1 +contains + subroutine s_1 + implicit none + !$acc routine + + integer :: i + + !$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + ! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, 3 + end do + end subroutine s_1 + + subroutine s_2 + implicit none + !$acc routine seq + + integer :: i + + !$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + ! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, 3 + end do + end subroutine s_2 + + subroutine v_1 + implicit none + !$acc routine vector + + integer :: i + + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, 3 + end do + end subroutine v_1 + + subroutine w_1 + implicit none + !$acc routine worker + + integer :: i + + !$acc loop ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + do i = 1, 3 + end do + end subroutine w_1 + + subroutine g_1 + implicit none + !$acc routine gang + + integer :: i + + !$acc loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do i = 1, 3 + end do + end subroutine g_1 + + subroutine pl_1 + implicit none + + integer :: i + + !$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + ! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, 3 + call s_1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call s_2 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + call v_1 ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + call w_1 ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + call g_1 ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do + end subroutine pl_1 +end module routine_module_mod_1 -- cgit v1.1 From 8ced98c6431c67b4f11b3eb4997b955b97472dc4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 20:54:51 +0100 Subject: [PR72741] The name in a Fortran OpenACC 'routine' directive refers to the containing subroutine or function gcc/fortran/ PR fortran/72741 * openmp.c (gfc_match_oacc_routine): Clarify. gcc/testsuite/ PR fortran/72741 * gfortran.dg/goacc/routine-module-mod-1.f90: Update. From-SVN: r269856 --- gcc/fortran/ChangeLog | 3 +++ gcc/fortran/openmp.c | 3 +++ gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2afab39..111e3a2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,9 @@ 2019-03-21 Thomas Schwinge PR fortran/72741 + * openmp.c (gfc_match_oacc_routine): Clarify. + + PR fortran/72741 * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 7a06eb5..1b1a0b4 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -2314,6 +2314,9 @@ gfc_match_oacc_routine (void) if (st) { sym = st->n.sym; + /* If the name in a 'routine' directive refers to the containing + subroutine or function, then make sure that we'll later handle + this accordingly. */ if (gfc_current_ns->proc_name != NULL && strcmp (sym->name, gfc_current_ns->proc_name->name) == 0) sym = NULL; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8afdf3e..0c94f6b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,9 @@ 2019-03-21 Thomas Schwinge PR fortran/72741 + * gfortran.dg/goacc/routine-module-mod-1.f90: Update. + + PR fortran/72741 * gfortran.dg/goacc/routine-module-1.f90: New file. * gfortran.dg/goacc/routine-module-2.f90: Likewise. * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 b/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 index 3855b8c..23c673f 100644 --- a/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 +++ b/gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90 @@ -18,7 +18,7 @@ contains subroutine s_2 implicit none - !$acc routine seq + !$acc routine (s_2) seq integer :: i @@ -41,7 +41,7 @@ contains subroutine w_1 implicit none - !$acc routine worker + !$acc routine (w_1) worker integer :: i -- cgit v1.1 From f6bf4bc14d8ab24acad0b0d42cde5e08d1c3a879 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 21 Mar 2019 21:02:42 +0100 Subject: [PR89773] Fortran OpenACC 'routine' directive refuses procedures with implicit EXTERNAL attribute gcc/fortran/ PR fortran/89773 * gfortran.h (gfc_oacc_routine_name): Add loc member. (gfc_resolve_oacc_routines): Declare. * openmp.c (gfc_match_oacc_routine): Move some error checking into... (gfc_resolve_oacc_routines): ... this new function. * resolve.c (resolve_codes): Call it. gcc/testsuite/ PR fortran/89773 * gfortran.dg/goacc/pr89773.f90: New file. * gfortran.dg/goacc/pr77765.f90: Adjust. * gfortran.dg/goacc/routine-6.f90: Adjust, and extend. From-SVN: r269857 --- gcc/fortran/ChangeLog | 8 ++++++ gcc/fortran/gfortran.h | 2 ++ gcc/fortran/openmp.c | 33 ++++++++++++++++++------ gcc/fortran/resolve.c | 1 + gcc/testsuite/ChangeLog | 5 ++++ gcc/testsuite/gfortran.dg/goacc/pr77765.f90 | 2 +- gcc/testsuite/gfortran.dg/goacc/pr89773.f90 | 36 +++++++++++++++++++++++++++ gcc/testsuite/gfortran.dg/goacc/routine-6.f90 | 21 +++++++++++++--- 8 files changed, 96 insertions(+), 12 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/goacc/pr89773.f90 (limited to 'gcc') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 111e3a2..7ce67eb 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,13 @@ 2019-03-21 Thomas Schwinge + PR fortran/89773 + * gfortran.h (gfc_oacc_routine_name): Add loc member. + (gfc_resolve_oacc_routines): Declare. + * openmp.c (gfc_match_oacc_routine): Move some error checking + into... + (gfc_resolve_oacc_routines): ... this new function. + * resolve.c (resolve_codes): Call it. + PR fortran/72741 * openmp.c (gfc_match_oacc_routine): Clarify. diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 2f55b9c..caf5e52 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -1739,6 +1739,7 @@ typedef struct gfc_oacc_routine_name struct gfc_symbol *sym; struct gfc_omp_clauses *clauses; struct gfc_oacc_routine_name *next; + locus loc; } gfc_oacc_routine_name; @@ -3210,6 +3211,7 @@ void gfc_resolve_oacc_directive (gfc_code *, gfc_namespace *); void gfc_resolve_oacc_declare (gfc_namespace *); void gfc_resolve_oacc_parallel_loop_blocks (gfc_code *, gfc_namespace *); void gfc_resolve_oacc_blocks (gfc_code *, gfc_namespace *); +void gfc_resolve_oacc_routines (gfc_namespace *); /* expr.c */ void gfc_free_actual_arglist (gfc_actual_arglist *); diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 1b1a0b4..983b83d 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -2322,15 +2322,10 @@ gfc_match_oacc_routine (void) sym = NULL; } - if ((isym == NULL && st == NULL) - || (sym - && !sym->attr.external - && !sym->attr.function - && !sym->attr.subroutine)) + if (isym == NULL && st == NULL) { - gfc_error ("Syntax error in !$ACC ROUTINE ( NAME ) at %C, " - "invalid function name %s", - (sym) ? sym->name : buffer); + gfc_error ("Invalid NAME %qs in !$ACC ROUTINE ( NAME ) at %C", + buffer); gfc_current_locus = old_loc; return MATCH_ERROR; } @@ -2400,6 +2395,7 @@ gfc_match_oacc_routine (void) n->sym = sym; n->clauses = c; n->next = gfc_current_ns->oacc_routine_names; + n->loc = old_loc; gfc_current_ns->oacc_routine_names = n; } } @@ -6072,6 +6068,27 @@ gfc_resolve_oacc_declare (gfc_namespace *ns) } } + +void +gfc_resolve_oacc_routines (gfc_namespace *ns) +{ + for (gfc_oacc_routine_name *orn = ns->oacc_routine_names; + orn; + orn = orn->next) + { + gfc_symbol *sym = orn->sym; + if (!sym->attr.external + && !sym->attr.function + && !sym->attr.subroutine) + { + gfc_error ("NAME %qs does not refer to a subroutine or function" + " in !$ACC ROUTINE ( NAME ) at %L", sym->name, &orn->loc); + continue; + } + } +} + + void gfc_resolve_oacc_directive (gfc_code *code, gfc_namespace *ns ATTRIBUTE_UNUSED) { diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 7539aa7..e1cd200 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -16818,6 +16818,7 @@ resolve_codes (gfc_namespace *ns) bitmap_obstack_initialize (&labels_obstack); gfc_resolve_oacc_declare (ns); + gfc_resolve_oacc_routines (ns); gfc_resolve_omp_local_vars (ns); gfc_resolve_code (ns->code, ns); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0c94f6b..e771a87 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-03-21 Thomas Schwinge + PR fortran/89773 + * gfortran.dg/goacc/pr89773.f90: New file. + * gfortran.dg/goacc/pr77765.f90: Adjust. + * gfortran.dg/goacc/routine-6.f90: Adjust, and extend. + PR fortran/72741 * gfortran.dg/goacc/routine-module-mod-1.f90: Update. diff --git a/gcc/testsuite/gfortran.dg/goacc/pr77765.f90 b/gcc/testsuite/gfortran.dg/goacc/pr77765.f90 index afa0a56..e0ea391 100644 --- a/gcc/testsuite/gfortran.dg/goacc/pr77765.f90 +++ b/gcc/testsuite/gfortran.dg/goacc/pr77765.f90 @@ -14,5 +14,5 @@ end module m ! { dg-error "Procedure 'f' at .1. is already defined" "" { target *-*-* } 8 } ! { dg-error ".1." "" { target *-*-* } 10 } -! { dg-error "Syntax error in ..ACC ROUTINE . NAME . at .1., invalid function name f" "" { target *-*-* } 11 } +! { dg-error "Invalid NAME 'f' in \\!\\\$ACC ROUTINE \\( NAME \\)" "" { target *-*-* } 11 } ! { dg-error "Expecting END MODULE statement" "" { target *-*-* } 12 } diff --git a/gcc/testsuite/gfortran.dg/goacc/pr89773.f90 b/gcc/testsuite/gfortran.dg/goacc/pr89773.f90 new file mode 100644 index 0000000..e0e5c4f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/pr89773.f90 @@ -0,0 +1,36 @@ +! Valid usage of 'external' procedures with OpenACC 'routine' directives. + +! { dg-additional-options "-fdump-tree-optimized-raw" } + + subroutine test (x) + implicit none + integer, intent(inout) :: x + !$acc routine (test) + + integer, external :: f_1 + !$acc routine (f_1) + + integer f_2 ! No explicit EXTERNAL attribute. + !$acc routine (f_2) + + external s_1 + !$acc routine (s_1) + + ! 's_2' will be an external subroutine without explicit EXTERNAL + ! attribute, but we don't have a handle for it yet... + !!$acc routine (s_2) ..., so can't specify this, here. + + if (x < 1) then + x = 1 + else + x = x * x - 1 + f_1(f_2(x)) + call s_1(x) + call s_2(x) + end if + end subroutine test + +! { dg-final { scan-tree-dump-times "gimple_call" 4 "optimized" } } +! { dg-final { scan-tree-dump-times "gimple_call Date: Thu, 21 Mar 2019 21:13:44 +0100 Subject: [PR72741] Properly handle clauses specifying the level of parallelism for 'external' Fortran OpenACC routines ..., so as to also for these enable the generic middle end OMP code to verify proper nesting of loops/routines regarding their levels of parallelism. gcc/fortran/ PR fortran/72741 * openmp.c (gfc_match_oacc_routine): Set the level of parallelism for all variants. (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target. gcc/testsuite/ PR fortran/72741 * c-c++-common/goacc/routine-3-extern.c: New file. * c-c++-common/goacc/routine-3.c: Adjust. * c-c++-common/goacc/routine-4-extern.c: New file. * c-c++-common/goacc/routine-4.c: Adjust. * gfortran.dg/goacc/routine-module-3.f90: New file. * gfortran.dg/goacc/routine-external-level-of-parallelism-1.f: New file. * gfortran.dg/goacc/routine-external-level-of-parallelism-2.f: Likewise. Co-Authored-By: Cesar Philippidis From-SVN: r269858 --- gcc/fortran/ChangeLog | 5 + gcc/fortran/openmp.c | 8 + gcc/testsuite/ChangeLog | 16 + .../c-c++-common/goacc/routine-3-extern.c | 89 +++++ gcc/testsuite/c-c++-common/goacc/routine-3.c | 1 + .../c-c++-common/goacc/routine-4-extern.c | 124 +++++++ gcc/testsuite/c-c++-common/goacc/routine-4.c | 1 + .../routine-external-level-of-parallelism-1.f | 347 ++++++++++++++++++++ .../routine-external-level-of-parallelism-2.f | 361 +++++++++++++++++++++ .../gfortran.dg/goacc/routine-module-3.f90 | 16 + 10 files changed, 968 insertions(+) create mode 100644 gcc/testsuite/c-c++-common/goacc/routine-3-extern.c create mode 100644 gcc/testsuite/c-c++-common/goacc/routine-4-extern.c create mode 100644 gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1.f create mode 100644 gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2.f create mode 100644 gcc/testsuite/gfortran.dg/goacc/routine-module-3.f90 (limited to 'gcc') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7ce67eb..dd4347e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2019-03-21 Thomas Schwinge + PR fortran/72741 + * openmp.c (gfc_match_oacc_routine): Set the level of parallelism + for all variants. + (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target. + PR fortran/89773 * gfortran.h (gfc_oacc_routine_name): Add loc member. (gfc_resolve_oacc_routines): Declare. diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 983b83d..9fc2367 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -2391,6 +2391,8 @@ gfc_match_oacc_routine (void) if (add) { + sym->attr.oacc_routine_lop = lop; + n = gfc_get_oacc_routine_name (); n->sym = sym; n->clauses = c; @@ -6085,6 +6087,12 @@ gfc_resolve_oacc_routines (gfc_namespace *ns) " in !$ACC ROUTINE ( NAME ) at %L", sym->name, &orn->loc); continue; } + if (!gfc_add_omp_declare_target (&sym->attr, sym->name, &orn->loc)) + { + gfc_error ("NAME %qs invalid" + " in !$ACC ROUTINE ( NAME ) at %L", sym->name, &orn->loc); + continue; + } } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e771a87..f575c0f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,4 +1,20 @@ 2019-03-21 Thomas Schwinge + Cesar Philippidis + + PR fortran/72741 + * gfortran.dg/goacc/routine-external-level-of-parallelism-1.f: New + file. + * gfortran.dg/goacc/routine-external-level-of-parallelism-2.f: + Likewise. + +2019-03-21 Thomas Schwinge + + PR fortran/72741 + * c-c++-common/goacc/routine-3-extern.c: New file. + * c-c++-common/goacc/routine-3.c: Adjust. + * c-c++-common/goacc/routine-4-extern.c: New file. + * c-c++-common/goacc/routine-4.c: Adjust. + * gfortran.dg/goacc/routine-module-3.f90: New file. PR fortran/89773 * gfortran.dg/goacc/pr89773.f90: New file. diff --git a/gcc/testsuite/c-c++-common/goacc/routine-3-extern.c b/gcc/testsuite/c-c++-common/goacc/routine-3-extern.c new file mode 100644 index 0000000..e32cfde --- /dev/null +++ b/gcc/testsuite/c-c++-common/goacc/routine-3-extern.c @@ -0,0 +1,89 @@ +/* Test invalid calls to routines. */ +/* Variant of 'routine-3.c', moving the callees 'extern'. */ + +#pragma acc routine gang +extern int extern_gang (); /* { dg-message "declared here" "3" } */ + +#pragma acc routine worker +extern int extern_worker (); /* { dg-message "declared here" "2" } */ + +#pragma acc routine vector +extern int extern_vector (); /* { dg-message "declared here" } */ + +#pragma acc routine seq +extern int extern_seq (); + +int +main () +{ + int red = 0; +#pragma acc parallel copy (red) + { + /* Independent/seq loop tests. */ +#pragma acc loop reduction (+:red) // { dg-warning "insufficient partitioning" } + for (int i = 0; i < 10; i++) + red += extern_gang (); + +#pragma acc loop reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_worker (); + +#pragma acc loop reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_vector (); + + /* Gang routine tests. */ +#pragma acc loop gang reduction (+:red) /* { dg-message "containing loop" } */ + for (int i = 0; i < 10; i++) + red += extern_gang (); // { dg-error "routine call uses same" } + +#pragma acc loop worker reduction (+:red) /* { dg-message "containing loop" } */ + for (int i = 0; i < 10; i++) + red += extern_gang (); // { dg-error "routine call uses same" } + +#pragma acc loop vector reduction (+:red) /* { dg-message "containing loop" } */ + for (int i = 0; i < 10; i++) + red += extern_gang (); // { dg-error "routine call uses same" } + + /* Worker routine tests. */ +#pragma acc loop gang reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_worker (); + +#pragma acc loop worker reduction (+:red) /* { dg-message "containing loop" } */ + for (int i = 0; i < 10; i++) + red += extern_worker (); // { dg-error "routine call uses same" } + +#pragma acc loop vector reduction (+:red) /* { dg-message "containing loop" } */ + for (int i = 0; i < 10; i++) + red += extern_worker (); // { dg-error "routine call uses same" } + + /* Vector routine tests. */ +#pragma acc loop gang reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_vector (); + +#pragma acc loop worker reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_vector (); + +#pragma acc loop vector reduction (+:red) /* { dg-message "containing loop" } */ + for (int i = 0; i < 10; i++) + red += extern_vector (); // { dg-error "routine call uses same" } + + /* Seq routine tests. */ +#pragma acc loop gang reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_seq (); + +#pragma acc loop worker reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_seq (); + +#pragma acc loop vector reduction (+:red) + for (int i = 0; i < 10; i++) + red += extern_seq (); + } + + return 0; +} diff --git a/gcc/testsuite/c-c++-common/goacc/routine-3.c b/gcc/testsuite/c-c++-common/goacc/routine-3.c index eaea470..364c8ad 100644 --- a/gcc/testsuite/c-c++-common/goacc/routine-3.c +++ b/gcc/testsuite/c-c++-common/goacc/routine-3.c @@ -1,4 +1,5 @@ /* Test invalid calls to routines. */ +/* See also variant 'routine-3-extern.c', moving the callees 'extern'. */ #pragma acc routine gang int diff --git a/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c b/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c new file mode 100644 index 0000000..ec21db1 --- /dev/null +++ b/gcc/testsuite/c-c++-common/goacc/routine-4-extern.c @@ -0,0 +1,124 @@ +/* Test invalid intra-routine parallelism. */ +/* Variant of 'routine-4.c', moving the callees 'extern'. */ + +extern void extern_gang (void); +#pragma acc routine (extern_gang) gang +extern void extern_worker (void); +#pragma acc routine (extern_worker) worker +extern void extern_vector (void); +#pragma acc routine (extern_vector) vector +extern void extern_seq (void); +#pragma acc routine (extern_seq) seq + +void gang (void); +void worker (void); +void vector (void); + +#pragma acc routine (gang) gang +#pragma acc routine (worker) worker +#pragma acc routine (vector) vector + +#pragma acc routine seq +void seq (void) +{ + extern_gang (); /* { dg-error "routine call uses" } */ + extern_worker (); /* { dg-error "routine call uses" } */ + extern_vector (); /* { dg-error "routine call uses" } */ + extern_seq (); + + int red; + +#pragma acc loop reduction (+:red) // { dg-warning "insufficient partitioning" } + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop worker reduction (+:red) // { dg-error "disallowed by containing routine" } + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop vector reduction (+:red) // { dg-error "disallowed by containing routine" } + for (int i = 0; i < 10; i++) + red ++; +} + +void vector (void) +{ + extern_gang (); /* { dg-error "routine call uses" } */ + extern_worker (); /* { dg-error "routine call uses" } */ + extern_vector (); + extern_seq (); + + int red; + +#pragma acc loop reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop worker reduction (+:red) // { dg-error "disallowed by containing routine" } + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop vector reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; +} + +void worker (void) +{ + extern_gang (); /* { dg-error "routine call uses" } */ + extern_worker (); + extern_vector (); + extern_seq (); + + int red; + +#pragma acc loop reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop gang reduction (+:red) // { dg-error "disallowed by containing routine" } + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop worker reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop vector reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; +} + +void gang (void) +{ + extern_gang (); + extern_worker (); + extern_vector (); + extern_seq (); + + int red; + +#pragma acc loop reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop gang reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop worker reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; + +#pragma acc loop vector reduction (+:red) + for (int i = 0; i < 10; i++) + red ++; +} diff --git a/gcc/testsuite/c-c++-common/goacc/routine-4.c b/gcc/testsuite/c-c++-common/goacc/routine-4.c index efc4a0b..5f2194c 100644 --- a/gcc/testsuite/c-c++-common/goacc/routine-4.c +++ b/gcc/testsuite/c-c++-common/goacc/routine-4.c @@ -1,4 +1,5 @@ /* Test invalid intra-routine parallelism. */ +/* See also variant 'routine-4-extern.c', moving the callees 'extern'. */ void gang (void); void worker (void); diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1.f b/gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1.f new file mode 100644 index 0000000..c27fe79 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-1.f @@ -0,0 +1,347 @@ +! Check valid calls to 'external' OpenACC routines. + +! { dg-additional-options "-fopt-info-optimized-omp" } + + subroutine sub + implicit none + integer, parameter :: n = 100 + integer :: a(n), i, j + external :: gangr, workerr, vectorr, seqr +!$acc routine (gangr) gang +!$acc routine (workerr) worker +!$acc routine (vectorr) vector +!$acc routine (seqr) seq + +! +! Test subroutine calls inside nested loops. +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n +!$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do j = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do + end do +!$acc end parallel loop + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n +!$acc loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do j = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do + end do +!$acc end parallel loop + +! +! Test calls to seq routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to gang routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to worker routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to vector routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + end subroutine sub + + subroutine func + implicit none + integer, parameter :: n = 100 + integer :: a(n), i, j + integer, external :: gangf, workerf, vectorf, seqf +!$acc routine (gangf) gang +!$acc routine (workerf) worker +!$acc routine (vectorf) vector +!$acc routine (seqf) seq + +! +! Test subroutine calls inside nested loops. +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n +!$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do j = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do + end do +!$acc end parallel loop + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n +!$acc loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do j = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do + end do +!$acc end parallel loop + +! +! Test calls to seq routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to gang routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to worker routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to vector routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + end subroutine func diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2.f b/gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2.f new file mode 100644 index 0000000..0e8dfb1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/routine-external-level-of-parallelism-2.f @@ -0,0 +1,361 @@ +! Check invalid calls to 'external' OpenACC routines. + +! { dg-additional-options "-fopt-info-optimized-omp" } + + subroutine sub + implicit none + integer, parameter :: n = 100 + integer :: a(n), i, j + external :: gangr, workerr, vectorr, seqr +!$acc routine (gangr) gang +!$acc routine (workerr) worker +!$acc routine (vectorr) vector +!$acc routine (seqr) seq + +! +! Test subroutine calls inside nested loops. +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n +!$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do j = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do + end do +!$acc end parallel loop + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n +!$acc loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do j = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do + end do +!$acc end parallel loop + +! +! Test calls to seq routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call seqr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to gang routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call gangr (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to worker routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call workerr (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to vector routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + call vectorr (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + end subroutine sub + + subroutine func + implicit none + integer, parameter :: n = 100 + integer :: a(n), i, j + integer, external :: gangf, workerf, vectorf, seqf +!$acc routine (gangf) gang +!$acc routine (workerf) worker +!$acc routine (vectorf) vector +!$acc routine (seqf) seq + +! +! Test subroutine calls inside nested loops. +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n +!$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do j = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do + end do +!$acc end parallel loop + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n +!$acc loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do j = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do + end do +!$acc end parallel loop + +! +! Test calls to seq routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = seqf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to gang routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = gangf (a, n) ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to worker routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = workerf (a, n) ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + end do +!$acc end parallel loop + +! +! Test calls to vector routines +! + +!$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + +!$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } +! { dg-error "routine call uses same OpenACC parallelism as containing loop" "" { target *-*-* } .-1 } + end do +!$acc end parallel loop + +!$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do i = 1, n + a(i) = vectorf (a, n) ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + end do +!$acc end parallel loop + end subroutine func diff --git a/gcc/testsuite/gfortran.dg/goacc/routine-module-3.f90 b/gcc/testsuite/gfortran.dg/goacc/routine-module-3.f90 new file mode 100644 index 0000000..a4ff549 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/routine-module-3.f90 @@ -0,0 +1,16 @@ +! Invalid use of routines defined inside a Fortran module. + +! { dg-compile-aux-modules "routine-module-mod-1.f90" } + +program main + use routine_module_mod_1 + implicit none + !$acc routine (s_1) seq ! { dg-error "Cannot change attributes of USE-associated symbol s_1" } + ! { dg-error "NAME 's_1' invalid in \\!\\\$ACC ROUTINE \\( NAME \\)" "" { target *-*-* } .-1 } + !$acc routine (s_2) seq ! { dg-error "Cannot change attributes of USE-associated symbol s_2" } + ! { dg-error "NAME 's_2' invalid in \\!\\\$ACC ROUTINE \\( NAME \\)" "" { target *-*-* } .-1 } + !$acc routine (v_1) seq ! { dg-error "Cannot change attributes of USE-associated symbol v_1" } + ! { dg-error "NAME 'v_1' invalid in \\!\\\$ACC ROUTINE \\( NAME \\)" "" { target *-*-* } .-1 } + !$acc routine (w_1) gang ! { dg-error "Cannot change attributes of USE-associated symbol w_1" } + ! { dg-error "NAME 'w_1' invalid in \\!\\\$ACC ROUTINE \\( NAME \\)" "" { target *-*-* } .-1 } +end program main -- cgit v1.1 From 36a3a7a3726c8b65eeceb6eb4a8946e0cd5650a9 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 21 Mar 2019 23:00:04 +0100 Subject: hash-table.h (hash_table): Add Lazy template parameter defaulted to false... * hash-table.h (hash_table): Add Lazy template parameter defaulted to false, if true, don't alloc_entries during construction, but defer it to the first method that needs m_entries allocated. (hash_table::hash_table, hash_table::~hash_table, hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, hash_table::clear_slot, hash_table::traverse_noresize, hash_table::traverse, hash_table::iterator::slide): Adjust all methods. * hash-set.h (hash_set): Add Lazy template parameter defaulted to false. (hash_set::contains): If Lazy is true, use find_slot_with_hash with NO_INSERT instead of find_with_hash. (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, hash_set::m_table): Add Lazy to template params of hash_table. (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. * attribs.c (test_attribute_exclusions): Likewise. * hash-set-tests.c (test_set_of_strings): Add iterator tests for hash_set. Add tests for hash_set with Lazy = true. c-family/ * c-common.c (per_file_includes_t): Use false as Lazy in hash_set template param. jit/ * jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy in hash_set template param. From-SVN: r269859 --- gcc/ChangeLog | 21 +++++ gcc/attribs.c | 2 +- gcc/c-family/ChangeLog | 5 ++ gcc/c-family/c-common.c | 2 +- gcc/hash-set-tests.c | 64 ++++++++++++++++ gcc/hash-set.h | 42 ++++++---- gcc/hash-table.h | 200 ++++++++++++++++++++++++++++++------------------ gcc/jit/ChangeLog | 5 ++ gcc/jit/jit-recording.c | 2 +- 9 files changed, 248 insertions(+), 95 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 717e2f2..2f1bf46 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,24 @@ +2019-03-21 Jakub Jelinek + + * hash-table.h (hash_table): Add Lazy template parameter defaulted + to false, if true, don't alloc_entries during construction, but defer + it to the first method that needs m_entries allocated. + (hash_table::hash_table, hash_table::~hash_table, + hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, + hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, + hash_table::clear_slot, hash_table::traverse_noresize, + hash_table::traverse, hash_table::iterator::slide): Adjust all methods. + * hash-set.h (hash_set): Add Lazy template parameter defaulted to + false. + (hash_set::contains): If Lazy is true, use find_slot_with_hash with + NO_INSERT instead of find_with_hash. + (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, + hash_set::m_table): Add Lazy to template params of hash_table. + (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. + * attribs.c (test_attribute_exclusions): Likewise. + * hash-set-tests.c (test_set_of_strings): Add iterator tests for + hash_set. Add tests for hash_set with Lazy = true. + 2019-03-21 Richard Biener PR tree-optimization/89779 diff --git a/gcc/attribs.c b/gcc/attribs.c index adf4973..4441922 100644 --- a/gcc/attribs.c +++ b/gcc/attribs.c @@ -2075,7 +2075,7 @@ test_attribute_exclusions () const size_t ntables = ARRAY_SIZE (attribute_tables); /* Set of pairs of mutually exclusive attributes. */ - typedef hash_set exclusion_set; + typedef hash_set exclusion_set; exclusion_set excl_set; for (size_t ti0 = 0; ti0 != ntables; ++ti0) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index df61b69..a597b12 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2019-03-21 Jakub Jelinek + + * c-common.c (per_file_includes_t): Use false as Lazy in hash_set + template param. + 2019-03-19 Martin Sebor PR tree-optimization/89688 diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 0e17fef..2b99842 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -8731,7 +8731,7 @@ try_to_locate_new_include_insertion_point (const char *file, location_t loc) no guarantee that two different diagnostics that are recommending adding e.g. "" are using the same buffer. */ -typedef hash_set per_file_includes_t; +typedef hash_set per_file_includes_t; /* The map itself. We don't need string comparison for the filename keys, as they come from libcpp. */ diff --git a/gcc/hash-set-tests.c b/gcc/hash-set-tests.c index f75d41a..e0d1d47 100644 --- a/gcc/hash-set-tests.c +++ b/gcc/hash-set-tests.c @@ -44,6 +44,9 @@ test_set_of_strings () ASSERT_EQ (false, s.contains (red)); + for (hash_set::iterator it = s.begin (); it != s.end (); ++it) + ASSERT_EQ (true, false); + /* Populate the hash_set. */ ASSERT_EQ (false, s.add (red)); ASSERT_EQ (false, s.add (green)); @@ -68,6 +71,67 @@ test_set_of_strings () ASSERT_EQ (true, s.contains (green)); ASSERT_EQ (true, s.contains (blue)); ASSERT_EQ (2, s.elements ()); + + int seen = 0; + for (hash_set::iterator it = s.begin (); it != s.end (); ++it) + { + int n = *it == green; + if (n == 0) + ASSERT_EQ (*it, blue); + ASSERT_EQ (seen & (1 << n), 0); + seen |= 1 << n; + } + ASSERT_EQ (seen, 3); + + hash_set t; + ASSERT_EQ (0, t.elements ()); + + ASSERT_EQ (false, t.contains (red)); + + for (hash_set::iterator it = t.begin (); + it != t.end (); ++it) + ASSERT_EQ (true, false); + + /* Populate the hash_set. */ + ASSERT_EQ (false, t.add (red)); + ASSERT_EQ (false, t.add (green)); + ASSERT_EQ (false, t.add (blue)); + ASSERT_EQ (true, t.add (green)); + + /* Verify that the values are now within the set. */ + ASSERT_EQ (true, t.contains (red)); + ASSERT_EQ (true, t.contains (green)); + ASSERT_EQ (true, t.contains (blue)); + ASSERT_EQ (3, t.elements ()); + + seen = 0; + for (hash_set::iterator it = t.begin (); + it != t.end (); ++it) + { + int n = 2; + if (*it == green) + n = 0; + else if (*it == blue) + n = 1; + else + ASSERT_EQ (*it, red); + ASSERT_EQ (seen & (1 << n), 0); + seen |= 1 << n; + } + ASSERT_EQ (seen, 7); + + /* Test removal. */ + t.remove (red); + ASSERT_EQ (false, t.contains (red)); + ASSERT_EQ (true, t.contains (green)); + ASSERT_EQ (true, t.contains (blue)); + ASSERT_EQ (2, t.elements ()); + + t.remove (red); + ASSERT_EQ (false, t.contains (red)); + ASSERT_EQ (true, t.contains (green)); + ASSERT_EQ (true, t.contains (blue)); + ASSERT_EQ (2, t.elements ()); } /* Run all of the selftests within this file. */ diff --git a/gcc/hash-set.h b/gcc/hash-set.h index 1f09518..8e1f38b 100644 --- a/gcc/hash-set.h +++ b/gcc/hash-set.h @@ -21,7 +21,8 @@ along with GCC; see the file COPYING3. If not see #ifndef hash_set_h #define hash_set_h -template > +template > class hash_set { public: @@ -32,12 +33,12 @@ public: /* Create a hash_set in gc memory with space for at least n elements. */ static hash_set * - create_ggc (size_t n) - { - hash_set *set = ggc_alloc (); - new (set) hash_set (n, true); - return set; - } + create_ggc (size_t n) + { + hash_set *set = ggc_alloc (); + new (set) hash_set (n, true); + return set; + } /* If key k isn't already in the map add it to the map, and return false. Otherwise return true. */ @@ -56,6 +57,9 @@ public: bool contains (const Key &k) { + if (Lazy) + return (m_table.find_slot_with_hash (k, Traits::hash (k), NO_INSERT) + != NULL); Key &e = m_table.find_with_hash (k, Traits::hash (k)); return !Traits::is_empty (e); } @@ -71,7 +75,7 @@ public: template void traverse (Arg a) const { - for (typename hash_table::iterator iter = m_table.begin (); + for (typename hash_table::iterator iter = m_table.begin (); iter != m_table.end (); ++iter) f (*iter, a); } @@ -87,7 +91,8 @@ public: class iterator { public: - explicit iterator (const typename hash_table::iterator &iter) : + explicit iterator (const typename hash_table::iterator &iter) : m_iter (iter) {} iterator &operator++ () @@ -109,7 +114,7 @@ public: } private: - typename hash_table::iterator m_iter; + typename hash_table::iterator m_iter; }; /* Standard iterator retrieval methods. */ @@ -120,11 +125,14 @@ public: private: - template friend void gt_ggc_mx (hash_set *); - template friend void gt_pch_nx (hash_set *); - template friend void gt_pch_nx (hash_set *, gt_pointer_operator, void *); + template + friend void gt_ggc_mx (hash_set *); + template + friend void gt_pch_nx (hash_set *); + template + friend void gt_pch_nx (hash_set *, gt_pointer_operator, void *); - hash_table m_table; + hash_table m_table; }; /* Generic hash_set debug helper. @@ -169,21 +177,21 @@ debug_helper (hash_set &ref) template static inline void -gt_ggc_mx (hash_set *h) +gt_ggc_mx (hash_set *h) { gt_ggc_mx (&h->m_table); } template static inline void -gt_pch_nx (hash_set *h) +gt_pch_nx (hash_set *h) { gt_pch_nx (&h->m_table); } template static inline void -gt_pch_nx (hash_set *h, gt_pointer_operator op, void *cookie) +gt_pch_nx (hash_set *h, gt_pointer_operator op, void *cookie) { op (&h->m_table.m_entries, cookie); } diff --git a/gcc/hash-table.h b/gcc/hash-table.h index 9e09fa4..e5bbe67 100644 --- a/gcc/hash-table.h +++ b/gcc/hash-table.h @@ -167,6 +167,15 @@ along with GCC; see the file COPYING3. If not see See hash_table for details. The interface is very similar to libiberty's htab_t. + If a hash table is used only in some rare cases, it is possible + to construct the hash_table lazily before first use. This is done + through: + + hash_table some_type_hash_table; + + which will cause whatever methods actually need the allocated entries + array to allocate it later. + EASY DESCRIPTORS FOR POINTERS @@ -241,7 +250,7 @@ along with GCC; see the file COPYING3. If not see #include "hash-map-traits.h" template class hash_map; -template class hash_set; +template class hash_set; /* The ordinary memory allocator. */ /* FIXME (crowl): This allocator may be extracted for wider sharing later. */ @@ -353,8 +362,8 @@ class mem_usage; hash table code. */ -template class Allocator = xcallocator> +template class Allocator = xcallocator> class hash_table { typedef typename Descriptor::value_type value_type; @@ -422,7 +431,7 @@ public: write the value you want into the returned slot. When inserting an entry, NULL may be returned if memory allocation fails. */ value_type *find_slot_with_hash (const compare_type &comparable, - hashval_t hash, enum insert_option insert); + hashval_t hash, enum insert_option insert); /* This function deletes an element with the given COMPARABLE value from hash table starting with the given HASH. If there is no @@ -472,6 +481,8 @@ public: iterator begin () const { + if (Lazy && m_entries == NULL) + return iterator (); iterator iter (m_entries, m_entries + m_size); iter.slide (); return iter; @@ -491,9 +502,8 @@ private: hashtab_entry_note_pointers (void *, void *, gt_pointer_operator, void *); template friend void gt_pch_nx (hash_map *, gt_pointer_operator, void *); - template friend void gt_pch_nx (hash_set *, - gt_pointer_operator, - void *); + template + friend void gt_pch_nx (hash_set *, gt_pointer_operator, void *); template friend void gt_pch_nx (hash_table *, gt_pointer_operator, void *); @@ -566,11 +576,12 @@ extern mem_alloc_description& hash_table_usage (void); /* Support function for statistics. */ extern void dump_hash_table_loc_statistics (void); -template class Allocator> -hash_table::hash_table (size_t size, bool ggc, bool - gather_mem_stats, - mem_alloc_origin origin - MEM_STAT_DECL) : +template class Allocator> +hash_table::hash_table (size_t size, bool ggc, + bool gather_mem_stats, + mem_alloc_origin origin + MEM_STAT_DECL) : m_n_elements (0), m_n_deleted (0), m_searches (0), m_collisions (0), m_ggc (ggc), m_gather_mem_stats (gather_mem_stats) { @@ -581,18 +592,23 @@ hash_table::hash_table (size_t size, bool ggc, bool if (m_gather_mem_stats) hash_table_usage ().register_descriptor (this, origin, ggc - FINAL_PASS_MEM_STAT); + FINAL_PASS_MEM_STAT); - m_entries = alloc_entries (size PASS_MEM_STAT); + if (Lazy) + m_entries = NULL; + else + m_entries = alloc_entries (size PASS_MEM_STAT); m_size = size; m_size_prime_index = size_prime_index; } -template class Allocator> -hash_table::hash_table (const hash_table &h, bool ggc, - bool gather_mem_stats, - mem_alloc_origin origin - MEM_STAT_DECL) : +template class Allocator> +hash_table::hash_table (const hash_table &h, + bool ggc, + bool gather_mem_stats, + mem_alloc_origin origin + MEM_STAT_DECL) : m_n_elements (h.m_n_elements), m_n_deleted (h.m_n_deleted), m_searches (0), m_collisions (0), m_ggc (ggc), m_gather_mem_stats (gather_mem_stats) @@ -603,43 +619,54 @@ hash_table::hash_table (const hash_table &h, bool ggc, hash_table_usage ().register_descriptor (this, origin, ggc FINAL_PASS_MEM_STAT); - value_type *nentries = alloc_entries (size PASS_MEM_STAT); - for (size_t i = 0; i < size; ++i) + if (Lazy && h.m_entries == NULL) + m_entries = NULL; + else { - value_type &entry = h.m_entries[i]; - if (is_deleted (entry)) - mark_deleted (nentries[i]); - else if (!is_empty (entry)) - nentries[i] = entry; + value_type *nentries = alloc_entries (size PASS_MEM_STAT); + for (size_t i = 0; i < size; ++i) + { + value_type &entry = h.m_entries[i]; + if (is_deleted (entry)) + mark_deleted (nentries[i]); + else if (!is_empty (entry)) + nentries[i] = entry; + } + m_entries = nentries; } - m_entries = nentries; m_size = size; m_size_prime_index = h.m_size_prime_index; } -template class Allocator> -hash_table::~hash_table () +template class Allocator> +hash_table::~hash_table () { - for (size_t i = m_size - 1; i < m_size; i--) - if (!is_empty (m_entries[i]) && !is_deleted (m_entries[i])) - Descriptor::remove (m_entries[i]); + if (!Lazy || m_entries) + { + for (size_t i = m_size - 1; i < m_size; i--) + if (!is_empty (m_entries[i]) && !is_deleted (m_entries[i])) + Descriptor::remove (m_entries[i]); - if (!m_ggc) - Allocator ::data_free (m_entries); - else - ggc_free (m_entries); + if (!m_ggc) + Allocator ::data_free (m_entries); + else + ggc_free (m_entries); + } if (m_gather_mem_stats) hash_table_usage ().release_instance_overhead (this, - sizeof (value_type) * m_size, - true); + sizeof (value_type) + * m_size, true); } /* This function returns an array of empty hash table elements. */ -template class Allocator> -inline typename hash_table::value_type * -hash_table::alloc_entries (size_t n MEM_STAT_DECL) const +template class Allocator> +inline typename hash_table::value_type * +hash_table::alloc_entries (size_t n MEM_STAT_DECL) const { value_type *nentries; @@ -665,9 +692,11 @@ hash_table::alloc_entries (size_t n MEM_STAT_DECL) const This function also assumes there are no deleted entries in the table. HASH is the hash value for the element to be inserted. */ -template class Allocator> -typename hash_table::value_type * -hash_table::find_empty_slot_for_expand (hashval_t hash) +template class Allocator> +typename hash_table::value_type * +hash_table::find_empty_slot_for_expand (hashval_t hash) { hashval_t index = hash_table_mod1 (hash, m_size_prime_index); size_t size = m_size; @@ -694,9 +723,10 @@ hash_table::find_empty_slot_for_expand (hashval_t hash) /* Return true if the current table is excessively big for ELTS elements. */ -template class Allocator> +template class Allocator> inline bool -hash_table::too_empty_p (unsigned int elts) +hash_table::too_empty_p (unsigned int elts) { return elts * 8 < m_size && m_size > 32; } @@ -708,9 +738,10 @@ hash_table::too_empty_p (unsigned int elts) table entries is changed. If memory allocation fails, this function will abort. */ -template class Allocator> +template class Allocator> void -hash_table::expand () +hash_table::expand () { value_type *oentries = m_entries; unsigned int oindex = m_size_prime_index; @@ -769,9 +800,10 @@ hash_table::expand () /* Implements empty() in cases where it isn't a no-op. */ -template class Allocator> +template class Allocator> void -hash_table::empty_slow () +hash_table::empty_slow () { size_t size = m_size; size_t nsize = size; @@ -819,9 +851,10 @@ hash_table::empty_slow () useful when you've already done the lookup and don't want to do it again. */ -template class Allocator> +template class Allocator> void -hash_table::clear_slot (value_type *slot) +hash_table::clear_slot (value_type *slot) { gcc_checking_assert (!(slot < m_entries || slot >= m_entries + size () || is_empty (*slot) || is_deleted (*slot))); @@ -836,15 +869,18 @@ hash_table::clear_slot (value_type *slot) COMPARABLE element starting with the given HASH value. It cannot be used to insert or delete an element. */ -template class Allocator> -typename hash_table::value_type & -hash_table +template class Allocator> +typename hash_table::value_type & +hash_table ::find_with_hash (const compare_type &comparable, hashval_t hash) { m_searches++; size_t size = m_size; hashval_t index = hash_table_mod1 (hash, m_size_prime_index); + if (Lazy && m_entries == NULL) + m_entries = alloc_entries (size); value_type *entry = &m_entries[index]; if (is_empty (*entry) || (!is_deleted (*entry) && Descriptor::equal (*entry, comparable))) @@ -873,12 +909,20 @@ hash_table write the value you want into the returned slot. When inserting an entry, NULL may be returned if memory allocation fails. */ -template class Allocator> -typename hash_table::value_type * -hash_table +template class Allocator> +typename hash_table::value_type * +hash_table ::find_slot_with_hash (const compare_type &comparable, hashval_t hash, enum insert_option insert) { + if (Lazy && m_entries == NULL) + { + if (insert == INSERT) + m_entries = alloc_entries (m_size); + else + return NULL; + } if (insert == INSERT && m_size * 3 <= m_n_elements * 4) expand (); @@ -934,9 +978,10 @@ hash_table from hash table starting with the given HASH. If there is no matching element in the hash table, this function does nothing. */ -template class Allocator> +template class Allocator> void -hash_table +hash_table ::remove_elt_with_hash (const compare_type &comparable, hashval_t hash) { value_type *slot = find_slot_with_hash (comparable, hash, NO_INSERT); @@ -953,15 +998,18 @@ hash_table each live entry. If CALLBACK returns false, the iteration stops. ARGUMENT is passed as CALLBACK's second argument. */ -template class Allocator> template::value_type *slot, - Argument argument)> + int (*Callback) + (typename hash_table::value_type *slot, + Argument argument)> void -hash_table::traverse_noresize (Argument argument) +hash_table::traverse_noresize (Argument argument) { + if (Lazy && m_entries == NULL) + return; + value_type *slot = m_entries; value_type *limit = slot + size (); @@ -979,16 +1027,16 @@ hash_table::traverse_noresize (Argument argument) /* Like traverse_noresize, but does resize the table when it is too empty to improve effectivity of subsequent calls. */ -template class Allocator> template ::value_type *slot, - Argument argument)> + (typename hash_table::value_type *slot, + Argument argument)> void -hash_table::traverse (Argument argument) +hash_table::traverse (Argument argument) { - if (too_empty_p (elements ())) + if (too_empty_p (elements ()) && (!Lazy || m_entries)) expand (); traverse_noresize (argument); @@ -996,9 +1044,10 @@ hash_table::traverse (Argument argument) /* Slide down the iterator slots until an active entry is found. */ -template class Allocator> +template class Allocator> void -hash_table::iterator::slide () +hash_table::iterator::slide () { for ( ; m_slot < m_limit; ++m_slot ) { @@ -1012,9 +1061,10 @@ hash_table::iterator::slide () /* Bump the iterator. */ -template class Allocator> -inline typename hash_table::iterator & -hash_table::iterator::operator ++ () +template class Allocator> +inline typename hash_table::iterator & +hash_table::iterator::operator ++ () { ++m_slot; slide (); diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog index c57c99a..9958db1 100644 --- a/gcc/jit/ChangeLog +++ b/gcc/jit/ChangeLog @@ -1,3 +1,8 @@ +2019-03-21 Jakub Jelinek + + * jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy + in hash_set template param. + 2019-02-05 Andrea Corallo * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag. diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c index 8ffd0d4..a332fe8 100644 --- a/gcc/jit/jit-recording.c +++ b/gcc/jit/jit-recording.c @@ -245,7 +245,7 @@ class reproducer : public dump { static void remove (const char *) {} }; - hash_set m_set_identifiers; + hash_set m_set_identifiers; allocator m_allocator; }; -- cgit v1.1 From 152d47df7f625885ae972386c759330cea6b169e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 21 Mar 2019 23:01:02 +0100 Subject: re PR c++/89767 (ICE with tuple and optimization) PR c++/89767 * parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id variables, check for duplicates in this function. * lambda.c (add_capture): Don't check for duplicates nor use IDENTIFIER_MARKED. (register_capture_members): Don't clear IDENTIFIER_MARKED here. * g++.dg/cpp1y/lambda-init18.C: New test. * g++.dg/cpp1y/lambda-init19.C: New test. * g++.dg/cpp1y/pr89767.C: New test. From-SVN: r269860 --- gcc/cp/ChangeLog | 9 +++++ gcc/cp/lambda.c | 15 -------- gcc/cp/parser.c | 55 ++++++++++++++++++++++-------- gcc/testsuite/ChangeLog | 7 ++++ gcc/testsuite/g++.dg/cpp1y/lambda-init18.C | 12 +++++++ gcc/testsuite/g++.dg/cpp1y/lambda-init19.C | 15 ++++++++ gcc/testsuite/g++.dg/cpp1y/pr89767.C | 32 +++++++++++++++++ 7 files changed, 115 insertions(+), 30 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-init18.C create mode 100644 gcc/testsuite/g++.dg/cpp1y/lambda-init19.C create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr89767.C (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5a28c96..741ad48 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,12 @@ +2019-03-21 Jakub Jelinek + + PR c++/89767 + * parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id + variables, check for duplicates in this function. + * lambda.c (add_capture): Don't check for duplicates nor use + IDENTIFIER_MARKED. + (register_capture_members): Don't clear IDENTIFIER_MARKED here. + 2019-03-21 Paolo Carlini PR c++/89571 diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index e7f0fda..3e17676 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -601,19 +601,6 @@ add_capture (tree lambda, tree id, tree orig_init, bool by_reference_p, IDENTIFIER_LENGTH (id) + 1); name = get_identifier (buf); - /* If TREE_TYPE isn't set, we're still in the introducer, so check - for duplicates. */ - if (!LAMBDA_EXPR_CLOSURE (lambda)) - { - if (IDENTIFIER_MARKED (name)) - { - pedwarn (input_location, 0, - "already captured %qD in lambda expression", id); - return NULL_TREE; - } - IDENTIFIER_MARKED (name) = true; - } - if (variadic) type = make_pack_expansion (type); @@ -674,8 +661,6 @@ register_capture_members (tree captures) if (PACK_EXPANSION_P (field)) field = PACK_EXPANSION_PATTERN (field); - /* We set this in add_capture to avoid duplicates. */ - IDENTIFIER_MARKED (DECL_NAME (field)) = false; finish_member_declaration (field); } diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 81aff35..c669e49 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -10547,6 +10547,8 @@ cp_parser_lambda_introducer (cp_parser* parser, tree lambda_expr) error ("non-local lambda expression cannot have a capture-default"); } + hash_set ids; + tree first_capture_id = NULL_TREE; while (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_SQUARE)) { cp_token* capture_token; @@ -10582,11 +10584,14 @@ cp_parser_lambda_introducer (cp_parser* parser, tree lambda_expr) pedwarn (loc, 0, "explicit by-copy capture of % redundant " "with by-copy capture default"); cp_lexer_consume_token (parser->lexer); - add_capture (lambda_expr, - /*id=*/this_identifier, - /*initializer=*/finish_this_expr (), - /*by_reference_p=*/true, - explicit_init_p); + if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr)) + pedwarn (input_location, 0, + "already captured %qD in lambda expression", + this_identifier); + else + add_capture (lambda_expr, /*id=*/this_identifier, + /*initializer=*/finish_this_expr (), + /*by_reference_p=*/true, explicit_init_p); continue; } @@ -10600,11 +10605,14 @@ cp_parser_lambda_introducer (cp_parser* parser, tree lambda_expr) "%<-std=c++17%> or %<-std=gnu++17%>"); cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer); - add_capture (lambda_expr, - /*id=*/this_identifier, - /*initializer=*/finish_this_expr (), - /*by_reference_p=*/false, - explicit_init_p); + if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr)) + pedwarn (input_location, 0, + "already captured %qD in lambda expression", + this_identifier); + else + add_capture (lambda_expr, /*id=*/this_identifier, + /*initializer=*/finish_this_expr (), + /*by_reference_p=*/false, explicit_init_p); continue; } @@ -10753,11 +10761,28 @@ cp_parser_lambda_introducer (cp_parser* parser, tree lambda_expr) "default", capture_id); } - add_capture (lambda_expr, - capture_id, - capture_init_expr, - /*by_reference_p=*/capture_kind == BY_REFERENCE, - explicit_init_p); + /* Check for duplicates. + Optimize for the zero or one explicit captures cases and only create + the hash_set after adding second capture. */ + bool found = false; + if (ids.elements ()) + found = ids.add (capture_id); + else if (first_capture_id == NULL_TREE) + first_capture_id = capture_id; + else if (capture_id == first_capture_id) + found = true; + else + { + ids.add (first_capture_id); + ids.add (capture_id); + } + if (found) + pedwarn (input_location, 0, + "already captured %qD in lambda expression", capture_id); + else + add_capture (lambda_expr, capture_id, capture_init_expr, + /*by_reference_p=*/capture_kind == BY_REFERENCE, + explicit_init_p); /* If there is any qualification still in effect, clear it now; we will be starting fresh with the next capture. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f575c0f..2334e97 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2019-03-21 Jakub Jelinek + + PR c++/89767 + * g++.dg/cpp1y/lambda-init18.C: New test. + * g++.dg/cpp1y/lambda-init19.C: New test. + * g++.dg/cpp1y/pr89767.C: New test. + 2019-03-21 Thomas Schwinge Cesar Philippidis diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C new file mode 100644 index 0000000..5a86600 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C @@ -0,0 +1,12 @@ +// PR c++/89767 +// { dg-do compile { target c++14 } } + +void bar (int); + +void +foo () +{ + int x = 0; + auto z = [x, y = [x] { bar (x); }] { y (); bar (x); }; + z (); +} diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C new file mode 100644 index 0000000..830ecc0 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C @@ -0,0 +1,15 @@ +// PR c++/89767 +// { dg-do compile { target c++14 } } + +void bar (int); + +void +foo () +{ + int x = 0; + int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0; + auto z = [x, y = [x] { bar (x); }, x] { y (); bar (x); }; // { dg-error "already captured 'x' in lambda expression" } + auto w = [x, a, b, c, d, y = [x] { bar (x); }, e, f, g, h, x] { y (); bar (x + a + b + c + d + e + f + g + h); }; // { dg-error "already captured 'x' in lambda expression" } + z (); + w (); +} diff --git a/gcc/testsuite/g++.dg/cpp1y/pr89767.C b/gcc/testsuite/g++.dg/cpp1y/pr89767.C new file mode 100644 index 0000000..108de51 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/pr89767.C @@ -0,0 +1,32 @@ +// PR c++/89767 +// { dg-do compile { target c++14 } } +// { dg-options "-O2 -Wall" } + +template struct e { using g = d; }; +template class> using h = e; +template class i> +using j = typename h::g; +template int k(c); +template class au; +struct l { template using m = typename c::f; }; +struct s : l { using af = j *, m>; }; +template struct o; +template using q = typename o::g; +template struct r; +template struct r { typedef c aj; }; +template struct al { typename r::aj operator*(); void operator++(); }; +template +bool operator!=(al, al); +template struct ap; +template +struct ap : ap<1, as...> {}; +template struct ap {}; +template class au : public ap<0, at...> {}; +template +struct o> : o

> {}; +template struct o<0, au> { typedef ar g; }; +template constexpr ar av(ap __t) { return ar (); } +template constexpr q> aw(au __t) { av

(__t); return q> (); } +struct bg { typedef s::af af; }; +struct F { typedef al bk; bk begin(); bk end(); }; +void bo() { int t = 0; F cv; for (auto bp : cv) [t, n = k(aw<1>(bp))] {}; } -- cgit v1.1 From 8c8b42cf72f677e004909b2ab3b3f12353fb94d5 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 21 Mar 2019 23:03:07 +0100 Subject: re PR c++/71446 (Incorrect overload resolution when using designated initializers) PR c++/71446 * call.c (filed_in_pset): Change pset from hash_set * to hash_set &, adjust uses accordingly. (build_aggr_conv): Change pset from hash_set * to hash_set. Replace goto fail; with return NULL;, adjust pset uses. From-SVN: r269861 --- gcc/cp/ChangeLog | 7 +++++++ gcc/cp/call.c | 29 ++++++++++------------------- 2 files changed, 17 insertions(+), 19 deletions(-) (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 741ad48..61cf384 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,12 @@ 2019-03-21 Jakub Jelinek + PR c++/71446 + * call.c (filed_in_pset): Change pset from hash_set * to + hash_set &, adjust uses accordingly. + (build_aggr_conv): Change pset from hash_set * + to hash_set. Replace goto fail; with return NULL;, + adjust pset uses. + PR c++/89767 * parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id variables, check for duplicates in this function. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index d1f5055..a4adab2 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -907,9 +907,9 @@ can_convert_array (tree atype, tree ctor, int flags, tsubst_flags_t complain) is in PSET. */ static bool -field_in_pset (hash_set *pset, tree field) +field_in_pset (hash_set &pset, tree field) { - if (pset->contains (field)) + if (pset.contains (field)) return true; if (ANON_AGGR_TYPE_P (TREE_TYPE (field))) for (field = TYPE_FIELDS (TREE_TYPE (field)); @@ -934,7 +934,7 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) conversion *c; tree field = next_initializable_field (TYPE_FIELDS (type)); tree empty_ctor = NULL_TREE; - hash_set *pset = NULL; + hash_set pset; /* We already called reshape_init in implicit_conversion. */ @@ -964,7 +964,7 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) complain); if (!ok) - goto fail; + return NULL; /* For unions, there should be just one initializer. */ if (TREE_CODE (type) == UNION_TYPE) { @@ -972,12 +972,10 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) i = 1; break; } - if (pset == NULL) - pset = new hash_set; - pset->add (idx); + pset.add (idx); } else - goto fail; + return NULL; } } @@ -987,7 +985,7 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) tree val; bool ok; - if (pset && field_in_pset (pset, field)) + if (pset.elements () && field_in_pset (pset, field)) continue; if (i < CONSTRUCTOR_NELTS (ctor)) { @@ -998,7 +996,7 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) val = get_nsdmi (field, /*ctor*/false, complain); else if (TYPE_REF_P (ftype)) /* Value-initialization of reference is ill-formed. */ - goto fail; + return NULL; else { if (empty_ctor == NULL_TREE) @@ -1014,22 +1012,15 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) complain); if (!ok) - goto fail; + return NULL; if (TREE_CODE (type) == UNION_TYPE) break; } if (i < CONSTRUCTOR_NELTS (ctor)) - { - fail: - if (pset) - delete pset; - return NULL; - } + return NULL; - if (pset) - delete pset; c = alloc_conversion (ck_aggr); c->type = type; c->rank = cr_exact; -- cgit v1.1 From 774856e3fbc2b1b6ab67470a7d6fc7cb7b4be546 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 21 Mar 2019 23:04:29 +0100 Subject: re PR lto/89692 (ICE in streamer_write_chain, at tree-streamer-out.c:506) PR lto/89692 * tree.c (fld_type_variant, fld_incomplete_type_of, fld_process_array_type): Call fld->pset.add and don't call add_tree_to_fld_list if it returns true. (free_lang_data_in_type): Similarly with self-recursive call. Purge non-marked types from TYPE_NEXT_VARIANT list. (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). * g++.dg/other/pr89692.C: New test. From-SVN: r269862 --- gcc/ChangeLog | 11 +++++++++++ gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/g++.dg/other/pr89692.C | 20 ++++++++++++++++++++ gcc/tree.c | 30 +++++++++++++++++++++++------- 4 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 gcc/testsuite/g++.dg/other/pr89692.C (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f1bf46..2f0c540 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2019-03-21 Jan Hubicka + Jakub Jelinek + + PR lto/89692 + * tree.c (fld_type_variant, fld_incomplete_type_of, + fld_process_array_type): Call fld->pset.add and don't call + add_tree_to_fld_list if it returns true. + (free_lang_data_in_type): Similarly with self-recursive call. Purge + non-marked types from TYPE_NEXT_VARIANT list. + (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). + 2019-03-21 Jakub Jelinek * hash-table.h (hash_table): Add Lazy template parameter defaulted diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2334e97..4edc0ef 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2019-03-21 Jakub Jelinek + PR lto/89692 + * g++.dg/other/pr89692.C: New test. + PR c++/89767 * g++.dg/cpp1y/lambda-init18.C: New test. * g++.dg/cpp1y/lambda-init19.C: New test. diff --git a/gcc/testsuite/g++.dg/other/pr89692.C b/gcc/testsuite/g++.dg/other/pr89692.C new file mode 100644 index 0000000..36adeb5 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/pr89692.C @@ -0,0 +1,20 @@ +// PR lto/89692 +// { dg-do compile } +// { dg-require-effective-target lto } +// { dg-options "-flto -O2" } + +struct S { + short int a, b; + unsigned char c : 1; +}; + +bool +foo (void) +{ + unsigned char d[sizeof (S)] = { 0 }; + S e; + + __builtin_memcpy (&e, d, sizeof (d)); + + return e.c == d[0]; +} diff --git a/gcc/tree.c b/gcc/tree.c index ae8ff08..65f8cd3 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -5215,7 +5215,8 @@ fld_type_variant (tree first, tree t, struct free_lang_data_d *fld, if (inner_type) TREE_TYPE (v) = inner_type; gcc_checking_assert (fld_type_variant_equal_p (t,v, inner_type)); - add_tree_to_fld_list (v, fld); + if (!fld->pset.add (v)) + add_tree_to_fld_list (v, fld); return v; } @@ -5253,7 +5254,8 @@ fld_process_array_type (tree t, tree t2, hash_map *map, array = build_array_type_1 (t2, TYPE_DOMAIN (t), TYPE_TYPELESS_STORAGE (t), false); TYPE_CANONICAL (array) = TYPE_CANONICAL (t); - add_tree_to_fld_list (array, fld); + if (!fld->pset.add (array)) + add_tree_to_fld_list (array, fld); } return array; } @@ -5298,7 +5300,8 @@ fld_incomplete_type_of (tree t, struct free_lang_data_d *fld) TYPE_REF_CAN_ALIAS_ALL (t)); gcc_assert (TYPE_CANONICAL (t2) != t2 && TYPE_CANONICAL (t2) == TYPE_CANONICAL (TREE_TYPE (t))); - add_tree_to_fld_list (first, fld); + if (!fld->pset.add (first)) + add_tree_to_fld_list (first, fld); return fld_type_variant (first, t, fld); } return t; @@ -5321,7 +5324,8 @@ fld_incomplete_type_of (tree t, struct free_lang_data_d *fld) copy = build_distinct_type_copy (t); /* It is possible that type was not seen by free_lang_data yet. */ - add_tree_to_fld_list (copy, fld); + if (!fld->pset.add (copy)) + add_tree_to_fld_list (copy, fld); TYPE_SIZE (copy) = NULL; TYPE_USER_ALIGN (copy) = 0; TYPE_SIZE_UNIT (copy) = NULL; @@ -5445,6 +5449,18 @@ free_lang_data_in_type (tree type, struct free_lang_data_d *fld) TYPE_NEEDS_CONSTRUCTING (type) = 0; + /* Purge non-marked variants from the variants chain, so that they + don't reappear in the IL after free_lang_data. */ + while (TYPE_NEXT_VARIANT (type) + && !fld->pset.contains (TYPE_NEXT_VARIANT (type))) + { + tree t = TYPE_NEXT_VARIANT (type); + TYPE_NEXT_VARIANT (type) = TYPE_NEXT_VARIANT (t); + /* Turn the removed types into distinct types. */ + TYPE_MAIN_VARIANT (t) = t; + TYPE_NEXT_VARIANT (t) = NULL_TREE; + } + if (TREE_CODE (type) == FUNCTION_TYPE) { TREE_TYPE (type) = fld_simplified_type (TREE_TYPE (type), fld); @@ -5464,7 +5480,8 @@ free_lang_data_in_type (tree type, struct free_lang_data_d *fld) & ~TYPE_QUAL_CONST & ~TYPE_QUAL_VOLATILE; TREE_VALUE (p) = build_qualified_type (arg_type, quals); - free_lang_data_in_type (TREE_VALUE (p), fld); + if (!fld->pset.add (TREE_VALUE (p))) + free_lang_data_in_type (TREE_VALUE (p), fld); } /* C++ FE uses TREE_PURPOSE to store initial values. */ TREE_PURPOSE (p) = NULL; @@ -5886,8 +5903,7 @@ find_decls_types_r (tree *tp, int *ws, void *data) ctx = BLOCK_SUPERCONTEXT (ctx); fld_worklist_push (ctx, fld); } - /* Do not walk TYPE_CANONICAL. We do not stream it and thus do not - and want not to reach unused types this way. */ + fld_worklist_push (TYPE_CANONICAL (t), fld); if (RECORD_OR_UNION_TYPE_P (t) && TYPE_BINFO (t)) { -- cgit v1.1 From 11bf9a075a2d6ba4ee668e785fd2c478fa32f421 Mon Sep 17 00:00:00 2001 From: GCC Administrator Date: Fri, 22 Mar 2019 00:16:26 +0000 Subject: Daily bump. From-SVN: r269866 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index eba1dd0..3f42a52 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20190321 +20190322 -- cgit v1.1 From a411ae9b355c739bf05c065fb2e1b748129c6894 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Fri, 22 Mar 2019 02:58:27 +0000 Subject: PR tree-optimization/89350 - Wrong -Wstringop-overflow= warning since r261518 gcc/ChangeLog: PR tree-optimization/89350 * builtins.c (compute_objsize): Also ignore offsets whose upper bound is negative. * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. (builtin_memref::builtin_memref): Initialize new member. Allow EXPR to be null. (builtin_memref::extend_offset_range): Replace local with a member. Avoid assuming pointer offsets are unsigned. (builtin_memref::set_base_and_offset): Determine base object before computing offset range. (builtin_access::builtin_access): Handle memset. (builtin_access::generic_overlap): Replace local with a member. (builtin_access::strcat_overlap): Same. (builtin_access::overlap): Same. (maybe_diag_overlap): Same. (maybe_diag_access_bounds): Same. (wrestrict_dom_walker::check_call): Handle memset. (check_bounds_or_overlap): Same. gcc/testsuite/ChangeLog: PR tree-optimization/89350 * gcc.dg/Wstringop-overflow.c: Xfail overly ambitious tests. * gcc.dg/Wstringop-overflow-11.c: New test. * gcc.dg/Wstringop-overflow-12.c: New test. * gcc.dg/pr89350.c: New test. * gcc.dg/pr40340-1.c: Adjust expected warning. * gcc.dg/pr40340-2.c: Same. * gcc.dg/pr40340-4.c: Same. * gcc.dg/pr40340-5.c: Same. From-SVN: r269867 --- gcc/ChangeLog | 21 ++ gcc/builtins.c | 3 +- gcc/gimple-ssa-warn-restrict.c | 134 +++++++---- gcc/testsuite/ChangeLog | 13 ++ gcc/testsuite/gcc.dg/Warray-bounds-40.c | 2 +- gcc/testsuite/gcc.dg/Wstringop-overflow-11.c | 321 +++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/Wstringop-overflow-12.c | 120 ++++++++++ gcc/testsuite/gcc.dg/Wstringop-overflow.c | 12 +- gcc/testsuite/gcc.dg/pr40340-1.c | 2 +- gcc/testsuite/gcc.dg/pr40340-2.c | 2 +- gcc/testsuite/gcc.dg/pr40340-4.c | 2 +- gcc/testsuite/gcc.dg/pr40340-5.c | 2 +- gcc/testsuite/gcc.dg/pr89350.c | 18 ++ 13 files changed, 600 insertions(+), 52 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/Wstringop-overflow-11.c create mode 100644 gcc/testsuite/gcc.dg/Wstringop-overflow-12.c create mode 100644 gcc/testsuite/gcc.dg/pr89350.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f0c540..10aa8e5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,24 @@ +2019-03-21 Martin Sebor + + PR tree-optimization/89350 + * builtins.c (compute_objsize): Also ignore offsets whose upper + bound is negative. + * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. + (builtin_memref::builtin_memref): Initialize new member. + Allow EXPR to be null. + (builtin_memref::extend_offset_range): Replace local with a member. + Avoid assuming pointer offsets are unsigned. + (builtin_memref::set_base_and_offset): Determine base object + before computing offset range. + (builtin_access::builtin_access): Handle memset. + (builtin_access::generic_overlap): Replace local with a member. + (builtin_access::strcat_overlap): Same. + (builtin_access::overlap): Same. + (maybe_diag_overlap): Same. + (maybe_diag_access_bounds): Same. + (wrestrict_dom_walker::check_call): Handle memset. + (check_bounds_or_overlap): Same. + 2019-03-21 Jan Hubicka Jakub Jelinek diff --git a/gcc/builtins.c b/gcc/builtins.c index 93f829f..daf5830 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -3650,7 +3650,8 @@ compute_objsize (tree dest, int ostype) /* Ignore negative offsets for now. For others, use the lower bound as the most optimistic estimate of the (remaining)size. */ - if (wi::sign_mask (min)) + if (wi::sign_mask (min) + || wi::sign_mask (max)) ; else if (wi::ltu_p (min, wisiz)) return wide_int_to_tree (TREE_TYPE (size), diff --git a/gcc/gimple-ssa-warn-restrict.c b/gcc/gimple-ssa-warn-restrict.c index 6643b89..4ebe99f 100644 --- a/gcc/gimple-ssa-warn-restrict.c +++ b/gcc/gimple-ssa-warn-restrict.c @@ -147,6 +147,9 @@ struct builtin_memref /* The size range of the access to this reference. */ offset_int sizrange[2]; + /* Cached result of get_max_objsize(). */ + const offset_int maxobjsize; + /* True for "bounded" string functions like strncat, and strncpy and their variants that specify either an exact or upper bound on the size of the accesses they perform. For strncat both @@ -233,6 +236,7 @@ builtin_memref::builtin_memref (tree expr, tree size) refoff (HOST_WIDE_INT_MIN), offrange (), sizrange (), + maxobjsize (tree_to_shwi (max_object_size ())), strbounded_p () { /* Unfortunately, wide_int default ctor is a no-op so array members @@ -240,7 +244,8 @@ builtin_memref::builtin_memref (tree expr, tree size) offrange[0] = offrange[1] = 0; sizrange[0] = sizrange[1] = 0; - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + if (!expr) + return; /* Find the BASE object or pointer referenced by EXPR and set the offset range OFFRANGE in the process. */ @@ -292,13 +297,13 @@ builtin_memref::builtin_memref (tree expr, tree size) } } -/* Ctor helper to set or extend OFFRANGE based on the OFFSET argument. */ +/* Ctor helper to set or extend OFFRANGE based on the OFFSET argument. + Pointer offsets are represented as unsigned sizetype but must be + treated as signed. */ void builtin_memref::extend_offset_range (tree offset) { - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); - if (TREE_CODE (offset) == INTEGER_CST) { offset_int off = int_cst_value (offset); @@ -312,36 +317,57 @@ builtin_memref::extend_offset_range (tree offset) if (TREE_CODE (offset) == SSA_NAME) { + /* A pointer offset is represented as sizetype but treated + as signed. */ wide_int min, max; value_range_kind rng = get_range_info (offset, &min, &max); - if (rng == VR_RANGE) + if (rng == VR_ANTI_RANGE && wi::lts_p (max, min)) + { + /* Convert an anti-range whose upper bound is less than + its lower bound to a signed range. */ + offrange[0] += offset_int::from (max + 1, SIGNED); + offrange[1] += offset_int::from (min - 1, SIGNED); + return; + } + + if (rng == VR_RANGE + && (DECL_P (base) || wi::lts_p (min, max))) { + /* Preserve the bounds of the range for an offset into + a known object (it may be adjusted later relative to + a constant offset from its beginning). Otherwise use + the bounds only when they are ascending when treated + as signed. */ offrange[0] += offset_int::from (min, SIGNED); offrange[1] += offset_int::from (max, SIGNED); + return; } - else + + /* Handle an anti-range the same as no range at all. */ + gimple *stmt = SSA_NAME_DEF_STMT (offset); + tree type; + if (is_gimple_assign (stmt) + && (type = TREE_TYPE (gimple_assign_rhs1 (stmt))) + && INTEGRAL_TYPE_P (type)) { - /* Handle an anti-range the same as no range at all. */ - gimple *stmt = SSA_NAME_DEF_STMT (offset); - tree type; - if (is_gimple_assign (stmt) - && gimple_assign_rhs_code (stmt) == NOP_EXPR - && (type = TREE_TYPE (gimple_assign_rhs1 (stmt))) - && INTEGRAL_TYPE_P (type)) + tree_code code = gimple_assign_rhs_code (stmt); + if (code == NOP_EXPR) { /* Use the bounds of the type of the NOP_EXPR operand even if it's signed. The result doesn't trigger warnings but makes their output more readable. */ offrange[0] += wi::to_offset (TYPE_MIN_VALUE (type)); offrange[1] += wi::to_offset (TYPE_MAX_VALUE (type)); + return; } - else - offrange[1] += maxobjsize; } - return; } - offrange[1] += maxobjsize; + const offset_int maxoff = tree_to_shwi (max_object_size ()) >> 1; + const offset_int minoff = -maxoff - 1; + + offrange[0] += minoff; + offrange[1] += maxoff; } /* Determines the base object or pointer of the reference EXPR @@ -350,7 +376,7 @@ builtin_memref::extend_offset_range (tree offset) void builtin_memref::set_base_and_offset (tree expr) { - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + tree offset = NULL_TREE; if (TREE_CODE (expr) == SSA_NAME) { @@ -377,9 +403,7 @@ builtin_memref::set_base_and_offset (tree expr) else if (code == POINTER_PLUS_EXPR) { expr = gimple_assign_rhs1 (stmt); - - tree offset = gimple_assign_rhs2 (stmt); - extend_offset_range (offset); + offset = gimple_assign_rhs2 (stmt); } else { @@ -389,6 +413,12 @@ builtin_memref::set_base_and_offset (tree expr) } else { + /* FIXME: Handle PHI nodes in case like: + _12 = &MEM[(void *)&a + 2B] + _10; + + [local count: 1073741824]: + # prephitmp_13 = PHI <_12, &MEM[(void *)&a + 2B]> + memcpy (prephitmp_13, p_7(D), 6); */ base = expr; return; } @@ -416,6 +446,9 @@ builtin_memref::set_base_and_offset (tree expr) /* get_inner_reference is not expected to return null. */ gcc_assert (base != NULL); + if (offset) + extend_offset_range (offset); + poly_int64 bytepos = exact_div (bitpos, BITS_PER_UNIT); /* Convert the poly_int64 offset to offset_int. The offset @@ -471,7 +504,8 @@ builtin_memref::set_base_and_offset (tree expr) tree builtin_memref::offset_out_of_bounds (int strict, offset_int ooboff[2]) const { - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + if (!ptr) + return NULL_TREE; /* A temporary, possibly adjusted, copy of the offset range. */ offset_int offrng[2] = { offrange[0], offrange[1] }; @@ -606,6 +640,14 @@ builtin_access::builtin_access (gimple *call, builtin_memref &dst, detect_overlap = &builtin_access::no_overlap; break; + case BUILT_IN_MEMSET: + case BUILT_IN_MEMSET_CHK: + /* For memset there is never any overlap to check for. */ + ostype = 0; + depends_p = false; + detect_overlap = &builtin_access::no_overlap; + break; + case BUILT_IN_STPNCPY: case BUILT_IN_STPNCPY_CHK: case BUILT_IN_STRNCPY: @@ -640,7 +682,7 @@ builtin_access::builtin_access (gimple *call, builtin_memref &dst, return; } - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + const offset_int maxobjsize = dst.maxobjsize; /* Try to determine the size of the base object. compute_objsize expects a pointer so create one if BASE is a non-pointer object. */ @@ -659,7 +701,7 @@ builtin_access::builtin_access (gimple *call, builtin_memref &dst, dst.basesize = maxobjsize; } - if (src.basesize < 0) + if (src.base && src.basesize < 0) { addr = src.base; if (!POINTER_TYPE_P (TREE_TYPE (addr))) @@ -845,7 +887,7 @@ builtin_access::generic_overlap () gcc_assert (dstref->base == srcref->base); - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + const offset_int maxobjsize = acs.dstref->maxobjsize; offset_int maxsize = dstref->basesize < 0 ? maxobjsize : dstref->basesize; gcc_assert (maxsize <= maxobjsize); @@ -1054,7 +1096,7 @@ builtin_access::strcat_overlap () gcc_assert (dstref->base == srcref->base); - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + const offset_int maxobjsize = acs.dstref->maxobjsize; gcc_assert (dstref->base && dstref->base == srcref->base); @@ -1191,7 +1233,7 @@ builtin_access::overlap () { builtin_access &acs = *this; - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + const offset_int maxobjsize = dstref->maxobjsize; acs.sizrange[0] = wi::smax (dstref->sizrange[0], srcref->sizrange[0]).to_shwi (); @@ -1372,7 +1414,7 @@ maybe_diag_overlap (location_t loc, gimple *call, builtin_access &acs) "[" HOST_WIDE_INT_PRINT_DEC ", " HOST_WIDE_INT_PRINT_DEC "]", ovloff[0], ovloff[1]); - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + const offset_int maxobjsize = dstref.maxobjsize; bool must_overlap = ovlsiz[0] > 0; if (ovlsiz[1] == 0) @@ -1581,7 +1623,7 @@ static bool maybe_diag_access_bounds (location_t loc, gimple *call, tree func, int strict, const builtin_memref &ref, bool do_warn) { - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); + const offset_int maxobjsize = ref.maxobjsize; /* Check for excessive size first and regardless of warning options since the result is used to make codegen decisions. */ @@ -1690,8 +1732,6 @@ maybe_diag_access_bounds (location_t loc, gimple *call, tree func, int strict, } else if (oobref == ref.base) { - const offset_int maxobjsize = tree_to_shwi (max_object_size ()); - /* True when the offset formed by an access to the reference is out of bounds, rather than the initial offset wich is in bounds. This implies access past the end. */ @@ -1814,6 +1854,12 @@ wrestrict_dom_walker::check_call (gimple *call) bnd_idx = 2; break; + case BUILT_IN_MEMSET: + case BUILT_IN_MEMSET_CHK: + dst_idx = 0; + bnd_idx = 2; + break; + case BUILT_IN_STPCPY: case BUILT_IN_STPCPY_CHK: case BUILT_IN_STRCPY: @@ -1844,14 +1890,14 @@ wrestrict_dom_walker::check_call (gimple *call) /* DST and SRC can be null for a call with an insufficient number of arguments to a built-in function declared without a protype. */ - if (!dst || !src) + if (!dst || (src_idx < nargs && !src)) return; /* DST, SRC, or DSTWR can also have the wrong type in a call to a function declared without a prototype. Avoid checking such invalid calls. */ if (TREE_CODE (TREE_TYPE (dst)) != POINTER_TYPE - || TREE_CODE (TREE_TYPE (src)) != POINTER_TYPE + || (src && TREE_CODE (TREE_TYPE (src)) != POINTER_TYPE) || (dstwr && !INTEGRAL_TYPE_P (TREE_TYPE (dstwr)))) return; @@ -1901,15 +1947,23 @@ check_bounds_or_overlap (gimple *call, tree dst, tree src, tree dstsize, return OPT_Warray_bounds; } - bool check_overlap - = (warn_restrict - && (bounds_only - || (DECL_FUNCTION_CODE (func) != BUILT_IN_MEMMOVE - && DECL_FUNCTION_CODE (func) != BUILT_IN_MEMMOVE_CHK))); - - if (!check_overlap) + if (!warn_restrict || bounds_only || !src) return 0; + if (!bounds_only) + { + switch (DECL_FUNCTION_CODE (func)) + { + case BUILT_IN_MEMMOVE: + case BUILT_IN_MEMMOVE_CHK: + case BUILT_IN_MEMSET: + case BUILT_IN_MEMSET_CHK: + return 0; + default: + break; + } + } + if (operand_equal_p (dst, src, 0)) { /* Issue -Wrestrict unless the pointers are null (those do diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4edc0ef..076f795 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2019-03-21 Martin Sebor + + PR tree-optimization/89350 + * gcc.dg/Warray-bounds-40.c: Remove an xfail. + * gcc.dg/Wstringop-overflow.c: Xfail overly ambitious tests. + * gcc.dg/Wstringop-overflow-11.c: New test. + * gcc.dg/Wstringop-overflow-12.c: New test. + * gcc.dg/pr89350.c: New test. + * gcc.dg/pr40340-1.c: Adjust expected warning. + * gcc.dg/pr40340-2.c: Same. + * gcc.dg/pr40340-4.c: Same. + * gcc.dg/pr40340-5.c: Same. + 2019-03-21 Jakub Jelinek PR lto/89692 diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-40.c b/gcc/testsuite/gcc.dg/Warray-bounds-40.c index 21827fb..aabc283 100644 --- a/gcc/testsuite/gcc.dg/Warray-bounds-40.c +++ b/gcc/testsuite/gcc.dg/Warray-bounds-40.c @@ -42,7 +42,7 @@ void test_memmove (void) void test_memset (void) { - memset (d, 0, SIZE_MAX - 2); /* { dg-warning ".memset. pointer overflow between offset 0 and size \[0-9\]+ \\\[-Warray-bounds" "bug" { xfail *-*-* } } */ + memset (d, 0, SIZE_MAX - 2); /* { dg-warning ".memset. pointer overflow between offset 0 and size \[0-9\]+ \\\[-Warray-bounds" } */ } diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-11.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-11.c new file mode 100644 index 0000000..f5dac45 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-11.c @@ -0,0 +1,321 @@ +/* PR tree-optimization/89350 - Wrong -Wstringop-overflow warning + on a variable offset from the end of an array + Test exercising -Wstringop-truncation with -Wall. + -Wstringop-truncation is disabled to avoid warnings for strncpy + calls whose bound matches the size of the destination getting + in the way of -Wstringop-overflow. + { dg-do compile } + { dg-options "-O2 -Wall -Wno-stringop-truncation -ftrack-macro-expansion=0" } */ + +#include "range.h" + +extern void* memcpy (void*, const void*, size_t); +extern void* memset (void*, int, size_t); +extern char* strcpy (char*, const char*); +extern char* strncpy (char*, const char*, size_t); + +void sink (void*); + +#define CAT(pfx, line) pfx ## line +#define CONCAT(pfx, line) CAT (pfx, line) +#define UNIQ_NAME(pfx) CONCAT (pfx, __LINE__) + +/* Exercise a call to memset with a distinct destination object each + time to prevent GCC from reusing the destination pointer in later + tests. */ +#define T(off1, off2, n) \ + do { \ + extern char UNIQ_NAME (ga)[7]; \ + char *d = UNIQ_NAME (ga) + off1; \ + d += off2; \ + memset (d, 0, n); \ + sink (d); \ + } while (0) + + +/* Exercise calls to memset with a destination pointer pointing to + an array plus constant offset plus variable offset, in that order. */ + +void test_memset_array_cst_range_off (void) +{ + T (1, SR (-7, 7), 7); + T (1, SR (-1, 1), 7); + T (1, SR (-1, 1), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (1, SR ( 1, 2), 1); + T (1, SR ( 1, 2), 5); + + T (1, SR ( 0, 1), 6); + T (1, UR ( 1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR (-7, 7), 7); + T (2, SR (-2, 7), 7); + T (2, SR (-1, 1), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR (-1, 1), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR ( 1, 2), 1); + T (2, SR ( 1, 2), 3); + T (2, SR ( 1, 2), 4); + T (2, SR ( 1, 2), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR ( 0, 1), 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-* } } */ + T (2, UR ( 1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-7, 0), 7); + T (7, UR (-7, 0), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-3, 2), 3); + T (7, UR (-2, 2), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +/* Exercise calls to memset with a destination pointer pointing to + an array plus variable offset plus constant offset. */ + +void test_memset_array_range_cst_off (void) +{ + T (SR (-7, 7), 1, 7); + T (SR (-1, 1), 1, 7); + T (SR (-1, 1), 1, 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-*} } */ + T (SR ( 1, 2), 1, 1); + T (SR ( 1, 2), 1, 5); + + T (SR ( 0, 1), 1, 6); + T (UR ( 1, 2), 1, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR (-7, 7), 2, 7); + T (SR (-1, 1), 2, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR (-1, 1), 2, 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR ( 1, 2), 2, 1); + T (SR ( 1, 2), 2, 3); + T (SR ( 1, 2), 2, 4); + T (SR ( 1, 2), 2, 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR ( 0, 1), 2, 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (UR ( 1, 2), 2, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +void test_memset_array_range_range_off (void) +{ + T (UR (0, 1), UR (0, 1), 7); + T (UR (3, 5), UR (2, 7), 1); + T (UR (3, 7), UR (2, 9), 2); + T (UR (3, 9), UR (2, 9), 3); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (UR (0, 1), UR (1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +#undef T +#define T(off1, off2, n) \ + do { \ + extern char UNIQ_NAME (ga)[7]; \ + char *d = UNIQ_NAME (ga) + off1; \ + d += off2; \ + memcpy (d, s, n); \ + sink (d); \ + } while (0) + + +void test_memcpy_array_cst_range_off (const void *s) +{ + T (1, SR (-7, 7), 7); + T (1, SR (-1, 1), 7); + T (1, SR (-1, 1), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (1, SR ( 1, 2), 1); + T (1, SR ( 1, 2), 5); + + T (1, SR ( 0, 1), 6); + T (1, UR ( 1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR (-7, 7), 7); + T (2, SR (-2, 7), 7); + T (2, SR (-1, 1), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR (-1, 1), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR ( 1, 2), 1); + T (2, SR ( 1, 2), 3); + T (2, SR ( 1, 2), 4); + T (2, SR ( 1, 2), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR ( 0, 1), 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-* } } */ + T (2, UR ( 1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-7, 0), 7); + T (7, UR (-7, 0), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-3, 2), 3); + T (7, UR (-2, 2), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +void test_memcpy_array_range_cst_off (const void *s) +{ + T (SR (-7, 7), 1, 7); + T (SR (-1, 1), 1, 7); + T (SR (-1, 1), 1, 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-*} } */ + T (SR ( 1, 2), 1, 1); + T (SR ( 1, 2), 1, 5); + + T (SR ( 0, 1), 1, 6); + T (UR ( 1, 2), 1, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR (-7, 7), 2, 7); + T (SR (-1, 1), 2, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR (-1, 1), 2, 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR ( 1, 2), 2, 1); + T (SR ( 1, 2), 2, 3); + T (SR ( 1, 2), 2, 4); + T (SR ( 1, 2), 2, 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR ( 0, 1), 2, 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (UR ( 1, 2), 2, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +void test_memcpy_array_range_range_off (const void *s) +{ + T (UR (0, 1), UR (0, 1), 7); + T (UR (3, 5), UR (2, 7), 1); + T (UR (3, 7), UR (2, 9), 2); + T (UR (3, 9), UR (2, 9), 3); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (UR (0, 1), UR (1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +#undef T +#define T(off1, off2, n) \ + do { \ + extern char UNIQ_NAME (ga)[7]; \ + char *d = UNIQ_NAME (ga) + off1; \ + d += off2; \ + const char str[] = "0123456789"; \ + const char *s = str + sizeof str - 1 - n; \ + strcpy (d, s); \ + sink (d); \ + } while (0) + + +void test_strcpy_array_cst_range_off (void) +{ + T (1, SR (-7, 7), 6); + T (1, SR (-1, 1), 6); + T (1, SR (-1, 1), 8); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (1, SR ( 1, 2), 0); + T (1, SR ( 1, 2), 4); + + T (1, SR ( 0, 1), 5); + T (1, UR ( 1, 2), 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR (-7, 7), 6); + T (2, SR (-2, 7), 6); + T (2, SR (-1, 1), 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR (-1, 1), 8); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR ( 1, 2), 0); + T (2, SR ( 1, 2), 2); + T (2, SR ( 1, 2), 3); + T (2, SR ( 1, 2), 4); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR ( 0, 1), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-* } } */ + T (2, UR ( 1, 2), 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-7, 0), 6); + T (7, UR (-7, 0), 8); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-3, 2), 2); + T (7, UR (-2, 2), 4); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +void test_strcpy_array_range_cst_off (const char *s) +{ + T (SR (-7, 7), 1, 6); + T (SR (-1, 1), 1, 6); + T (SR (-1, 1), 1, 8); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-*} } */ + T (SR ( 1, 2), 1, 0); + T (SR ( 1, 2), 1, 1); + T (SR ( 1, 2), 1, 4); + + T (SR ( 0, 1), 1, 5); + T (UR ( 1, 2), 1, 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR (-7, 7), 2, 6); + T (SR (-1, 1), 2, 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR (-1, 1), 2, 8); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR ( 1, 2), 2, 0); + T (SR ( 1, 2), 2, 1); + T (SR ( 1, 2), 2, 2); + T (SR ( 1, 2), 2, 3); + T (SR ( 1, 2), 2, 4); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR ( 0, 1), 2, 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (UR ( 1, 2), 2, 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +#undef T +#define T(off1, off2, n) \ + do { \ + extern char UNIQ_NAME (ga)[7]; \ + char *d = UNIQ_NAME (ga) + off1; \ + d += off2; \ + strncpy (d, s, n); \ + sink (d); \ + } while (0) + + +void test_strncpy_array_cst_range_off (const char *s) +{ + T (1, SR (-7, 7), 7); + T (1, SR (-1, 1), 7); + T (1, SR (-1, 1), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (1, SR ( 1, 2), 1); + T (1, SR ( 1, 2), 5); + + T (1, SR ( 0, 1), 6); + T (1, UR ( 1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR ( -7, 7), 7); + T (2, SR ( -1, 1), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR ( -1, 1), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (2, SR ( 1, 2), 1); + T (2, SR ( 1, 2), 3); + T (2, SR ( 1, 2), 4); + T (2, SR ( 1, 2), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (2, SR ( 0, 1), 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-* } } */ + T (2, UR ( 1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-7, 0), 7); + T (7, UR (-7, 0), 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (7, UR (-3, 2), 3); + T (7, UR (-2, 2), 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +void test_strncpy_array_range_cst_off (const char *s) +{ + T (SR (-7, 7), 1, 7); + T (SR (-1, 1), 1, 7); + T (SR (-1, 1), 1, 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "pr89428" { xfail *-*-*} } */ + T (SR ( 1, 2), 1, 1); + T (SR ( 1, 2), 1, 5); + + T (SR ( 0, 1), 1, 6); + T (UR ( 1, 2), 1, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR (-7, 7), 2, 7); + T (SR (-1, 1), 2, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR (-1, 1), 2, 9); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (SR ( 1, 2), 2, 1); + T (SR ( 1, 2), 2, 3); + T (SR ( 1, 2), 2, 4); + T (SR ( 1, 2), 2, 5); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (SR ( 0, 1), 2, 6); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + + T (UR ( 1, 2), 2, 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} + + +void test_strncpy_array_range_range_off (const char *s) +{ + T (UR (0, 1), UR (0, 1), 7); + T (UR (3, 5), UR (2, 7), 1); + T (UR (3, 7), UR (2, 9), 2); + T (UR (3, 9), UR (2, 9), 3); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ + T (UR (0, 1), UR (1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-12.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-12.c new file mode 100644 index 0000000..04fa114 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-12.c @@ -0,0 +1,120 @@ +/* PR tree-optimization/89350 - Wrong -Wstringop-overflow warning + on a variable offset from the end of an array + Test exercising -Wstringop-truncation alone, with -Warray-bounds + explicitly disabled. + { dg-do compile } + { dg-options "-O2 -Wno-array-bounds -Wstringop-overflow -ftrack-macro-expansion=0" } */ + +#include "range.h" + +extern void* memcpy (void*, const void*, size_t); +extern void* memset (void*, int, size_t); + +void sink (void*); + +extern char ga7[7]; + + +#define T(d, n) (memcpy ((d), s, (n)), sink (d)) + +void test_memcpy_array_cst_range_off (const void *s) +{ + char *d = ga7 + 1; + + T (d + UR (1, 2), 1); + T (d + UR (1, 2), 5); + + T (d + UR (0, 1), 6); + T (d + UR (0, 1), 7); /* { dg-warning ".memcpy. writing 6 bytes into a region of size 5 overflows the destination" "pr89428" { xfail *-*-* } } */ + T (d + UR (1, 2), 6); /* { dg-warning ".memcpy. writing 6 bytes into a region of size 5 overflows the destination" } */ + T (d + UR (1, 2), 7); /* { dg-warning "writing 7 bytes into a region of size 5 " } */ + + T (d + SR (-3, -2), 1); /* { dg-warning "writing 1 byte into a region of size 0 " "pr85350" { xfail *-*-* } } */ + T (d + SR (-2, -1), 1); + T (d + SR (-2, -1), 2); /* { dg-warning "writing 2 bytes into a region of size 7 " "pr89428" { xfail *-*-* } } */ + T (d + SR (-2, -1), 9); /* { dg-warning "writing 9 bytes into a region of size 7 " "pr85350" { xfail *-*-* } } */ + + d = ga7 + 7; + T (d + SR (-7, -6), 1); + T (d + SR (-7, -1), 1); + T (d + SR (-2, -1), 3); /* { dg-warning "writing 3 bytes into a region of size 2 " "pr85350" { xfail *-*-* } } */ + + T (d + UR (1, 2), 1); /* { dg-warning "writing 1 byte into a region of size 0 " "pr89350" { xfail *-*-* } } */ +} + + +void test_memcpy_array_range_range_off (const void *s) +{ + char *d = ga7 + UR (0, 1); + T (d + SR (-1, 0), 1); + T (d + SR (-1, 0), 7); + T (d + SR (-1, 0), 9); /* { dg-warning "writing 1 byte into a region of size 0 " "pr89350" { xfail *-*-* } } */ +} + + +#undef T +#define T(d, n) (memset ((d), 0, (n)), sink (d)) + +void test_memset_array_unsigned_off (void) +{ + char *d = ga7 + 1; + + T (d + UR (1, 2), 1); + T (d + UR (1, 2), 5); + + T (d + UR (0, 1), 6); + T (d + UR (0, 1), 7); /* { dg-warning ".memset. writing 6 bytes into a region of size 5 overflows the destination" "pr89428" { xfail *-*-* } } */ + T (d + UR (1, 2), 6); /* { dg-warning ".memset. writing 6 bytes into a region of size 5 overflows the destination" } */ + T (d + UR (1, 2), 7); /* { dg-warning "writing 7 bytes into a region of size 5 " } */ + + T (d + SR (-3, -2), 1); /* { dg-warning "writing 1 byte into a region of size 0 " "pr85350" { xfail *-*-* } } */ + T (d + SR (-2, -1), 1); + T (d + SR (-2, -1), 2); /* { dg-warning "writing 2 bytes into a region of size 7 " "pr89428" { xfail *-*-* } } */ + T (d + SR (-2, -1), 9); /* { dg-warning "writing 9 bytes into a region of size 7 " "pr85350" { xfail *-*-* } } */ + + d = ga7 + 7; + T (d + SR (-7, -6), 1); + T (d + SR (-7, -1), 1); + T (d + SR (-2, -1), 3); /* { dg-warning "writing 3 bytes into a region of size 2 " "pr85350" { xfail *-*-* } } */ + + T (d + UR (1, 2), 1); /* { dg-warning "writing 1 byte into a region of size 0 " } */ +} + + + +struct MemArray { char a7[7], a3[3], c; }; + +extern struct MemArray gma; + +void test_memset_memarray (void) +{ + char *d = gma.a7 + 1; + + T (d + UR (1, 2), 1); + T (d + UR (1, 2), 5); + + T (d + UR (0, 1), 6); + T (d + UR (0, 1), 7); /* { dg-warning ".memset. writing 6 bytes into a region of size 5 overflows the destination" "pr89428" { xfail *-*-* } } */ + T (d + UR (1, 2), 6); /* { dg-warning ".memset. writing 6 bytes into a region of size 5 overflows the destination" "pr89350" { xfail *-*-* } } */ + T (d + UR (1, 2), 7); /* { dg-warning "writing 7 bytes into a region of size 5 " "pr85350" { xfail *-*-* } } */ + +} + + +#undef T +#define T(d, n) (memcpy ((d), s, (n)), sink (d)) + +void test_memcpy_array_signed_off (const void *s) +{ + char *d = ga7 + 1; + + T (d + SR (-7, 7), 7); + T (d + SR (-1, 1), 7); + T (d + SR (-1, 1), 9); /* { dg-warning "writing 9 bytes into a region of size " "pr89428" { xfail *-*-* } } */ + T (d + SR (-1, 2), 9); /* { dg-warning "writing 9 bytes into a region of size " "pr89428" { xfail *-*-* } } */ + T (d + SR (1, 2), 1); + T (d + SR (1, 2), 5); + + T (d + SR (0, 1), 6); + T (d + UR (1, 2), 7); /* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" } */ +} diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow.c b/gcc/testsuite/gcc.dg/Wstringop-overflow.c index c615dae..2c5f4f0 100644 --- a/gcc/testsuite/gcc.dg/Wstringop-overflow.c +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow.c @@ -51,8 +51,8 @@ void test_memcpy_array (const void *s) T (a7 + UR (8, 9), s, 7); /* { dg-warning "writing 7 bytes into a region of size 0" } */ T (a7 + UR (9, 10), s, 7); /* { dg-warning "writing 7 bytes into a region of size 0" } */ - T (a7 + UR (DIFF_MAX, DIFF_MAX + (size_t)1), s, 7); /* { dg-warning "writing 7 bytes into a region of size 0" } */ - T (a7 + UR (DIFF_MAX, SIZE_MAX), s, 7); /* { dg-warning "writing 7 bytes into a region of size 0" } */ + T (a7 + UR (DIFF_MAX, DIFF_MAX + (size_t)1), s, 7); /* { dg-warning "writing 7 bytes into a region of size 0" "pr85350" { xfail *-*-* } } */ + T (a7 + UR (DIFF_MAX, SIZE_MAX), s, 7); /* { dg-warning "writing 7 bytes into a region of size 0" "pr85350" { xfail *-*-*} } */ /* This is valid. */ char *d = a7 + 7; @@ -102,8 +102,8 @@ void test_strcpy_array (void) T (a7 + UR (8, 9), "012345"); /* { dg-warning "writing 7 bytes into a region of size 0" } */ T (a7 + UR (9, 10), "012345"); /* { dg-warning "writing 7 bytes into a region of size 0" } */ - T (a7 + UR (DIFF_MAX, DIFF_MAX + (size_t)1), "012345"); /* { dg-warning "writing 7 bytes into a region of size 0" } */ - T (a7 + UR (DIFF_MAX, SIZE_MAX), "012345"); /* { dg-warning "writing 7 bytes into a region of size 0" } */ + T (a7 + UR (DIFF_MAX, DIFF_MAX + (size_t)1), "012345"); /* { dg-warning "writing 7 bytes into a region of size 0" "pr85350" { xfail *-*-* } } */ + T (a7 + UR (DIFF_MAX, SIZE_MAX), "012345"); /* { dg-warning "writing 7 bytes into a region of size 0" "pr85350" { xfail *-*-* } } */ char *d = a7 + 7; @@ -127,6 +127,6 @@ void test_strncpy_memarray (struct MemArray *p, const void *s) T (p->a9 + UR (9, 10), s, 9); /* { dg-warning "writing 9 bytes into a region of size 0" } */ T (p->a9 + UR (10, 11), s, 9); /* { dg-warning "writing 9 bytes into a region of size 0" } */ - T (p->a9 + UR (DIFF_MAX, DIFF_MAX + (size_t)1), s, 1); /* { dg-warning "writing 1 byte into a region of size 0" } */ - T (p->a9 + UR (DIFF_MAX, SIZE_MAX), s, 3); /* { dg-warning "writing 3 bytes into a region of size 0" } */ + T (p->a9 + UR (DIFF_MAX, DIFF_MAX + (size_t)1), s, 1); /* { dg-warning "writing 1 byte into a region of size 0" "pr85350" { xfail *-*-* } } */ + T (p->a9 + UR (DIFF_MAX, SIZE_MAX), s, 3); /* { dg-warning "writing 3 bytes into a region of size 0" "pr85350" { xfail *-*-* } } */ } diff --git a/gcc/testsuite/gcc.dg/pr40340-1.c b/gcc/testsuite/gcc.dg/pr40340-1.c index 78540a2..8fbb206 100644 --- a/gcc/testsuite/gcc.dg/pr40340-1.c +++ b/gcc/testsuite/gcc.dg/pr40340-1.c @@ -20,5 +20,5 @@ main (void) return 0; } -/* { dg-warning "writing" "" { target *-*-* } 10 } */ +/* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "" { target *-*-* } 10 } */ /* { dg-message "file included" "In file included" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/pr40340-2.c b/gcc/testsuite/gcc.dg/pr40340-2.c index 1dc21d1..10083ac 100644 --- a/gcc/testsuite/gcc.dg/pr40340-2.c +++ b/gcc/testsuite/gcc.dg/pr40340-2.c @@ -12,5 +12,5 @@ main (void) return 0; } -/* { dg-warning "writing" "" { target *-*-* } 10 } */ +/* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "" { target *-*-* } 10 } */ /* { dg-message "file included" "In file included" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/pr40340-4.c b/gcc/testsuite/gcc.dg/pr40340-4.c index 695d0ac..46b34bf4 100644 --- a/gcc/testsuite/gcc.dg/pr40340-4.c +++ b/gcc/testsuite/gcc.dg/pr40340-4.c @@ -1,6 +1,6 @@ /* PR middle-end/40340 */ /* { dg-do compile } */ -/* { dg-options "-O2 -Wall -Wno-system-headers -g" } */ +/* { dg-options "-O2 -Wall -Wno-array-bounds -Wno-system-headers -g" } */ #define TEST3 #include "pr40340.h" diff --git a/gcc/testsuite/gcc.dg/pr40340-5.c b/gcc/testsuite/gcc.dg/pr40340-5.c index e517147..0e48a2c 100644 --- a/gcc/testsuite/gcc.dg/pr40340-5.c +++ b/gcc/testsuite/gcc.dg/pr40340-5.c @@ -13,5 +13,5 @@ main (void) return 0; } -/* { dg-warning "writing" "" { target *-*-* } 10 } */ +/* { dg-warning "\\\[-Warray-bounds|-Wstringop-overflow" "" { target *-*-* } 10 } */ /* { dg-message "file included" "In file included" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/pr89350.c b/gcc/testsuite/gcc.dg/pr89350.c new file mode 100644 index 0000000..172b248 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr89350.c @@ -0,0 +1,18 @@ +/* PR tree-optimization/89350 - Wrong -Wstringop-overflow warning + on a variable offset from the end of an array + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +char buf[128]; +char *src = "HCSparta"; + +int main(int argc, char **argv) +{ + char *dst = buf + sizeof(buf); + + if (argc) + { + dst -= argc; + __builtin_memcpy(dst, src, argc + 0); /* { dg-bogus "\\\[-Warray-bounds|-Wstringop-overflow" } */ + } +} -- cgit v1.1 From 5c4ade6d44914428c8f71713f15c5697d27ed3c8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Mar 2019 11:08:40 +0100 Subject: re PR target/89784 (Missing AVX512 intrinsics) PR target/89784 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): New builtins. * config/i386/sse.md (avx512f_vmfmadd__mask, avx512f_vmfmadd__mask3, avx512f_vmfmadd__maskz_1, *avx512f_vmfmsub__mask, avx512f_vmfmsub__mask3, *avx512f_vmfmasub__maskz_1, *avx512f_vmfnmadd__mask, *avx512f_vmfnmadd__mask3, *avx512f_vmfnmadd__maskz_1, *avx512f_vmfnmsub__mask, *avx512f_vmfnmsub__mask3, *avx512f_vmfnmasub__maskz_1): New define_insns. (avx512f_vmfmadd__maskz): New define_expand. * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. * gcc.target/i386/sse-13.c (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): Define. * gcc.target/i386/sse-23.c (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): Define. * gcc.target/i386/avx-1.c (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): Define. * gcc.target/i386/sse-14.c: Add tests for _mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins. * gcc.target/i386/sse-22.c: Likewise. 2019-03-22 Hongtao Liu * gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests for _mm_mask{,3,z}_*. * gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test. * gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test. * gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test. * gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test. From-SVN: r269868 --- gcc/ChangeLog | 44 ++ gcc/config/i386/avx512fintrin.h | 602 +++++++++++++++++++++ gcc/config/i386/i386-builtin.def | 8 + gcc/config/i386/i386.c | 2 - gcc/config/i386/sse.md | 246 +++++++++ gcc/testsuite/ChangeLog | 43 ++ gcc/testsuite/gcc.target/i386/avx-1.c | 8 + .../gcc.target/i386/avx512f-vfmaddXXXsd-1.c | 13 + .../gcc.target/i386/avx512f-vfmaddXXXsd-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfmaddXXXss-1.c | 13 + .../gcc.target/i386/avx512f-vfmaddXXXss-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfmsubXXXsd-1.c | 13 + .../gcc.target/i386/avx512f-vfmsubXXXsd-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfmsubXXXss-1.c | 13 + .../gcc.target/i386/avx512f-vfmsubXXXss-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfnmaddXXXsd-1.c | 13 + .../gcc.target/i386/avx512f-vfnmaddXXXsd-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfnmaddXXXss-1.c | 13 + .../gcc.target/i386/avx512f-vfnmaddXXXss-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfnmsubXXXsd-1.c | 13 + .../gcc.target/i386/avx512f-vfnmsubXXXsd-2.c | 94 ++++ .../gcc.target/i386/avx512f-vfnmsubXXXss-1.c | 13 + .../gcc.target/i386/avx512f-vfnmsubXXXss-2.c | 94 ++++ gcc/testsuite/gcc.target/i386/sse-13.c | 8 + gcc/testsuite/gcc.target/i386/sse-14.c | 24 + gcc/testsuite/gcc.target/i386/sse-22.c | 24 + gcc/testsuite/gcc.target/i386/sse-23.c | 8 + 27 files changed, 1871 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-2.c create mode 100644 gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-2.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 10aa8e5..6601be5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,47 @@ +2019-03-22 Jakub Jelinek + + PR target/89784 + * config/i386/i386.c (enum ix86_builtins): Remove + IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. + * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, + __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, + __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, + __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, + __builtin_ia32_vfmsubss3_mask3): New builtins. + * config/i386/sse.md (avx512f_vmfmadd__mask, + avx512f_vmfmadd__mask3, + avx512f_vmfmadd__maskz_1, + *avx512f_vmfmsub__mask, + avx512f_vmfmsub__mask3, + *avx512f_vmfmasub__maskz_1, + *avx512f_vmfnmadd__mask, + *avx512f_vmfnmadd__mask3, + *avx512f_vmfnmadd__maskz_1, + *avx512f_vmfnmsub__mask, + *avx512f_vmfnmsub__mask3, + *avx512f_vmfnmasub__maskz_1): New define_insns. + (avx512f_vmfmadd__maskz): New define_expand. + * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, + _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, + _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, + _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, + _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, + _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, + _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, + _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, + _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, + _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, + _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, + _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, + _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, + _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, + _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, + _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, + _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, + _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, + _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, + _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. + 2019-03-21 Martin Sebor PR tree-optimization/89350 diff --git a/gcc/config/i386/avx512fintrin.h b/gcc/config/i386/avx512fintrin.h index 3a4e0ad..afcba5d 100644 --- a/gcc/config/i386/avx512fintrin.h +++ b/gcc/config/i386/avx512fintrin.h @@ -11562,6 +11562,608 @@ _mm_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R) (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R) #endif +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + (__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + (__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + (__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + (__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + -(__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + -(__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U) +{ + return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U) +{ + return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + -(__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + -(__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, + _MM_FROUND_CUR_DIRECTION); +} + +#ifdef __OPTIMIZE__ +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + (__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + (__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W, + (__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U, + const int __R) +{ + return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W, + (__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + (__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + (__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W, + -(__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask_fnmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W, + -(__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W, + -(__v2df) __A, + (__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_mask3_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U, + const int __R) +{ + return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W, + -(__v4sf) __A, + (__v4sf) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128d +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B, + const int __R) +{ + return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W, + -(__v2df) __A, + -(__v2df) __B, + (__mmask8) __U, __R); +} + +extern __inline __m128 +__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) +_mm_maskz_fnmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B, + const int __R) +{ + return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W, + -(__v4sf) __A, + -(__v4sf) __B, + (__mmask8) __U, __R); +} +#else +#define _mm_mask_fmadd_round_sd(A, U, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, C, U, R) + +#define _mm_mask_fmadd_round_ss(A, U, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask (A, B, C, U, R) + +#define _mm_mask3_fmadd_round_sd(A, B, C, U, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, C, U, R) + +#define _mm_mask3_fmadd_round_ss(A, B, C, U, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, C, U, R) + +#define _mm_maskz_fmadd_round_sd(U, A, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, C, U, R) + +#define _mm_maskz_fmadd_round_ss(U, A, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, C, U, R) + +#define _mm_mask_fmsub_round_sd(A, U, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, -(C), U, R) + +#define _mm_mask_fmsub_round_ss(A, U, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask (A, B, -(C), U, R) + +#define _mm_mask3_fmsub_round_sd(A, B, C, U, R) \ + (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, B, C, U, R) + +#define _mm_mask3_fmsub_round_ss(A, B, C, U, R) \ + (__m128) __builtin_ia32_vfmsubss3_mask3 (A, B, C, U, R) + +#define _mm_maskz_fmsub_round_sd(U, A, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, -(C), U, R) + +#define _mm_maskz_fmsub_round_ss(U, A, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, -(C), U, R) + +#define _mm_mask_fnmadd_round_sd(A, U, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), C, U, R) + +#define _mm_mask_fnmadd_round_ss(A, U, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), C, U, R) + +#define _mm_mask3_fnmadd_round_sd(A, B, C, U, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), C, U, R) + +#define _mm_mask3_fnmadd_round_ss(A, B, C, U, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), C, U, R) + +#define _mm_maskz_fnmadd_round_sd(U, A, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), C, U, R) + +#define _mm_maskz_fnmadd_round_ss(U, A, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), C, U, R) + +#define _mm_mask_fnmsub_round_sd(A, U, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), -(C), U, R) + +#define _mm_mask_fnmsub_round_ss(A, U, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), -(C), U, R) + +#define _mm_mask3_fnmsub_round_sd(A, B, C, U, R) \ + (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, -(B), C, U, R) + +#define _mm_mask3_fnmsub_round_ss(A, B, C, U, R) \ + (__m128) __builtin_ia32_vfmsubss3_mask3 (A, -(B), C, U, R) + +#define _mm_maskz_fnmsub_round_sd(U, A, B, C, R) \ + (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), -(C), U, R) + +#define _mm_maskz_fnmsub_round_ss(U, A, B, C, R) \ + (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), -(C), U, R) +#endif + #ifdef __OPTIMIZE__ extern __inline int __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def index eeef341..6580890 100644 --- a/gcc/config/i386/i386-builtin.def +++ b/gcc/config/i386/i386-builtin.def @@ -2827,6 +2827,14 @@ BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_fmadd_v16sf_mask3_round, "__ BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_fmadd_v16sf_maskz_round, "__builtin_ia32_vfmaddps512_maskz", IX86_BUILTIN_VFMADDPS512_MASKZ, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_HI_INT) BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_fmai_vmfmadd_v2df_round, "__builtin_ia32_vfmaddsd3_round", IX86_BUILTIN_VFMADDSD3_ROUND, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_INT) BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_fmai_vmfmadd_v4sf_round, "__builtin_ia32_vfmaddss3_round", IX86_BUILTIN_VFMADDSS3_ROUND, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmadd_v2df_mask_round, "__builtin_ia32_vfmaddsd3_mask", IX86_BUILTIN_VFMADDSD3_MASK, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmadd_v2df_mask3_round, "__builtin_ia32_vfmaddsd3_mask3", IX86_BUILTIN_VFMADDSD3_MASK3, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmadd_v2df_maskz_round, "__builtin_ia32_vfmaddsd3_maskz", IX86_BUILTIN_VFMADDSD3_MASKZ, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmsub_v2df_mask3_round, "__builtin_ia32_vfmsubsd3_mask3", IX86_BUILTIN_VFMSUBSD3_MASK3, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmadd_v4sf_mask_round, "__builtin_ia32_vfmaddss3_mask", IX86_BUILTIN_VFMADDSS3_MASK, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmadd_v4sf_mask3_round, "__builtin_ia32_vfmaddss3_mask3", IX86_BUILTIN_VFMADDSS3_MASK3, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmadd_v4sf_maskz_round, "__builtin_ia32_vfmaddss3_maskz", IX86_BUILTIN_VFMADDSS3_MASKZ, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT) +BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_vmfmsub_v4sf_mask3_round, "__builtin_ia32_vfmsubss3_mask3", IX86_BUILTIN_VFMSUBSS3_MASK3, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT) BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_fmaddsub_v8df_mask_round, "__builtin_ia32_vfmaddsubpd512_mask", IX86_BUILTIN_VFMADDSUBPD512_MASK, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_V8DF_UQI_INT) BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_fmaddsub_v8df_mask3_round, "__builtin_ia32_vfmaddsubpd512_mask3", IX86_BUILTIN_VFMADDSUBPD512_MASK3, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_V8DF_UQI_INT) BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_avx512f_fmaddsub_v8df_maskz_round, "__builtin_ia32_vfmaddsubpd512_maskz", IX86_BUILTIN_VFMADDSUBPD512_MASKZ, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_V8DF_UQI_INT) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 184c5c1..b5f20f1 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -30524,8 +30524,6 @@ enum ix86_builtins IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI, - IX86_BUILTIN_VFMSUBSD3_MASK3, - IX86_BUILTIN_VFMSUBSS3_MASK3, IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV4DF, diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 86bf866..dc588ec 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -4643,6 +4643,252 @@ [(set_attr "type" "ssemuladd") (set_attr "mode" "")]) +(define_insn "avx512f_vmfmadd__mask" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (match_operand:VF_128 1 "register_operand" "0,0") + (match_operand:VF_128 2 "" ",v") + (match_operand:VF_128 3 "" "v,")) + (match_dup 1) + (match_operand:QI 4 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfmadd132\t{%2, %3, %0%{%4%}|%0%{%4%}, %3, %2} + vfmadd213\t{%3, %2, %0%{%4%}|%0%{%4%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "avx512f_vmfmadd__mask3" + [(set (match_operand:VF_128 0 "register_operand" "=v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 2 "" "") + (match_operand:VF_128 3 "register_operand" "0")) + (match_dup 3) + (match_operand:QI 4 "register_operand" "Yk")) + (match_dup 3) + (const_int 1)))] + "TARGET_AVX512F" + "vfmadd231\t{%2, %1, %0%{%4%}|%0%{%4%}, %3, %2}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_expand "avx512f_vmfmadd__maskz" + [(match_operand:VF_128 0 "register_operand") + (match_operand:VF_128 1 "") + (match_operand:VF_128 2 "") + (match_operand:VF_128 3 "") + (match_operand:QI 4 "register_operand")] + "TARGET_AVX512F" +{ + emit_insn (gen_avx512f_vmfmadd__maskz_1 ( + operands[0], operands[1], operands[2], operands[3], + CONST0_RTX (mode), operands[4])); + DONE; +}) + +(define_insn "avx512f_vmfmadd__maskz_1" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (match_operand:VF_128 1 "register_operand" "0,0") + (match_operand:VF_128 2 "" ",v") + (match_operand:VF_128 3 "" "v,")) + (match_operand:VF_128 4 "const0_operand" "C,C") + (match_operand:QI 5 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfmadd132\t{%2, %3, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %3, %2} + vfmadd213\t{%3, %2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfmsub__mask" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (match_operand:VF_128 1 "register_operand" "0,0") + (match_operand:VF_128 2 "" ",v") + (neg:VF_128 + (match_operand:VF_128 3 "" "v,"))) + (match_dup 1) + (match_operand:QI 4 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfmsub132\t{%2, %3, %0%{%4%}|%0%{%4%}, %3, %2} + vfmsub213\t{%3, %2, %0%{%4%}|%0%{%4%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "avx512f_vmfmsub__mask3" + [(set (match_operand:VF_128 0 "register_operand" "=v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 2 "" "") + (neg:VF_128 + (match_operand:VF_128 3 "register_operand" "0"))) + (match_dup 3) + (match_operand:QI 4 "register_operand" "Yk")) + (match_dup 3) + (const_int 1)))] + "TARGET_AVX512F" + "vfmsub231\t{%2, %1, %0%{%4%}|%0%{%4%}, %3, %2}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfmsub__maskz_1" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (match_operand:VF_128 1 "register_operand" "0,0") + (match_operand:VF_128 2 "" ",v") + (neg:VF_128 + (match_operand:VF_128 3 "" "v,"))) + (match_operand:VF_128 4 "const0_operand" "C,C") + (match_operand:QI 5 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfmsub132\t{%2, %3, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %3, %2} + vfmsub213\t{%3, %2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfnmadd__mask" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (neg:VF_128 + (match_operand:VF_128 2 "" ",v")) + (match_operand:VF_128 1 "register_operand" "0,0") + (match_operand:VF_128 3 "" "v,")) + (match_dup 1) + (match_operand:QI 4 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfnmadd132\t{%2, %3, %0%{%4%}|%0%{%4%}, %3, %2} + vfnmadd213\t{%3, %2, %0%{%4%}|%0%{%4%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfnmadd__mask3" + [(set (match_operand:VF_128 0 "register_operand" "=v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (neg:VF_128 + (match_operand:VF_128 2 "" "")) + (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 3 "register_operand" "0")) + (match_dup 3) + (match_operand:QI 4 "register_operand" "Yk")) + (match_dup 3) + (const_int 1)))] + "TARGET_AVX512F" + "vfnmadd231\t{%2, %1, %0%{%4%}|%0%{%4%}, %3, %2}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfnmadd__maskz_1" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (neg:VF_128 + (match_operand:VF_128 2 "" ",v")) + (match_operand:VF_128 1 "register_operand" "0,0") + (match_operand:VF_128 3 "" "v,")) + (match_operand:VF_128 4 "const0_operand" "C,C") + (match_operand:QI 5 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfnmadd132\t{%2, %3, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %3, %2} + vfnmadd213\t{%3, %2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfnmsub__mask" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (neg:VF_128 + (match_operand:VF_128 2 "" ",v")) + (match_operand:VF_128 1 "register_operand" "0,0") + (neg:VF_128 + (match_operand:VF_128 3 "" "v,"))) + (match_dup 1) + (match_operand:QI 4 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfnmsub132\t{%2, %3, %0%{%4%}|%0%{%4%}, %3, %2} + vfnmsub213\t{%3, %2, %0%{%4%}|%0%{%4%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "avx512f_vmfnmsub__mask3" + [(set (match_operand:VF_128 0 "register_operand" "=v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (neg:VF_128 + (match_operand:VF_128 2 "" "")) + (match_operand:VF_128 1 "register_operand" "v") + (neg:VF_128 + (match_operand:VF_128 3 "register_operand" "0"))) + (match_dup 3) + (match_operand:QI 4 "register_operand" "Yk")) + (match_dup 3) + (const_int 1)))] + "TARGET_AVX512F" + "vfnmsub231\t{%2, %1, %0%{%4%}|%0%{%4%}, %3, %2}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + +(define_insn "*avx512f_vmfnmsub__maskz_1" + [(set (match_operand:VF_128 0 "register_operand" "=v,v") + (vec_merge:VF_128 + (vec_merge:VF_128 + (fma:VF_128 + (neg:VF_128 + (match_operand:VF_128 2 "" ",v")) + (match_operand:VF_128 1 "register_operand" "0,0") + (neg:VF_128 + (match_operand:VF_128 3 "" "v,"))) + (match_operand:VF_128 4 "const0_operand" "C,C") + (match_operand:QI 5 "register_operand" "Yk,Yk")) + (match_dup 1) + (const_int 1)))] + "TARGET_AVX512F" + "@ + vfnmsub132\t{%2, %3, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %3, %2} + vfnmsub213\t{%3, %2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %2, %3}" + [(set_attr "type" "ssemuladd") + (set_attr "mode" "")]) + ;; FMA4 floating point scalar intrinsics. These write the ;; entire destination register, with the high-order elements zeroed. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 076f795..ac41542 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,46 @@ +2019-03-22 Hongtao Liu + + PR target/89784 + * gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests + for _mm_mask{,3,z}_*. + * gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise. + * gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test. + * gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test. + * gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test. + * gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test. + * gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test. + * gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test. + * gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test. + * gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test. + +2019-03-22 Jakub Jelinek + + PR target/89784 + * gcc.target/i386/sse-13.c (__builtin_ia32_vfmaddsd3_mask, + __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, + __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, + __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, + __builtin_ia32_vfmsubss3_mask3): Define. + * gcc.target/i386/sse-23.c (__builtin_ia32_vfmaddsd3_mask, + __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, + __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, + __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, + __builtin_ia32_vfmsubss3_mask3): Define. + * gcc.target/i386/avx-1.c (__builtin_ia32_vfmaddsd3_mask, + __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, + __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, + __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, + __builtin_ia32_vfmsubss3_mask3): Define. + * gcc.target/i386/sse-14.c: Add tests for + _mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins. + * gcc.target/i386/sse-22.c: Likewise. + 2019-03-21 Martin Sebor PR tree-optimization/89350 diff --git a/gcc/testsuite/gcc.target/i386/avx-1.c b/gcc/testsuite/gcc.target/i386/avx-1.c index f67bc5f..e09f5a1 100644 --- a/gcc/testsuite/gcc.target/i386/avx-1.c +++ b/gcc/testsuite/gcc.target/i386/avx-1.c @@ -373,6 +373,14 @@ #define __builtin_ia32_vfnmsubps512_maskz(A, B, C, D, E) __builtin_ia32_vfnmsubps512_maskz(A, B, C, D, 8) #define __builtin_ia32_vpermilpd512_mask(A, E, C, D) __builtin_ia32_vpermilpd512_mask(A, 1, C, D) #define __builtin_ia32_vpermilps512_mask(A, E, C, D) __builtin_ia32_vpermilps512_mask(A, 1, C, D) +#define __builtin_ia32_vfmaddsd3_mask(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask(A, B, C, D, 8) +#define __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, 8) +#define __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_mask(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddss3_maskz(A, B, C, D, 8) +#define __builtin_ia32_vfmsubss3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubss3_mask3(A, B, C, D, 8) /* avx512erintrin.h */ #define __builtin_ia32_exp2ps_mask(A, B, C, D) __builtin_ia32_exp2ps_mask(A, B, C, 8) diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-1.c index d88286f..d6f9015 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfmadd...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfmadd231sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfmadd...sd\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd...sd\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd231sd\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd...sd\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128d a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fmadd_sd (a, m, b, c); + c = _mm_mask3_fmadd_sd (a, b, c, m); + a = _mm_maskz_fmadd_sd (m, a, b, c); a = _mm_fmadd_round_sd (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fmadd_round_sd (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fmadd_round_sd (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fmadd_round_sd (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-2.c new file mode 100644 index 0000000..6e01bd0 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXsd-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 64) +#include "avx512f-mask-type.h" + +static void +calc_add (double *s1, double *s2, double *s3, double* r) +{ + r[0] = s1[0] * s2[0] + s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (double *s1, double *s2, double *s3, double* r) +{ + r[0] = s2[0] * s3[0] + s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128d res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + double res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fmadd_sd (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fmadd_sd (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fmadd_sd (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fmadd_round_sd (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fmadd_round_sd (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fmadd_round_sd (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fmadd_round_sd (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128d (res4, res_ref1)) + abort(); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res3, res_ref1)) + abort (); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res7, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res2, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res6, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res1, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-1.c index e1aa388..e50b5b5 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfmadd...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfmadd231ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfmadd...ss\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd...ss\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd231ss\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmadd...ss\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128 a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fmadd_ss (a, m, b, c); + c = _mm_mask3_fmadd_ss (a, b, c, m); + a = _mm_maskz_fmadd_ss (m, a, b, c); a = _mm_fmadd_round_ss (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fmadd_round_ss (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fmadd_round_ss (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fmadd_round_ss (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-2.c new file mode 100644 index 0000000..4fb7a08 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmaddXXXss-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 32) +#include "avx512f-mask-type.h" + +static void +calc_add (float *s1, float *s2, float *s3, float* r) +{ + r[0] = s1[0] * s2[0] + s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (float *s1, float *s2, float *s3, float* r) +{ + r[0] = s2[0] * s3[0] + s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128 res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + float res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fmadd_ss (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fmadd_ss (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fmadd_ss (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fmadd_round_ss (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fmadd_round_ss (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fmadd_round_ss (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fmadd_round_ss (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128 (res4, res_ref1)) + abort(); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res3, res_ref1)) + abort (); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res7, res_ref1)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res2, res_ref2)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res6, res_ref2)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res1, res_ref1)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-1.c index bb3ec60..15affb8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfmsub...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfmsub231sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfmsub...sd\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub...sd\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub231sd\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub...sd\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128d a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fmsub_sd (a, m, b, c); + c = _mm_mask3_fmsub_sd (a, b, c, m); + a = _mm_maskz_fmsub_sd (m, a, b, c); a = _mm_fmsub_round_sd (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fmsub_round_sd (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fmsub_round_sd (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fmsub_round_sd (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-2.c new file mode 100644 index 0000000..701db18 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXsd-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 64) +#include "avx512f-mask-type.h" + +static void +calc_add (double *s1, double *s2, double *s3, double* r) +{ + r[0] = s1[0] * s2[0] - s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (double *s1, double *s2, double *s3, double* r) +{ + r[0] = s2[0] * s3[0] - s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128d res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + double res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fmsub_sd (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fmsub_sd (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fmsub_sd (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fmsub_round_sd (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fmsub_round_sd (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fmsub_round_sd (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fmsub_round_sd (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128d (res4, res_ref1)) + abort(); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res3, res_ref1)) + abort (); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res7, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res2, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res6, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res1, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-1.c index 7e521fc..34e444e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfmsub...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfmsub231ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfmsub...ss\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub...ss\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub231ss\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfmsub...ss\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128 a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fmsub_ss (a, m, b, c); + c = _mm_mask3_fmsub_ss (a, b, c, m); + a = _mm_maskz_fmsub_ss (m, a, b, c); a = _mm_fmsub_round_ss (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fmsub_round_ss (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fmsub_round_ss (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fmsub_round_ss (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-2.c new file mode 100644 index 0000000..6beaed8 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfmsubXXXss-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 32) +#include "avx512f-mask-type.h" + +static void +calc_add (float *s1, float *s2, float *s3, float* r) +{ + r[0] = s1[0] * s2[0] - s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (float *s1, float *s2, float *s3, float* r) +{ + r[0] = s2[0] * s3[0] - s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128 res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + float res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fmsub_ss (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fmsub_ss (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fmsub_ss (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fmsub_round_ss (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fmsub_round_ss (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fmsub_round_ss (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fmsub_round_ss (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128 (res4, res_ref1)) + abort(); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res3, res_ref1)) + abort (); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res7, res_ref1)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res2, res_ref2)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res6, res_ref2)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res1, res_ref1)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-1.c index e23101f..09b923e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfnmadd...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfnmadd231sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfnmadd...sd\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd...sd\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd231sd\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd...sd\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128d a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fnmadd_sd (a, m, b, c); + c = _mm_mask3_fnmadd_sd (a, b, c, m); + a = _mm_maskz_fnmadd_sd (m, a, b, c); a = _mm_fnmadd_round_sd (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fnmadd_round_sd (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fnmadd_round_sd (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fnmadd_round_sd (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-2.c new file mode 100644 index 0000000..4715f2d --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXsd-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 64) +#include "avx512f-mask-type.h" + +static void +calc_add (double *s1, double *s2, double *s3, double* r) +{ + r[0] = -s1[0] * s2[0] + s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (double *s1, double *s2, double *s3, double* r) +{ + r[0] = -s2[0] * s3[0] + s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128d res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + double res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fnmadd_sd (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fnmadd_sd (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fnmadd_sd (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fnmadd_round_sd (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fnmadd_round_sd (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fnmadd_round_sd (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fnmadd_round_sd (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128d (res4, res_ref1)) + abort(); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res3, res_ref1)) + abort (); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res7, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res2, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res6, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res1, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-1.c index c46944c..85e8d00 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfnmadd...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfnmadd231ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfnmadd...ss\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd...ss\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd231ss\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmadd...ss\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128 a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fnmadd_ss (a, m, b, c); + c = _mm_mask3_fnmadd_ss (a, b, c, m); + a = _mm_maskz_fnmadd_ss (m, a, b, c); a = _mm_fnmadd_round_ss (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fnmadd_round_ss (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fnmadd_round_ss (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fnmadd_round_ss (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-2.c new file mode 100644 index 0000000..e94b7d4 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmaddXXXss-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 32) +#include "avx512f-mask-type.h" + +static void +calc_add (float *s1, float *s2, float *s3, float* r) +{ + r[0] = -s1[0] * s2[0] + s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (float *s1, float *s2, float *s3, float* r) +{ + r[0] = -s2[0] * s3[0] + s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128 res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + float res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fnmadd_ss (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fnmadd_ss (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fnmadd_ss (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fnmadd_round_ss (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fnmadd_round_ss (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fnmadd_round_ss (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fnmadd_round_ss (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128 (res4, res_ref1)) + abort(); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res3, res_ref1)) + abort (); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res7, res_ref1)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res2, res_ref2)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res6, res_ref2)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res1, res_ref1)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-1.c index 33b68e1..4553e0d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfnmsub...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfnmsub231sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub...sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfnmsub...sd\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub...sd\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub231sd\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub...sd\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128d a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fnmsub_sd (a, m, b, c); + c = _mm_mask3_fnmsub_sd (a, b, c, m); + a = _mm_maskz_fnmsub_sd (m, a, b, c); a = _mm_fnmsub_round_sd (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fnmsub_round_sd (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fnmsub_round_sd (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fnmsub_round_sd (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-2.c new file mode 100644 index 0000000..ecb4bd5 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXsd-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 64) +#include "avx512f-mask-type.h" + +static void +calc_add (double *s1, double *s2, double *s3, double* r) +{ + r[0] = -s1[0] * s2[0] - s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (double *s1, double *s2, double *s3, double* r) +{ + r[0] = -s2[0] * s3[0] - s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128d res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + double res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fnmsub_sd (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fnmsub_sd (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fnmsub_sd (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fnmsub_round_sd (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fnmsub_round_sd (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fnmsub_round_sd (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fnmsub_round_sd (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128d (res4, res_ref1)) + abort(); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res3, res_ref1)) + abort (); + + MASK_ZERO (d) (res_ref1, mask, 1); + if (check_union128d (res7, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res2, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref2, mask, 1); + if (check_union128d (res6, res_ref2)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res1, res_ref1)) + abort (); + + MASK_MERGE (d) (res_ref1, mask, 1); + if (check_union128d (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-1.c index cd7b520..f86ae2d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-1.c @@ -1,13 +1,26 @@ /* { dg-do compile } */ /* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vfnmsub...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ +/* { dg-final { scan-assembler-times "vfnmsub231ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub...ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfnmsub...ss\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub...ss\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub231ss\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ +/* { dg-final { scan-assembler-times "vfnmsub...ss\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ #include volatile __m128 a, b, c; +volatile __mmask8 m; void extern avx512f_test (void) { + a = _mm_mask_fnmsub_ss (a, m, b, c); + c = _mm_mask3_fnmsub_ss (a, b, c, m); + a = _mm_maskz_fnmsub_ss (m, a, b, c); a = _mm_fnmsub_round_ss (a, b, c, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC); + a = _mm_mask_fnmsub_round_ss (a, m, b, c, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC); + c = _mm_mask3_fnmsub_round_ss (a, b, c, m, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + a = _mm_maskz_fnmsub_round_ss (m, a, b, c, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC); } diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-2.c new file mode 100644 index 0000000..d092988 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512f-vfnmsubXXXss-2.c @@ -0,0 +1,94 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -mavx512f" } */ +/* { dg-require-effective-target avx512f } */ + +#include "avx512f-check.h" + +#include "avx512f-helper.h" + +#define SIZE (128 / 32) +#include "avx512f-mask-type.h" + +static void +calc_add (float *s1, float *s2, float *s3, float* r) +{ + r[0] = -s1[0] * s2[0] - s3[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +static void +calc_add_3 (float *s1, float *s2, float *s3, float* r) +{ + r[0] = -s2[0] * s3[0] - s1[0]; + + int i; + for (i = 1; i < SIZE; i++) + r[i] = s1[i]; +} + +void +avx512f_test (void) +{ + int i, sign; + union128 res1, res2, res3, res4, res5, res6, res7, src1, src2, src3; + MASK_TYPE mask = MASK_VALUE; + float res_ref1[SIZE], res_ref2[SIZE]; + + sign = -1; + for (i = 0; i < SIZE; i++) + { + src1.a[i] = DEFAULT_VALUE; + src2.a[i] = 56.78 * (i + 1) * sign; + src3.a[i] = 90.12 * (i + 2) * sign; + sign = sign * -1; + } + for (i = 0; i < SIZE; i++) + { + res1.a[i] = DEFAULT_VALUE; + res2.a[i] = DEFAULT_VALUE; + res5.a[i] = DEFAULT_VALUE; + res6.a[i] = DEFAULT_VALUE; + } + + calc_add (src1.a, src2.a, src3.a, res_ref1); + calc_add_3(src1.a, src2.a, src3.a, res_ref2); + + res1.x = _mm_mask_fnmsub_ss (src1.x, mask, src2.x, src3.x); + res2.x = _mm_mask3_fnmsub_ss (src2.x, src3.x, src1.x, mask); + res3.x = _mm_maskz_fnmsub_ss (mask, src1.x, src2.x, src3.x); + res4.x = _mm_fnmsub_round_ss (src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + res5.x = _mm_mask_fnmsub_round_ss (src1.x, mask, src2.x, src3.x, _MM_FROUND_NO_EXC); + res6.x = _mm_mask3_fnmsub_round_ss (src2.x, src3.x, src1.x, mask, _MM_FROUND_NO_EXC); + res7.x = _mm_maskz_fnmsub_round_ss (mask, src1.x, src2.x, src3.x, _MM_FROUND_NO_EXC); + + if (check_union128 (res4, res_ref1)) + abort(); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res3, res_ref1)) + abort (); + + MASK_ZERO () (res_ref1, mask, 1); + if (check_union128 (res7, res_ref1)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res2, res_ref2)) + abort (); + + MASK_MERGE () (res_ref2, mask, 1); + if (check_union128 (res6, res_ref2)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res1, res_ref1)) + abort (); + + MASK_MERGE () (res_ref1, mask, 1); + if (check_union128 (res5, res_ref1)) + abort (); +} + diff --git a/gcc/testsuite/gcc.target/i386/sse-13.c b/gcc/testsuite/gcc.target/i386/sse-13.c index 64da3cd..e868f6d 100644 --- a/gcc/testsuite/gcc.target/i386/sse-13.c +++ b/gcc/testsuite/gcc.target/i386/sse-13.c @@ -390,6 +390,14 @@ #define __builtin_ia32_vfnmsubps512_maskz(A, B, C, D, E) __builtin_ia32_vfnmsubps512_maskz(A, B, C, D, 8) #define __builtin_ia32_vpermilpd512_mask(A, E, C, D) __builtin_ia32_vpermilpd512_mask(A, 1, C, D) #define __builtin_ia32_vpermilps512_mask(A, E, C, D) __builtin_ia32_vpermilps512_mask(A, 1, C, D) +#define __builtin_ia32_vfmaddsd3_mask(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask(A, B, C, D, 8) +#define __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, 8) +#define __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_mask(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddss3_maskz(A, B, C, D, 8) +#define __builtin_ia32_vfmsubss3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubss3_mask3(A, B, C, D, 8) /* avx512erintrin.h */ #define __builtin_ia32_exp2ps_mask(A, B, C, D) __builtin_ia32_exp2ps_mask(A, B, C, 8) diff --git a/gcc/testsuite/gcc.target/i386/sse-14.c b/gcc/testsuite/gcc.target/i386/sse-14.c index 0f663be..748339f 100644 --- a/gcc/testsuite/gcc.target/i386/sse-14.c +++ b/gcc/testsuite/gcc.target/i386/sse-14.c @@ -534,6 +534,30 @@ test_4 (_mm512_maskz_fnmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m51 test_4 (_mm512_maskz_fnmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) test_4 (_mm512_maskz_ternarylogic_epi32, __m512i, __mmask16, __m512i, __m512i, __m512i, 1) test_4 (_mm512_maskz_ternarylogic_epi64, __m512i, __mmask8, __m512i, __m512i, __m512i, 1) +test_4 (_mm_mask_fmadd_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fmadd_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fmadd_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fmadd_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fmadd_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fmadd_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) +test_4 (_mm_mask_fmsub_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fmsub_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fmsub_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fmsub_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fmsub_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fmsub_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) +test_4 (_mm_mask_fnmadd_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fnmadd_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fnmadd_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fnmadd_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fnmadd_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fnmadd_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) +test_4 (_mm_mask_fnmsub_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fnmsub_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fnmsub_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fnmsub_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fnmsub_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fnmsub_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) test_4v (_mm512_mask_i32scatter_epi32, void *, __mmask16, __m512i, __m512i, 1) test_4v (_mm512_mask_i32scatter_epi64, void *, __mmask8, __m256i, __m512i, 1) test_4v (_mm512_mask_i32scatter_pd, void *, __mmask8, __m256i, __m512d, 1) diff --git a/gcc/testsuite/gcc.target/i386/sse-22.c b/gcc/testsuite/gcc.target/i386/sse-22.c index 99af58a..0c62f20 100644 --- a/gcc/testsuite/gcc.target/i386/sse-22.c +++ b/gcc/testsuite/gcc.target/i386/sse-22.c @@ -633,6 +633,30 @@ test_4 (_mm512_maskz_fnmsub_round_pd, __m512d, __mmask8, __m512d, __m512d, __m51 test_4 (_mm512_maskz_fnmsub_round_ps, __m512, __mmask16, __m512, __m512, __m512, 9) test_4 (_mm512_maskz_ternarylogic_epi32, __m512i, __mmask16, __m512i, __m512i, __m512i, 1) test_4 (_mm512_maskz_ternarylogic_epi64, __m512i, __mmask8, __m512i, __m512i, __m512i, 1) +test_4 (_mm_mask_fmadd_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fmadd_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fmadd_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fmadd_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fmadd_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fmadd_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) +test_4 (_mm_mask_fmsub_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fmsub_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fmsub_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fmsub_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fmsub_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fmsub_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) +test_4 (_mm_mask_fnmadd_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fnmadd_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fnmadd_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fnmadd_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fnmadd_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fnmadd_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) +test_4 (_mm_mask_fnmsub_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) +test_4 (_mm_mask_fnmsub_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) +test_4 (_mm_mask3_fnmsub_round_sd, __m128d, __m128d, __m128d, __m128d, __mmask8, 9) +test_4 (_mm_mask3_fnmsub_round_ss, __m128, __m128, __m128, __m128, __mmask8, 9) +test_4 (_mm_maskz_fnmsub_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128d, 9) +test_4 (_mm_maskz_fnmsub_round_ss, __m128, __mmask8, __m128, __m128, __m128, 9) test_4v (_mm512_mask_i32scatter_epi32, void *, __mmask16, __m512i, __m512i, 1) test_4v (_mm512_mask_i32scatter_epi64, void *, __mmask8, __m256i, __m512i, 1) test_4v (_mm512_mask_i32scatter_pd, void *, __mmask8, __m256i, __m512d, 1) diff --git a/gcc/testsuite/gcc.target/i386/sse-23.c b/gcc/testsuite/gcc.target/i386/sse-23.c index f9d372c..78a3c0a 100644 --- a/gcc/testsuite/gcc.target/i386/sse-23.c +++ b/gcc/testsuite/gcc.target/i386/sse-23.c @@ -389,6 +389,14 @@ #define __builtin_ia32_vfnmsubps512_maskz(A, B, C, D, E) __builtin_ia32_vfnmsubps512_maskz(A, B, C, D, 8) #define __builtin_ia32_vpermilpd512_mask(A, E, C, D) __builtin_ia32_vpermilpd512_mask(A, 1, C, D) #define __builtin_ia32_vpermilps512_mask(A, E, C, D) __builtin_ia32_vpermilps512_mask(A, 1, C, D) +#define __builtin_ia32_vfmaddsd3_mask(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask(A, B, C, D, 8) +#define __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddsd3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddsd3_maskz(A, B, C, D, 8) +#define __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubsd3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_mask(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_mask3(A, B, C, D, E) __builtin_ia32_vfmaddss3_mask3(A, B, C, D, 8) +#define __builtin_ia32_vfmaddss3_maskz(A, B, C, D, E) __builtin_ia32_vfmaddss3_maskz(A, B, C, D, 8) +#define __builtin_ia32_vfmsubss3_mask3(A, B, C, D, E) __builtin_ia32_vfmsubss3_mask3(A, B, C, D, 8) /* avx512pfintrin.h */ #define __builtin_ia32_gatherpfdps(A, B, C, D, E) __builtin_ia32_gatherpfdps(A, B, C, 1, _MM_HINT_T0) -- cgit v1.1 From ecf392360a548c5c510b491f284c439b05964b3a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Mar 2019 11:12:18 +0100 Subject: sse.md (_fmadd__mask, [...]): Use instead of nonimmediate_operand. * config/i386/sse.md (_fmadd__mask, _fmadd__mask3, _fmsub__mask, _fmsub__mask3, _fnmadd__mask, _fnmadd__mask3, _fnmsub__mask, _fnmsub__mask3, _fmaddsub__mask, _fmaddsub__mask3, _fmsubadd__mask, _fmsubadd__mask3): Use instead of nonimmediate_operand. (fmai_vmfmadd_, fmai_vmfmsub_, fmai_vmfnmadd_, fmai_vmfnmsub_): Use register_operand instead of for the operand that needs to match output. (*fmai_fmadd_, *fmai_fmsub_, *fmai_fnmadd_, *fmai_fnmsub_): Likewise. Formatting fixes. From-SVN: r269869 --- gcc/ChangeLog | 21 ++++++++++++++++++ gcc/config/i386/sse.md | 60 +++++++++++++++++++++++++------------------------- 2 files changed, 51 insertions(+), 30 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6601be5..4e4fde8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,26 @@ 2019-03-22 Jakub Jelinek + * config/i386/sse.md (_fmadd__mask, + _fmadd__mask3, + _fmsub__mask, + _fmsub__mask3, + _fnmadd__mask, + _fnmadd__mask3, + _fnmsub__mask, + _fnmsub__mask3, + _fmaddsub__mask, + _fmaddsub__mask3, + _fmsubadd__mask, + _fmsubadd__mask3): Use + instead of nonimmediate_operand. + (fmai_vmfmadd_, fmai_vmfmsub_, + fmai_vmfnmadd_, fmai_vmfnmsub_): + Use register_operand instead of for the + operand that needs to match output. + (*fmai_fmadd_, *fmai_fmsub_, + *fmai_fnmadd_, *fmai_fnmsub_): + Likewise. Formatting fixes. + PR target/89784 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index dc588ec..e74521a 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -3958,8 +3958,8 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,")) + (match_operand:VF_AVX512VL 2 "" ",v") + (match_operand:VF_AVX512VL 3 "" "v,")) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F && " @@ -3974,7 +3974,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) (match_operand: 4 "register_operand" "Yk")))] @@ -4078,9 +4078,9 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") + (match_operand:VF_AVX512VL 2 "" ",v") (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,"))) + (match_operand:VF_AVX512VL 3 "" "v,"))) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F" @@ -4095,7 +4095,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) (match_dup 3) @@ -4201,8 +4201,8 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,")) + (match_operand:VF_AVX512VL 2 "" ",v") + (match_operand:VF_AVX512VL 3 "" "v,")) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F && " @@ -4218,7 +4218,7 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) (match_operand: 4 "register_operand" "Yk")))] @@ -4328,9 +4328,9 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "0,0")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") + (match_operand:VF_AVX512VL 2 "" ",v") (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,"))) + (match_operand:VF_AVX512VL 3 "" "v,"))) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] "TARGET_AVX512F && " @@ -4346,7 +4346,7 @@ (fma:VF_AVX512VL (neg:VF_AVX512VL (match_operand:VF_AVX512VL 1 "register_operand" "v")) - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) (match_dup 3) @@ -4428,8 +4428,8 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,")] + (match_operand:VF_AVX512VL 2 "" ",v") + (match_operand:VF_AVX512VL 3 "" "v,")] UNSPEC_FMADDSUB) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] @@ -4445,7 +4445,7 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")] UNSPEC_FMADDSUB) (match_dup 3) @@ -4495,9 +4495,9 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "0,0") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" ",v") + (match_operand:VF_AVX512VL 2 "" ",v") (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 3 "nonimmediate_operand" "v,"))] + (match_operand:VF_AVX512VL 3 "" "v,"))] UNSPEC_FMADDSUB) (match_dup 1) (match_operand: 4 "register_operand" "Yk,Yk")))] @@ -4513,7 +4513,7 @@ (vec_merge:VF_AVX512VL (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand:VF_AVX512VL 2 "nonimmediate_operand" "") + (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))] UNSPEC_FMADDSUB) @@ -4531,7 +4531,7 @@ [(set (match_operand:VF_128 0 "register_operand") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (match_operand:VF_128 2 "") (match_operand:VF_128 3 "")) (match_dup 1) @@ -4542,7 +4542,7 @@ [(set (match_operand:VF_128 0 "register_operand") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (match_operand:VF_128 2 "") (neg:VF_128 (match_operand:VF_128 3 ""))) @@ -4556,7 +4556,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "")) - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (match_operand:VF_128 3 "")) (match_dup 1) (const_int 1)))] @@ -4568,7 +4568,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "")) - (match_operand:VF_128 1 "") + (match_operand:VF_128 1 "register_operand") (neg:VF_128 (match_operand:VF_128 3 ""))) (match_dup 1) @@ -4579,9 +4579,9 @@ [(set (match_operand:VF_128 0 "register_operand" "=v,v") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "" " 0, 0") + (match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 2 "" ", v") - (match_operand:VF_128 3 "" " v,")) + (match_operand:VF_128 3 "" "v,")) (match_dup 1) (const_int 1)))] "TARGET_FMA || TARGET_AVX512F" @@ -4595,10 +4595,10 @@ [(set (match_operand:VF_128 0 "register_operand" "=v,v") (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "" "0,0") + (match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 2 "" ",v") (neg:VF_128 - (match_operand:VF_128 3 "" " v,"))) + (match_operand:VF_128 3 "" "v,"))) (match_dup 1) (const_int 1)))] "TARGET_FMA || TARGET_AVX512F" @@ -4614,7 +4614,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "" ",v")) - (match_operand:VF_128 1 "" "0,0") + (match_operand:VF_128 1 "register_operand" "0,0") (match_operand:VF_128 3 "" "v,")) (match_dup 1) (const_int 1)))] @@ -4630,10 +4630,10 @@ (vec_merge:VF_128 (fma:VF_128 (neg:VF_128 - (match_operand:VF_128 2 "" ", v")) - (match_operand:VF_128 1 "" " 0, 0") + (match_operand:VF_128 2 "" ",v")) + (match_operand:VF_128 1 "register_operand" "0,0") (neg:VF_128 - (match_operand:VF_128 3 "" " v,"))) + (match_operand:VF_128 3 "" "v,"))) (match_dup 1) (const_int 1)))] "TARGET_FMA || TARGET_AVX512F" -- cgit v1.1 From bfdc651abd28f3c76a4ef150dd87d5edc19902d7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Mar 2019 13:58:09 +0100 Subject: * config/i386/sse.md (_fmadd__mask3, _fmsub__mask3, _fnmadd__mask3, _fnmsub__mask3, avx512f_vmfmadd__mask3, avx512f_vmfmsub__mask3, *avx512f_vmfnmadd__mask3): Use instead of register_operand and %v instead of v for match_operand 1. (avx512f_vmfnmsub__mask3): Rename to ... (*avx512f_vmfnmsub__mask3): ... this. Use instead of register_operand and %v instead of v for match_operand 1. From-SVN: r269870 --- gcc/ChangeLog | 17 +++++++++++++++-- gcc/config/i386/sse.md | 18 +++++++++--------- 2 files changed, 24 insertions(+), 11 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e4fde8..9fa4bb9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,18 @@ 2019-03-22 Jakub Jelinek + * config/i386/sse.md (_fmadd__mask3, + _fmsub__mask3, + _fnmadd__mask3, + _fnmsub__mask3, + avx512f_vmfmadd__mask3, + avx512f_vmfmsub__mask3, + *avx512f_vmfnmadd__mask3): Use + instead of register_operand and %v instead of v for match_operand 1. + (avx512f_vmfnmsub__mask3): Rename to ... + (*avx512f_vmfnmsub__mask3): ... this. Use + instead of register_operand and %v instead of v + for match_operand 1. + * config/i386/sse.md (_fmadd__mask, _fmadd__mask3, _fmsub__mask, @@ -39,8 +52,8 @@ *avx512f_vmfnmadd__mask3, *avx512f_vmfnmadd__maskz_1, *avx512f_vmfnmsub__mask, - *avx512f_vmfnmsub__mask3, - *avx512f_vmfnmasub__maskz_1): New define_insns. + avx512f_vmfnmsub__mask3, + *avx512f_vmfnmsub__maskz_1): New define_insns. (avx512f_vmfmadd__maskz): New define_expand. * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index e74521a..6b8298d 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -3973,7 +3973,7 @@ [(set (match_operand:VF_AVX512VL 0 "register_operand" "=v") (vec_merge:VF_AVX512VL (fma:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v") + (match_operand:VF_AVX512VL 1 "" "%v") (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) @@ -4094,7 +4094,7 @@ [(set (match_operand:VF_AVX512VL 0 "register_operand" "=v") (vec_merge:VF_AVX512VL (fma:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v") + (match_operand:VF_AVX512VL 1 "" "%v") (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) @@ -4217,7 +4217,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v")) + (match_operand:VF_AVX512VL 1 "" "%v")) (match_operand:VF_AVX512VL 2 "" "") (match_operand:VF_AVX512VL 3 "register_operand" "0")) (match_dup 3) @@ -4345,7 +4345,7 @@ (vec_merge:VF_AVX512VL (fma:VF_AVX512VL (neg:VF_AVX512VL - (match_operand:VF_AVX512VL 1 "register_operand" "v")) + (match_operand:VF_AVX512VL 1 "" "%v")) (match_operand:VF_AVX512VL 2 "" "") (neg:VF_AVX512VL (match_operand:VF_AVX512VL 3 "register_operand" "0"))) @@ -4667,7 +4667,7 @@ (vec_merge:VF_128 (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "" "%v") (match_operand:VF_128 2 "" "") (match_operand:VF_128 3 "register_operand" "0")) (match_dup 3) @@ -4737,7 +4737,7 @@ (vec_merge:VF_128 (vec_merge:VF_128 (fma:VF_128 - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "" "%v") (match_operand:VF_128 2 "" "") (neg:VF_128 (match_operand:VF_128 3 "register_operand" "0"))) @@ -4797,7 +4797,7 @@ (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "" "")) - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "" "%v") (match_operand:VF_128 3 "register_operand" "0")) (match_dup 3) (match_operand:QI 4 "register_operand" "Yk")) @@ -4849,14 +4849,14 @@ [(set_attr "type" "ssemuladd") (set_attr "mode" "")]) -(define_insn "avx512f_vmfnmsub__mask3" +(define_insn "*avx512f_vmfnmsub__mask3" [(set (match_operand:VF_128 0 "register_operand" "=v") (vec_merge:VF_128 (vec_merge:VF_128 (fma:VF_128 (neg:VF_128 (match_operand:VF_128 2 "" "")) - (match_operand:VF_128 1 "register_operand" "v") + (match_operand:VF_128 1 "" "%v") (neg:VF_128 (match_operand:VF_128 3 "register_operand" "0"))) (match_dup 3) -- cgit v1.1 From b6c5f9f3dd489efa345175c8ac1352fa2849d32c Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Fri, 22 Mar 2019 13:49:18 +0000 Subject: mmintrin.h (_mm_sub_pi32): Fix typo. [gcc] 2019-03-22 Bill Schmidt * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. [gcc/testsuite] 2019-03-22 Bill Schmidt * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. From-SVN: r269871 --- gcc/ChangeLog | 4 ++++ gcc/config/rs6000/mmintrin.h | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c | 14 +++++++++++--- 4 files changed, 20 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fa4bb9..d85a8fc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2019-03-22 Bill Schmidt + + * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. + 2019-03-22 Jakub Jelinek * config/i386/sse.md (_fmadd__mask3, diff --git a/gcc/config/rs6000/mmintrin.h b/gcc/config/rs6000/mmintrin.h index e268025..402b20e 100644 --- a/gcc/config/rs6000/mmintrin.h +++ b/gcc/config/rs6000/mmintrin.h @@ -597,7 +597,7 @@ _mm_sub_pi32 (__m64 __m1, __m64 __m2) extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_psubd (__m64 __m1, __m64 __m2) { - return _mm_add_pi32 (__m1, __m2); + return _mm_sub_pi32 (__m1, __m2); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ac41542..6f17f24 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-03-22 Bill Schmidt + + * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. + 2019-03-22 Hongtao Liu PR target/89784 diff --git a/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c b/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c index aadaaa2..1785901 100644 --- a/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c +++ b/gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c @@ -22,20 +22,28 @@ test (__m64 s1, __m64 s2) return _mm_sub_pi32 (s1, s2); } +static __m64 +__attribute__((noinline, unused)) +test_alias (__m64 s1, __m64 s2) +{ + return _m_psubd (s1, s2); +} + static void TEST (void) { __m64_union u, s1, s2; - __m64_union e; + __m64_union e, v; int i; s1.as_m64 = _mm_setr_pi32 (30, 90); s2.as_m64 = _mm_setr_pi32 (76, -100); u.as_m64 = test (s1.as_m64, s2.as_m64); - + v.as_m64 = test_alias (s1.as_m64, s2.as_m64); + for (i = 0; i < 2; i++) e.as_int[i] = s1.as_int[i] - s2.as_int[i]; - if (u.as_m64 != e.as_m64) + if (u.as_m64 != e.as_m64 || u.as_m64 != v.as_m64) abort (); } -- cgit v1.1 From 29e0246c68efd4b68f9593ff26b3c123fb05161d Mon Sep 17 00:00:00 2001 From: Pierre-Marie de Rodat Date: Fri, 22 Mar 2019 13:59:02 +0000 Subject: [Ada] GNAT.Sockets: fix recent regressions The support for IPv6 that was added since last release triggered regressions on various platforms. The size of structures passed to low level routines was not correct anymore: it should depend on the address family, now. 2019-03-22 Dmitriy Anisimkov gcc/ada/ PR ada/89583 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket, Send_Socket): Fix the computation of structure lengths passed to low level routines. (Is_IPv6_Address): Fix the number of expected colons. 2019-03-22 Simon Wright gcc/testsuite/ PR ada/89583 * gnat.dg/socket2.adb: New. From-SVN: r269873 --- gcc/ada/ChangeLog | 8 ++++++++ gcc/ada/libgnat/g-socket.adb | 13 ++++++------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gnat.dg/socket2.adb | 16 ++++++++++++++++ 4 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 gcc/testsuite/gnat.dg/socket2.adb (limited to 'gcc') diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6cb5389..81b5db9 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,11 @@ +2019-03-22 Dmitriy Anisimkov + + PR ada/89583 + * libgnat/g-socket.adb (Bind_Socket, Connect_Socket, + Send_Socket): Fix the computation of structure lengths passed to + low level routines. + (Is_IPv6_Address): Fix the number of expected colons. + 2019-03-11 Martin Liska * gcc-interface/misc.c (gnat_post_options): Wrap option name in string diff --git a/gcc/ada/libgnat/g-socket.adb b/gcc/ada/libgnat/g-socket.adb index c0b3079..476a213 100644 --- a/gcc/ada/libgnat/g-socket.adb +++ b/gcc/ada/libgnat/g-socket.adb @@ -461,12 +461,12 @@ package body GNAT.Sockets is is Res : C.int; Sin : aliased Sockaddr; - Len : constant C.int := Sin'Size / 8; begin Set_Address (Sin'Unchecked_Access, Address); - Res := C_Bind (C.int (Socket), Sin'Address, Len); + Res := C_Bind + (C.int (Socket), Sin'Address, C.int (Lengths (Address.Family))); if Res = Failure then Raise_Socket_Error (Socket_Errno); @@ -666,12 +666,11 @@ package body GNAT.Sockets is Server : Sock_Addr_Type) return C.int is Sin : aliased Sockaddr; - Len : constant C.int := Sin'Size / 8; - begin Set_Address (Sin'Unchecked_Access, Server); - return C_Connect (C.int (Socket), Sin'Address, Len); + return C_Connect + (C.int (Socket), Sin'Address, C.int (Lengths (Server.Family))); end Connect_Socket; procedure Connect_Socket @@ -1794,7 +1793,7 @@ package body GNAT.Sockets is end if; end loop; - return Colons <= 7; + return Colons <= 8; end Is_IPv6_Address; --------------------- @@ -2403,7 +2402,7 @@ package body GNAT.Sockets is if To /= null then Set_Address (Sin'Unchecked_Access, To.all); C_To := Sin'Address; - Len := Sin'Size / 8; + Len := C.int (Thin_Common.Lengths (To.Family)); else C_To := System.Null_Address; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6f17f24..2fee0da 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-22 Simon Wright + + PR ada/89583 + * gnat.dg/socket2.adb: New. + 2019-03-22 Bill Schmidt * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. diff --git a/gcc/testsuite/gnat.dg/socket2.adb b/gcc/testsuite/gnat.dg/socket2.adb new file mode 100644 index 0000000..2ca5288 --- /dev/null +++ b/gcc/testsuite/gnat.dg/socket2.adb @@ -0,0 +1,16 @@ +-- { dg-do run } +with GNAT.Sockets; +procedure Socket2 is + Address : GNAT.Sockets.Sock_Addr_Type; + Server_Socket : GNAT.Sockets.Socket_Type; +begin + Address.Addr := GNAT.Sockets.Any_Inet_Addr; + Address.Port := 16#1234#; + GNAT.Sockets.Create_Socket (Server_Socket); + GNAT.Sockets.Set_Socket_Option + (Server_Socket, + GNAT.Sockets.Socket_Level, + (GNAT.Sockets.Reuse_Address, True)); + GNAT.Sockets.Bind_Socket (Server_Socket, Address); + GNAT.Sockets.Close_Socket (Server_Socket); +end Socket2; -- cgit v1.1 From a15ffa22b5b541a385e509649dc39db59492bcdb Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Mar 2019 15:40:59 +0100 Subject: re PR c++/87481 (Endless loop with optimisation in C++17) PR c++/87481 * doc/invoke.texi (-fconstexpr-ops-limit=): Document. * c.opt (-fconstexpr-ops-limit=): New option. * constexpr.c (struct constexpr_ctx): Add constexpr_ops_count member. (cxx_eval_constant_expression): When not skipping, not constant class or location wrapper, increment *ctx->constexpr_ops_count and if it is above constexpr_loop_nest_limit, diagnose failure. (cxx_eval_outermost_constant_expr): Add constexpr_ops_count and initialize ctx.constexpr_ops_count to its address. (is_sub_constant_expr): Likewise. * g++.dg/cpp1y/constexpr-87481.C: New test. From-SVN: r269874 --- gcc/ChangeLog | 5 +++++ gcc/c-family/ChangeLog | 5 +++++ gcc/c-family/c.opt | 4 ++++ gcc/cp/ChangeLog | 11 +++++++++++ gcc/cp/constexpr.c | 26 ++++++++++++++++++++++++-- gcc/doc/invoke.texi | 12 +++++++++++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp1y/constexpr-87481.C | 16 ++++++++++++++++ 8 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp1y/constexpr-87481.C (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d85a8fc..aa5530e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-03-22 Jakub Jelinek + + PR c++/87481 + * doc/invoke.texi (-fconstexpr-ops-limit=): Document. + 2019-03-22 Bill Schmidt * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index a597b12..e10baba 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2019-03-22 Jakub Jelinek + + PR c++/87481 + * c.opt (-fconstexpr-ops-limit=): New option. + 2019-03-21 Jakub Jelinek * c-common.c (per_file_includes_t): Use false as Lazy in hash_set diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 962973a..0f39ebb 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -1416,6 +1416,10 @@ fconstexpr-loop-limit= C++ ObjC++ Joined RejectNegative UInteger Var(constexpr_loop_limit) Init(262144) -fconstexpr-loop-limit= Specify maximum constexpr loop iteration count. +fconstexpr-ops-limit= +C++ ObjC++ Joined RejectNegative Host_Wide_Int Var(constexpr_ops_limit) Init(33554432) +-fconstexpr-ops-limit= Specify maximum number of constexpr operations during a single constexpr evaluation. + fdebug-cpp C ObjC C++ ObjC++ Emit debug annotations during preprocessing. diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 61cf384..71f9d67 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,14 @@ +2019-03-22 Jakub Jelinek + + PR c++/87481 + * constexpr.c (struct constexpr_ctx): Add constexpr_ops_count member. + (cxx_eval_constant_expression): When not skipping, not constant class + or location wrapper, increment *ctx->constexpr_ops_count and if it is + above constexpr_loop_nest_limit, diagnose failure. + (cxx_eval_outermost_constant_expr): Add constexpr_ops_count and + initialize ctx.constexpr_ops_count to its address. + (is_sub_constant_expr): Likewise. + 2019-03-21 Jakub Jelinek PR c++/71446 diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index 68e78d0..e92ec55 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -1032,6 +1032,11 @@ struct constexpr_ctx { tree object; /* If inside SWITCH_EXPR. */ constexpr_switch_state *css_state; + /* Number of cxx_eval_constant_expression calls (except skipped ones, + on simple constants or location wrappers) encountered during current + cxx_eval_outermost_constant_expr call. */ + HOST_WIDE_INT *constexpr_ops_count; + /* Whether we should error on a non-constant expression or fail quietly. */ bool quiet; /* Whether we are strictly conforming to constant expression rules or @@ -4402,6 +4407,20 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t, return t; } + /* Avoid excessively long constexpr evaluations. */ + if (!location_wrapper_p (t) + && ++*ctx->constexpr_ops_count >= constexpr_ops_limit) + { + if (!ctx->quiet) + error_at (cp_expr_loc_or_loc (t, input_location), + "% evaluation operation count exceeds limit of " + "%wd (use -fconstexpr-ops-limit= to increase the limit)", + constexpr_ops_limit); + *ctx->constexpr_ops_count = INTTYPE_MINIMUM (HOST_WIDE_INT); + *non_constant_p = true; + return t; + } + tree_code tcode = TREE_CODE (t); switch (tcode) { @@ -5238,9 +5257,10 @@ cxx_eval_outermost_constant_expr (tree t, bool allow_non_constant, bool non_constant_p = false; bool overflow_p = false; hash_map map; + HOST_WIDE_INT constexpr_ctx_count = 0; constexpr_ctx ctx = { NULL, &map, NULL, NULL, NULL, NULL, - allow_non_constant, strict, + &constexpr_ctx_count, allow_non_constant, strict, manifestly_const_eval || !allow_non_constant }; tree type = initialized_type (t); @@ -5382,9 +5402,11 @@ is_sub_constant_expr (tree t) bool non_constant_p = false; bool overflow_p = false; hash_map map; + HOST_WIDE_INT constexpr_ops_count = 0; constexpr_ctx ctx - = { NULL, &map, NULL, NULL, NULL, NULL, true, true, false }; + = { NULL, &map, NULL, NULL, NULL, NULL, &constexpr_ops_count, + true, true, false }; instantiate_constexpr_fns (t); cxx_eval_constant_expression (&ctx, t, false, &non_constant_p, diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 0a94151..4735b0a 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -210,7 +210,7 @@ in the following sections. @gccoptlist{-fabi-version=@var{n} -fno-access-control @gol -faligned-new=@var{n} -fargs-in-order=@var{n} -fchar8_t -fcheck-new @gol -fconstexpr-depth=@var{n} -fconstexpr-loop-limit=@var{n} @gol --fno-elide-constructors @gol +-fconstexpr-ops-limit=@var{n} -fno-elide-constructors @gol -fno-enforce-eh-specs @gol -fno-gnu-keywords @gol -fno-implicit-templates @gol @@ -2525,6 +2525,16 @@ Set the maximum number of iterations for a loop in C++14 constexpr functions to @var{n}. A limit is needed to detect infinite loops during constant expression evaluation. The default is 262144 (1<<18). +@item -fconstexpr-ops-limit=@var{n} +@opindex fconstexpr-ops-limit +Set the maximum number of operations during a single constexpr evaluation. +Even when number of iterations of a single loop is limited with the above limit, +if there are several nested loops and each of them has many iterations but still +smaller than the above limit, or if in a body of some loop or even outside +of a loop too many expressions need to be evaluated, the resulting constexpr +evaluation might take too long. +The default is 33554432 (1<<25). + @item -fdeduce-init-list @opindex fdeduce-init-list Enable deduction of a template type parameter as diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2fee0da..febe7b3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-22 Jakub Jelinek + + PR c++/87481 + * g++.dg/cpp1y/constexpr-87481.C: New test. + 2019-03-22 Simon Wright PR ada/89583 diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-87481.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-87481.C new file mode 100644 index 0000000..fc4decf --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-87481.C @@ -0,0 +1,16 @@ +// PR c++/87481 +// { dg-do compile { target c++14 } } +// { dg-options "-fconstexpr-loop-limit=98304 -fconstexpr-ops-limit=131072" } */ + +constexpr unsigned +foo () +{ + unsigned int r = 0; + for (int i = 0; i < 65536; i++) + for (int j = 0; j < 65536; j++) + for (int k = 0; k < 65536; k++) // { dg-error "'constexpr' evaluation operation count exceeds limit of 131072" "" { target *-*-* } 0 } + r += (i + j + k); + return r; +} + +constexpr auto x = foo (); // { dg-message "in 'constexpr' expansion of" } -- cgit v1.1 From 5c3703c552d12e7e62febf4fe5deb837a1305f78 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Mar 2019 15:42:57 +0100 Subject: re PR c++/60702 (thread_local initialization) PR c++/60702 * cp-tree.h (get_tls_wrapper_fn): Remove declaration. (maybe_get_tls_wrapper_call): Declare. * decl2.c (get_tls_wrapper_fn): Make static. (maybe_get_tls_wrapper_call): New function. * typeck.c (build_class_member_access_expr): Handle accesses to TLS variables. * semantics.c (finish_qualified_id_expr): Likewise. (finish_id_expression_1): Use maybe_get_tls_wrapper_call. * pt.c (tsubst_copy_and_build): Likewise. * g++.dg/tls/thread_local11.C: New test. * g++.dg/tls/thread_local11.h: New test. * g++.dg/tls/thread_local12a.C: New test. * g++.dg/tls/thread_local12b.C: New test. * g++.dg/tls/thread_local12c.C: New test. * g++.dg/tls/thread_local12d.C: New test. * g++.dg/tls/thread_local12e.C: New test. * g++.dg/tls/thread_local12f.C: New test. * g++.dg/tls/thread_local12g.C: New test. * g++.dg/tls/thread_local12h.C: New test. * g++.dg/tls/thread_local12i.C: New test. * g++.dg/tls/thread_local12j.C: New test. * g++.dg/tls/thread_local12k.C: New test. * g++.dg/tls/thread_local12l.C: New test. From-SVN: r269875 --- gcc/cp/ChangeLog | 11 +++++++ gcc/cp/cp-tree.h | 2 +- gcc/cp/decl2.c | 18 ++++++++++- gcc/cp/pt.c | 15 +++------- gcc/cp/semantics.c | 18 ++++------- gcc/cp/typeck.c | 6 ++++ gcc/testsuite/ChangeLog | 16 ++++++++++ gcc/testsuite/g++.dg/tls/thread_local11.C | 48 ++++++++++++++++++++++++++++++ gcc/testsuite/g++.dg/tls/thread_local11.h | 26 ++++++++++++++++ gcc/testsuite/g++.dg/tls/thread_local12a.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12b.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12c.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12d.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12e.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12f.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12g.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12h.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12i.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12j.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12k.C | 12 ++++++++ gcc/testsuite/g++.dg/tls/thread_local12l.C | 12 ++++++++ 21 files changed, 279 insertions(+), 25 deletions(-) create mode 100644 gcc/testsuite/g++.dg/tls/thread_local11.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local11.h create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12a.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12b.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12c.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12d.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12e.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12f.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12g.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12h.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12i.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12j.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12k.C create mode 100644 gcc/testsuite/g++.dg/tls/thread_local12l.C (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 71f9d67..16f1b8e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,16 @@ 2019-03-22 Jakub Jelinek + PR c++/60702 + * cp-tree.h (get_tls_wrapper_fn): Remove declaration. + (maybe_get_tls_wrapper_call): Declare. + * decl2.c (get_tls_wrapper_fn): Make static. + (maybe_get_tls_wrapper_call): New function. + * typeck.c (build_class_member_access_expr): Handle accesses to TLS + variables. + * semantics.c (finish_qualified_id_expr): Likewise. + (finish_id_expression_1): Use maybe_get_tls_wrapper_call. + * pt.c (tsubst_copy_and_build): Likewise. + PR c++/87481 * constexpr.c (struct constexpr_ctx): Add constexpr_ops_count member. (cxx_eval_constant_expression): When not skipping, not constant class diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 15e39e1..3fe91ad 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -6513,7 +6513,7 @@ extern tree cp_build_parm_decl (tree, tree, tree); extern tree get_guard (tree); extern tree get_guard_cond (tree, bool); extern tree set_guard (tree); -extern tree get_tls_wrapper_fn (tree); +extern tree maybe_get_tls_wrapper_call (tree); extern void mark_needed (tree); extern bool decl_needed_p (tree); extern void note_vague_linkage_fn (tree); diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index f8637da..6f23ee1 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -3442,7 +3442,7 @@ get_tls_init_fn (tree var) VAR and then returns a reference to VAR. The wrapper function is used in place of VAR everywhere VAR is mentioned. */ -tree +static tree get_tls_wrapper_fn (tree var) { /* Only C++11 TLS vars need this wrapper fn. */ @@ -3496,6 +3496,22 @@ get_tls_wrapper_fn (tree var) return fn; } +/* If EXPR is a thread_local variable that should be wrapped by init + wrapper function, return a call to that function, otherwise return + NULL. */ + +tree +maybe_get_tls_wrapper_call (tree expr) +{ + if (VAR_P (expr) + && !processing_template_decl + && !cp_unevaluated_operand + && CP_DECL_THREAD_LOCAL_P (expr)) + if (tree wrap = get_tls_wrapper_fn (expr)) + return build_cxx_call (wrap, 0, NULL, tf_warning_or_error); + return NULL; +} + /* At EOF, generate the definition for the TLS wrapper function FN: T& var_wrapper() { diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 6c15419..afb7ece 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -19403,17 +19403,10 @@ tsubst_copy_and_build (tree t, { tree r = tsubst_copy (t, args, complain, in_decl); /* ??? We're doing a subset of finish_id_expression here. */ - if (VAR_P (r) - && !processing_template_decl - && !cp_unevaluated_operand - && (TREE_STATIC (r) || DECL_EXTERNAL (r)) - && CP_DECL_THREAD_LOCAL_P (r)) - { - if (tree wrap = get_tls_wrapper_fn (r)) - /* Replace an evaluated use of the thread_local variable with - a call to its wrapper. */ - r = build_cxx_call (wrap, 0, NULL, tf_warning_or_error); - } + if (tree wrap = maybe_get_tls_wrapper_call (r)) + /* Replace an evaluated use of the thread_local variable with + a call to its wrapper. */ + r = wrap; else if (outer_automatic_var_p (r)) r = process_outer_var_ref (r, complain); diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 599e0e3..15b766d 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2143,6 +2143,8 @@ finish_qualified_id_expr (tree qualifying_class, expr = build_qualified_name (TREE_TYPE (expr), qualifying_class, expr, template_p); + else if (tree wrap = maybe_get_tls_wrapper_call (expr)) + expr = wrap; expr = convert_from_reference (expr); } @@ -3788,18 +3790,10 @@ finish_id_expression_1 (tree id_expression, *non_integral_constant_expression_p = true; } - tree wrap; - if (VAR_P (decl) - && !cp_unevaluated_operand - && !processing_template_decl - && (TREE_STATIC (decl) || DECL_EXTERNAL (decl)) - && CP_DECL_THREAD_LOCAL_P (decl) - && (wrap = get_tls_wrapper_fn (decl))) - { - /* Replace an evaluated use of the thread_local variable with - a call to its wrapper. */ - decl = build_cxx_call (wrap, 0, NULL, tf_warning_or_error); - } + if (tree wrap = maybe_get_tls_wrapper_call (decl)) + /* Replace an evaluated use of the thread_local variable with + a call to its wrapper. */ + decl = wrap; else if (TREE_CODE (decl) == TEMPLATE_ID_EXPR && !dependent_p && variable_template_p (TREE_OPERAND (decl, 0))) diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index f77e9c6..e2c5fc2 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -2443,6 +2443,12 @@ build_class_member_access_expr (cp_expr object, tree member, /* A static data member. */ result = member; mark_exp_read (object); + + if (tree wrap = maybe_get_tls_wrapper_call (result)) + /* Replace an evaluated use of the thread_local variable with + a call to its wrapper. */ + result = wrap; + /* If OBJECT has side-effects, they are supposed to occur. */ if (TREE_SIDE_EFFECTS (object)) result = build2 (COMPOUND_EXPR, TREE_TYPE (result), object, result); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index febe7b3..8324702 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,21 @@ 2019-03-22 Jakub Jelinek + PR c++/60702 + * g++.dg/tls/thread_local11.C: New test. + * g++.dg/tls/thread_local11.h: New test. + * g++.dg/tls/thread_local12a.C: New test. + * g++.dg/tls/thread_local12b.C: New test. + * g++.dg/tls/thread_local12c.C: New test. + * g++.dg/tls/thread_local12d.C: New test. + * g++.dg/tls/thread_local12e.C: New test. + * g++.dg/tls/thread_local12f.C: New test. + * g++.dg/tls/thread_local12g.C: New test. + * g++.dg/tls/thread_local12h.C: New test. + * g++.dg/tls/thread_local12i.C: New test. + * g++.dg/tls/thread_local12j.C: New test. + * g++.dg/tls/thread_local12k.C: New test. + * g++.dg/tls/thread_local12l.C: New test. + PR c++/87481 * g++.dg/cpp1y/constexpr-87481.C: New test. diff --git a/gcc/testsuite/g++.dg/tls/thread_local11.C b/gcc/testsuite/g++.dg/tls/thread_local11.C new file mode 100644 index 0000000..036d91a --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local11.C @@ -0,0 +1,48 @@ +// PR c++/60702 +// { dg-do compile { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } +// { dg-additional-options "-fdump-tree-gimple" } +// { dg-final { scan-tree-dump-times "_ZTW2s1" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTW2s2" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTW2s3" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTW2s4" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u1E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u2E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u3E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u4E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u5E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u6E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u7E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTWN1T2u8E" 2 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTH2s1" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTH2s2" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTH2s3" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTH2s4" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u1E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u2E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u3E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u4E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u5E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u6E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u7E" 1 "gimple" } } +// { dg-final { scan-tree-dump-times "_ZTHN1T2u8E" 1 "gimple" } } + +#include "thread_local11.h" + +void +foo () +{ + f1 (); + f2 (); + f3 (); + f4 (); + f5 (); + f6 (); + f7<0> (); + f8<0> (); + f9<0> (); + f10<0> (); + f11<0> (); + f12<0> (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local11.h b/gcc/testsuite/g++.dg/tls/thread_local11.h new file mode 100644 index 0000000..761b42d --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local11.h @@ -0,0 +1,26 @@ +// PR c++/60702 + +extern "C" void abort (); +struct S { S () { i = 42; }; int i; }; +thread_local S s1, s2, s3, s4; +struct T { static thread_local S u1, u2, u3, u4, u5, u6, u7, u8; int i; } t; +thread_local S T::u1, T::u2, T::u3, T::u4, T::u5, T::u6, T::u7, T::u8; + +S *f1 () { return &s1; } +int *f2 () { return &s2.i; } +S *f3 () { return &t.u1; } +int *f4 () { return &t.u2.i; } +S *f5 () { return &T::u3; } +int *f6 () { return &T::u4.i; } +template +S *f7 () { return &s3; } +template +int *f8 () { return &s4.i; } +template +S *f9 () { return &t.u5; } +template +int *f10 () { return &t.u6.i; } +template +S *f11 () { return &T::u7; } +template +int *f12 () { return &T::u8.i; } diff --git a/gcc/testsuite/g++.dg/tls/thread_local12a.C b/gcc/testsuite/g++.dg/tls/thread_local12a.C new file mode 100644 index 0000000..87a1716 --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12a.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (f1 ()->i != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12b.C b/gcc/testsuite/g++.dg/tls/thread_local12b.C new file mode 100644 index 0000000..498bace --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12b.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (*f2 () != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12c.C b/gcc/testsuite/g++.dg/tls/thread_local12c.C new file mode 100644 index 0000000..92add8f --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12c.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (f3 ()->i != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12d.C b/gcc/testsuite/g++.dg/tls/thread_local12d.C new file mode 100644 index 0000000..7863136 --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12d.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (*f4 () != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12e.C b/gcc/testsuite/g++.dg/tls/thread_local12e.C new file mode 100644 index 0000000..95c44f7 --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12e.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (f5 ()->i != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12f.C b/gcc/testsuite/g++.dg/tls/thread_local12f.C new file mode 100644 index 0000000..e7795dc --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12f.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (*f6 () != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12g.C b/gcc/testsuite/g++.dg/tls/thread_local12g.C new file mode 100644 index 0000000..c7c964a --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12g.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (f7<0> ()->i != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12h.C b/gcc/testsuite/g++.dg/tls/thread_local12h.C new file mode 100644 index 0000000..32b6841 --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12h.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (*f8<0> () != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12i.C b/gcc/testsuite/g++.dg/tls/thread_local12i.C new file mode 100644 index 0000000..815e14e --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12i.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (f9<0> ()->i != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12j.C b/gcc/testsuite/g++.dg/tls/thread_local12j.C new file mode 100644 index 0000000..0009de1 --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12j.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (*f10<0> () != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12k.C b/gcc/testsuite/g++.dg/tls/thread_local12k.C new file mode 100644 index 0000000..589e872 --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12k.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (f11<0> ()->i != 42) abort (); +} diff --git a/gcc/testsuite/g++.dg/tls/thread_local12l.C b/gcc/testsuite/g++.dg/tls/thread_local12l.C new file mode 100644 index 0000000..273e1be --- /dev/null +++ b/gcc/testsuite/g++.dg/tls/thread_local12l.C @@ -0,0 +1,12 @@ +// PR c++/60702 +// { dg-do run { target c++11 } } +// { dg-add-options tls } +// { dg-require-effective-target tls_runtime } + +#include "thread_local11.h" + +int +main () +{ + if (*f12<0> () != 42) abort (); +} -- cgit v1.1 From c07a0a226b6904995d785662bab74c2c68481539 Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Fri, 22 Mar 2019 16:59:21 +0000 Subject: re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86) 2019-03-22 Vladimir Makarov PR rtl-optimization/89676 * lra-constraints.c (curr_insn_transform): Do match reload for early clobbers even if the match was successful. 2019-03-22 Vladimir Makarov PR rtl-optimization/89676 * gcc.target/i386/pr89676.c: New. From-SVN: r269878 --- gcc/ChangeLog | 6 ++++++ gcc/lra-constraints.c | 14 ++++++++++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr89676.c | 10 ++++++++++ 4 files changed, 35 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr89676.c (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa5530e..c10c4c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-22 Vladimir Makarov + + PR rtl-optimization/89676 + * lra-constraints.c (curr_insn_transform): Do match reload for + early clobbers even if the match was successful. + 2019-03-22 Jakub Jelinek PR c++/87481 diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index cba87eb..78932cc 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -4256,6 +4256,20 @@ curr_insn_transform (bool check_only_p) || MEM_P (SET_DEST (curr_insn_set)) || GET_CODE (SET_DEST (curr_insn_set)) == SUBREG)))) optional_p = true; + else if (goal_alt_matched[i][0] != -1 + && curr_static_id->operand[i].type == OP_OUT + && (curr_static_id->operand_alternative + [goal_alt_number * n_operands + i].earlyclobber)) + { + /* Generate reloads for output and matched inputs. This + is the easiest way to avoid creation of non-existing + conflicts in lra-lives.c. */ + match_reload (i, goal_alt_matched[i], outputs, goal_alt[i], &before, + &after, TRUE); + outputs[n_outputs++] = i; + outputs[n_outputs] = -1; + continue; + } else continue; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8324702..5626696 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-22 Vladimir Makarov + + PR rtl-optimization/89676 + * gcc.target/i386/pr89676.c: New. + 2019-03-22 Jakub Jelinek PR c++/60702 diff --git a/gcc/testsuite/gcc.target/i386/pr89676.c b/gcc/testsuite/gcc.target/i386/pr89676.c new file mode 100644 index 0000000..90865d8 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr89676.c @@ -0,0 +1,10 @@ +/* PR rtl-optimization/89676 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -m32 -march=i686" } */ +unsigned long long +foo (unsigned long long i) +{ + return i << 3; +} + +/* { dg-final { scan-assembler-times "movl" 2 } } */ -- cgit v1.1 From 23843f474011fe7f29604a28e5da7294dd27147e Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 22 Mar 2019 12:14:56 -0600 Subject: re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398) PR rtl-optimization/87761 * config/mips/mips-protos.h (mips_split_move): Add new argument. (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. (mips_split_move): Accept new INSN argument. Try to forward SRC into the next instruction. (mips_split_move_insn): Pass INSN through to mips_split_move. From-SVN: r269880 --- gcc/ChangeLog | 9 +++++++++ gcc/config/mips/mips-protos.h | 2 +- gcc/config/mips/mips.c | 24 ++++++++++++++++++++---- 3 files changed, 30 insertions(+), 5 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c10c4c7..7e31779 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2019-02-26 Jeff Law + + PR rtl-optimization/87761 + * config/mips/mips-protos.h (mips_split_move): Add new argument. + (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. + (mips_split_move): Accept new INSN argument. Try to forward SRC + into the next instruction. + (mips_split_move_insn): Pass INSN through to mips_split_move. + 2019-03-22 Vladimir Makarov PR rtl-optimization/89676 diff --git a/gcc/config/mips/mips-protos.h b/gcc/config/mips/mips-protos.h index 64afb35..32070fd 100644 --- a/gcc/config/mips/mips-protos.h +++ b/gcc/config/mips/mips-protos.h @@ -214,7 +214,7 @@ extern bool mips_legitimize_move (machine_mode, rtx, rtx); extern rtx mips_subword (rtx, bool); extern bool mips_split_move_p (rtx, rtx, enum mips_split_type); -extern void mips_split_move (rtx, rtx, enum mips_split_type); +extern void mips_split_move (rtx, rtx, enum mips_split_type, rtx); extern bool mips_split_move_insn_p (rtx, rtx, rtx); extern void mips_split_move_insn (rtx, rtx, rtx); extern void mips_split_128bit_move (rtx, rtx); diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 48f3244..1de33b2 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -3031,7 +3031,7 @@ static void mips_emit_move_or_split (rtx dest, rtx src, enum mips_split_type split_type) { if (mips_split_move_p (dest, src, split_type)) - mips_split_move (dest, src, split_type); + mips_split_move (dest, src, split_type, NULL); else mips_emit_move (dest, src); } @@ -4780,10 +4780,11 @@ mips_split_move_p (rtx dest, rtx src, enum mips_split_type split_type) } /* Split a move from SRC to DEST, given that mips_split_move_p holds. - SPLIT_TYPE describes the split condition. */ + SPLIT_TYPE describes the split condition. INSN is the insn being + split, if we know it, NULL otherwise. */ void -mips_split_move (rtx dest, rtx src, enum mips_split_type split_type) +mips_split_move (rtx dest, rtx src, enum mips_split_type split_type, rtx insn_) { rtx low_dest; @@ -4843,6 +4844,21 @@ mips_split_move (rtx dest, rtx src, enum mips_split_type split_type) mips_emit_move (mips_subword (dest, true), mips_subword (src, true)); } } + + /* This is a hack. See if the next insn uses DEST and if so, see if we + can forward SRC for DEST. This is most useful if the next insn is a + simple store. */ + rtx_insn *insn = (rtx_insn *)insn_; + if (insn) + { + rtx_insn *next = next_nonnote_nondebug_insn_bb (insn); + if (next) + { + rtx set = single_set (next); + if (set && SET_SRC (set) == dest) + validate_change (next, &SET_SRC (set), src, false); + } + } } /* Return the split type for instruction INSN. */ @@ -5070,7 +5086,7 @@ mips_split_move_insn_p (rtx dest, rtx src, rtx insn) void mips_split_move_insn (rtx dest, rtx src, rtx insn) { - mips_split_move (dest, src, mips_insn_split_type (insn)); + mips_split_move (dest, src, mips_insn_split_type (insn), insn); } /* Return the appropriate instructions to move SRC into DEST. Assume -- cgit v1.1 From 62a6133fd6273bdff41742058145f7d37603a7a1 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 22 Mar 2019 21:59:36 +0000 Subject: * gcc.pot: Regenerate. From-SVN: r269882 --- gcc/po/ChangeLog | 4 + gcc/po/gcc.pot | 16250 +++++++++++++++++++++++++++-------------------------- 2 files changed, 8308 insertions(+), 7946 deletions(-) (limited to 'gcc') diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 7d63ba4..1dfc1fc 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,7 @@ +2019-03-22 Joseph Myers + + * gcc.pot: Regenerate. + 2019-03-18 Joseph Myers * sv.po: Update. diff --git a/gcc/po/gcc.pot b/gcc/po/gcc.pot index 0396c76..34ae9d7 100644 --- a/gcc/po/gcc.pot +++ b/gcc/po/gcc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n" -"POT-Creation-Date: 2019-02-01 23:01+0000\n" +"POT-Creation-Date: 2019-03-22 21:56+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,19 +18,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: cfgrtl.c:2698 +#: cfgrtl.c:2705 msgid "flow control insn inside a basic block" msgstr "" -#: cfgrtl.c:2930 +#: cfgrtl.c:2937 msgid "wrong insn in the fallthru edge" msgstr "" -#: cfgrtl.c:2987 +#: cfgrtl.c:2994 msgid "insn outside basic block" msgstr "" -#: cfgrtl.c:2995 +#: cfgrtl.c:3002 msgid "return not followed by barrier" msgstr "" @@ -98,7 +98,7 @@ msgstr "" msgid "%s: some warnings being treated as errors" msgstr "" -#: diagnostic.c:341 input.c:223 input.c:1854 c-family/c-opts.c:1397 +#: diagnostic.c:341 input.c:223 input.c:1854 c-family/c-opts.c:1400 #: fortran/cpp.c:577 fortran/error.c:1012 fortran/error.c:1032 msgid "" msgstr "" @@ -194,12 +194,12 @@ msgstr "" #. PRINT_OPERAND must handle them. #. We can't handle floating point constants; #. TARGET_PRINT_OPERAND must handle them. -#: final.c:4149 config/arc/arc.c:6149 config/i386/i386.c:16849 +#: final.c:4149 config/arc/arc.c:6110 config/i386/i386.c:17081 #, c-format msgid "floating constant misused" msgstr "" -#: final.c:4207 config/arc/arc.c:6246 config/i386/i386.c:16940 +#: final.c:4207 config/arc/arc.c:6207 config/i386/i386.c:17172 #: config/pdp11/pdp11.c:1874 #, c-format msgid "invalid expression as operand" @@ -570,7 +570,7 @@ msgstr "" msgid "%s %s%s\n" msgstr "" -#: gcc.c:8005 gcov-tool.c:529 gcov.c:918 fortran/gfortranspec.c:282 +#: gcc.c:8005 gcov-tool.c:529 gcov.c:923 fortran/gfortranspec.c:282 msgid "(C)" msgstr "" @@ -581,7 +581,7 @@ msgid "" "\n" msgstr "" -#: gcc.c:8312 +#: gcc.c:8313 #, c-format msgid "" "\n" @@ -590,14 +590,14 @@ msgid "" "\n" msgstr "" -#: gcc.c:8313 +#: gcc.c:8314 #, c-format msgid "" "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n" "\n" msgstr "" -#: gcc.c:9621 +#: gcc.c:9622 #, c-format msgid "" "Assembler options\n" @@ -605,7 +605,7 @@ msgid "" "\n" msgstr "" -#: gcc.c:9622 +#: gcc.c:9623 #, c-format msgid "" "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n" @@ -737,7 +737,7 @@ msgid "" " -v, --version Print version number, then exit\n" msgstr "" -#: gcov-tool.c:517 gcov.c:906 +#: gcov-tool.c:517 gcov.c:911 #, c-format msgid "" "\n" @@ -750,7 +750,7 @@ msgstr "" msgid "Copyright %s 2019 Free Software Foundation, Inc.\n" msgstr "" -#: gcov-tool.c:531 gcov.c:920 +#: gcov-tool.c:531 gcov.c:925 #, c-format msgid "" "This is free software; see the source for copying conditions.\n" @@ -759,359 +759,359 @@ msgid "" "\n" msgstr "" -#: gcov.c:880 +#: gcov.c:885 #, c-format msgid "" "Usage: gcov [OPTION...] SOURCE|OBJ...\n" "\n" msgstr "" -#: gcov.c:881 +#: gcov.c:886 #, c-format msgid "" "Print code coverage information.\n" "\n" msgstr "" -#: gcov.c:882 +#: gcov.c:887 #, c-format msgid "" " -a, --all-blocks Show information for every basic block\n" msgstr "" -#: gcov.c:883 +#: gcov.c:888 #, c-format msgid "" " -b, --branch-probabilities Include branch probabilities in output\n" msgstr "" -#: gcov.c:884 +#: gcov.c:889 #, c-format msgid "" " -c, --branch-counts Output counts of branches taken\n" " rather than percentages\n" msgstr "" -#: gcov.c:886 +#: gcov.c:891 #, c-format msgid " -d, --display-progress Display progress information\n" msgstr "" -#: gcov.c:887 +#: gcov.c:892 #, c-format msgid " -f, --function-summaries Output summaries for each function\n" msgstr "" -#: gcov.c:888 +#: gcov.c:893 #, c-format msgid " -h, --help Print this help, then exit\n" msgstr "" -#: gcov.c:889 +#: gcov.c:894 #, c-format msgid "" -" -i, --json-format\t\t Output JSON intermediate format into .gcov.json." -"gz file\n" +" -i, --json-format Output JSON intermediate format into .gcov." +"json.gz file\n" msgstr "" -#: gcov.c:890 +#: gcov.c:895 #, c-format msgid " -j, --human-readable Output human readable numbers\n" msgstr "" -#: gcov.c:891 +#: gcov.c:896 #, c-format msgid " -k, --use-colors Emit colored output\n" msgstr "" -#: gcov.c:892 +#: gcov.c:897 #, c-format msgid "" " -l, --long-file-names Use long output file names for included\n" " source files\n" msgstr "" -#: gcov.c:894 +#: gcov.c:899 #, c-format msgid " -m, --demangled-names Output demangled function names\n" msgstr "" -#: gcov.c:895 +#: gcov.c:900 #, c-format msgid " -n, --no-output Do not create an output file\n" msgstr "" -#: gcov.c:896 +#: gcov.c:901 #, c-format msgid "" " -o, --object-directory DIR|FILE Search for object files in DIR or called " "FILE\n" msgstr "" -#: gcov.c:897 +#: gcov.c:902 #, c-format msgid " -p, --preserve-paths Preserve all pathname components\n" msgstr "" -#: gcov.c:898 +#: gcov.c:903 #, c-format msgid "" " -q, --use-hotness-colors Emit perf-like colored output for hot " "lines\n" msgstr "" -#: gcov.c:899 +#: gcov.c:904 #, c-format msgid " -r, --relative-only Only show data for relative sources\n" msgstr "" -#: gcov.c:900 +#: gcov.c:905 #, c-format msgid " -s, --source-prefix DIR Source prefix to elide\n" msgstr "" -#: gcov.c:901 +#: gcov.c:906 #, c-format msgid " -t, --stdout Output to stdout instead of a file\n" msgstr "" -#: gcov.c:902 +#: gcov.c:907 #, c-format msgid "" " -u, --unconditional-branches Show unconditional branch counts too\n" msgstr "" -#: gcov.c:903 +#: gcov.c:908 #, c-format msgid " -v, --version Print version number, then exit\n" msgstr "" -#: gcov.c:904 +#: gcov.c:909 #, c-format msgid " -w, --verbose Print verbose informations\n" msgstr "" -#: gcov.c:905 +#: gcov.c:910 #, c-format msgid " -x, --hash-filenames Hash long pathnames\n" msgstr "" -#: gcov.c:916 +#: gcov.c:921 #, c-format msgid "gcov %s%s\n" msgstr "" -#: gcov.c:1231 +#: gcov.c:1250 #, c-format msgid "'%s' file is already processed\n" msgstr "" -#: gcov.c:1345 +#: gcov.c:1364 #, c-format msgid "Creating '%s'\n" msgstr "" -#: gcov.c:1348 +#: gcov.c:1367 #, c-format msgid "Error writing output file '%s'\n" msgstr "" -#: gcov.c:1353 +#: gcov.c:1372 #, c-format msgid "Could not open output file '%s'\n" msgstr "" -#: gcov.c:1358 +#: gcov.c:1377 #, c-format msgid "Removing '%s'\n" msgstr "" -#: gcov.c:1380 gcov.c:1447 gcov.c:2773 +#: gcov.c:1399 gcov.c:1466 gcov.c:2803 #, c-format msgid "\n" msgstr "" -#: gcov.c:1469 +#: gcov.c:1488 #, c-format msgid "Cannot open JSON output file %s\n" msgstr "" -#: gcov.c:1477 +#: gcov.c:1496 #, c-format msgid "Error writing JSON output file %s\n" msgstr "" -#: gcov.c:1644 +#: gcov.c:1663 #, c-format msgid "%s:source file is newer than notes file '%s'\n" msgstr "" -#: gcov.c:1649 +#: gcov.c:1668 #, c-format msgid "(the message is displayed only once per source file)\n" msgstr "" -#: gcov.c:1669 +#: gcov.c:1688 #, c-format msgid "%s:cannot open notes file\n" msgstr "" -#: gcov.c:1675 +#: gcov.c:1694 #, c-format msgid "%s:not a gcov notes file\n" msgstr "" -#: gcov.c:1688 +#: gcov.c:1707 #, c-format msgid "%s:version '%.4s', prefer '%.4s'\n" msgstr "" -#: gcov.c:1736 +#: gcov.c:1757 #, c-format msgid "%s:already seen blocks for '%s'\n" msgstr "" -#: gcov.c:1850 gcov.c:1952 +#: gcov.c:1871 gcov.c:1973 #, c-format msgid "%s:corrupted\n" msgstr "" -#: gcov.c:1857 +#: gcov.c:1878 #, c-format msgid "%s:no functions found\n" msgstr "" -#: gcov.c:1875 +#: gcov.c:1896 #, c-format msgid "%s:cannot open data file, assuming not executed\n" msgstr "" -#: gcov.c:1882 +#: gcov.c:1903 #, c-format msgid "%s:not a gcov data file\n" msgstr "" -#: gcov.c:1895 +#: gcov.c:1916 #, c-format msgid "%s:version '%.4s', prefer version '%.4s'\n" msgstr "" -#: gcov.c:1901 +#: gcov.c:1922 #, c-format msgid "%s:stamp mismatch with notes file\n" msgstr "" -#: gcov.c:1933 +#: gcov.c:1954 #, c-format msgid "%s:profile mismatch for '%s'\n" msgstr "" -#: gcov.c:1951 +#: gcov.c:1972 #, c-format msgid "%s:overflowed\n" msgstr "" -#: gcov.c:1998 +#: gcov.c:2019 #, c-format msgid "%s:'%s' lacks entry and/or exit blocks\n" msgstr "" -#: gcov.c:2003 +#: gcov.c:2024 #, c-format msgid "%s:'%s' has arcs to entry block\n" msgstr "" -#: gcov.c:2011 +#: gcov.c:2032 #, c-format msgid "%s:'%s' has arcs from exit block\n" msgstr "" -#: gcov.c:2220 +#: gcov.c:2241 #, c-format msgid "%s:graph is unsolvable for '%s'\n" msgstr "" -#: gcov.c:2336 +#: gcov.c:2357 #, c-format msgid "Lines executed:%s of %d\n" msgstr "" -#: gcov.c:2339 +#: gcov.c:2360 #, c-format msgid "No executable lines\n" msgstr "" -#: gcov.c:2347 +#: gcov.c:2368 gcov.c:2377 #, c-format msgid "%s '%s'\n" msgstr "" -#: gcov.c:2354 +#: gcov.c:2384 #, c-format msgid "Branches executed:%s of %d\n" msgstr "" -#: gcov.c:2358 +#: gcov.c:2388 #, c-format msgid "Taken at least once:%s of %d\n" msgstr "" -#: gcov.c:2364 +#: gcov.c:2394 #, c-format msgid "No branches\n" msgstr "" -#: gcov.c:2366 +#: gcov.c:2396 #, c-format msgid "Calls executed:%s of %d\n" msgstr "" -#: gcov.c:2370 +#: gcov.c:2400 #, c-format msgid "No calls\n" msgstr "" -#: gcov.c:2627 +#: gcov.c:2657 #, c-format msgid "%s:no lines for '%s'\n" msgstr "" -#: gcov.c:2753 +#: gcov.c:2783 #, c-format msgid "call %2d returned %s\n" msgstr "" -#: gcov.c:2758 +#: gcov.c:2788 #, c-format msgid "call %2d never executed\n" msgstr "" -#: gcov.c:2763 +#: gcov.c:2793 #, c-format msgid "branch %2d taken %s%s" msgstr "" -#: gcov.c:2768 +#: gcov.c:2798 #, c-format msgid "branch %2d never executed" msgstr "" -#: gcov.c:2771 +#: gcov.c:2801 #, c-format msgid " (BB %d)" msgstr "" -#: gcov.c:2778 +#: gcov.c:2808 #, c-format msgid "unconditional %2d taken %s\n" msgstr "" -#: gcov.c:2781 +#: gcov.c:2811 #, c-format msgid "unconditional %2d never executed\n" msgstr "" -#: gcov.c:3034 +#: gcov.c:3064 #, c-format msgid "Cannot open source file %s\n" msgstr "" @@ -1124,7 +1124,7 @@ msgstr "" msgid "GCSE disabled" msgstr "" -#: gimple-ssa-isolate-paths.c:547 c/c-typeck.c:10640 +#: gimple-ssa-isolate-paths.c:547 c/c-typeck.c:10638 #, gcc-internal-format msgid "function returns address of local variable" msgstr "" @@ -1205,11 +1205,11 @@ msgstr "" msgid "this is the insn:" msgstr "" -#: lra-constraints.c:2955 +#: lra-constraints.c:2971 msgid "unable to generate reloads for impossible constraints:" msgstr "" -#: lra-constraints.c:3946 reload.c:3814 +#: lra-constraints.c:3962 reload.c:3814 msgid "unable to generate reloads for:" msgstr "" @@ -1222,92 +1222,92 @@ msgstr "" msgid "Uses of this option are diagnosed." msgstr "" -#: opts.c:1319 +#: opts.c:1327 #, c-format msgid "default %d minimum %d maximum %d" msgstr "" -#: opts.c:1388 +#: opts.c:1396 #, c-format msgid "Same as %s. Use the latter option instead." msgstr "" -#: opts.c:1396 +#: opts.c:1404 #, c-format msgid "%s Same as %s." msgstr "" -#: opts.c:1467 +#: opts.c:1475 msgid "[default]" msgstr "" -#: opts.c:1478 +#: opts.c:1486 msgid "[enabled]" msgstr "" -#: opts.c:1478 +#: opts.c:1486 msgid "[disabled]" msgstr "" -#: opts.c:1513 +#: opts.c:1521 #, c-format msgid " No options with the desired characteristics were found\n" msgstr "" -#: opts.c:1522 +#: opts.c:1530 #, c-format msgid "" " None found. Use --help=%s to show *all* the options supported by the %s " "front-end.\n" msgstr "" -#: opts.c:1528 +#: opts.c:1536 #, c-format msgid "" " All options with the desired characteristics have already been displayed\n" msgstr "" -#: opts.c:1622 +#: opts.c:1630 msgid "The following options are target specific" msgstr "" -#: opts.c:1625 +#: opts.c:1633 msgid "The following options control compiler warning messages" msgstr "" -#: opts.c:1628 +#: opts.c:1636 msgid "The following options control optimizations" msgstr "" -#: opts.c:1631 opts.c:1670 +#: opts.c:1639 opts.c:1678 msgid "The following options are language-independent" msgstr "" -#: opts.c:1634 +#: opts.c:1642 msgid "The --param option recognizes the following as parameters" msgstr "" -#: opts.c:1640 +#: opts.c:1648 msgid "The following options are specific to just the language " msgstr "" -#: opts.c:1642 +#: opts.c:1650 msgid "The following options are supported by the language " msgstr "" -#: opts.c:1653 +#: opts.c:1661 msgid "The following options are not documented" msgstr "" -#: opts.c:1655 +#: opts.c:1663 msgid "The following options take separate arguments" msgstr "" -#: opts.c:1657 +#: opts.c:1665 msgid "The following options take joined arguments" msgstr "" -#: opts.c:1668 +#: opts.c:1676 msgid "The following options are language-related" msgstr "" @@ -1364,11 +1364,11 @@ msgid "created and used with differing settings of '%s'" msgstr "" #: targhooks.c:2034 -msgid "created and used with different settings of -fpic" +msgid "created and used with different settings of %<-fpic%>" msgstr "" #: targhooks.c:2036 -msgid "created and used with different settings of -fpie" +msgid "created and used with different settings of %<-fpie%>" msgstr "" #: tlink.c:387 @@ -1432,7 +1432,7 @@ msgstr "" msgid "options enabled: " msgstr "" -#: tree-diagnostic.c:299 c/c-decl.c:5610 c/c-typeck.c:7605 cp/error.c:1061 +#: tree-diagnostic.c:299 c/c-decl.c:5614 c/c-typeck.c:7603 cp/error.c:1061 #: c-family/c-pretty-print.c:413 #, gcc-internal-format msgid "" @@ -3176,255 +3176,255 @@ msgid "length modifier in strfmon format" msgstr "" #. Handle deferred options from command-line. -#: c-family/c-opts.c:1420 fortran/cpp.c:590 +#: c-family/c-opts.c:1423 fortran/cpp.c:590 msgid "" msgstr "" -#: config/aarch64/aarch64.c:7581 +#: config/aarch64/aarch64.c:7587 #, c-format msgid "unsupported operand for code '%c'" msgstr "" -#: config/aarch64/aarch64.c:7592 config/aarch64/aarch64.c:7608 -#: config/aarch64/aarch64.c:7620 config/aarch64/aarch64.c:7631 -#: config/aarch64/aarch64.c:7647 config/aarch64/aarch64.c:7668 -#: config/aarch64/aarch64.c:7738 config/aarch64/aarch64.c:7749 -#: config/aarch64/aarch64.c:7763 config/aarch64/aarch64.c:7985 -#: config/aarch64/aarch64.c:8003 +#: config/aarch64/aarch64.c:7598 config/aarch64/aarch64.c:7614 +#: config/aarch64/aarch64.c:7626 config/aarch64/aarch64.c:7637 +#: config/aarch64/aarch64.c:7653 config/aarch64/aarch64.c:7674 +#: config/aarch64/aarch64.c:7744 config/aarch64/aarch64.c:7755 +#: config/aarch64/aarch64.c:7769 config/aarch64/aarch64.c:7991 +#: config/aarch64/aarch64.c:8009 #, c-format msgid "invalid operand for '%%%c'" msgstr "" -#: config/aarch64/aarch64.c:7683 config/aarch64/aarch64.c:7694 -#: config/aarch64/aarch64.c:7845 config/aarch64/aarch64.c:7856 +#: config/aarch64/aarch64.c:7689 config/aarch64/aarch64.c:7700 +#: config/aarch64/aarch64.c:7851 config/aarch64/aarch64.c:7862 #, c-format msgid "invalid vector constant" msgstr "" -#: config/aarch64/aarch64.c:7706 config/aarch64/aarch64.c:7718 -#: config/aarch64/aarch64.c:7729 +#: config/aarch64/aarch64.c:7712 config/aarch64/aarch64.c:7724 +#: config/aarch64/aarch64.c:7735 #, c-format msgid "incompatible floating point / vector register operand for '%%%c'" msgstr "" -#: config/aarch64/aarch64.c:7797 config/arm/arm.c:22811 +#: config/aarch64/aarch64.c:7803 config/arm/arm.c:22873 #, c-format msgid "missing operand" msgstr "" -#: config/aarch64/aarch64.c:7882 +#: config/aarch64/aarch64.c:7888 #, c-format msgid "invalid constant" msgstr "" -#: config/aarch64/aarch64.c:7885 +#: config/aarch64/aarch64.c:7891 #, c-format msgid "invalid operand" msgstr "" -#: config/aarch64/aarch64.c:8011 config/aarch64/aarch64.c:8016 +#: config/aarch64/aarch64.c:8017 config/aarch64/aarch64.c:8022 #, c-format msgid "invalid operand prefix '%%%c'" msgstr "" -#: config/aarch64/aarch64.c:8036 +#: config/aarch64/aarch64.c:8042 #, c-format msgid "invalid address mode" msgstr "" -#: config/alpha/alpha.c:5126 config/i386/i386.c:18106 -#: config/rs6000/rs6000.c:21347 config/sparc/sparc.c:9368 +#: config/alpha/alpha.c:5129 config/i386/i386.c:18339 +#: config/rs6000/rs6000.c:21420 config/sparc/sparc.c:9342 #, c-format msgid "'%%&' used without any local dynamic TLS references" msgstr "" -#: config/alpha/alpha.c:5184 config/bfin/bfin.c:1428 +#: config/alpha/alpha.c:5187 config/bfin/bfin.c:1428 #, c-format msgid "invalid %%J value" msgstr "" -#: config/alpha/alpha.c:5214 config/ia64/ia64.c:5580 config/or1k/or1k.c:1219 +#: config/alpha/alpha.c:5217 config/ia64/ia64.c:5580 config/or1k/or1k.c:1219 #, c-format msgid "invalid %%r value" msgstr "" -#: config/alpha/alpha.c:5224 config/ia64/ia64.c:5534 -#: config/rs6000/rs6000.c:21041 config/xtensa/xtensa.c:2432 +#: config/alpha/alpha.c:5227 config/ia64/ia64.c:5534 +#: config/rs6000/rs6000.c:21114 config/xtensa/xtensa.c:2432 #, c-format msgid "invalid %%R value" msgstr "" -#: config/alpha/alpha.c:5230 config/rs6000/rs6000.c:20961 +#: config/alpha/alpha.c:5233 config/rs6000/rs6000.c:21034 #: config/xtensa/xtensa.c:2399 #, c-format msgid "invalid %%N value" msgstr "" -#: config/alpha/alpha.c:5238 config/rs6000/rs6000.c:20989 +#: config/alpha/alpha.c:5241 config/rs6000/rs6000.c:21062 #, c-format msgid "invalid %%P value" msgstr "" -#: config/alpha/alpha.c:5246 +#: config/alpha/alpha.c:5249 #, c-format msgid "invalid %%h value" msgstr "" -#: config/alpha/alpha.c:5254 config/xtensa/xtensa.c:2425 +#: config/alpha/alpha.c:5257 config/xtensa/xtensa.c:2425 #, c-format msgid "invalid %%L value" msgstr "" -#: config/alpha/alpha.c:5273 +#: config/alpha/alpha.c:5276 #, c-format msgid "invalid %%m value" msgstr "" -#: config/alpha/alpha.c:5279 +#: config/alpha/alpha.c:5282 #, c-format msgid "invalid %%M value" msgstr "" -#: config/alpha/alpha.c:5316 +#: config/alpha/alpha.c:5319 #, c-format msgid "invalid %%U value" msgstr "" -#: config/alpha/alpha.c:5324 config/rs6000/rs6000.c:21049 +#: config/alpha/alpha.c:5327 config/rs6000/rs6000.c:21122 #, c-format msgid "invalid %%s value" msgstr "" -#: config/alpha/alpha.c:5335 +#: config/alpha/alpha.c:5338 #, c-format msgid "invalid %%C value" msgstr "" -#: config/alpha/alpha.c:5372 config/rs6000/rs6000.c:20825 +#: config/alpha/alpha.c:5375 config/rs6000/rs6000.c:20898 #, c-format msgid "invalid %%E value" msgstr "" -#: config/alpha/alpha.c:5397 config/alpha/alpha.c:5447 +#: config/alpha/alpha.c:5400 config/alpha/alpha.c:5450 #, c-format msgid "unknown relocation unspec" msgstr "" -#: config/alpha/alpha.c:5406 config/cr16/cr16.c:1569 config/gcn/gcn.c:5595 +#: config/alpha/alpha.c:5409 config/cr16/cr16.c:1570 config/gcn/gcn.c:5595 #: config/gcn/gcn.c:5604 config/gcn/gcn.c:5664 config/gcn/gcn.c:5672 #: config/gcn/gcn.c:5688 config/gcn/gcn.c:5706 config/gcn/gcn.c:5757 -#: config/gcn/gcn.c:5858 config/gcn/gcn.c:5969 config/rs6000/rs6000.c:21352 +#: config/gcn/gcn.c:5858 config/gcn/gcn.c:5969 config/rs6000/rs6000.c:21425 #: config/spu/spu.c:1461 #, c-format msgid "invalid %%xn code" msgstr "" -#: config/alpha/alpha.c:5512 +#: config/alpha/alpha.c:5515 #, c-format msgid "invalid operand address" msgstr "" -#: config/arc/arc.c:4213 +#: config/arc/arc.c:4174 #, c-format msgid "invalid operand to %%Z code" msgstr "" -#: config/arc/arc.c:4221 +#: config/arc/arc.c:4182 #, c-format msgid "invalid operand to %%z code" msgstr "" -#: config/arc/arc.c:4229 +#: config/arc/arc.c:4190 #, c-format msgid "invalid operands to %%c code" msgstr "" -#: config/arc/arc.c:4237 +#: config/arc/arc.c:4198 #, c-format msgid "invalid operand to %%M code" msgstr "" -#: config/arc/arc.c:4245 config/m32r/m32r.c:2103 +#: config/arc/arc.c:4206 config/m32r/m32r.c:2103 #, c-format msgid "invalid operand to %%p code" msgstr "" -#: config/arc/arc.c:4256 config/m32r/m32r.c:2096 +#: config/arc/arc.c:4217 config/m32r/m32r.c:2096 #, c-format msgid "invalid operand to %%s code" msgstr "" -#: config/arc/arc.c:4404 config/m32r/m32r.c:2129 +#: config/arc/arc.c:4365 config/m32r/m32r.c:2129 #, c-format msgid "invalid operand to %%R code" msgstr "" -#: config/arc/arc.c:4480 config/m32r/m32r.c:2152 +#: config/arc/arc.c:4441 config/m32r/m32r.c:2152 #, c-format msgid "invalid operand to %%H/%%L code" msgstr "" -#: config/arc/arc.c:4548 config/m32r/m32r.c:2223 +#: config/arc/arc.c:4509 config/m32r/m32r.c:2223 #, c-format msgid "invalid operand to %%U code" msgstr "" -#: config/arc/arc.c:4560 +#: config/arc/arc.c:4521 #, c-format msgid "invalid operand to %%V code" msgstr "" -#: config/arc/arc.c:4617 +#: config/arc/arc.c:4578 #, c-format msgid "invalid operand to %%O code" msgstr "" #. Unknown flag. #. Undocumented flag. -#: config/arc/arc.c:4643 config/epiphany/epiphany.c:1305 -#: config/m32r/m32r.c:2250 config/nds32/nds32.c:3512 config/sparc/sparc.c:9647 +#: config/arc/arc.c:4604 config/epiphany/epiphany.c:1305 +#: config/m32r/m32r.c:2250 config/nds32/nds32.c:3512 config/sparc/sparc.c:9621 #, c-format msgid "invalid operand output code" msgstr "" -#: config/arc/arc.c:6234 +#: config/arc/arc.c:6195 #, c-format msgid "invalid UNSPEC as operand: %d" msgstr "" -#: config/arc/arc.c:6523 config/cris/cris.c:2571 +#: config/arc/arc.c:6484 config/cris/cris.c:2571 msgid "unrecognized supposed constant" msgstr "" -#: config/arm/arm.c:19249 config/arm/arm.c:19274 config/arm/arm.c:19284 -#: config/arm/arm.c:19293 config/arm/arm.c:19302 +#: config/arm/arm.c:19311 config/arm/arm.c:19336 config/arm/arm.c:19346 +#: config/arm/arm.c:19355 config/arm/arm.c:19364 #, c-format msgid "invalid shift operand" msgstr "" -#: config/arm/arm.c:22142 config/arm/arm.c:22160 +#: config/arm/arm.c:22204 config/arm/arm.c:22222 #, c-format msgid "predicated Thumb instruction" msgstr "" -#: config/arm/arm.c:22148 +#: config/arm/arm.c:22210 #, c-format msgid "predicated instruction in conditional sequence" msgstr "" -#: config/arm/arm.c:22266 config/arm/arm.c:22279 config/arm/arm.c:22304 -#: config/nios2/nios2.c:3069 +#: config/arm/arm.c:22328 config/arm/arm.c:22341 config/arm/arm.c:22366 +#: config/nios2/nios2.c:3070 #, c-format msgid "Unsupported operand for code '%c'" msgstr "" -#: config/arm/arm.c:22381 config/arm/arm.c:22403 config/arm/arm.c:22413 -#: config/arm/arm.c:22423 config/arm/arm.c:22433 config/arm/arm.c:22472 -#: config/arm/arm.c:22490 config/arm/arm.c:22515 config/arm/arm.c:22530 -#: config/arm/arm.c:22557 config/arm/arm.c:22564 config/arm/arm.c:22582 -#: config/arm/arm.c:22589 config/arm/arm.c:22597 config/arm/arm.c:22618 -#: config/arm/arm.c:22625 config/arm/arm.c:22758 config/arm/arm.c:22765 -#: config/arm/arm.c:22792 config/arm/arm.c:22799 config/bfin/bfin.c:1441 +#: config/arm/arm.c:22443 config/arm/arm.c:22465 config/arm/arm.c:22475 +#: config/arm/arm.c:22485 config/arm/arm.c:22495 config/arm/arm.c:22534 +#: config/arm/arm.c:22552 config/arm/arm.c:22577 config/arm/arm.c:22592 +#: config/arm/arm.c:22619 config/arm/arm.c:22626 config/arm/arm.c:22644 +#: config/arm/arm.c:22651 config/arm/arm.c:22659 config/arm/arm.c:22680 +#: config/arm/arm.c:22687 config/arm/arm.c:22820 config/arm/arm.c:22827 +#: config/arm/arm.c:22854 config/arm/arm.c:22861 config/bfin/bfin.c:1441 #: config/bfin/bfin.c:1448 config/bfin/bfin.c:1455 config/bfin/bfin.c:1462 #: config/bfin/bfin.c:1471 config/bfin/bfin.c:1478 config/bfin/bfin.c:1485 #: config/bfin/bfin.c:1492 config/nds32/nds32.c:3538 @@ -3432,13 +3432,13 @@ msgstr "" msgid "invalid operand for code '%c'" msgstr "" -#: config/arm/arm.c:22485 +#: config/arm/arm.c:22547 #, c-format msgid "instruction never executed" msgstr "" #. Former Maverick support, removed after GCC-4.7. -#: config/arm/arm.c:22506 +#: config/arm/arm.c:22568 #, c-format msgid "obsolete Maverick format code '%c'" msgstr "" @@ -3542,15 +3542,15 @@ msgstr "" msgid "invalid %%j value" msgstr "" -#: config/bfin/bfin.c:1583 config/c6x/c6x.c:2292 +#: config/bfin/bfin.c:1583 config/c6x/c6x.c:2293 #, c-format msgid "invalid const_double operand" msgstr "" #: config/cris/cris.c:625 config/ft32/ft32.c:110 config/moxie/moxie.c:108 #: final.c:3608 final.c:3610 fold-const.c:267 gcc.c:5393 gcc.c:5407 -#: rtl-error.c:101 toplev.c:326 vr-values.c:2445 cp/typeck.c:6486 -#: d/dmd/expressionsem.c:615 d/dmd/expressionsem.c:638 lto/lto-object.c:184 +#: rtl-error.c:101 toplev.c:326 vr-values.c:2450 cp/typeck.c:6500 +#: d/dmd/expressionsem.c:622 d/dmd/expressionsem.c:645 lto/lto-object.c:184 #: lto/lto-object.c:281 lto/lto-object.c:338 lto/lto-object.c:362 #, gcc-internal-format, gfc-internal-format msgid "%s" @@ -3628,16 +3628,16 @@ msgstr "" msgid "unrecognized address" msgstr "" -#: config/cris/cris.c:2970 config/cris/cris.c:3028 +#: config/cris/cris.c:2972 config/cris/cris.c:3030 msgid "unexpected side-effects in address" msgstr "" #. Can't possibly get anything else for a function-call, right? -#: config/cris/cris.c:3856 +#: config/cris/cris.c:3858 msgid "unidentifiable call op" msgstr "" -#: config/cris/cris.c:3918 +#: config/cris/cris.c:3920 #, c-format msgid "PIC register isn't set up" msgstr "" @@ -3781,101 +3781,101 @@ msgstr "" #: config/gcn/gcn.c:5949 #, c-format -msgid "invlaid fp constant" +msgid "invalid fp constant" msgstr "" -#: config/i386/i386.c:16934 +#: config/i386/i386.c:17166 #, c-format msgid "invalid UNSPEC as operand" msgstr "" -#: config/i386/i386.c:17473 +#: config/i386/i386.c:17705 #, c-format msgid "invalid use of register '%s'" msgstr "" -#: config/i386/i386.c:17478 +#: config/i386/i386.c:17710 #, c-format msgid "invalid use of asm flag output" msgstr "" -#: config/i386/i386.c:17708 +#: config/i386/i386.c:17941 #, c-format msgid "invalid operand size for operand code 'O'" msgstr "" -#: config/i386/i386.c:17743 +#: config/i386/i386.c:17976 #, c-format msgid "invalid operand size for operand code 'z'" msgstr "" -#: config/i386/i386.c:17812 +#: config/i386/i386.c:18045 #, c-format msgid "invalid operand type used with operand code 'Z'" msgstr "" -#: config/i386/i386.c:17817 +#: config/i386/i386.c:18050 #, c-format msgid "invalid operand size for operand code 'Z'" msgstr "" -#: config/i386/i386.c:17894 +#: config/i386/i386.c:18127 #, c-format msgid "operand is not a condition code, invalid operand code 'Y'" msgstr "" -#: config/i386/i386.c:17973 +#: config/i386/i386.c:18206 #, c-format msgid "operand is not a condition code, invalid operand code 'D'" msgstr "" -#: config/i386/i386.c:17991 +#: config/i386/i386.c:18224 #, c-format msgid "operand is not a condition code, invalid operand code '%c'" msgstr "" -#: config/i386/i386.c:18004 +#: config/i386/i386.c:18237 #, c-format msgid "" "operand is not an offsettable memory reference, invalid operand code 'H'" msgstr "" -#: config/i386/i386.c:18019 +#: config/i386/i386.c:18252 #, c-format msgid "operand is not an integer, invalid operand code 'K'" msgstr "" -#: config/i386/i386.c:18047 +#: config/i386/i386.c:18280 #, c-format msgid "operand is not a specific integer, invalid operand code 'r'" msgstr "" -#: config/i386/i386.c:18065 +#: config/i386/i386.c:18298 #, c-format msgid "operand is not an integer, invalid operand code 'R'" msgstr "" -#: config/i386/i386.c:18088 +#: config/i386/i386.c:18321 #, c-format msgid "operand is not a specific integer, invalid operand code 'R'" msgstr "" -#: config/i386/i386.c:18172 +#: config/i386/i386.c:18425 #, c-format msgid "invalid operand code '%c'" msgstr "" -#: config/i386/i386.c:18234 +#: config/i386/i386.c:18487 #, c-format msgid "invalid constraints for operand" msgstr "" -#: config/i386/i386.c:18284 +#: config/i386/i386.c:18537 #, c-format msgid "invalid vector immediate" msgstr "" -#: config/i386/i386.c:29162 +#: config/i386/i386.c:29415 msgid "unknown insn mode" msgstr "" @@ -3912,7 +3912,7 @@ msgstr "" msgid "invalid %%P operand" msgstr "" -#: config/iq2000/iq2000.c:3188 config/rs6000/rs6000.c:20979 +#: config/iq2000/iq2000.c:3188 config/rs6000/rs6000.c:21052 #, c-format msgid "invalid %%p value" msgstr "" @@ -3965,7 +3965,7 @@ msgstr "" msgid "post-increment address is not a register" msgstr "" -#: config/m32r/m32r.c:2353 config/m32r/m32r.c:2368 config/rs6000/rs6000.c:33076 +#: config/m32r/m32r.c:2353 config/m32r/m32r.c:2368 config/rs6000/rs6000.c:33194 msgid "bad address" msgstr "" @@ -3973,103 +3973,103 @@ msgstr "" msgid "lo_sum not of register" msgstr "" -#: config/microblaze/microblaze.c:2298 +#: config/microblaze/microblaze.c:2301 #, c-format msgid "unknown punctuation '%c'" msgstr "" -#: config/microblaze/microblaze.c:2307 +#: config/microblaze/microblaze.c:2310 #, c-format msgid "null pointer" msgstr "" -#: config/microblaze/microblaze.c:2342 +#: config/microblaze/microblaze.c:2345 #, c-format msgid "PRINT_OPERAND, invalid insn for %%C" msgstr "" -#: config/microblaze/microblaze.c:2371 +#: config/microblaze/microblaze.c:2374 #, c-format msgid "PRINT_OPERAND, invalid insn for %%N" msgstr "" -#: config/microblaze/microblaze.c:2391 config/microblaze/microblaze.c:2567 +#: config/microblaze/microblaze.c:2394 config/microblaze/microblaze.c:2570 msgid "insn contains an invalid address !" msgstr "" -#: config/microblaze/microblaze.c:2407 config/microblaze/microblaze.c:2637 +#: config/microblaze/microblaze.c:2410 config/microblaze/microblaze.c:2640 #: config/xtensa/xtensa.c:2529 msgid "invalid address" msgstr "" -#: config/microblaze/microblaze.c:2510 +#: config/microblaze/microblaze.c:2513 #, c-format msgid "letter %c was found & insn was not CONST_INT" msgstr "" -#: config/mips/mips.c:8911 config/mips/mips.c:8938 config/mips/mips.c:9121 +#: config/mips/mips.c:8927 config/mips/mips.c:8954 config/mips/mips.c:9137 #, c-format msgid "'%%%c' is not a valid operand prefix" msgstr "" -#: config/mips/mips.c:9010 config/mips/mips.c:9017 config/mips/mips.c:9024 -#: config/mips/mips.c:9031 config/mips/mips.c:9044 config/mips/mips.c:9051 -#: config/mips/mips.c:9061 config/mips/mips.c:9064 config/mips/mips.c:9076 -#: config/mips/mips.c:9079 config/mips/mips.c:9139 config/mips/mips.c:9146 -#: config/mips/mips.c:9167 config/mips/mips.c:9182 config/mips/mips.c:9201 -#: config/mips/mips.c:9210 config/riscv/riscv.c:3139 config/riscv/riscv.c:3145 -#: config/riscv/riscv.c:3154 +#: config/mips/mips.c:9026 config/mips/mips.c:9033 config/mips/mips.c:9040 +#: config/mips/mips.c:9047 config/mips/mips.c:9060 config/mips/mips.c:9067 +#: config/mips/mips.c:9077 config/mips/mips.c:9080 config/mips/mips.c:9092 +#: config/mips/mips.c:9095 config/mips/mips.c:9155 config/mips/mips.c:9162 +#: config/mips/mips.c:9183 config/mips/mips.c:9198 config/mips/mips.c:9217 +#: config/mips/mips.c:9226 config/riscv/riscv.c:3173 config/riscv/riscv.c:3179 +#: config/riscv/riscv.c:3188 #, c-format msgid "invalid use of '%%%c'" msgstr "" -#: config/mmix/mmix.c:1598 config/mmix/mmix.c:1728 +#: config/mmix/mmix.c:1599 config/mmix/mmix.c:1729 msgid "MMIX Internal: Expected a CONST_INT, not this" msgstr "" -#: config/mmix/mmix.c:1677 +#: config/mmix/mmix.c:1678 msgid "MMIX Internal: Bad value for 'm', not a CONST_INT" msgstr "" -#: config/mmix/mmix.c:1696 +#: config/mmix/mmix.c:1697 msgid "MMIX Internal: Expected a register, not this" msgstr "" -#: config/mmix/mmix.c:1706 +#: config/mmix/mmix.c:1707 msgid "MMIX Internal: Expected a constant, not this" msgstr "" #. We need the original here. -#: config/mmix/mmix.c:1790 +#: config/mmix/mmix.c:1791 msgid "MMIX Internal: Cannot decode this operand" msgstr "" -#: config/mmix/mmix.c:1846 +#: config/mmix/mmix.c:1847 msgid "MMIX Internal: This is not a recognized address" msgstr "" -#: config/mmix/mmix.c:2722 +#: config/mmix/mmix.c:2723 msgid "MMIX Internal: Trying to output invalidly reversed condition:" msgstr "" -#: config/mmix/mmix.c:2729 +#: config/mmix/mmix.c:2730 msgid "MMIX Internal: What's the CC of this?" msgstr "" -#: config/mmix/mmix.c:2733 +#: config/mmix/mmix.c:2734 msgid "MMIX Internal: What is the CC of this?" msgstr "" -#: config/mmix/mmix.c:2775 +#: config/mmix/mmix.c:2776 msgid "MMIX Internal: This is not a constant:" msgstr "" -#: config/msp430/msp430.c:3726 +#: config/msp430/msp430.c:3731 #, c-format msgid "invalid operand prefix" msgstr "" -#: config/msp430/msp430.c:3760 +#: config/msp430/msp430.c:3765 #, c-format msgid "invalid zero extract" msgstr "" @@ -4089,7 +4089,7 @@ msgstr "" msgid "unknown operand letter: '%c'" msgstr "" -#: config/rl78/rl78.c:2005 config/rl78/rl78.c:2091 +#: config/rl78/rl78.c:2009 config/rl78/rl78.c:2095 #, c-format msgid "q/Q modifiers invalid for symbol references" msgstr "" @@ -4104,257 +4104,257 @@ msgstr "" msgid "Try running '%s' in the shell to raise its limit.\n" msgstr "" -#: config/rs6000/rs6000.c:3992 -msgid "-mvsx requires hardware floating point" +#: config/rs6000/rs6000.c:3995 +msgid "%<-mvsx%> requires hardware floating point" msgstr "" -#: config/rs6000/rs6000.c:4000 -msgid "-mvsx needs indexed addressing" +#: config/rs6000/rs6000.c:4003 +msgid "%<-mvsx%> needs indexed addressing" msgstr "" -#: config/rs6000/rs6000.c:4005 -msgid "-mvsx and -mno-altivec are incompatible" +#: config/rs6000/rs6000.c:4008 +msgid "%<-mvsx%> and %<-mno-altivec%> are incompatible" msgstr "" -#: config/rs6000/rs6000.c:4007 -msgid "-mno-altivec disables vsx" +#: config/rs6000/rs6000.c:4010 +msgid "%<-mno-altivec%> disables vsx" msgstr "" -#: config/rs6000/rs6000.c:4133 -msgid "-mquad-memory requires 64-bit mode" +#: config/rs6000/rs6000.c:4136 +msgid "%<-mquad-memory%> requires 64-bit mode" msgstr "" -#: config/rs6000/rs6000.c:4136 -msgid "-mquad-memory-atomic requires 64-bit mode" +#: config/rs6000/rs6000.c:4139 +msgid "%<-mquad-memory-atomic%> requires 64-bit mode" msgstr "" -#: config/rs6000/rs6000.c:4148 -msgid "-mquad-memory is not available in little endian mode" +#: config/rs6000/rs6000.c:4151 +msgid "%<-mquad-memory%> is not available in little endian mode" msgstr "" -#: config/rs6000/rs6000.c:10342 +#: config/rs6000/rs6000.c:10364 msgid "bad move" msgstr "" -#: config/rs6000/rs6000.c:20604 +#: config/rs6000/rs6000.c:20677 msgid "Bad 128-bit move" msgstr "" -#: config/rs6000/rs6000.c:20798 config/xtensa/xtensa.c:2375 +#: config/rs6000/rs6000.c:20871 config/xtensa/xtensa.c:2375 #, c-format msgid "invalid %%D value" msgstr "" -#: config/rs6000/rs6000.c:20813 +#: config/rs6000/rs6000.c:20886 #, c-format msgid "invalid %%e value" msgstr "" -#: config/rs6000/rs6000.c:20834 +#: config/rs6000/rs6000.c:20907 #, c-format msgid "invalid %%f value" msgstr "" -#: config/rs6000/rs6000.c:20843 +#: config/rs6000/rs6000.c:20916 #, c-format msgid "invalid %%F value" msgstr "" -#: config/rs6000/rs6000.c:20852 +#: config/rs6000/rs6000.c:20925 #, c-format msgid "invalid %%G value" msgstr "" -#: config/rs6000/rs6000.c:20887 +#: config/rs6000/rs6000.c:20960 #, c-format msgid "invalid %%j code" msgstr "" -#: config/rs6000/rs6000.c:20897 +#: config/rs6000/rs6000.c:20970 #, c-format msgid "invalid %%J code" msgstr "" -#: config/rs6000/rs6000.c:20907 +#: config/rs6000/rs6000.c:20980 #, c-format msgid "invalid %%k value" msgstr "" -#: config/rs6000/rs6000.c:20922 config/xtensa/xtensa.c:2418 +#: config/rs6000/rs6000.c:20995 config/xtensa/xtensa.c:2418 #, c-format msgid "invalid %%K value" msgstr "" -#: config/rs6000/rs6000.c:20969 +#: config/rs6000/rs6000.c:21042 #, c-format msgid "invalid %%O value" msgstr "" -#: config/rs6000/rs6000.c:21016 +#: config/rs6000/rs6000.c:21089 #, c-format msgid "invalid %%q value" msgstr "" -#: config/rs6000/rs6000.c:21058 +#: config/rs6000/rs6000.c:21131 #, c-format msgid "invalid %%t value" msgstr "" -#: config/rs6000/rs6000.c:21075 +#: config/rs6000/rs6000.c:21148 #, c-format msgid "invalid %%T value" msgstr "" -#: config/rs6000/rs6000.c:21087 +#: config/rs6000/rs6000.c:21160 #, c-format msgid "invalid %%u value" msgstr "" -#: config/rs6000/rs6000.c:21101 config/xtensa/xtensa.c:2387 +#: config/rs6000/rs6000.c:21174 config/xtensa/xtensa.c:2387 #, c-format msgid "invalid %%v value" msgstr "" -#: config/rs6000/rs6000.c:21151 +#: config/rs6000/rs6000.c:21224 #, c-format msgid "invalid %%V value" msgstr "" -#: config/rs6000/rs6000.c:21168 config/xtensa/xtensa.c:2439 +#: config/rs6000/rs6000.c:21241 config/xtensa/xtensa.c:2439 #, c-format msgid "invalid %%x value" msgstr "" -#: config/rs6000/rs6000.c:21225 +#: config/rs6000/rs6000.c:21298 #, c-format msgid "invalid %%z value" msgstr "" -#: config/rs6000/rs6000.c:21294 +#: config/rs6000/rs6000.c:21367 #, c-format msgid "invalid %%y value, try using the 'Z' constraint" msgstr "" -#: config/rs6000/rs6000.c:22088 +#: config/rs6000/rs6000.c:22198 msgid "__float128 and __ibm128 cannot be used in the same expression" msgstr "" -#: config/rs6000/rs6000.c:22094 +#: config/rs6000/rs6000.c:22204 msgid "__ibm128 and long double cannot be used in the same expression" msgstr "" -#: config/rs6000/rs6000.c:22100 +#: config/rs6000/rs6000.c:22210 msgid "__float128 and long double cannot be used in the same expression" msgstr "" -#: config/rs6000/rs6000.c:36307 +#: config/rs6000/rs6000.c:36425 msgid "AltiVec argument passed to unprototyped function" msgstr "" -#: config/rs6000/rs6000.c:38760 +#: config/rs6000/rs6000.c:38894 msgid "Could not generate addis value for fusion" msgstr "" -#: config/rs6000/rs6000.c:38829 +#: config/rs6000/rs6000.c:38963 msgid "Unable to generate load/store offset for fusion" msgstr "" -#: config/rs6000/rs6000.c:38905 +#: config/rs6000/rs6000.c:39039 msgid "Bad GPR fusion" msgstr "" -#: config/s390/s390.c:7586 +#: config/s390/s390.c:7588 #, c-format msgid "symbolic memory references are only supported on z10 or later" msgstr "" -#: config/s390/s390.c:7597 +#: config/s390/s390.c:7599 #, c-format msgid "cannot decompose address" msgstr "" -#: config/s390/s390.c:7679 +#: config/s390/s390.c:7681 #, c-format msgid "invalid comparison operator for 'E' output modifier" msgstr "" -#: config/s390/s390.c:7702 +#: config/s390/s390.c:7704 #, c-format msgid "invalid reference for 'J' output modifier" msgstr "" -#: config/s390/s390.c:7720 +#: config/s390/s390.c:7722 #, c-format msgid "invalid address for 'O' output modifier" msgstr "" -#: config/s390/s390.c:7742 +#: config/s390/s390.c:7744 #, c-format msgid "invalid address for 'R' output modifier" msgstr "" -#: config/s390/s390.c:7760 +#: config/s390/s390.c:7762 #, c-format msgid "memory reference expected for 'S' output modifier" msgstr "" -#: config/s390/s390.c:7770 +#: config/s390/s390.c:7772 #, c-format msgid "invalid address for 'S' output modifier" msgstr "" -#: config/s390/s390.c:7791 +#: config/s390/s390.c:7793 #, c-format msgid "register or memory expression expected for 'N' output modifier" msgstr "" -#: config/s390/s390.c:7802 +#: config/s390/s390.c:7804 #, c-format msgid "register or memory expression expected for 'M' output modifier" msgstr "" -#: config/s390/s390.c:7888 config/s390/s390.c:7909 +#: config/s390/s390.c:7890 config/s390/s390.c:7911 #, c-format msgid "invalid constant for output modifier '%c'" msgstr "" -#: config/s390/s390.c:7906 +#: config/s390/s390.c:7908 #, c-format msgid "invalid constant - try using an output modifier" msgstr "" -#: config/s390/s390.c:7943 +#: config/s390/s390.c:7945 #, c-format msgid "invalid constant vector for output modifier '%c'" msgstr "" -#: config/s390/s390.c:7950 +#: config/s390/s390.c:7952 #, c-format msgid "invalid expression - try using an output modifier" msgstr "" -#: config/s390/s390.c:7953 +#: config/s390/s390.c:7955 #, c-format msgid "invalid expression for output modifier '%c'" msgstr "" -#: config/s390/s390.c:11613 +#: config/s390/s390.c:11617 msgid "vector argument passed to unprototyped function" msgstr "" -#: config/s390/s390.c:15815 +#: config/s390/s390.c:15916 msgid "types differ in signedness" msgstr "" -#: config/s390/s390.c:15825 +#: config/s390/s390.c:15926 msgid "binary operator does not support two vector bool operands" msgstr "" -#: config/s390/s390.c:15828 +#: config/s390/s390.c:15929 msgid "binary operator does not support vector bool operand" msgstr "" -#: config/s390/s390.c:15836 +#: config/s390/s390.c:15937 msgid "" "binary operator does not support mixing vector bool with floating point " "vector operands" @@ -4382,43 +4382,43 @@ msgstr "" msgid "created and used with different endianness" msgstr "" -#: config/sparc/sparc.c:9377 config/sparc/sparc.c:9383 +#: config/sparc/sparc.c:9351 config/sparc/sparc.c:9357 #, c-format msgid "invalid %%Y operand" msgstr "" -#: config/sparc/sparc.c:9470 +#: config/sparc/sparc.c:9444 #, c-format msgid "invalid %%A operand" msgstr "" -#: config/sparc/sparc.c:9490 +#: config/sparc/sparc.c:9464 #, c-format msgid "invalid %%B operand" msgstr "" -#: config/sparc/sparc.c:9570 config/tilegx/tilegx.c:5105 +#: config/sparc/sparc.c:9544 config/tilegx/tilegx.c:5105 #: config/tilepro/tilepro.c:4514 #, c-format msgid "invalid %%C operand" msgstr "" -#: config/sparc/sparc.c:9602 config/tilegx/tilegx.c:5138 +#: config/sparc/sparc.c:9576 config/tilegx/tilegx.c:5138 #, c-format msgid "invalid %%D operand" msgstr "" -#: config/sparc/sparc.c:9621 +#: config/sparc/sparc.c:9595 #, c-format msgid "invalid %%f operand" msgstr "" -#: config/sparc/sparc.c:9633 +#: config/sparc/sparc.c:9607 #, c-format msgid "invalid %%s operand" msgstr "" -#: config/sparc/sparc.c:9678 +#: config/sparc/sparc.c:9652 #, c-format msgid "floating-point constant not a valid immediate operand" msgstr "" @@ -4493,7 +4493,7 @@ msgstr "" msgid "invalid operand for 'r' specifier" msgstr "" -#: config/tilegx/tilegx.c:5419 config/tilepro/tilepro.c:4820 +#: config/tilegx/tilegx.c:5419 config/tilepro/tilepro.c:4819 #, c-format msgid "unable to print out operand yet; code == %d (%c)" msgstr "" @@ -4519,11 +4519,10 @@ msgid "invalid %%t operand" msgstr "" #: config/tilepro/tilepro.c:4774 -#, c-format -msgid "invalid %%t operand '" +msgid "invalid %%t operand %<%wd%>" msgstr "" -#: config/tilepro/tilepro.c:4795 +#: config/tilepro/tilepro.c:4794 #, c-format msgid "invalid %%r operand" msgstr "" @@ -4555,23 +4554,23 @@ msgstr "" msgid "illegal operand detected" msgstr "" -#: config/visium/visium.c:3378 +#: config/visium/visium.c:3373 msgid "illegal operand " msgstr "" -#: config/visium/visium.c:3429 +#: config/visium/visium.c:3424 msgid "illegal operand address (1)" msgstr "" -#: config/visium/visium.c:3436 +#: config/visium/visium.c:3431 msgid "illegal operand address (2)" msgstr "" -#: config/visium/visium.c:3451 +#: config/visium/visium.c:3446 msgid "illegal operand address (3)" msgstr "" -#: config/visium/visium.c:3459 +#: config/visium/visium.c:3454 msgid "illegal operand address (4)" msgstr "" @@ -4619,154 +4618,156 @@ msgstr "" #. ; #. <~~~~~~~~~ declaration ~~~~~~~~~~> #. Use c_parser_require to get an error with a fix-it hint. -#: c/c-parser.c:2278 c/c-parser.c:2394 c/c-parser.c:2408 c/c-parser.c:5032 -#: c/c-parser.c:5610 c/c-parser.c:6058 c/c-parser.c:6227 c/c-parser.c:6260 -#: c/c-parser.c:6501 c/c-parser.c:10096 c/c-parser.c:10131 c/c-parser.c:10162 -#: c/c-parser.c:10209 c/c-parser.c:10390 c/c-parser.c:11176 c/c-parser.c:11246 -#: c/c-parser.c:11289 c/c-parser.c:16434 c/c-parser.c:16458 c/c-parser.c:16476 -#: c/c-parser.c:16828 c/c-parser.c:16878 c/gimple-parser.c:149 -#: c/gimple-parser.c:189 c/gimple-parser.c:198 c/gimple-parser.c:227 -#: c/gimple-parser.c:1484 c/gimple-parser.c:1513 c/gimple-parser.c:1593 -#: c/gimple-parser.c:1620 c/c-parser.c:3230 c/c-parser.c:10383 -#: c/gimple-parser.c:1387 c/gimple-parser.c:1426 cp/parser.c:28643 -#: cp/parser.c:29223 +#: c/c-parser.c:2280 c/c-parser.c:2396 c/c-parser.c:2410 c/c-parser.c:5034 +#: c/c-parser.c:5612 c/c-parser.c:6060 c/c-parser.c:6229 c/c-parser.c:6262 +#: c/c-parser.c:6503 c/c-parser.c:10102 c/c-parser.c:10137 c/c-parser.c:10168 +#: c/c-parser.c:10215 c/c-parser.c:10396 c/c-parser.c:11182 c/c-parser.c:11252 +#: c/c-parser.c:11295 c/c-parser.c:16448 c/c-parser.c:16472 c/c-parser.c:16490 +#: c/c-parser.c:16842 c/c-parser.c:16892 c/gimple-parser.c:306 +#: c/gimple-parser.c:346 c/gimple-parser.c:355 c/gimple-parser.c:522 +#: c/gimple-parser.c:1820 c/gimple-parser.c:1855 c/gimple-parser.c:1934 +#: c/gimple-parser.c:1961 c/c-parser.c:3232 c/c-parser.c:10389 +#: c/gimple-parser.c:1707 c/gimple-parser.c:1746 cp/parser.c:28775 +#: cp/parser.c:29355 #, gcc-internal-format msgid "expected %<;%>" msgstr "" -#: c/c-parser.c:2843 c/c-parser.c:3762 c/c-parser.c:3932 c/c-parser.c:3994 -#: c/c-parser.c:4047 c/c-parser.c:4356 c/c-parser.c:4421 c/c-parser.c:4430 -#: c/c-parser.c:4482 c/c-parser.c:4491 c/c-parser.c:7655 c/c-parser.c:7721 -#: c/c-parser.c:8186 c/c-parser.c:8208 c/c-parser.c:8264 c/c-parser.c:8373 -#: c/c-parser.c:9156 c/c-parser.c:9563 c/c-parser.c:10497 c/c-parser.c:12635 -#: c/c-parser.c:13268 c/c-parser.c:13327 c/c-parser.c:13382 c/c-parser.c:14560 -#: c/c-parser.c:14658 c/c-parser.c:15763 c/c-parser.c:16518 c/c-parser.c:16836 -#: c/c-parser.c:19001 c/c-parser.c:19079 c/gimple-parser.c:296 -#: c/gimple-parser.c:394 c/gimple-parser.c:777 c/gimple-parser.c:889 -#: c/gimple-parser.c:905 c/gimple-parser.c:921 c/gimple-parser.c:948 -#: c/gimple-parser.c:1147 c/gimple-parser.c:1318 c/gimple-parser.c:1329 -#: c/gimple-parser.c:1451 c/gimple-parser.c:1550 cp/parser.c:29271 +#: c/c-parser.c:2845 c/c-parser.c:3764 c/c-parser.c:3934 c/c-parser.c:3996 +#: c/c-parser.c:4049 c/c-parser.c:4358 c/c-parser.c:4423 c/c-parser.c:4432 +#: c/c-parser.c:4484 c/c-parser.c:4493 c/c-parser.c:7657 c/c-parser.c:7723 +#: c/c-parser.c:8188 c/c-parser.c:8210 c/c-parser.c:8266 c/c-parser.c:8375 +#: c/c-parser.c:9158 c/c-parser.c:9569 c/c-parser.c:10503 c/c-parser.c:12641 +#: c/c-parser.c:13274 c/c-parser.c:13333 c/c-parser.c:13388 c/c-parser.c:14574 +#: c/c-parser.c:14672 c/c-parser.c:15777 c/c-parser.c:16532 c/c-parser.c:16850 +#: c/c-parser.c:19015 c/c-parser.c:19093 c/gimple-parser.c:430 +#: c/gimple-parser.c:440 c/gimple-parser.c:606 c/gimple-parser.c:705 +#: c/gimple-parser.c:1088 c/gimple-parser.c:1200 c/gimple-parser.c:1216 +#: c/gimple-parser.c:1232 c/gimple-parser.c:1259 c/gimple-parser.c:1458 +#: c/gimple-parser.c:1649 c/gimple-parser.c:1781 c/gimple-parser.c:1891 +#: cp/parser.c:29403 #, gcc-internal-format msgid "expected %<)%>" msgstr "" -#: c/c-parser.c:3850 c/c-parser.c:4801 c/c-parser.c:4837 c/c-parser.c:6553 -#: c/c-parser.c:8364 c/c-parser.c:9254 c/c-parser.c:9539 c/c-parser.c:12098 -#: c/c-parser.c:19632 c/c-parser.c:19634 c/gimple-parser.c:1124 -#: cp/parser.c:29235 +#: c/c-parser.c:3852 c/c-parser.c:4803 c/c-parser.c:4839 c/c-parser.c:6555 +#: c/c-parser.c:8366 c/c-parser.c:9256 c/c-parser.c:9545 c/c-parser.c:12104 +#: c/c-parser.c:19646 c/c-parser.c:19648 c/gimple-parser.c:1435 +#: cp/parser.c:29367 #, gcc-internal-format msgid "expected %<]%>" msgstr "" -#: c/c-parser.c:4027 +#: c/c-parser.c:4029 msgid "expected %<;%>, %<,%> or %<)%>" msgstr "" #. Look for the two `(' tokens. -#: c/c-parser.c:4451 c/c-parser.c:4456 c/c-parser.c:12618 c/c-parser.c:13357 -#: c/c-parser.c:18809 c/c-parser.c:19022 c/gimple-parser.c:365 -#: c/gimple-parser.c:772 c/gimple-parser.c:879 c/gimple-parser.c:941 -#: c/gimple-parser.c:1307 c/gimple-parser.c:1448 c/gimple-parser.c:1547 -#: c/c-parser.c:12440 cp/parser.c:29226 +#: c/c-parser.c:4453 c/c-parser.c:4458 c/c-parser.c:12624 c/c-parser.c:13363 +#: c/c-parser.c:18823 c/c-parser.c:19036 c/gimple-parser.c:378 +#: c/gimple-parser.c:416 c/gimple-parser.c:675 c/gimple-parser.c:1083 +#: c/gimple-parser.c:1190 c/gimple-parser.c:1252 c/gimple-parser.c:1618 +#: c/gimple-parser.c:1629 c/gimple-parser.c:1778 c/gimple-parser.c:1888 +#: c/c-parser.c:12446 cp/parser.c:29358 #, gcc-internal-format msgid "expected %<(%>" msgstr "" -#: c/c-parser.c:4971 c/c-parser.c:10726 c/c-parser.c:17380 c/c-parser.c:19861 -#: c/gimple-parser.c:142 c/gimple-parser.c:1553 c/c-parser.c:3044 -#: c/c-parser.c:3251 c/c-parser.c:10278 cp/parser.c:18741 cp/parser.c:29232 +#: c/c-parser.c:4973 c/c-parser.c:10732 c/c-parser.c:17394 c/c-parser.c:19875 +#: c/gimple-parser.c:299 c/gimple-parser.c:1894 c/c-parser.c:3046 +#: c/c-parser.c:3253 c/c-parser.c:10284 cp/parser.c:18812 cp/parser.c:29364 #, gcc-internal-format msgid "expected %<{%>" msgstr "" -#: c/c-parser.c:5210 c/c-parser.c:5219 c/c-parser.c:6807 c/c-parser.c:7857 -#: c/c-parser.c:10490 c/c-parser.c:10876 c/c-parser.c:10937 c/c-parser.c:12080 -#: c/c-parser.c:12979 c/c-parser.c:13185 c/c-parser.c:13594 c/c-parser.c:13690 -#: c/c-parser.c:14312 c/c-parser.c:14439 c/c-parser.c:18866 c/c-parser.c:18925 -#: c/gimple-parser.c:434 c/gimple-parser.c:1601 c/gimple-parser.c:1628 -#: c/c-parser.c:6458 c/c-parser.c:12543 cp/parser.c:29265 cp/parser.c:30395 -#: cp/parser.c:33123 +#: c/c-parser.c:5212 c/c-parser.c:5221 c/c-parser.c:6809 c/c-parser.c:7859 +#: c/c-parser.c:10496 c/c-parser.c:10882 c/c-parser.c:10943 c/c-parser.c:12086 +#: c/c-parser.c:12985 c/c-parser.c:13191 c/c-parser.c:13608 c/c-parser.c:13704 +#: c/c-parser.c:14326 c/c-parser.c:14453 c/c-parser.c:18880 c/c-parser.c:18939 +#: c/gimple-parser.c:442 c/gimple-parser.c:745 c/gimple-parser.c:1942 +#: c/gimple-parser.c:1969 c/c-parser.c:6460 c/c-parser.c:12549 +#: cp/parser.c:29397 cp/parser.c:30527 cp/parser.c:33262 #, gcc-internal-format msgid "expected %<:%>" msgstr "" -#: c/c-parser.c:6042 cp/parser.c:29158 +#: c/c-parser.c:6044 cp/parser.c:29290 #, gcc-internal-format msgid "expected %" msgstr "" -#: c/c-parser.c:7619 c/c-parser.c:7808 c/c-parser.c:8254 c/c-parser.c:8297 -#: c/c-parser.c:8435 c/c-parser.c:9146 c/c-parser.c:13362 c/c-parser.c:14395 -#: cp/parser.c:28641 cp/parser.c:29241 +#: c/c-parser.c:7621 c/c-parser.c:7810 c/c-parser.c:8256 c/c-parser.c:8299 +#: c/c-parser.c:8437 c/c-parser.c:9148 c/c-parser.c:13368 c/c-parser.c:14409 +#: cp/parser.c:28773 cp/parser.c:29373 #, gcc-internal-format msgid "expected %<,%>" msgstr "" -#: c/c-parser.c:8132 +#: c/c-parser.c:8134 msgid "expected %<.%>" msgstr "" -#: c/c-parser.c:9949 c/c-parser.c:9981 c/c-parser.c:10221 cp/parser.c:30971 -#: cp/parser.c:31045 +#: c/c-parser.c:9955 c/c-parser.c:9987 c/c-parser.c:10227 cp/parser.c:31103 +#: cp/parser.c:31177 #, gcc-internal-format msgid "expected %<@end%>" msgstr "" -#: c/c-parser.c:10639 c/gimple-parser.c:874 cp/parser.c:29250 +#: c/c-parser.c:10645 c/gimple-parser.c:1185 cp/parser.c:29382 #, gcc-internal-format msgid "expected %<>%>" msgstr "" -#: c/c-parser.c:13782 c/c-parser.c:14676 cp/parser.c:29274 +#: c/c-parser.c:13796 c/c-parser.c:14690 cp/parser.c:29406 #, gcc-internal-format msgid "expected %<,%> or %<)%>" msgstr "" #. All following cases are statements with LHS. -#: c/c-parser.c:14304 c/c-parser.c:16167 c/c-parser.c:16211 c/c-parser.c:16443 -#: c/c-parser.c:16817 c/c-parser.c:19063 c/gimple-parser.c:287 -#: c/c-parser.c:4860 cp/parser.c:29253 +#: c/c-parser.c:14318 c/c-parser.c:16181 c/c-parser.c:16225 c/c-parser.c:16457 +#: c/c-parser.c:16831 c/c-parser.c:19077 c/gimple-parser.c:597 +#: c/c-parser.c:4862 cp/parser.c:29385 #, gcc-internal-format msgid "expected %<=%>" msgstr "" -#: c/c-parser.c:16459 c/gimple-parser.c:964 c/gimple-parser.c:996 -#: c/gimple-parser.c:1006 c/gimple-parser.c:1662 cp/parser.c:29229 -#: cp/parser.c:31190 +#: c/c-parser.c:16473 c/gimple-parser.c:1275 c/gimple-parser.c:1307 +#: c/gimple-parser.c:1317 c/gimple-parser.c:1979 cp/parser.c:29361 +#: cp/parser.c:31322 #, gcc-internal-format msgid "expected %<}%>" msgstr "" -#: c/c-parser.c:17423 c/c-parser.c:17413 cp/parser.c:37449 +#: c/c-parser.c:17437 c/c-parser.c:17427 cp/parser.c:37588 #, gcc-internal-format msgid "expected %<#pragma omp section%> or %<}%>" msgstr "" -#: c/c-parser.c:19620 c/c-parser.c:12030 cp/parser.c:29238 cp/parser.c:32360 +#: c/c-parser.c:19634 c/c-parser.c:12036 cp/parser.c:29370 cp/parser.c:32492 #, gcc-internal-format msgid "expected %<[%>" msgstr "" -#: c/c-typeck.c:8192 +#: c/c-typeck.c:8190 msgid "(anonymous)" msgstr "" -#: c/gimple-parser.c:863 cp/parser.c:16306 cp/parser.c:29247 +#: c/gimple-parser.c:1174 cp/parser.c:16377 cp/parser.c:29379 #, gcc-internal-format msgid "expected %<<%>" msgstr "" -#: c/gimple-parser.c:1597 c/gimple-parser.c:1624 c/gimple-parser.c:1652 -#: c/gimple-parser.c:1478 c/gimple-parser.c:1507 +#: c/gimple-parser.c:1938 c/gimple-parser.c:1965 c/gimple-parser.c:1808 +#: c/gimple-parser.c:1843 #, gcc-internal-format msgid "expected label" msgstr "" -#: cp/call.c:10860 +#: cp/call.c:11015 msgid "candidate 1:" msgstr "" -#: cp/call.c:10861 +#: cp/call.c:11016 msgid "candidate 2:" msgstr "" @@ -5009,11 +5010,11 @@ msgstr "" msgid "%r%s:%d:%R in % expansion of %qs" msgstr "" -#: cp/pt.c:1953 cp/semantics.c:5355 +#: cp/pt.c:1983 cp/semantics.c:5403 msgid "candidates are:" msgstr "" -#: cp/pt.c:1955 cp/pt.c:23545 +#: cp/pt.c:1985 cp/pt.c:23634 msgid "candidate is:" msgid_plural "candidates are:" msgstr[0] "" @@ -5059,48 +5060,48 @@ msgstr "" msgid "source type is not polymorphic" msgstr "" -#: cp/typeck.c:6214 c/c-typeck.c:4374 +#: cp/typeck.c:6228 c/c-typeck.c:4372 #, gcc-internal-format msgid "wrong type argument to unary minus" msgstr "" -#: cp/typeck.c:6215 c/c-typeck.c:4361 +#: cp/typeck.c:6229 c/c-typeck.c:4359 #, gcc-internal-format msgid "wrong type argument to unary plus" msgstr "" -#: cp/typeck.c:6242 c/c-typeck.c:4418 +#: cp/typeck.c:6256 c/c-typeck.c:4416 #, gcc-internal-format msgid "wrong type argument to bit-complement" msgstr "" -#: cp/typeck.c:6259 c/c-typeck.c:4426 +#: cp/typeck.c:6273 c/c-typeck.c:4424 #, gcc-internal-format msgid "wrong type argument to abs" msgstr "" -#: cp/typeck.c:6271 c/c-typeck.c:4448 +#: cp/typeck.c:6285 c/c-typeck.c:4446 #, gcc-internal-format msgid "wrong type argument to conjugation" msgstr "" -#: cp/typeck.c:6289 +#: cp/typeck.c:6303 msgid "in argument to unary !" msgstr "" -#: cp/typeck.c:6335 +#: cp/typeck.c:6349 msgid "no pre-increment operator for type" msgstr "" -#: cp/typeck.c:6337 +#: cp/typeck.c:6351 msgid "no post-increment operator for type" msgstr "" -#: cp/typeck.c:6339 +#: cp/typeck.c:6353 msgid "no pre-decrement operator for type" msgstr "" -#: cp/typeck.c:6341 +#: cp/typeck.c:6355 msgid "no post-decrement operator for type" msgstr "" @@ -5187,7 +5188,7 @@ msgstr "" msgid "Deleted feature:" msgstr "" -#: fortran/expr.c:3585 +#: fortran/expr.c:3606 msgid "array assignment" msgstr "" @@ -5276,13 +5277,13 @@ msgstr "" msgid "%s tag" msgstr "" -#: fortran/io.c:3340 +#: fortran/io.c:3339 msgid "internal unit in WRITE" msgstr "" #. For INQUIRE, all tags except FILE, ID and UNIT are variable definition #. contexts. Thus, use an extended RESOLVE_TAG macro for that. -#: fortran/io.c:4698 +#: fortran/io.c:4697 #, c-format msgid "%s tag with INQUIRE" msgstr "" @@ -5320,7 +5321,7 @@ msgstr "" msgid "Expected integer" msgstr "" -#: fortran/module.c:1565 fortran/module.c:2610 +#: fortran/module.c:1565 fortran/module.c:2665 msgid "Expected string" msgstr "" @@ -5328,35 +5329,39 @@ msgstr "" msgid "find_enum(): Enum not found" msgstr "" -#: fortran/module.c:2307 +#: fortran/module.c:2143 +msgid "Unsupported: multiple OpenACC 'routine' levels of parallelism" +msgstr "" + +#: fortran/module.c:2346 msgid "Expected attribute bit name" msgstr "" -#: fortran/module.c:3239 +#: fortran/module.c:3294 msgid "Expected integer string" msgstr "" -#: fortran/module.c:3243 +#: fortran/module.c:3298 msgid "Error converting integer" msgstr "" -#: fortran/module.c:3265 +#: fortran/module.c:3320 msgid "Expected real string" msgstr "" -#: fortran/module.c:3490 +#: fortran/module.c:3545 msgid "Expected expression type" msgstr "" -#: fortran/module.c:3570 +#: fortran/module.c:3625 msgid "Bad operator" msgstr "" -#: fortran/module.c:3687 +#: fortran/module.c:3742 msgid "Bad type in constant expression" msgstr "" -#: fortran/module.c:7063 +#: fortran/module.c:7119 msgid "Unexpected end of module" msgstr "" @@ -5384,11 +5389,11 @@ msgstr "" msgid "implied END DO" msgstr "" -#: fortran/parse.c:2061 fortran/resolve.c:11392 +#: fortran/parse.c:2061 fortran/resolve.c:11460 msgid "assignment" msgstr "" -#: fortran/parse.c:2064 fortran/resolve.c:11443 fortran/resolve.c:11446 +#: fortran/parse.c:2064 fortran/resolve.c:11511 fortran/resolve.c:11514 msgid "pointer assignment" msgstr "" @@ -5474,162 +5479,162 @@ msgstr "" msgid "bind(c) procedure" msgstr "" -#: fortran/resolve.c:3913 +#: fortran/resolve.c:3914 #, c-format msgid "Invalid context for NULL() pointer at %%L" msgstr "" -#: fortran/resolve.c:3929 +#: fortran/resolve.c:3930 #, c-format msgid "Operand of unary numeric operator %%<%s%%> at %%L is %s" msgstr "" -#: fortran/resolve.c:3946 +#: fortran/resolve.c:3947 #, c-format msgid "" "Unexpected derived-type entities in binary intrinsic numeric operator %%<%s" "%%> at %%L" msgstr "" -#: fortran/resolve.c:3951 +#: fortran/resolve.c:3952 #, c-format msgid "Operands of binary numeric operator %%<%s%%> at %%L are %s/%s" msgstr "" -#: fortran/resolve.c:3966 +#: fortran/resolve.c:3967 #, c-format msgid "Operands of string concatenation operator at %%L are %s/%s" msgstr "" -#: fortran/resolve.c:4008 +#: fortran/resolve.c:4009 #, c-format msgid "Operands of logical operator %%<%s%%> at %%L are %s/%s" msgstr "" -#: fortran/resolve.c:4031 +#: fortran/resolve.c:4032 #, c-format msgid "Operand of .not. operator at %%L is %s" msgstr "" -#: fortran/resolve.c:4045 +#: fortran/resolve.c:4046 msgid "COMPLEX quantities cannot be compared at %L" msgstr "" -#: fortran/resolve.c:4097 +#: fortran/resolve.c:4098 #, c-format msgid "Logicals at %%L must be compared with %s instead of %s" msgstr "" -#: fortran/resolve.c:4103 +#: fortran/resolve.c:4104 #, c-format msgid "Operands of comparison operator %%<%s%%> at %%L are %s/%s" msgstr "" -#: fortran/resolve.c:4116 +#: fortran/resolve.c:4117 #, c-format msgid "Unknown operator %%<%s%%> at %%L; did you mean '%s'?" msgstr "" -#: fortran/resolve.c:4119 +#: fortran/resolve.c:4120 #, c-format msgid "Unknown operator %%<%s%%> at %%L" msgstr "" -#: fortran/resolve.c:4122 +#: fortran/resolve.c:4123 #, c-format msgid "Operand of user operator %%<%s%%> at %%L is %s" msgstr "" -#: fortran/resolve.c:4126 +#: fortran/resolve.c:4127 #, c-format msgid "Operands of user operator %%<%s%%> at %%L are %s/%s" msgstr "" -#: fortran/resolve.c:4214 +#: fortran/resolve.c:4213 #, c-format msgid "Inconsistent ranks for operator at %%L and %%L" msgstr "" -#: fortran/resolve.c:6984 +#: fortran/resolve.c:7008 msgid "Loop variable" msgstr "" -#: fortran/resolve.c:6988 +#: fortran/resolve.c:7012 msgid "iterator variable" msgstr "" -#: fortran/resolve.c:6992 +#: fortran/resolve.c:7016 msgid "Start expression in DO loop" msgstr "" -#: fortran/resolve.c:6996 +#: fortran/resolve.c:7020 msgid "End expression in DO loop" msgstr "" -#: fortran/resolve.c:7000 +#: fortran/resolve.c:7024 msgid "Step expression in DO loop" msgstr "" -#: fortran/resolve.c:7286 fortran/resolve.c:7289 +#: fortran/resolve.c:7310 fortran/resolve.c:7313 msgid "DEALLOCATE object" msgstr "" -#: fortran/resolve.c:7662 fortran/resolve.c:7665 +#: fortran/resolve.c:7686 fortran/resolve.c:7689 msgid "ALLOCATE object" msgstr "" -#: fortran/resolve.c:7857 fortran/resolve.c:9593 +#: fortran/resolve.c:7922 fortran/resolve.c:9658 msgid "STAT variable" msgstr "" -#: fortran/resolve.c:7901 fortran/resolve.c:9605 +#: fortran/resolve.c:7966 fortran/resolve.c:9670 msgid "ERRMSG variable" msgstr "" -#: fortran/resolve.c:9396 +#: fortran/resolve.c:9461 msgid "item in READ" msgstr "" -#: fortran/resolve.c:9617 +#: fortran/resolve.c:9682 msgid "ACQUIRED_LOCK variable" msgstr "" -#: fortran/trans-array.c:1626 +#: fortran/trans-array.c:1635 #, c-format msgid "Different CHARACTER lengths (%ld/%ld) in array constructor" msgstr "" -#: fortran/trans-array.c:5867 +#: fortran/trans-array.c:5881 msgid "Integer overflow when calculating the amount of memory to allocate" msgstr "" -#: fortran/trans-array.c:9448 +#: fortran/trans-array.c:9447 #, c-format msgid "" "The value of the PDT LEN parameter '%s' does not agree with that in the " "dummy declaration" msgstr "" -#: fortran/trans-decl.c:5897 +#: fortran/trans-decl.c:5952 #, c-format msgid "" "Actual string length does not match the declared one for dummy argument " "'%s' (%ld/%ld)" msgstr "" -#: fortran/trans-decl.c:5905 +#: fortran/trans-decl.c:5960 #, c-format msgid "" "Actual string length is shorter than the declared one for dummy argument " "'%s' (%ld/%ld)" msgstr "" -#: fortran/trans-expr.c:9185 +#: fortran/trans-expr.c:9298 #, c-format msgid "Target of rank remapping is too small (%ld < %ld)" msgstr "" -#: fortran/trans-expr.c:10584 +#: fortran/trans-expr.c:10709 msgid "Assignment of scalar to unallocated array" msgstr "" @@ -5638,12 +5643,12 @@ msgstr "" msgid "Unequal character lengths (%ld/%ld) in %s" msgstr "" -#: fortran/trans-intrinsic.c:8659 +#: fortran/trans-intrinsic.c:8737 #, c-format msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)" msgstr "" -#: fortran/trans-intrinsic.c:8691 +#: fortran/trans-intrinsic.c:8769 msgid "Argument NCOPIES of REPEAT intrinsic is too large" msgstr "" @@ -5757,19 +5762,19 @@ msgstr "" msgid "error" msgstr "" -#: go/go-backend.c:165 +#: go/go-backend.c:166 msgid "lseek failed while reading export data" msgstr "" -#: go/go-backend.c:172 +#: go/go-backend.c:173 msgid "memory allocation failed while reading export data" msgstr "" -#: go/go-backend.c:180 +#: go/go-backend.c:181 msgid "read failed while reading export data" msgstr "" -#: go/go-backend.c:186 +#: go/go-backend.c:187 msgid "short read while reading export data" msgstr "" @@ -5854,7 +5859,7 @@ msgid "-private_bundle not allowed with -dynamiclib" msgstr "" #: config/dragonfly.h:76 config/i386/freebsd.h:82 config/i386/freebsd64.h:35 -#: config/ia64/freebsd.h:26 config/rs6000/sysv4.h:735 config/sparc/freebsd.h:45 +#: config/ia64/freebsd.h:26 config/rs6000/sysv4.h:760 config/sparc/freebsd.h:45 msgid "consider using '-pg' instead of '-p' with gprof(1)" msgstr "" @@ -5978,7 +5983,7 @@ msgstr "" msgid "SH2a does not support little-endian" msgstr "" -#: config/sparc/linux64.h:149 config/sparc/linux64.h:156 +#: config/sparc/linux64.h:152 config/sparc/linux64.h:158 #: config/sparc/netbsd-elf.h:108 config/sparc/netbsd-elf.h:117 #: config/sparc/sol2.h:237 config/sparc/sol2.h:243 msgid "may not use both -m32 and -m64" @@ -6509,8 +6514,8 @@ msgstr "" msgid "Append underscores to externally visible names." msgstr "" -#: fortran/lang.opt:763 c-family/c.opt:1405 c-family/c.opt:1433 -#: c-family/c.opt:1681 config/pa/pa.opt:42 config/pa/pa.opt:70 common.opt:1167 +#: fortran/lang.opt:763 c-family/c.opt:1405 c-family/c.opt:1437 +#: c-family/c.opt:1685 config/pa/pa.opt:42 config/pa/pa.opt:70 common.opt:1167 #: common.opt:1375 common.opt:1450 common.opt:1718 common.opt:1849 #: common.opt:2249 common.opt:2285 common.opt:2378 common.opt:2382 #: common.opt:2487 common.opt:2578 common.opt:2586 common.opt:2594 @@ -6564,15 +6569,15 @@ msgstr "" #: c-family/c.opt:70 c-family/c.opt:73 c-family/c.opt:76 c-family/c.opt:79 #: c-family/c.opt:175 c-family/c.opt:178 c-family/c.opt:220 c-family/c.opt:224 -#: c-family/c.opt:236 c-family/c.opt:1902 c-family/c.opt:1910 brig/lang.opt:44 +#: c-family/c.opt:236 c-family/c.opt:1906 c-family/c.opt:1914 brig/lang.opt:44 #: config/darwin.opt:56 common.opt:326 common.opt:329 common.opt:3140 #, c-format msgid "missing filename after %qs" msgstr "" #: c-family/c.opt:85 c-family/c.opt:88 c-family/c.opt:91 c-family/c.opt:94 -#: c-family/c.opt:200 c-family/c.opt:212 c-family/c.opt:1898 -#: c-family/c.opt:1918 c-family/c.opt:1922 c-family/c.opt:1926 +#: c-family/c.opt:200 c-family/c.opt:212 c-family/c.opt:1902 +#: c-family/c.opt:1922 c-family/c.opt:1926 c-family/c.opt:1930 #, c-format msgid "missing path after %qs" msgstr "" @@ -7241,7 +7246,7 @@ msgstr "" #: c-family/c.opt:820 msgid "" "Warn about declarations of entities that may be missing attributes that " -"related entities have been declared with it." +"related entities have been declared with." msgstr "" #: c-family/c.opt:829 @@ -7658,8 +7663,8 @@ msgstr "" msgid "Allow variadic functions without named parameter." msgstr "" -#: c-family/c.opt:1282 c-family/c.opt:1526 c-family/c.opt:1850 -#: c-family/c.opt:1854 c-family/c.opt:1870 +#: c-family/c.opt:1282 c-family/c.opt:1530 c-family/c.opt:1854 +#: c-family/c.opt:1858 c-family/c.opt:1874 msgid "No longer supported." msgstr "" @@ -7713,616 +7718,622 @@ msgid "" msgstr "" #: c-family/c.opt:1421 -msgid "Emit debug annotations during preprocessing." +msgid "" +"-fconstexpr-ops-limit=\tSpecify maximum number of constexpr " +"operations during a single constexpr evaluation." msgstr "" #: c-family/c.opt:1425 +msgid "Emit debug annotations during preprocessing." +msgstr "" + +#: c-family/c.opt:1429 msgid "" "-fdeduce-init-list\tenable deduction of std::initializer_list for a template " "type parameter from a brace-enclosed initializer-list." msgstr "" -#: c-family/c.opt:1429 +#: c-family/c.opt:1433 msgid "Factor complex constructors and destructors to favor space over speed." msgstr "" -#: c-family/c.opt:1437 +#: c-family/c.opt:1441 msgid "Print hierarchical comparisons when template types are mismatched." msgstr "" -#: c-family/c.opt:1441 +#: c-family/c.opt:1445 msgid "Preprocess directives only." msgstr "" -#: c-family/c.opt:1445 +#: c-family/c.opt:1449 msgid "Permit '$' as an identifier character." msgstr "" -#: c-family/c.opt:1449 +#: c-family/c.opt:1453 msgid "" "-fmacro-prefix-map== Map one directory name to another in " "__FILE__, __BASE_FILE__, and __builtin_FILE()." msgstr "" -#: c-family/c.opt:1453 +#: c-family/c.opt:1457 msgid "Write all declarations as Ada code transitively." msgstr "" -#: c-family/c.opt:1457 +#: c-family/c.opt:1461 msgid "Write all declarations as Ada code for the given file only." msgstr "" -#: c-family/c.opt:1464 +#: c-family/c.opt:1468 msgid "-fno-elide-type Do not elide common elements in template comparisons." msgstr "" -#: c-family/c.opt:1468 +#: c-family/c.opt:1472 msgid "Generate code to check exception specifications." msgstr "" -#: c-family/c.opt:1475 +#: c-family/c.opt:1479 msgid "" "-fexec-charset=\tConvert all strings and character constants to " "character set ." msgstr "" -#: c-family/c.opt:1479 +#: c-family/c.opt:1483 msgid "Permit universal character names (\\u and \\U) in identifiers." msgstr "" -#: c-family/c.opt:1483 +#: c-family/c.opt:1487 msgid "" "-finput-charset=\tSpecify the default character set for source files." msgstr "" -#: c-family/c.opt:1487 +#: c-family/c.opt:1491 msgid "" "Support dynamic initialization of thread-local variables in a different " "translation unit." msgstr "" -#: c-family/c.opt:1497 +#: c-family/c.opt:1501 msgid "Do not assume that standard C libraries and \"main\" exist." msgstr "" -#: c-family/c.opt:1501 +#: c-family/c.opt:1505 msgid "Recognize GNU-defined keywords." msgstr "" -#: c-family/c.opt:1505 +#: c-family/c.opt:1509 msgid "Generate code for GNU runtime environment." msgstr "" -#: c-family/c.opt:1509 +#: c-family/c.opt:1513 msgid "Use traditional GNU semantics for inline functions." msgstr "" -#: c-family/c.opt:1515 +#: c-family/c.opt:1519 msgid "" "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" msgstr "" -#: c-family/c.opt:1522 +#: c-family/c.opt:1526 msgid "Assume normal C execution environment." msgstr "" -#: c-family/c.opt:1530 +#: c-family/c.opt:1534 msgid "Export functions even if they can be inlined." msgstr "" -#: c-family/c.opt:1534 +#: c-family/c.opt:1538 msgid "Emit implicit instantiations of inline templates." msgstr "" -#: c-family/c.opt:1538 +#: c-family/c.opt:1542 msgid "Emit implicit instantiations of templates." msgstr "" -#: c-family/c.opt:1542 +#: c-family/c.opt:1546 msgid "Implement C++17 inheriting constructor semantics." msgstr "" -#: c-family/c.opt:1549 +#: c-family/c.opt:1553 msgid "Don't emit dllexported inline functions unless needed." msgstr "" -#: c-family/c.opt:1556 +#: c-family/c.opt:1560 msgid "" "Allow implicit conversions between vectors with differing numbers of " "subparts and/or differing element types." msgstr "" -#: c-family/c.opt:1560 +#: c-family/c.opt:1564 msgid "Don't warn about uses of Microsoft extensions." msgstr "" -#: c-family/c.opt:1579 +#: c-family/c.opt:1583 msgid "" "Implement resolution of DR 150 for matching of template template arguments." msgstr "" -#: c-family/c.opt:1583 +#: c-family/c.opt:1587 msgid "Generate code for NeXT (Apple Mac OS X) runtime environment." msgstr "" -#: c-family/c.opt:1587 +#: c-family/c.opt:1591 msgid "Assume that receivers of Objective-C messages may be nil." msgstr "" -#: c-family/c.opt:1591 +#: c-family/c.opt:1595 msgid "" "Allow access to instance variables as if they were local declarations within " "instance method implementations." msgstr "" -#: c-family/c.opt:1595 +#: c-family/c.opt:1599 msgid "" "-fvisibility=[private|protected|public|package]\tSet the default symbol " "visibility." msgstr "" -#: c-family/c.opt:1598 +#: c-family/c.opt:1602 #, c-format msgid "unrecognized ivar visibility value %qs" msgstr "" -#: c-family/c.opt:1620 +#: c-family/c.opt:1624 msgid "" "Treat a throw() exception specification as noexcept to improve code size." msgstr "" -#: c-family/c.opt:1624 +#: c-family/c.opt:1628 msgid "" "Specify which ABI to use for Objective-C family code and meta-data " "generation." msgstr "" -#: c-family/c.opt:1630 +#: c-family/c.opt:1634 msgid "" "Generate special Objective-C methods to initialize/destroy non-POD C++ " "ivars, if needed." msgstr "" -#: c-family/c.opt:1634 +#: c-family/c.opt:1638 msgid "Allow fast jumps to the message dispatcher." msgstr "" -#: c-family/c.opt:1640 +#: c-family/c.opt:1644 msgid "Enable Objective-C exception and synchronization syntax." msgstr "" -#: c-family/c.opt:1644 +#: c-family/c.opt:1648 msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs." msgstr "" -#: c-family/c.opt:1648 +#: c-family/c.opt:1652 msgid "" "Enable inline checks for nil receivers with the NeXT runtime and ABI version " "2." msgstr "" -#: c-family/c.opt:1653 +#: c-family/c.opt:1657 msgid "Enable Objective-C setjmp exception handling runtime." msgstr "" -#: c-family/c.opt:1657 +#: c-family/c.opt:1661 msgid "Conform to the Objective-C 1.0 language as implemented in GCC 4.0." msgstr "" -#: c-family/c.opt:1661 +#: c-family/c.opt:1665 msgid "Enable OpenACC." msgstr "" -#: c-family/c.opt:1665 +#: c-family/c.opt:1669 msgid "Specify default OpenACC compute dimensions." msgstr "" -#: c-family/c.opt:1669 +#: c-family/c.opt:1673 msgid "Enable OpenMP (implies -frecursive in Fortran)." msgstr "" -#: c-family/c.opt:1673 +#: c-family/c.opt:1677 msgid "Enable OpenMP's SIMD directives." msgstr "" -#: c-family/c.opt:1677 +#: c-family/c.opt:1681 msgid "Recognize C++ keywords like \"compl\" and \"xor\"." msgstr "" -#: c-family/c.opt:1688 +#: c-family/c.opt:1692 msgid "Look for and use PCH files even when preprocessing." msgstr "" -#: c-family/c.opt:1692 +#: c-family/c.opt:1696 msgid "Downgrade conformance errors to warnings." msgstr "" -#: c-family/c.opt:1696 +#: c-family/c.opt:1700 msgid "Enable Plan 9 language extensions." msgstr "" -#: c-family/c.opt:1700 +#: c-family/c.opt:1704 msgid "Treat the input file as already preprocessed." msgstr "" -#: c-family/c.opt:1708 +#: c-family/c.opt:1712 msgid "" "-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro " "expansion and display them in error messages." msgstr "" -#: c-family/c.opt:1712 +#: c-family/c.opt:1716 msgid "" "-fno-pretty-templates Do not pretty-print template specializations as the " "template signature followed by the arguments." msgstr "" -#: c-family/c.opt:1716 +#: c-family/c.opt:1720 msgid "Treat known sprintf return values as constants." msgstr "" -#: c-family/c.opt:1720 +#: c-family/c.opt:1724 msgid "" "Used in Fix-and-Continue mode to indicate that object files may be swapped " "in at runtime." msgstr "" -#: c-family/c.opt:1724 +#: c-family/c.opt:1728 msgid "Enable automatic template instantiation." msgstr "" -#: c-family/c.opt:1728 +#: c-family/c.opt:1732 msgid "Generate run time type descriptor information." msgstr "" -#: c-family/c.opt:1732 ada/gcc-interface/lang.opt:77 +#: c-family/c.opt:1736 ada/gcc-interface/lang.opt:77 msgid "Use the narrowest integer type possible for enumeration types." msgstr "" -#: c-family/c.opt:1736 +#: c-family/c.opt:1740 msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"." msgstr "" -#: c-family/c.opt:1740 +#: c-family/c.opt:1744 msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed." msgstr "" -#: c-family/c.opt:1744 ada/gcc-interface/lang.opt:81 +#: c-family/c.opt:1748 ada/gcc-interface/lang.opt:81 msgid "Make \"char\" signed by default." msgstr "" -#: c-family/c.opt:1748 +#: c-family/c.opt:1752 msgid "Enable C++14 sized deallocation support." msgstr "" -#: c-family/c.opt:1755 +#: c-family/c.opt:1759 msgid "" "-fsso-struct=[big-endian|little-endian|native]\tSet the default scalar " "storage order." msgstr "" -#: c-family/c.opt:1758 +#: c-family/c.opt:1762 #, c-format msgid "unrecognized scalar storage order value %qs" msgstr "" -#: c-family/c.opt:1771 +#: c-family/c.opt:1775 msgid "Display statistics accumulated during compilation." msgstr "" -#: c-family/c.opt:1775 +#: c-family/c.opt:1779 msgid "" "Assume that values of enumeration type are always within the minimum range " "of that type." msgstr "" -#: c-family/c.opt:1782 c-family/c.opt:1787 +#: c-family/c.opt:1786 c-family/c.opt:1791 msgid "" "Follow the C++17 evaluation order requirements for assignment expressions, " "shift, member function calls, etc." msgstr "" -#: c-family/c.opt:1804 +#: c-family/c.opt:1808 msgid "-ftabstop=\tDistance between tab stops for column reporting." msgstr "" -#: c-family/c.opt:1808 +#: c-family/c.opt:1812 msgid "" "Set the maximum number of template instantiation notes for a single warning " "or error." msgstr "" -#: c-family/c.opt:1815 +#: c-family/c.opt:1819 msgid "" "-ftemplate-depth=\tSpecify maximum template instantiation depth." msgstr "" -#: c-family/c.opt:1822 +#: c-family/c.opt:1826 msgid "" "-fno-threadsafe-statics\tDo not generate thread-safe code for initializing " "local statics." msgstr "" -#: c-family/c.opt:1826 +#: c-family/c.opt:1830 msgid "" "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned." msgstr "" -#: c-family/c.opt:1830 ada/gcc-interface/lang.opt:85 +#: c-family/c.opt:1834 ada/gcc-interface/lang.opt:85 msgid "Make \"char\" unsigned by default." msgstr "" -#: c-family/c.opt:1834 +#: c-family/c.opt:1838 msgid "Use __cxa_atexit to register destructors." msgstr "" -#: c-family/c.opt:1838 +#: c-family/c.opt:1842 msgid "Use __cxa_get_exception_ptr in exception handling." msgstr "" -#: c-family/c.opt:1842 +#: c-family/c.opt:1846 msgid "Marks all inlined functions and methods as having hidden visibility." msgstr "" -#: c-family/c.opt:1846 +#: c-family/c.opt:1850 msgid "Changes visibility to match Microsoft Visual Studio by default." msgstr "" -#: c-family/c.opt:1858 d/lang.opt:314 +#: c-family/c.opt:1862 d/lang.opt:318 msgid "Emit common-like symbols as weak symbols." msgstr "" -#: c-family/c.opt:1862 +#: c-family/c.opt:1866 msgid "" "-fwide-exec-charset=\tConvert all wide strings and character constants " "to character set ." msgstr "" -#: c-family/c.opt:1866 +#: c-family/c.opt:1870 msgid "Generate a #line directive pointing at the current working directory." msgstr "" -#: c-family/c.opt:1874 +#: c-family/c.opt:1878 msgid "" "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode." msgstr "" -#: c-family/c.opt:1878 +#: c-family/c.opt:1882 msgid "Dump declarations to a .decl file." msgstr "" -#: c-family/c.opt:1882 +#: c-family/c.opt:1886 msgid "" "-femit-struct-debug-baseonly\tAggressive reduced debug info for structs." msgstr "" -#: c-family/c.opt:1886 +#: c-family/c.opt:1890 msgid "" "-femit-struct-debug-reduced\tConservative reduced debug info for structs." msgstr "" -#: c-family/c.opt:1890 +#: c-family/c.opt:1894 msgid "" "-femit-struct-debug-detailed=\tDetailed reduced debug info for " "structs." msgstr "" -#: c-family/c.opt:1894 +#: c-family/c.opt:1898 msgid "" "Interpret imaginary, fixed-point, or other gnu number suffix as the " "corresponding number literal rather than a user-defined number literal." msgstr "" -#: c-family/c.opt:1899 +#: c-family/c.opt:1903 msgid "-idirafter

\tAdd to the end of the system include path." msgstr "" -#: c-family/c.opt:1903 +#: c-family/c.opt:1907 msgid "-imacros \tAccept definition of macros in ." msgstr "" -#: c-family/c.opt:1907 +#: c-family/c.opt:1911 msgid "-imultilib \tSet to be the multilib include subdirectory." msgstr "" -#: c-family/c.opt:1911 +#: c-family/c.opt:1915 msgid "-include \tInclude the contents of before other files." msgstr "" -#: c-family/c.opt:1915 +#: c-family/c.opt:1919 msgid "-iprefix \tSpecify as a prefix for next two options." msgstr "" -#: c-family/c.opt:1919 +#: c-family/c.opt:1923 msgid "-isysroot \tSet to be the system root directory." msgstr "" -#: c-family/c.opt:1923 +#: c-family/c.opt:1927 msgid "-isystem \tAdd to the start of the system include path." msgstr "" -#: c-family/c.opt:1927 +#: c-family/c.opt:1931 msgid "-iquote \tAdd to the end of the quote include path." msgstr "" -#: c-family/c.opt:1931 +#: c-family/c.opt:1935 msgid "-iwithprefix \tAdd to the end of the system include path." msgstr "" -#: c-family/c.opt:1935 +#: c-family/c.opt:1939 msgid "" "-iwithprefixbefore \tAdd to the end of the main include path." msgstr "" -#: c-family/c.opt:1945 +#: c-family/c.opt:1949 msgid "" "Do not search standard system include directories (those specified with -" "isystem will still be used)." msgstr "" -#: c-family/c.opt:1949 +#: c-family/c.opt:1953 msgid "Do not search standard system include directories for C++." msgstr "" -#: c-family/c.opt:1961 +#: c-family/c.opt:1965 msgid "Generate C header of platform-specific features." msgstr "" -#: c-family/c.opt:1965 +#: c-family/c.opt:1969 msgid "Remap file names when including files." msgstr "" -#: c-family/c.opt:1969 c-family/c.opt:1973 +#: c-family/c.opt:1973 c-family/c.opt:1977 msgid "" "Conform to the ISO 1998 C++ standard revised by the 2003 technical " "corrigendum." msgstr "" -#: c-family/c.opt:1977 +#: c-family/c.opt:1981 msgid "Conform to the ISO 2011 C++ standard." msgstr "" -#: c-family/c.opt:1981 +#: c-family/c.opt:1985 msgid "Deprecated in favor of -std=c++11." msgstr "" -#: c-family/c.opt:1985 +#: c-family/c.opt:1989 msgid "Deprecated in favor of -std=c++14." msgstr "" -#: c-family/c.opt:1989 +#: c-family/c.opt:1993 msgid "Conform to the ISO 2014 C++ standard." msgstr "" -#: c-family/c.opt:1993 +#: c-family/c.opt:1997 msgid "Deprecated in favor of -std=c++17." msgstr "" -#: c-family/c.opt:1997 +#: c-family/c.opt:2001 msgid "Conform to the ISO 2017 C++ standard." msgstr "" -#: c-family/c.opt:2001 +#: c-family/c.opt:2005 msgid "" "Conform to the ISO 2020(?) C++ draft standard (experimental and incomplete " "support)." msgstr "" -#: c-family/c.opt:2005 c-family/c.opt:2131 +#: c-family/c.opt:2009 c-family/c.opt:2135 msgid "Conform to the ISO 2011 C standard." msgstr "" -#: c-family/c.opt:2009 +#: c-family/c.opt:2013 msgid "Deprecated in favor of -std=c11." msgstr "" -#: c-family/c.opt:2013 c-family/c.opt:2017 c-family/c.opt:2135 -#: c-family/c.opt:2139 +#: c-family/c.opt:2017 c-family/c.opt:2021 c-family/c.opt:2139 +#: c-family/c.opt:2143 msgid "Conform to the ISO 2017 C standard (published in 2018)." msgstr "" -#: c-family/c.opt:2021 +#: c-family/c.opt:2025 msgid "" "Conform to the ISO 202X C standard draft (experimental and incomplete " "support)." msgstr "" -#: c-family/c.opt:2025 c-family/c.opt:2029 c-family/c.opt:2115 +#: c-family/c.opt:2029 c-family/c.opt:2033 c-family/c.opt:2119 msgid "Conform to the ISO 1990 C standard." msgstr "" -#: c-family/c.opt:2033 c-family/c.opt:2123 +#: c-family/c.opt:2037 c-family/c.opt:2127 msgid "Conform to the ISO 1999 C standard." msgstr "" -#: c-family/c.opt:2037 +#: c-family/c.opt:2041 msgid "Deprecated in favor of -std=c99." msgstr "" -#: c-family/c.opt:2041 c-family/c.opt:2046 +#: c-family/c.opt:2045 c-family/c.opt:2050 msgid "" "Conform to the ISO 1998 C++ standard revised by the 2003 technical " "corrigendum with GNU extensions." msgstr "" -#: c-family/c.opt:2051 +#: c-family/c.opt:2055 msgid "Conform to the ISO 2011 C++ standard with GNU extensions." msgstr "" -#: c-family/c.opt:2055 +#: c-family/c.opt:2059 msgid "Deprecated in favor of -std=gnu++11." msgstr "" -#: c-family/c.opt:2059 +#: c-family/c.opt:2063 msgid "Deprecated in favor of -std=gnu++14." msgstr "" -#: c-family/c.opt:2063 +#: c-family/c.opt:2067 msgid "Conform to the ISO 2014 C++ standard with GNU extensions." msgstr "" -#: c-family/c.opt:2067 +#: c-family/c.opt:2071 msgid "Deprecated in favor of -std=gnu++17." msgstr "" -#: c-family/c.opt:2071 +#: c-family/c.opt:2075 msgid "Conform to the ISO 2017 C++ standard with GNU extensions." msgstr "" -#: c-family/c.opt:2075 +#: c-family/c.opt:2079 msgid "" "Conform to the ISO 2020(?) C++ draft standard with GNU extensions " "(experimental and incomplete support)." msgstr "" -#: c-family/c.opt:2079 +#: c-family/c.opt:2083 msgid "Conform to the ISO 2011 C standard with GNU extensions." msgstr "" -#: c-family/c.opt:2083 +#: c-family/c.opt:2087 msgid "Deprecated in favor of -std=gnu11." msgstr "" -#: c-family/c.opt:2087 c-family/c.opt:2091 +#: c-family/c.opt:2091 c-family/c.opt:2095 msgid "" "Conform to the ISO 2017 C standard (published in 2018) with GNU extensions." msgstr "" -#: c-family/c.opt:2095 +#: c-family/c.opt:2099 msgid "" "Conform to the ISO 202X C standard draft with GNU extensions (experimental " "and incomplete support)." msgstr "" -#: c-family/c.opt:2099 c-family/c.opt:2103 +#: c-family/c.opt:2103 c-family/c.opt:2107 msgid "Conform to the ISO 1990 C standard with GNU extensions." msgstr "" -#: c-family/c.opt:2107 +#: c-family/c.opt:2111 msgid "Conform to the ISO 1999 C standard with GNU extensions." msgstr "" -#: c-family/c.opt:2111 +#: c-family/c.opt:2115 msgid "Deprecated in favor of -std=gnu99." msgstr "" -#: c-family/c.opt:2119 +#: c-family/c.opt:2123 msgid "Conform to the ISO 1990 C standard as amended in 1994." msgstr "" -#: c-family/c.opt:2127 +#: c-family/c.opt:2131 msgid "Deprecated in favor of -std=iso9899:1999." msgstr "" -#: c-family/c.opt:2146 +#: c-family/c.opt:2150 msgid "Enable traditional preprocessing." msgstr "" -#: c-family/c.opt:2150 +#: c-family/c.opt:2154 msgid "-trigraphs\tSupport ISO C trigraphs." msgstr "" -#: c-family/c.opt:2154 +#: c-family/c.opt:2158 msgid "Do not predefine system-specific and GCC-specific macros." msgstr "" @@ -8392,154 +8403,158 @@ msgstr "" msgid "Default library to use instead of phobos." msgstr "" -#: d/lang.opt:170 -msgid "Generate code for all template instantiations." +#: d/lang.opt:167 +msgid "Do link the standard D startup files in the compilation." msgstr "" #: d/lang.opt:174 +msgid "Generate code for all template instantiations." +msgstr "" + +#: d/lang.opt:178 msgid "Generate code for assert contracts." msgstr "" -#: d/lang.opt:182 +#: d/lang.opt:186 msgid "" "-fbounds-check=[on|safeonly|off]\tTurn array bounds checks on, in @safe code " "only, or off." msgstr "" -#: d/lang.opt:185 +#: d/lang.opt:189 #, c-format msgid "unknown array bounds setting %qs" msgstr "" -#: d/lang.opt:202 +#: d/lang.opt:206 msgid "Compile in debug code." msgstr "" -#: d/lang.opt:206 +#: d/lang.opt:210 msgid "" "-fdebug=\tCompile in debug code, code <= , or code " "identified by ." msgstr "" -#: d/lang.opt:210 +#: d/lang.opt:214 msgid "Generate documentation." msgstr "" -#: d/lang.opt:214 +#: d/lang.opt:218 msgid "-fdoc-dir=\tWrite documentation file to directory ." msgstr "" -#: d/lang.opt:218 +#: d/lang.opt:222 msgid "-fdoc-file=\tWrite documentation to ." msgstr "" -#: d/lang.opt:222 +#: d/lang.opt:226 msgid "-fdoc-inc=\tInclude a Ddoc macro ." msgstr "" -#: d/lang.opt:226 +#: d/lang.opt:230 msgid "Display the frontend AST after parsing and semantic passes." msgstr "" -#: d/lang.opt:230 +#: d/lang.opt:234 msgid "Ignore unsupported pragmas." msgstr "" -#: d/lang.opt:234 +#: d/lang.opt:238 msgid "Generate code for class invariant contracts." msgstr "" -#: d/lang.opt:238 +#: d/lang.opt:242 msgid "Generate a default D main() function when compiling." msgstr "" -#: d/lang.opt:242 +#: d/lang.opt:246 msgid "" "-fmodule-file==\tuse as source file for " "." msgstr "" -#: d/lang.opt:246 +#: d/lang.opt:250 msgid "Generate ModuleInfo struct for output module." msgstr "" -#: d/lang.opt:250 +#: d/lang.opt:254 msgid "" "Process all modules specified on the command line, but only generate code " "for the module specified by the argument." msgstr "" -#: d/lang.opt:254 +#: d/lang.opt:258 msgid "Generate code for postcondition contracts." msgstr "" -#: d/lang.opt:258 +#: d/lang.opt:262 msgid "Generate code for precondition contracts." msgstr "" -#: d/lang.opt:262 +#: d/lang.opt:266 msgid "Compile release version." msgstr "" -#: d/lang.opt:266 +#: d/lang.opt:270 msgid "Generate code for switches without a default case." msgstr "" -#: d/lang.opt:270 +#: d/lang.opt:274 msgid "List information on all language changes." msgstr "" -#: d/lang.opt:274 +#: d/lang.opt:278 msgid "Give deprecation messages about -ftransition=import anomalies." msgstr "" -#: d/lang.opt:278 +#: d/lang.opt:282 msgid "List all usages of complex or imaginary types." msgstr "" -#: d/lang.opt:282 +#: d/lang.opt:286 msgid "Implement DIP1000: Scoped pointers (experimental)." msgstr "" -#: d/lang.opt:286 +#: d/lang.opt:290 msgid "Implement DIP25: Sealed references (experimental)." msgstr "" -#: d/lang.opt:290 +#: d/lang.opt:294 msgid "List all non-mutable fields which occupy an object instance." msgstr "" -#: d/lang.opt:294 +#: d/lang.opt:298 msgid "Revert to single phase name lookup." msgstr "" -#: d/lang.opt:298 +#: d/lang.opt:302 msgid "List all hidden GC allocations." msgstr "" -#: d/lang.opt:302 +#: d/lang.opt:306 msgid "List all variables going into thread local storage." msgstr "" -#: d/lang.opt:306 +#: d/lang.opt:310 msgid "Compile in unittest code." msgstr "" -#: d/lang.opt:310 +#: d/lang.opt:314 msgid "" "-fversion=\tCompile in version code >= or identified by " "." msgstr "" -#: d/lang.opt:334 +#: d/lang.opt:338 msgid "Do not link the standard D library in the compilation." msgstr "" -#: d/lang.opt:342 +#: d/lang.opt:346 msgid "Link the standard D library statically in the compilation." msgstr "" -#: d/lang.opt:346 +#: d/lang.opt:350 msgid "Link the standard D library dynamically in the compilation." msgstr "" @@ -8618,11 +8633,11 @@ msgid "unknown pointer size model %qs" msgstr "" #: config/mcore/mcore.opt:23 -msgid "Generate code for the M*Core M210" +msgid "Generate code for the M*Core M210." msgstr "" #: config/mcore/mcore.opt:27 -msgid "Generate code for the M*Core M340" +msgid "Generate code for the M*Core M340." msgstr "" #: config/mcore/mcore.opt:31 @@ -9119,6 +9134,10 @@ msgid "" "required to materialize symbol addresses." msgstr "" +#: config/riscv/riscv.opt:133 +msgid "Emit RISC-V ELF attribute." +msgstr "" + #: config/m32c/m32c.opt:23 msgid "-msim\tUse simulator runtime." msgstr "" @@ -9333,11 +9352,11 @@ msgid "Generate code to track when the CPU might be speculating incorrectly." msgstr "" #: config/aarch64/aarch64.opt:231 config/i386/i386.opt:983 -#: config/rs6000/rs6000.opt:535 +#: config/rs6000/rs6000.opt:542 msgid "Use given stack-protector guard." msgstr "" -#: config/aarch64/aarch64.opt:235 config/rs6000/rs6000.opt:539 +#: config/aarch64/aarch64.opt:235 config/rs6000/rs6000.opt:546 msgid "Valid arguments to -mstack-protector-guard=:" msgstr "" @@ -9632,7 +9651,7 @@ msgstr "" #: config/epiphany/epiphany.opt:28 msgid "" -"preferentially allocate registers that allow short instruction generation." +"Preferentially allocate registers that allow short instruction generation." msgstr "" #: config/epiphany/epiphany.opt:32 @@ -9640,11 +9659,11 @@ msgid "Set branch cost." msgstr "" #: config/epiphany/epiphany.opt:36 -msgid "enable conditional move instruction usage." +msgid "Enable conditional move instruction usage." msgstr "" #: config/epiphany/epiphany.opt:40 -msgid "set number of nops to emit before each insn pattern." +msgid "Set number of nops to emit before each insn pattern." msgstr "" #: config/epiphany/epiphany.opt:52 @@ -9708,7 +9727,7 @@ msgid "Set register to hold -1." msgstr "" #: config/ft32/ft32.opt:23 -msgid "target the software simulator." +msgid "Target the software simulator." msgstr "" #: config/ft32/ft32.opt:27 config/s390/s390.opt:222 config/mips/mips.opt:393 @@ -9717,19 +9736,19 @@ msgid "Use LRA instead of reload." msgstr "" #: config/ft32/ft32.opt:31 -msgid "Avoid use of the DIV and MOD instructions" +msgid "Avoid use of the DIV and MOD instructions." msgstr "" #: config/ft32/ft32.opt:35 -msgid "target the FT32B architecture" +msgid "Target the FT32B architecture." msgstr "" #: config/ft32/ft32.opt:39 -msgid "enable FT32B code compression" +msgid "Enable FT32B code compression." msgstr "" #: config/ft32/ft32.opt:43 -msgid "Avoid placing any readable data in program memory" +msgid "Avoid placing any readable data in program memory." msgstr "" #: config/h8300/h8300.opt:23 @@ -10207,7 +10226,7 @@ msgstr "" #: config/i386/i386.opt:604 msgid "" "Known preferred register vector length (to use with the -mprefer-vector-" -"width= option)" +"width= option):" msgstr "" #: config/i386/i386.opt:622 @@ -10612,11 +10631,11 @@ msgid "" "option):" msgstr "" -#: config/i386/i386.opt:997 config/rs6000/rs6000.opt:549 +#: config/i386/i386.opt:997 config/rs6000/rs6000.opt:556 msgid "Use the given base register for addressing the stack-protector guard." msgstr "" -#: config/i386/i386.opt:1004 config/rs6000/rs6000.opt:556 +#: config/i386/i386.opt:1004 config/rs6000/rs6000.opt:563 msgid "Use the given offset for addressing the stack-protector guard." msgstr "" @@ -10685,7 +10704,7 @@ msgid "Instrument function exit in instrumented functions with __fentry__." msgstr "" #: config/i386/i386.opt:1090 -msgid "Known choices for return instrumentation with -minstrument-return=" +msgid "Known choices for return instrumentation with -minstrument-return=:" msgstr "" #: config/i386/i386.opt:1103 @@ -11714,41 +11733,41 @@ msgstr "" msgid "Do not generate code that can only run in supervisor mode (default)." msgstr "" -#: config/sparc/sparc.opt:142 config/visium/visium.opt:45 -msgid "Use features of and schedule code for given CPU." +#: config/sparc/sparc.opt:142 +msgid "Use instructions of and schedule code for given CPU." msgstr "" #: config/sparc/sparc.opt:225 msgid "Use given SPARC-V9 code model." msgstr "" -#: config/sparc/sparc.opt:229 +#: config/sparc/sparc.opt:247 msgid "Enable debug output." msgstr "" -#: config/sparc/sparc.opt:233 +#: config/sparc/sparc.opt:251 msgid "Enable strict 32-bit psABI struct return checking." msgstr "" -#: config/sparc/sparc.opt:237 +#: config/sparc/sparc.opt:255 msgid "" "Enable workaround for single erratum of AT697F processor (corresponding to " "erratum #13 of AT697E processor)." msgstr "" -#: config/sparc/sparc.opt:242 +#: config/sparc/sparc.opt:260 msgid "Enable workarounds for the errata of the UT699 processor." msgstr "" -#: config/sparc/sparc.opt:246 +#: config/sparc/sparc.opt:264 msgid "Enable workarounds for the errata of the UT699E/UT700 processor." msgstr "" -#: config/sparc/sparc.opt:250 +#: config/sparc/sparc.opt:268 msgid "Enable workarounds for the errata of the GR712RC processor." msgstr "" -#: config/sparc/sparc.opt:287 +#: config/sparc/sparc.opt:305 msgid "Specify the memory model in effect for the program." msgstr "" @@ -12002,118 +12021,118 @@ msgstr "" msgid "-mtune=\tSchedule code for given CPU." msgstr "" -#: config/rs6000/rs6000.opt:390 +#: config/rs6000/rs6000.opt:397 msgid "-mtraceback=[full,part,no]\tSelect type of traceback table." msgstr "" -#: config/rs6000/rs6000.opt:406 +#: config/rs6000/rs6000.opt:413 msgid "Avoid all range limits on call instructions." msgstr "" -#: config/rs6000/rs6000.opt:414 +#: config/rs6000/rs6000.opt:421 msgid "Warn about deprecated 'vector long ...' AltiVec type usage." msgstr "" -#: config/rs6000/rs6000.opt:418 +#: config/rs6000/rs6000.opt:425 msgid "-mlong-double-[64,128]\tSpecify size of long double." msgstr "" -#: config/rs6000/rs6000.opt:426 +#: config/rs6000/rs6000.opt:433 msgid "Determine which dependences between insns are considered costly." msgstr "" -#: config/rs6000/rs6000.opt:430 +#: config/rs6000/rs6000.opt:437 msgid "Specify which post scheduling nop insertion scheme to apply." msgstr "" -#: config/rs6000/rs6000.opt:434 +#: config/rs6000/rs6000.opt:441 msgid "Specify alignment of structure fields default/natural." msgstr "" -#: config/rs6000/rs6000.opt:438 +#: config/rs6000/rs6000.opt:445 msgid "Valid arguments to -malign-:" msgstr "" -#: config/rs6000/rs6000.opt:448 +#: config/rs6000/rs6000.opt:455 msgid "Specify scheduling priority for dispatch slot restricted insns." msgstr "" -#: config/rs6000/rs6000.opt:452 +#: config/rs6000/rs6000.opt:459 msgid "Use r11 to hold the static link in calls to functions via pointers." msgstr "" -#: config/rs6000/rs6000.opt:456 +#: config/rs6000/rs6000.opt:463 msgid "Save the TOC in the prologue for indirect calls rather than inline." msgstr "" -#: config/rs6000/rs6000.opt:464 +#: config/rs6000/rs6000.opt:471 msgid "" "Fuse certain integer operations together for better performance on power8." msgstr "" -#: config/rs6000/rs6000.opt:468 +#: config/rs6000/rs6000.opt:475 msgid "Allow sign extension in fusion operations." msgstr "" -#: config/rs6000/rs6000.opt:472 +#: config/rs6000/rs6000.opt:479 msgid "Use vector and scalar instructions added in ISA 2.07." msgstr "" -#: config/rs6000/rs6000.opt:476 +#: config/rs6000/rs6000.opt:483 msgid "Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions." msgstr "" -#: config/rs6000/rs6000.opt:483 +#: config/rs6000/rs6000.opt:490 msgid "Use ISA 2.07 transactional memory (HTM) instructions." msgstr "" -#: config/rs6000/rs6000.opt:487 +#: config/rs6000/rs6000.opt:494 msgid "Generate the quad word memory instructions (lq/stq)." msgstr "" -#: config/rs6000/rs6000.opt:491 +#: config/rs6000/rs6000.opt:498 msgid "Generate the quad word memory atomic instructions (lqarx/stqcx)." msgstr "" -#: config/rs6000/rs6000.opt:495 +#: config/rs6000/rs6000.opt:502 msgid "" "Generate aggregate parameter passing code with at most 64-bit alignment." msgstr "" -#: config/rs6000/rs6000.opt:499 +#: config/rs6000/rs6000.opt:506 msgid "Analyze and remove doubleword swaps from VSX computations." msgstr "" -#: config/rs6000/rs6000.opt:503 +#: config/rs6000/rs6000.opt:510 msgid "Use certain scalar instructions added in ISA 3.0." msgstr "" -#: config/rs6000/rs6000.opt:507 +#: config/rs6000/rs6000.opt:514 msgid "Use vector instructions added in ISA 3.0." msgstr "" -#: config/rs6000/rs6000.opt:511 +#: config/rs6000/rs6000.opt:518 msgid "Use the new min/max instructions defined in ISA 3.0." msgstr "" -#: config/rs6000/rs6000.opt:515 +#: config/rs6000/rs6000.opt:522 msgid "" "Fuse medium/large code model toc references with the memory instruction." msgstr "" -#: config/rs6000/rs6000.opt:519 +#: config/rs6000/rs6000.opt:526 msgid "Generate the integer modulo instructions." msgstr "" -#: config/rs6000/rs6000.opt:523 +#: config/rs6000/rs6000.opt:530 msgid "Enable IEEE 128-bit floating point via the __float128 keyword." msgstr "" -#: config/rs6000/rs6000.opt:527 +#: config/rs6000/rs6000.opt:534 msgid "Enable using IEEE 128-bit floating point instructions." msgstr "" -#: config/rs6000/rs6000.opt:531 +#: config/rs6000/rs6000.opt:538 msgid "Enable default conversions between __float128 & long double." msgstr "" @@ -12158,7 +12177,7 @@ msgstr "" #: config/rs6000/sysv4.opt:86 config/rs6000/sysv4.opt:90 #: config/rs6000/sysv4.opt:99 config/rs6000/sysv4.opt:141 #: config/rs6000/sysv4.opt:153 -msgid "no description yet." +msgid "No description yet." msgstr "" #: config/rs6000/sysv4.opt:94 @@ -12210,6 +12229,10 @@ msgid "Generate code for old exec BSS PLT." msgstr "" #: config/rs6000/sysv4.opt:165 +msgid "Use inline plt sequences to implement long calls and -fno-plt." +msgstr "" + +#: config/rs6000/sysv4.opt:169 msgid "Emit .gnu_attribute tags." msgstr "" @@ -12957,7 +12980,7 @@ msgid "Stores doubles in 32 bits. This is the default." msgstr "" #: config/rx/rx.opt:37 -msgid "Disable the use of RX FPU instructions. " +msgid "Disable the use of RX FPU instructions." msgstr "" #: config/rx/rx.opt:44 @@ -13055,6 +13078,10 @@ msgstr "" msgid "Use hardware FP (default)." msgstr "" +#: config/visium/visium.opt:45 +msgid "Use features of and schedule code for given CPU." +msgstr "" + #: config/visium/visium.opt:65 msgid "Generate code for the supervisor mode (default)." msgstr "" @@ -13174,7 +13201,7 @@ msgid "Description for mxl-mode-novectors." msgstr "" #: config/microblaze/microblaze.opt:128 -msgid "Use hardware prefetch instruction" +msgid "Use hardware prefetch instruction." msgstr "" #: config/microblaze/microblaze.opt:132 @@ -13744,7 +13771,7 @@ msgid "Select method for sdata handling." msgstr "" #: config/c6x/c6x.opt:46 -msgid "Valid arguments for the -msdata= option." +msgid "Valid arguments for the -msdata= option:" msgstr "" #: config/c6x/c6x.opt:59 @@ -14035,7 +14062,7 @@ msgstr "" #: config/sh/sh.opt:239 msgid "" -"inline code to invalidate instruction cache entries after setting up nested " +"Inline code to invalidate instruction cache entries after setting up nested " "function trampolines." msgstr "" @@ -14688,7 +14715,7 @@ msgstr "" #: config/arc/arc.opt:242 msgid "" -"size optimization level: 0:none 1:opportunistic 2: regalloc 3:drop align, -" +"Size optimization level: 0:none 1:opportunistic 2: regalloc 3:drop align, -" "Os." msgstr "" @@ -14885,7 +14912,7 @@ msgid "unknown linker output %qs" msgstr "" #: lto/lang.opt:50 -msgid "Set linker output type (used internally during LTO optimization)" +msgid "Set linker output type (used internally during LTO optimization)." msgstr "" #: lto/lang.opt:55 @@ -14973,8 +15000,8 @@ msgstr "" #: common.opt:555 common.opt:559 msgid "" -"Warn about type safety and similar errors and mismatches in attribute alias " -"and related." +"Warn about type safety and similar errors and mismatches in declarations " +"with alias attributes." msgstr "" #: common.opt:563 @@ -15510,11 +15537,11 @@ msgid "Show the source line with a caret indicating the column." msgstr "" #: common.opt:1254 -msgid "Show labels annotating ranges of source code when showing source" +msgid "Show labels annotating ranges of source code when showing source." msgstr "" #: common.opt:1258 -msgid "Show line numbers in the left margin when showing source" +msgid "Show line numbers in the left margin when showing source." msgstr "" #: common.opt:1266 @@ -15522,7 +15549,7 @@ msgid "-fdiagnostics-color=[never|always|auto]\tColorize diagnostics." msgstr "" #: common.opt:1286 -msgid "-fdiagnostics-format=[text|json] Select output format" +msgid "-fdiagnostics-format=[text|json] Select output format." msgstr "" #: common.opt:1303 @@ -15540,7 +15567,7 @@ msgid "" msgstr "" #: common.opt:1315 -msgid "Set minimum width of left margin of source code when showing source" +msgid "Set minimum width of left margin of source code when showing source." msgstr "" #: common.opt:1319 @@ -15727,7 +15754,7 @@ msgstr "" #: common.opt:1524 msgid "" "-fgnat-encodings=[all|gdb|minimal]\tSelect the balance between GNAT " -"encodings and standard DWARF emitted in the debug information" +"encodings and standard DWARF emitted in the debug information." msgstr "" #: common.opt:1529 @@ -16984,11 +17011,11 @@ msgid "Generate debug information in default format." msgstr "" #: common.opt:2972 -msgid "Assume assembler support for (DWARF2+) .loc directives" +msgid "Assume assembler support for (DWARF2+) .loc directives." msgstr "" #: common.opt:2976 -msgid "Assume assembler support for view in (DWARF2+) .loc directives" +msgid "Assume assembler support for view in (DWARF2+) .loc directives." msgstr "" #: common.opt:2996 @@ -17008,11 +17035,11 @@ msgid "Generate debug information in default extended format." msgstr "" #: common.opt:3012 -msgid "Generate extended entry point information for inlined functions" +msgid "Generate extended entry point information for inlined functions." msgstr "" #: common.opt:3016 -msgid "Compute locview reset points based on insn length estimates" +msgid "Compute locview reset points based on insn length estimates." msgstr "" #: common.opt:3024 @@ -17140,7 +17167,7 @@ msgstr "" msgid "Use caller save register across calls if possible." msgstr "" -#: go/gofrontend/expressions.cc:95 c-family/c-warn.c:663 cp/cvt.c:1342 +#: go/gofrontend/expressions.cc:95 c-family/c-warn.c:671 cp/cvt.c:1342 #: cp/cvt.c:1595 #, gcc-internal-format msgid "value computed is not used" @@ -17154,238 +17181,238 @@ msgstr "" msgid "constant refers to itself" msgstr "" -#: go/gofrontend/expressions.cc:4013 go/gofrontend/expressions.cc:4498 +#: go/gofrontend/expressions.cc:4015 go/gofrontend/expressions.cc:4500 msgid "expected pointer" msgstr "" -#: go/gofrontend/expressions.cc:4469 +#: go/gofrontend/expressions.cc:4471 msgid "expected numeric type" msgstr "" -#: go/gofrontend/expressions.cc:4474 +#: go/gofrontend/expressions.cc:4476 msgid "expected boolean type" msgstr "" -#: go/gofrontend/expressions.cc:4479 c/c-parser.c:14219 c/c-parser.c:14226 -#: cp/parser.c:34306 cp/parser.c:34313 +#: go/gofrontend/expressions.cc:4481 c/c-parser.c:14233 c/c-parser.c:14240 +#: cp/parser.c:34445 cp/parser.c:34452 #, gcc-internal-format msgid "expected integer" msgstr "" -#: go/gofrontend/expressions.cc:6125 +#: go/gofrontend/expressions.cc:6127 msgid "invalid comparison of nil with nil" msgstr "" -#: go/gofrontend/expressions.cc:6131 go/gofrontend/expressions.cc:6149 +#: go/gofrontend/expressions.cc:6133 go/gofrontend/expressions.cc:6151 msgid "incompatible types in binary expression" msgstr "" -#: go/gofrontend/expressions.cc:6169 +#: go/gofrontend/expressions.cc:6171 msgid "integer division by zero" msgstr "" -#: go/gofrontend/expressions.cc:6177 +#: go/gofrontend/expressions.cc:6179 msgid "shift of non-integer operand" msgstr "" -#: go/gofrontend/expressions.cc:6180 go/gofrontend/expressions.cc:6184 -#: go/gofrontend/expressions.cc:6192 +#: go/gofrontend/expressions.cc:6182 go/gofrontend/expressions.cc:6186 +#: go/gofrontend/expressions.cc:6194 msgid "shift count not unsigned integer" msgstr "" -#: go/gofrontend/expressions.cc:6197 +#: go/gofrontend/expressions.cc:6199 msgid "negative shift count" msgstr "" -#: go/gofrontend/expressions.cc:7020 +#: go/gofrontend/expressions.cc:7022 msgid "object is not a method" msgstr "" -#: go/gofrontend/expressions.cc:7037 +#: go/gofrontend/expressions.cc:7039 msgid "method type does not match object type" msgstr "" -#: go/gofrontend/expressions.cc:7431 +#: go/gofrontend/expressions.cc:7433 msgid "invalid use of %<...%> with builtin function" msgstr "" -#: go/gofrontend/expressions.cc:7442 +#: go/gofrontend/expressions.cc:7444 msgid "invalid use of method value as argument of Offsetof" msgstr "" -#: go/gofrontend/expressions.cc:7456 +#: go/gofrontend/expressions.cc:7458 msgid "argument of Offsetof implies indirection of an embedded field" msgstr "" -#: go/gofrontend/expressions.cc:7481 go/gofrontend/expressions.cc:7518 -#: go/gofrontend/expressions.cc:7685 go/gofrontend/expressions.cc:8859 -#: go/gofrontend/expressions.cc:9008 go/gofrontend/expressions.cc:9054 -#: go/gofrontend/expressions.cc:9089 go/gofrontend/expressions.cc:9165 -#: go/gofrontend/expressions.cc:10418 go/gofrontend/expressions.cc:10435 -#: go/gofrontend/expressions.cc:10451 +#: go/gofrontend/expressions.cc:7483 go/gofrontend/expressions.cc:7520 +#: go/gofrontend/expressions.cc:7687 go/gofrontend/expressions.cc:8871 +#: go/gofrontend/expressions.cc:9020 go/gofrontend/expressions.cc:9066 +#: go/gofrontend/expressions.cc:9101 go/gofrontend/expressions.cc:9177 +#: go/gofrontend/expressions.cc:10434 go/gofrontend/expressions.cc:10451 +#: go/gofrontend/expressions.cc:10467 msgid "not enough arguments" msgstr "" -#: go/gofrontend/expressions.cc:7483 go/gofrontend/expressions.cc:7520 -#: go/gofrontend/expressions.cc:8864 go/gofrontend/expressions.cc:8991 -#: go/gofrontend/expressions.cc:9013 go/gofrontend/expressions.cc:9094 -#: go/gofrontend/expressions.cc:9167 go/gofrontend/expressions.cc:9988 -#: go/gofrontend/expressions.cc:10423 go/gofrontend/expressions.cc:10437 -#: go/gofrontend/expressions.cc:10458 +#: go/gofrontend/expressions.cc:7485 go/gofrontend/expressions.cc:7522 +#: go/gofrontend/expressions.cc:8876 go/gofrontend/expressions.cc:9003 +#: go/gofrontend/expressions.cc:9025 go/gofrontend/expressions.cc:9106 +#: go/gofrontend/expressions.cc:9179 go/gofrontend/expressions.cc:10001 +#: go/gofrontend/expressions.cc:10439 go/gofrontend/expressions.cc:10453 +#: go/gofrontend/expressions.cc:10474 msgid "too many arguments" msgstr "" -#: go/gofrontend/expressions.cc:7522 +#: go/gofrontend/expressions.cc:7524 msgid "argument 1 must be a map" msgstr "" -#: go/gofrontend/expressions.cc:7715 +#: go/gofrontend/expressions.cc:7717 msgid "invalid type for make function" msgstr "" -#: go/gofrontend/expressions.cc:7728 +#: go/gofrontend/expressions.cc:7730 msgid "length required when allocating a slice" msgstr "" -#: go/gofrontend/expressions.cc:7772 +#: go/gofrontend/expressions.cc:7774 msgid "len larger than cap" msgstr "" -#: go/gofrontend/expressions.cc:7781 +#: go/gofrontend/expressions.cc:7783 msgid "too many arguments to make" msgstr "" -#: go/gofrontend/expressions.cc:8908 +#: go/gofrontend/expressions.cc:8920 msgid "argument must be array or slice or channel" msgstr "" -#: go/gofrontend/expressions.cc:8918 +#: go/gofrontend/expressions.cc:8930 msgid "argument must be string or array or slice or map or channel" msgstr "" -#: go/gofrontend/expressions.cc:8964 +#: go/gofrontend/expressions.cc:8976 msgid "unsupported argument type to builtin function" msgstr "" -#: go/gofrontend/expressions.cc:8975 +#: go/gofrontend/expressions.cc:8987 msgid "argument must be channel" msgstr "" -#: go/gofrontend/expressions.cc:8977 +#: go/gofrontend/expressions.cc:8989 msgid "cannot close receive-only channel" msgstr "" -#: go/gofrontend/expressions.cc:8999 +#: go/gofrontend/expressions.cc:9011 msgid "argument must be a field reference" msgstr "" -#: go/gofrontend/expressions.cc:9029 +#: go/gofrontend/expressions.cc:9041 msgid "left argument must be a slice" msgstr "" -#: go/gofrontend/expressions.cc:9037 +#: go/gofrontend/expressions.cc:9049 msgid "element types must be the same" msgstr "" -#: go/gofrontend/expressions.cc:9042 +#: go/gofrontend/expressions.cc:9054 msgid "first argument must be []byte" msgstr "" -#: go/gofrontend/expressions.cc:9045 +#: go/gofrontend/expressions.cc:9057 msgid "second argument must be slice or string" msgstr "" -#: go/gofrontend/expressions.cc:9157 +#: go/gofrontend/expressions.cc:9169 msgid "argument must have complex type" msgstr "" -#: go/gofrontend/expressions.cc:9176 +#: go/gofrontend/expressions.cc:9188 msgid "complex arguments must have identical types" msgstr "" -#: go/gofrontend/expressions.cc:9178 +#: go/gofrontend/expressions.cc:9190 msgid "complex arguments must have floating-point type" msgstr "" -#: go/gofrontend/expressions.cc:9742 go/gofrontend/expressions.cc:10364 -#: go/gofrontend/expressions.cc:10737 +#: go/gofrontend/expressions.cc:9754 go/gofrontend/expressions.cc:10380 +#: go/gofrontend/expressions.cc:10753 msgid "expected function" msgstr "" -#: go/gofrontend/expressions.cc:9770 +#: go/gofrontend/expressions.cc:9782 msgid "multiple-value argument in single-value context" msgstr "" -#: go/gofrontend/expressions.cc:9992 +#: go/gofrontend/expressions.cc:10005 msgid "invalid use of %<...%> with non-slice" msgstr "" -#: go/gofrontend/expressions.cc:10372 +#: go/gofrontend/expressions.cc:10388 msgid "function result count mismatch" msgstr "" -#: go/gofrontend/expressions.cc:10390 +#: go/gofrontend/expressions.cc:10406 msgid "incompatible type for receiver" msgstr "" -#: go/gofrontend/expressions.cc:10408 +#: go/gofrontend/expressions.cc:10424 msgid "invalid use of %<...%> calling non-variadic function" msgstr "" -#: go/gofrontend/expressions.cc:10746 go/gofrontend/expressions.cc:10760 +#: go/gofrontend/expressions.cc:10762 go/gofrontend/expressions.cc:10776 msgid "number of results does not match number of values" msgstr "" -#: go/gofrontend/expressions.cc:11064 go/gofrontend/expressions.cc:11597 +#: go/gofrontend/expressions.cc:11080 go/gofrontend/expressions.cc:11627 msgid "index must be integer" msgstr "" -#: go/gofrontend/expressions.cc:11072 go/gofrontend/expressions.cc:11605 +#: go/gofrontend/expressions.cc:11088 go/gofrontend/expressions.cc:11635 msgid "slice end must be integer" msgstr "" -#: go/gofrontend/expressions.cc:11080 +#: go/gofrontend/expressions.cc:11096 msgid "slice capacity must be integer" msgstr "" -#: go/gofrontend/expressions.cc:11130 go/gofrontend/expressions.cc:11639 +#: go/gofrontend/expressions.cc:11146 go/gofrontend/expressions.cc:11669 msgid "inverted slice range" msgstr "" -#: go/gofrontend/expressions.cc:11173 +#: go/gofrontend/expressions.cc:11189 msgid "slice of unaddressable value" msgstr "" -#: go/gofrontend/expressions.cc:11867 +#: go/gofrontend/expressions.cc:11897 msgid "incompatible type for map index" msgstr "" -#: go/gofrontend/expressions.cc:12237 +#: go/gofrontend/expressions.cc:12267 msgid "expected interface or pointer to interface" msgstr "" -#: go/gofrontend/expressions.cc:12958 +#: go/gofrontend/expressions.cc:12988 msgid "too many expressions for struct" msgstr "" -#: go/gofrontend/expressions.cc:12971 +#: go/gofrontend/expressions.cc:13001 msgid "too few expressions for struct" msgstr "" -#: go/gofrontend/expressions.cc:14647 go/gofrontend/statements.cc:1618 +#: go/gofrontend/expressions.cc:14764 go/gofrontend/statements.cc:1618 msgid "type assertion only valid for interface types" msgstr "" -#: go/gofrontend/expressions.cc:14659 +#: go/gofrontend/expressions.cc:14776 msgid "impossible type assertion: type does not implement interface" msgstr "" -#: go/gofrontend/expressions.cc:14829 go/gofrontend/expressions.cc:14849 +#: go/gofrontend/expressions.cc:14946 go/gofrontend/expressions.cc:14966 #: go/gofrontend/statements.cc:1465 msgid "expected channel" msgstr "" -#: go/gofrontend/expressions.cc:14854 go/gofrontend/statements.cc:1470 +#: go/gofrontend/expressions.cc:14971 go/gofrontend/statements.cc:1470 msgid "invalid receive on send-only channel" msgstr "" @@ -17504,71 +17531,71 @@ msgstr "" msgid "conversion from normal type to notinheap type" msgstr "" -#: go/gofrontend/types.cc:4523 +#: go/gofrontend/types.cc:4518 msgid "different receiver types" msgstr "" -#: go/gofrontend/types.cc:4546 go/gofrontend/types.cc:4559 -#: go/gofrontend/types.cc:4573 +#: go/gofrontend/types.cc:4541 go/gofrontend/types.cc:4554 +#: go/gofrontend/types.cc:4568 msgid "different number of parameters" msgstr "" -#: go/gofrontend/types.cc:4566 +#: go/gofrontend/types.cc:4561 msgid "different parameter types" msgstr "" -#: go/gofrontend/types.cc:4581 +#: go/gofrontend/types.cc:4576 msgid "different varargs" msgstr "" -#: go/gofrontend/types.cc:4594 go/gofrontend/types.cc:4607 -#: go/gofrontend/types.cc:4621 +#: go/gofrontend/types.cc:4589 go/gofrontend/types.cc:4602 +#: go/gofrontend/types.cc:4616 msgid "different number of results" msgstr "" -#: go/gofrontend/types.cc:4614 +#: go/gofrontend/types.cc:4609 msgid "different result types" msgstr "" -#: go/gofrontend/types.cc:8878 +#: go/gofrontend/types.cc:8889 #, c-format msgid "need explicit conversion; missing method %s%s%s" msgstr "" -#: go/gofrontend/types.cc:8896 go/gofrontend/types.cc:9039 +#: go/gofrontend/types.cc:8907 go/gofrontend/types.cc:9050 #, c-format msgid "incompatible type for method %s%s%s" msgstr "" -#: go/gofrontend/types.cc:8900 go/gofrontend/types.cc:9043 +#: go/gofrontend/types.cc:8911 go/gofrontend/types.cc:9054 #, c-format msgid "incompatible type for method %s%s%s (%s)" msgstr "" -#: go/gofrontend/types.cc:8979 go/gofrontend/types.cc:8992 +#: go/gofrontend/types.cc:8990 go/gofrontend/types.cc:9003 msgid "pointer to interface type has no methods" msgstr "" -#: go/gofrontend/types.cc:8981 go/gofrontend/types.cc:8994 +#: go/gofrontend/types.cc:8992 go/gofrontend/types.cc:9005 msgid "type has no methods" msgstr "" -#: go/gofrontend/types.cc:9015 +#: go/gofrontend/types.cc:9026 #, c-format msgid "ambiguous method %s%s%s" msgstr "" -#: go/gofrontend/types.cc:9018 +#: go/gofrontend/types.cc:9029 #, c-format msgid "missing method %s%s%s" msgstr "" -#: go/gofrontend/types.cc:9060 +#: go/gofrontend/types.cc:9071 #, c-format msgid "method %s%s%s requires a pointer receiver" msgstr "" -#: go/gofrontend/types.cc:9078 +#: go/gofrontend/types.cc:9089 #, c-format msgid "method %s%s%s is marked go:nointerface" msgstr "" @@ -17585,14 +17612,14 @@ msgstr "" msgid "ignoring attribute %qE because it conflicts with attribute %qs" msgstr "" -#: attribs.c:452 c-family/c-attribs.c:2103 c-family/c-attribs.c:2410 -#: cp/decl.c:13928 cp/friend.c:303 cp/tree.c:4576 +#: attribs.c:452 c-family/c-attribs.c:2104 c-family/c-attribs.c:2411 +#: cp/decl.c:13960 cp/friend.c:303 cp/tree.c:4569 #, gcc-internal-format msgid "previous declaration here" msgstr "" #. Warn about and ignore all others for now, but store them. -#: attribs.c:567 c-family/c-attribs.c:3124 objc/objc-act.c:4965 +#: attribs.c:567 c-family/c-attribs.c:3125 objc/objc-act.c:4965 #: objc/objc-act.c:6936 objc/objc-act.c:8123 objc/objc-act.c:8174 #, gcc-internal-format msgid "%qE attribute directive ignored" @@ -17608,17 +17635,17 @@ msgstr "" msgid "wrong number of arguments specified for %qE attribute" msgstr "" -#: attribs.c:594 cp/decl.c:11176 +#: attribs.c:594 cp/decl.c:11207 #, gcc-internal-format msgid "attribute ignored" msgstr "" -#: attribs.c:596 cp/decl.c:11177 +#: attribs.c:596 cp/decl.c:11208 #, gcc-internal-format msgid "an attribute that appertains to a type-specifier is ignored" msgstr "" -#: attribs.c:614 c-family/c-attribs.c:3639 +#: attribs.c:614 c-family/c-attribs.c:3640 #, gcc-internal-format msgid "%qE attribute does not apply to types" msgstr "" @@ -17640,33 +17667,33 @@ msgstr "" #: c-family/c-attribs.c:949 c-family/c-attribs.c:965 c-family/c-attribs.c:991 #: c-family/c-attribs.c:1006 c-family/c-attribs.c:1034 #: c-family/c-attribs.c:1051 c-family/c-attribs.c:1069 -#: c-family/c-attribs.c:1092 c-family/c-attribs.c:1130 -#: c-family/c-attribs.c:1153 c-family/c-attribs.c:1170 -#: c-family/c-attribs.c:1199 c-family/c-attribs.c:1220 -#: c-family/c-attribs.c:1241 c-family/c-attribs.c:1268 -#: c-family/c-attribs.c:1298 c-family/c-attribs.c:1335 -#: c-family/c-attribs.c:1388 c-family/c-attribs.c:1454 -#: c-family/c-attribs.c:1512 c-family/c-attribs.c:1601 -#: c-family/c-attribs.c:1631 c-family/c-attribs.c:1682 -#: c-family/c-attribs.c:2222 c-family/c-attribs.c:2259 -#: c-family/c-attribs.c:2320 c-family/c-attribs.c:2545 -#: c-family/c-attribs.c:2623 c-family/c-attribs.c:2774 -#: c-family/c-attribs.c:2793 c-family/c-attribs.c:2958 -#: c-family/c-attribs.c:3015 c-family/c-attribs.c:3042 -#: c-family/c-attribs.c:3097 c-family/c-attribs.c:3277 -#: c-family/c-attribs.c:3298 c-family/c-attribs.c:3411 -#: c-family/c-attribs.c:3488 c-family/c-attribs.c:3641 -#: c-family/c-attribs.c:3659 c-family/c-attribs.c:3682 -#: c-family/c-attribs.c:3721 c-family/c-attribs.c:3803 -#: c-family/c-attribs.c:3859 c-family/c-attribs.c:3875 -#: c-family/c-attribs.c:3969 c-family/c-common.c:5764 config/darwin.c:2065 -#: config/arm/arm.c:6889 config/arm/arm.c:6917 config/arm/arm.c:6934 +#: c-family/c-attribs.c:1093 c-family/c-attribs.c:1131 +#: c-family/c-attribs.c:1154 c-family/c-attribs.c:1171 +#: c-family/c-attribs.c:1200 c-family/c-attribs.c:1221 +#: c-family/c-attribs.c:1242 c-family/c-attribs.c:1269 +#: c-family/c-attribs.c:1299 c-family/c-attribs.c:1336 +#: c-family/c-attribs.c:1389 c-family/c-attribs.c:1455 +#: c-family/c-attribs.c:1513 c-family/c-attribs.c:1602 +#: c-family/c-attribs.c:1632 c-family/c-attribs.c:1683 +#: c-family/c-attribs.c:2223 c-family/c-attribs.c:2260 +#: c-family/c-attribs.c:2321 c-family/c-attribs.c:2546 +#: c-family/c-attribs.c:2624 c-family/c-attribs.c:2775 +#: c-family/c-attribs.c:2794 c-family/c-attribs.c:2959 +#: c-family/c-attribs.c:3016 c-family/c-attribs.c:3043 +#: c-family/c-attribs.c:3098 c-family/c-attribs.c:3278 +#: c-family/c-attribs.c:3299 c-family/c-attribs.c:3412 +#: c-family/c-attribs.c:3489 c-family/c-attribs.c:3642 +#: c-family/c-attribs.c:3660 c-family/c-attribs.c:3683 +#: c-family/c-attribs.c:3722 c-family/c-attribs.c:3804 +#: c-family/c-attribs.c:3860 c-family/c-attribs.c:3876 +#: c-family/c-attribs.c:3970 c-family/c-common.c:5769 config/darwin.c:2066 +#: config/arm/arm.c:6893 config/arm/arm.c:6921 config/arm/arm.c:6938 #: config/avr/avr.c:9698 config/csky/csky.c:6060 config/csky/csky.c:6082 -#: config/h8300/h8300.c:5483 config/h8300/h8300.c:5507 config/i386/i386.c:6254 -#: config/i386/i386.c:41119 config/i386/i386.c:45701 config/ia64/ia64.c:788 -#: config/rs6000/rs6000.c:32840 config/spu/spu.c:3748 -#: ada/gcc-interface/utils.c:6331 ada/gcc-interface/utils.c:6348 -#: ada/gcc-interface/utils.c:6364 ada/gcc-interface/utils.c:6390 +#: config/h8300/h8300.c:5483 config/h8300/h8300.c:5507 config/i386/i386.c:6485 +#: config/i386/i386.c:41374 config/i386/i386.c:45958 config/ia64/ia64.c:788 +#: config/rs6000/rs6000.c:32958 config/spu/spu.c:3748 +#: ada/gcc-interface/utils.c:6351 ada/gcc-interface/utils.c:6368 +#: ada/gcc-interface/utils.c:6384 ada/gcc-interface/utils.c:6410 #: brig/brig-lang.c:484 lto/lto-lang.c:286 #, gcc-internal-format msgid "%qE attribute ignored" @@ -17707,7 +17734,7 @@ msgstr "" #: attribs.c:1666 #, gcc-internal-format -msgid "inline function %q+D declared as dllimport: attribute ignored" +msgid "inline function %q+D declared as dllimport: attribute ignored" msgstr "" #: attribs.c:1674 @@ -17720,19 +17747,19 @@ msgstr "" msgid "variable %q+D definition is marked dllimport" msgstr "" -#: attribs.c:1710 +#: attribs.c:1713 #, gcc-internal-format msgid "external linkage required for symbol %q+D because of %qE attribute" msgstr "" -#: attribs.c:1724 +#: attribs.c:1727 #, gcc-internal-format msgid "" "%qE implies default visibility, but %qD has already been declared with a " "different visibility" msgstr "" -#: attribs.c:1981 +#: attribs.c:1984 #, gcc-internal-format msgid "%qD specifies more restrictive attribute than its target %qD: %s" msgid_plural "" @@ -17740,12 +17767,12 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: attribs.c:1987 attribs.c:2007 +#: attribs.c:1990 attribs.c:2010 #, gcc-internal-format msgid "%qD target declared here" msgstr "" -#: attribs.c:2001 +#: attribs.c:2004 #, gcc-internal-format msgid "%qD specifies less restrictive attribute than its target %qD: %s" msgid_plural "" @@ -17794,94 +17821,94 @@ msgid "" "branch target register load optimization is not intended to be run twice" msgstr "" -#: builtins.c:559 +#: builtins.c:558 #, gcc-internal-format msgid "%qs argument missing terminating nul" msgstr "" -#: builtins.c:562 builtins.c:3131 builtins.c:3185 gimple-ssa-sprintf.c:2919 +#: builtins.c:561 builtins.c:3132 builtins.c:3186 gimple-ssa-sprintf.c:2976 #, gcc-internal-format msgid "referenced argument declared here" msgstr "" -#: builtins.c:769 +#: builtins.c:767 #, gcc-internal-format msgid "offset %qwi outside bounds of constant string" msgstr "" -#: builtins.c:1389 +#: builtins.c:1390 #, gcc-internal-format msgid "second argument to %<__builtin_prefetch%> must be a constant" msgstr "" -#: builtins.c:1396 +#: builtins.c:1397 #, gcc-internal-format msgid "invalid second argument to %<__builtin_prefetch%>; using zero" msgstr "" -#: builtins.c:1404 +#: builtins.c:1405 #, gcc-internal-format msgid "third argument to %<__builtin_prefetch%> must be a constant" msgstr "" -#: builtins.c:1411 +#: builtins.c:1412 #, gcc-internal-format msgid "invalid third argument to %<__builtin_prefetch%>; using zero" msgstr "" -#: builtins.c:3096 builtins.c:3510 calls.c:1658 +#: builtins.c:3097 builtins.c:3511 calls.c:1649 #, gcc-internal-format msgid "%K%qD specified bound %E exceeds maximum object size %E" msgstr "" -#: builtins.c:3124 +#: builtins.c:3125 #, gcc-internal-format msgid "%K%qD specified bound %E exceeds the size %E of unterminated array" msgstr "" -#: builtins.c:3126 +#: builtins.c:3127 #, gcc-internal-format msgid "" "%K%qD specified bound %E may exceed the size of at most %E of unterminated " "array" msgstr "" -#: builtins.c:3155 +#: builtins.c:3156 #, gcc-internal-format msgid "%K%qD specified bound [%wu, %wu] exceeds maximum object size %E" msgstr "" -#: builtins.c:3178 +#: builtins.c:3179 #, gcc-internal-format msgid "" "%K%qD specified bound [%wu, %wu] exceeds the size %E of unterminated array" msgstr "" -#: builtins.c:3180 +#: builtins.c:3181 #, gcc-internal-format msgid "" "%K%qD specified bound [%wu, %wu] may exceed the size of at most %E of " "unterminated array" msgstr "" -#: builtins.c:3410 +#: builtins.c:3411 #, gcc-internal-format msgid "%K%qD specified size %E exceeds maximum object size %E" msgstr "" -#: builtins.c:3415 +#: builtins.c:3416 #, gcc-internal-format msgid "%K%qD specified size between %E and %E exceeds maximum object size %E" msgstr "" -#: builtins.c:3453 builtins.c:3468 +#: builtins.c:3454 builtins.c:3469 #, gcc-internal-format msgid "" "%K%qD writing %E or more bytes into a region of size %E overflows the " "destination" msgstr "" -#: builtins.c:3459 +#: builtins.c:3460 #, gcc-internal-format msgid "" "%K%qD writing %E byte into a region of size %E overflows the destination" @@ -17890,328 +17917,328 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: builtins.c:3474 +#: builtins.c:3475 #, gcc-internal-format msgid "" "%K%qD writing between %E and %E bytes into a region of size %E overflows the " "destination" msgstr "" -#: builtins.c:3516 +#: builtins.c:3517 #, gcc-internal-format msgid "%K%qD specified bound between %E and %E exceeds maximum object size %E" msgstr "" -#: builtins.c:3531 +#: builtins.c:3532 #, gcc-internal-format msgid "%K%qD specified bound %E exceeds destination size %E" msgstr "" -#: builtins.c:3537 +#: builtins.c:3538 #, gcc-internal-format msgid "%K%qD specified bound between %E and %E exceeds destination size %E" msgstr "" -#: builtins.c:3559 +#: builtins.c:3560 #, gcc-internal-format msgid "%K%qD reading %E byte from a region of size %E" msgid_plural "%K%qD reading %E bytes from a region of size %E" msgstr[0] "" msgstr[1] "" -#: builtins.c:3566 +#: builtins.c:3567 #, gcc-internal-format msgid "%K%qD reading %E or more bytes from a region of size %E" msgstr "" -#: builtins.c:3572 +#: builtins.c:3573 #, gcc-internal-format msgid "%K%qD reading between %E and %E bytes from a region of size %E" msgstr "" -#: builtins.c:4245 builtins.c:4314 +#: builtins.c:4247 builtins.c:4316 #, gcc-internal-format msgid "%K%qD specified bound %E equals destination size" msgstr "" -#: builtins.c:5158 gimplify.c:3277 +#: builtins.c:5160 gimplify.c:3287 #, gcc-internal-format msgid "too few arguments to function %" msgstr "" -#: builtins.c:5258 +#: builtins.c:5260 #, gcc-internal-format msgid "invalid argument to %qD" msgstr "" -#: builtins.c:5271 +#: builtins.c:5273 #, gcc-internal-format msgid "unsupported argument to %qD" msgstr "" #. Warn since no effort is made to ensure that any frame #. beyond the current one exists or can be safely reached. -#: builtins.c:5279 +#: builtins.c:5281 #, gcc-internal-format msgid "calling %qD with a nonzero argument is unsafe" msgstr "" -#: builtins.c:5607 +#: builtins.c:5609 #, gcc-internal-format msgid "both arguments to %<__builtin___clear_cache%> must be pointers" msgstr "" -#: builtins.c:5706 +#: builtins.c:5708 #, gcc-internal-format msgid "trampoline generated for nested function %qD" msgstr "" -#: builtins.c:6058 builtins.c:6071 +#: builtins.c:6060 builtins.c:6073 #, gcc-internal-format msgid "%qD changed semantics in GCC 4.4" msgstr "" -#: builtins.c:6177 +#: builtins.c:6179 #, gcc-internal-format msgid "unknown architecture specifier in memory model to builtin" msgstr "" -#: builtins.c:6185 +#: builtins.c:6187 #, gcc-internal-format msgid "invalid memory model argument to builtin" msgstr "" -#: builtins.c:6246 builtins.c:6373 +#: builtins.c:6248 builtins.c:6375 #, gcc-internal-format msgid "" "failure memory model cannot be stronger than success memory model for " "%<__atomic_compare_exchange%>" msgstr "" -#: builtins.c:6254 builtins.c:6381 +#: builtins.c:6256 builtins.c:6383 #, gcc-internal-format msgid "invalid failure memory model for %<__atomic_compare_exchange%>" msgstr "" -#: builtins.c:6439 +#: builtins.c:6441 #, gcc-internal-format msgid "invalid memory model for %<__atomic_load%>" msgstr "" -#: builtins.c:6471 builtins.c:6664 +#: builtins.c:6473 builtins.c:6666 #, gcc-internal-format msgid "invalid memory model for %<__atomic_store%>" msgstr "" -#: builtins.c:6785 +#: builtins.c:6787 #, gcc-internal-format msgid "non-constant argument 1 to __atomic_always_lock_free" msgstr "" -#: builtins.c:6827 +#: builtins.c:6829 #, gcc-internal-format msgid "non-integer argument 1 to __atomic_is_lock_free" msgstr "" -#: builtins.c:6891 +#: builtins.c:6893 #, gcc-internal-format -msgid "__builtin_thread_pointer is not supported on this target" +msgid "%<__builtin_thread_pointer%> is not supported on this target" msgstr "" -#: builtins.c:6911 +#: builtins.c:6913 #, gcc-internal-format -msgid "__builtin_set_thread_pointer is not supported on this target" +msgid "%<__builtin_set_thread_pointer%> is not supported on this target" msgstr "" -#: builtins.c:6970 +#: builtins.c:6972 #, gcc-internal-format msgid "%qs only supported in OpenACC code" msgstr "" -#: builtins.c:6977 +#: builtins.c:6979 #, gcc-internal-format msgid "non-constant argument 0 to %qs" msgstr "" -#: builtins.c:6989 +#: builtins.c:6991 #, gcc-internal-format msgid "illegal argument 0 to %qs" msgstr "" #. All valid uses of __builtin_va_arg_pack () are removed during #. inlining. -#: builtins.c:7417 expr.c:10970 +#: builtins.c:7419 expr.c:10994 #, gcc-internal-format msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>" msgstr "" #. All valid uses of __builtin_va_arg_pack_len () are removed during #. inlining. -#: builtins.c:7423 +#: builtins.c:7425 #, gcc-internal-format msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>" msgstr "" -#: builtins.c:7717 +#: builtins.c:7719 #, gcc-internal-format msgid "%<__builtin_longjmp%> second argument must be 1" msgstr "" -#: builtins.c:8614 +#: builtins.c:8616 #, gcc-internal-format msgid "target format does not support infinity" msgstr "" -#: builtins.c:10215 +#: builtins.c:10227 #, gcc-internal-format msgid "% used in function with fixed args" msgstr "" -#: builtins.c:10223 +#: builtins.c:10235 #, gcc-internal-format msgid "wrong number of arguments to function %" msgstr "" -#: builtins.c:10238 +#: builtins.c:10250 #, gcc-internal-format msgid "%<__builtin_next_arg%> called without an argument" msgstr "" -#: builtins.c:10243 +#: builtins.c:10255 #, gcc-internal-format msgid "wrong number of arguments to function %<__builtin_next_arg%>" msgstr "" -#: builtins.c:10275 +#: builtins.c:10287 #, gcc-internal-format msgid "second parameter of % not last named argument" msgstr "" -#: builtins.c:10288 +#: builtins.c:10300 #, gcc-internal-format msgid "" "undefined behavior when second parameter of % is declared with " "% storage" msgstr "" -#: builtins.c:10317 +#: builtins.c:10329 #, gcc-internal-format msgid "%Kfirst argument of %qD must be a pointer, second integer constant" msgstr "" -#: builtins.c:10330 +#: builtins.c:10342 #, gcc-internal-format msgid "%Klast argument of %qD is not integer constant between 0 and 3" msgstr "" -#: builtins.c:10606 +#: builtins.c:10621 #, gcc-internal-format msgid "%Kattempt to free a non-heap object %qD" msgstr "" -#: builtins.c:10609 +#: builtins.c:10624 #, gcc-internal-format msgid "%Kattempt to free a non-heap object" msgstr "" -#: calls.c:1376 +#: calls.c:1367 #, gcc-internal-format msgid "%Kargument %i value %qE is negative" msgstr "" -#: calls.c:1394 +#: calls.c:1385 #, gcc-internal-format msgid "%Kargument %i value is zero" msgstr "" -#: calls.c:1412 +#: calls.c:1403 #, gcc-internal-format msgid "%Kargument %i value %qE exceeds maximum object size %E" msgstr "" -#: calls.c:1426 +#: calls.c:1417 #, gcc-internal-format msgid "%Kargument %i range [%E, %E] is negative" msgstr "" -#: calls.c:1433 +#: calls.c:1424 #, gcc-internal-format msgid "%Kargument %i range [%E, %E] exceeds maximum object size %E" msgstr "" -#: calls.c:1463 +#: calls.c:1454 #, gcc-internal-format msgid "%Kproduct %<%E * %E%> of arguments %i and %i exceeds %" msgstr "" -#: calls.c:1469 +#: calls.c:1460 #, gcc-internal-format msgid "" "%Kproduct %<%E * %E%> of arguments %i and %i exceeds maximum object size %E" msgstr "" -#: calls.c:1480 calls.c:1483 +#: calls.c:1471 calls.c:1474 #, gcc-internal-format msgid "argument %i in the range [%E, %E]" msgstr "" -#: calls.c:1494 +#: calls.c:1485 #, gcc-internal-format msgid "in a call to built-in allocation function %qD" msgstr "" -#: calls.c:1497 +#: calls.c:1488 #, gcc-internal-format msgid "in a call to allocation function %qD declared here" msgstr "" -#: calls.c:1663 +#: calls.c:1654 #, gcc-internal-format msgid "%K%qD specified bound [%E, %E] exceeds maximum object size %E" msgstr "" -#: calls.c:1806 +#: calls.c:1797 #, gcc-internal-format msgid "" "%qD argument %i declared attribute % is smaller than the " "specified bound %wu" msgstr "" -#: calls.c:1812 +#: calls.c:1803 #, gcc-internal-format msgid "" "%qD argument %i declared attribute % is smaller than the " "specified bound [%E, %E]" msgstr "" -#: calls.c:1818 +#: calls.c:1809 #, gcc-internal-format msgid "" "%qD argument %i declared attribute % may be smaller than the " "specified bound [%E, %E]" msgstr "" -#: calls.c:1828 +#: calls.c:1819 #, gcc-internal-format msgid "%qD argument %i declared attribute %" msgstr "" -#: calls.c:1833 +#: calls.c:1824 #, gcc-internal-format msgid "argument %qD declared here" msgstr "" -#: calls.c:1847 +#: calls.c:1838 #, gcc-internal-format, gfc-internal-format msgid "cannot tail-call: %s" msgstr "" -#: calls.c:3394 +#: calls.c:3382 #, gcc-internal-format msgid "function call has aggregate value" msgstr "" -#: calls.c:4084 +#: calls.c:4072 #, gcc-internal-format msgid "passing too large argument on stack" msgstr "" @@ -18221,7 +18248,7 @@ msgstr "" msgid "total size of local objects is too large" msgstr "" -#: cfgexpand.c:1693 function.c:1008 varasm.c:2243 +#: cfgexpand.c:1693 function.c:1008 varasm.c:2250 #, gcc-internal-format msgid "size of variable %q+D is too large" msgstr "" @@ -18645,387 +18672,387 @@ msgstr "" msgid "%d exits recorded for loop %d (having %d exits)" msgstr "" -#: cfgrtl.c:2350 +#: cfgrtl.c:2357 #, gcc-internal-format, gfc-internal-format msgid "" "non-cold basic block %d reachable only by paths crossing the cold partition" msgstr "" -#: cfgrtl.c:2422 +#: cfgrtl.c:2429 #, gcc-internal-format, gfc-internal-format msgid "multiple hot/cold transitions found (bb %i)" msgstr "" -#: cfgrtl.c:2430 +#: cfgrtl.c:2437 #, gcc-internal-format msgid "partition found but function partition flag not set" msgstr "" -#: cfgrtl.c:2469 +#: cfgrtl.c:2476 #, gcc-internal-format msgid "verify_flow_info: REG_BR_PROB is set but cfg probability is not" msgstr "" -#: cfgrtl.c:2478 +#: cfgrtl.c:2485 #, gcc-internal-format, gfc-internal-format msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i" msgstr "" -#: cfgrtl.c:2500 +#: cfgrtl.c:2507 #, gcc-internal-format msgid "EDGE_CROSSING incorrectly set across same section" msgstr "" -#: cfgrtl.c:2505 +#: cfgrtl.c:2512 #, gcc-internal-format, gfc-internal-format msgid "fallthru edge crosses section boundary in bb %i" msgstr "" -#: cfgrtl.c:2511 +#: cfgrtl.c:2518 #, gcc-internal-format, gfc-internal-format msgid "EH edge crosses section boundary in bb %i" msgstr "" -#: cfgrtl.c:2517 +#: cfgrtl.c:2524 #, gcc-internal-format, gfc-internal-format msgid "No region crossing jump at section boundary in bb %i" msgstr "" -#: cfgrtl.c:2524 +#: cfgrtl.c:2531 #, gcc-internal-format msgid "EDGE_CROSSING missing across section boundary" msgstr "" -#: cfgrtl.c:2554 +#: cfgrtl.c:2561 #, gcc-internal-format, gfc-internal-format msgid "Region crossing jump across same section in bb %i" msgstr "" -#: cfgrtl.c:2561 +#: cfgrtl.c:2568 #, gcc-internal-format, gfc-internal-format msgid "missing REG_EH_REGION note at the end of bb %i" msgstr "" -#: cfgrtl.c:2566 +#: cfgrtl.c:2573 #, gcc-internal-format, gfc-internal-format msgid "too many exception handling edges in bb %i" msgstr "" -#: cfgrtl.c:2574 +#: cfgrtl.c:2581 #, gcc-internal-format, gfc-internal-format msgid "too many outgoing branch edges from bb %i" msgstr "" -#: cfgrtl.c:2579 +#: cfgrtl.c:2586 #, gcc-internal-format, gfc-internal-format msgid "fallthru edge after unconditional jump in bb %i" msgstr "" -#: cfgrtl.c:2584 +#: cfgrtl.c:2591 #, gcc-internal-format, gfc-internal-format msgid "wrong number of branch edges after unconditional jump in bb %i" msgstr "" -#: cfgrtl.c:2591 +#: cfgrtl.c:2598 #, gcc-internal-format, gfc-internal-format msgid "wrong amount of branch edges after conditional jump in bb %i" msgstr "" -#: cfgrtl.c:2597 +#: cfgrtl.c:2604 #, gcc-internal-format, gfc-internal-format msgid "abnormal call edges for non-call insn in bb %i" msgstr "" -#: cfgrtl.c:2602 +#: cfgrtl.c:2609 #, gcc-internal-format, gfc-internal-format msgid "sibcall edges for non-call insn in bb %i" msgstr "" -#: cfgrtl.c:2612 +#: cfgrtl.c:2619 #, gcc-internal-format, gfc-internal-format msgid "abnormal edges for no purpose in bb %i" msgstr "" -#: cfgrtl.c:2623 +#: cfgrtl.c:2630 #, gcc-internal-format, gfc-internal-format msgid "EH incoming edge mixed with non-EH incoming edges in bb %i" msgstr "" -#: cfgrtl.c:2664 cfgrtl.c:2674 +#: cfgrtl.c:2671 cfgrtl.c:2681 #, gcc-internal-format, gfc-internal-format msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" msgstr "" -#: cfgrtl.c:2687 +#: cfgrtl.c:2694 #, gcc-internal-format, gfc-internal-format msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" msgstr "" -#: cfgrtl.c:2697 +#: cfgrtl.c:2704 #, gcc-internal-format, gfc-internal-format msgid "in basic block %d:" msgstr "" -#: cfgrtl.c:2723 +#: cfgrtl.c:2730 #, gcc-internal-format, gfc-internal-format msgid "BB_RTL flag not set for block %d" msgstr "" -#: cfgrtl.c:2730 +#: cfgrtl.c:2737 #, gcc-internal-format, gfc-internal-format msgid "insn %d basic block pointer is %d, should be %d" msgstr "" -#: cfgrtl.c:2741 +#: cfgrtl.c:2748 #, gcc-internal-format, gfc-internal-format msgid "insn %d in header of bb %d has non-NULL basic block" msgstr "" -#: cfgrtl.c:2749 +#: cfgrtl.c:2756 #, gcc-internal-format, gfc-internal-format msgid "insn %d in footer of bb %d has non-NULL basic block" msgstr "" -#: cfgrtl.c:2822 cfgrtl.c:2870 +#: cfgrtl.c:2829 cfgrtl.c:2877 #, gcc-internal-format, gfc-internal-format msgid "insn %d outside of basic blocks has non-NULL bb field" msgstr "" -#: cfgrtl.c:2830 +#: cfgrtl.c:2837 #, gcc-internal-format, gfc-internal-format msgid "end insn %d for block %d not found in the insn stream" msgstr "" -#: cfgrtl.c:2843 +#: cfgrtl.c:2850 #, gcc-internal-format, gfc-internal-format msgid "insn %d is in multiple basic blocks (%d and %d)" msgstr "" -#: cfgrtl.c:2855 +#: cfgrtl.c:2862 #, gcc-internal-format, gfc-internal-format msgid "head insn %d for block %d not found in the insn stream" msgstr "" -#: cfgrtl.c:2903 +#: cfgrtl.c:2910 #, gcc-internal-format, gfc-internal-format msgid "missing barrier after block %i" msgstr "" -#: cfgrtl.c:2919 +#: cfgrtl.c:2926 #, gcc-internal-format, gfc-internal-format msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" msgstr "" -#: cfgrtl.c:2928 +#: cfgrtl.c:2935 #, gcc-internal-format, gfc-internal-format msgid "verify_flow_info: Incorrect fallthru %i->%i" msgstr "" -#: cfgrtl.c:2964 +#: cfgrtl.c:2971 #, gcc-internal-format msgid "basic blocks not laid down consecutively" msgstr "" -#: cfgrtl.c:3003 +#: cfgrtl.c:3010 #, gcc-internal-format, gfc-internal-format msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" msgstr "" -#: cgraph.c:3007 +#: cgraph.c:3026 #, gcc-internal-format msgid "caller edge count invalid" msgstr "" -#: cgraph.c:3091 +#: cgraph.c:3110 #, gcc-internal-format, gfc-internal-format msgid "aux field set for edge %s->%s" msgstr "" -#: cgraph.c:3098 +#: cgraph.c:3117 #, gcc-internal-format msgid "cgraph count invalid" msgstr "" -#: cgraph.c:3103 +#: cgraph.c:3122 #, gcc-internal-format msgid "inline clone in same comdat group list" msgstr "" -#: cgraph.c:3108 +#: cgraph.c:3127 #, gcc-internal-format msgid "local symbols must be defined" msgstr "" -#: cgraph.c:3113 +#: cgraph.c:3132 #, gcc-internal-format msgid "externally visible inline clone" msgstr "" -#: cgraph.c:3118 +#: cgraph.c:3137 #, gcc-internal-format msgid "inline clone with address taken" msgstr "" -#: cgraph.c:3123 +#: cgraph.c:3142 #, gcc-internal-format msgid "inline clone is forced to output" msgstr "" -#: cgraph.c:3130 +#: cgraph.c:3149 #, gcc-internal-format, gfc-internal-format msgid "aux field set for indirect edge from %s" msgstr "" -#: cgraph.c:3137 +#: cgraph.c:3156 #, gcc-internal-format, gfc-internal-format msgid "" "An indirect edge from %s is not marked as indirect or has associated " "indirect_info, the corresponding statement is: " msgstr "" -#: cgraph.c:3152 +#: cgraph.c:3171 #, gcc-internal-format, gfc-internal-format msgid "comdat-local function called by %s outside its comdat" msgstr "" -#: cgraph.c:3162 +#: cgraph.c:3181 #, gcc-internal-format msgid "inlined_to pointer is wrong" msgstr "" -#: cgraph.c:3167 +#: cgraph.c:3186 #, gcc-internal-format msgid "multiple inline callers" msgstr "" -#: cgraph.c:3174 +#: cgraph.c:3193 #, gcc-internal-format msgid "inlined_to pointer set for noninline callers" msgstr "" -#: cgraph.c:3194 +#: cgraph.c:3213 #, gcc-internal-format msgid "caller edge count does not match BB count" msgstr "" -#: cgraph.c:3216 +#: cgraph.c:3235 #, gcc-internal-format msgid "indirect call count does not match BB count" msgstr "" -#: cgraph.c:3227 +#: cgraph.c:3246 #, gcc-internal-format msgid "inlined_to pointer is set but no predecessors found" msgstr "" -#: cgraph.c:3232 +#: cgraph.c:3251 #, gcc-internal-format msgid "inlined_to pointer refers to itself" msgstr "" -#: cgraph.c:3244 +#: cgraph.c:3262 #, gcc-internal-format msgid "cgraph_node has wrong clone_of" msgstr "" -#: cgraph.c:3256 +#: cgraph.c:3275 #, gcc-internal-format msgid "cgraph_node has wrong clone list" msgstr "" -#: cgraph.c:3262 +#: cgraph.c:3281 #, gcc-internal-format msgid "cgraph_node is in clone list but it is not clone" msgstr "" -#: cgraph.c:3267 +#: cgraph.c:3286 #, gcc-internal-format msgid "cgraph_node has wrong prev_clone pointer" msgstr "" -#: cgraph.c:3272 +#: cgraph.c:3291 #, gcc-internal-format msgid "double linked list of clones corrupted" msgstr "" -#: cgraph.c:3284 +#: cgraph.c:3303 #, gcc-internal-format msgid "Alias has call edges" msgstr "" -#: cgraph.c:3290 +#: cgraph.c:3309 #, gcc-internal-format msgid "Alias has non-alias reference" msgstr "" -#: cgraph.c:3295 +#: cgraph.c:3314 #, gcc-internal-format msgid "Alias has more than one alias reference" msgstr "" -#: cgraph.c:3302 +#: cgraph.c:3321 #, gcc-internal-format msgid "Analyzed alias has no reference" msgstr "" -#: cgraph.c:3311 +#: cgraph.c:3330 #, gcc-internal-format msgid "No edge out of thunk node" msgstr "" -#: cgraph.c:3316 +#: cgraph.c:3335 #, gcc-internal-format msgid "More than one edge out of thunk node" msgstr "" -#: cgraph.c:3321 +#: cgraph.c:3340 #, gcc-internal-format msgid "Thunk is not supposed to have body" msgstr "" -#: cgraph.c:3357 +#: cgraph.c:3376 #, gcc-internal-format msgid "shared call_stmt:" msgstr "" -#: cgraph.c:3365 +#: cgraph.c:3384 #, gcc-internal-format msgid "edge points to wrong declaration:" msgstr "" -#: cgraph.c:3374 +#: cgraph.c:3393 #, gcc-internal-format msgid "" "an indirect edge with unknown callee corresponding to a call_stmt with a " "known declaration:" msgstr "" -#: cgraph.c:3384 +#: cgraph.c:3403 #, gcc-internal-format msgid "missing callgraph edge for call stmt:" msgstr "" -#: cgraph.c:3394 +#: cgraph.c:3413 #, gcc-internal-format msgid "reference to dead statement" msgstr "" -#: cgraph.c:3407 +#: cgraph.c:3426 #, gcc-internal-format, gfc-internal-format msgid "edge %s->%s has no corresponding call_stmt" msgstr "" -#: cgraph.c:3419 +#: cgraph.c:3438 #, gcc-internal-format, gfc-internal-format msgid "an indirect edge from %s has no corresponding call_stmt" msgstr "" -#: cgraph.c:3430 +#: cgraph.c:3449 #, gcc-internal-format msgid "verify_cgraph_node failed" msgstr "" -#: cgraph.c:3537 varpool.c:306 +#: cgraph.c:3556 varpool.c:304 #, gcc-internal-format, gfc-internal-format msgid "%s: section %s is missing" msgstr "" @@ -19061,12 +19088,12 @@ msgid "% attribute ignored because variable is initialized" msgstr "" #. include_self= -#: cgraphunit.c:976 c/c-decl.c:11483 +#: cgraphunit.c:976 c/c-decl.c:11487 #, gcc-internal-format msgid "%q+F used but never defined" msgstr "" -#: cgraphunit.c:978 c/c-decl.c:11492 +#: cgraphunit.c:978 c/c-decl.c:11497 #, gcc-internal-format msgid "%q+F declared % but never defined" msgstr "" @@ -19076,79 +19103,79 @@ msgstr "" msgid "%qD defined but not used" msgstr "" -#: cgraphunit.c:1345 +#: cgraphunit.c:1354 #, gcc-internal-format msgid "% resolver for %qD must return %qT" msgstr "" -#: cgraphunit.c:1348 cgraphunit.c:1371 +#: cgraphunit.c:1357 cgraphunit.c:1380 #, gcc-internal-format msgid "resolver indirect function declared here" msgstr "" -#: cgraphunit.c:1368 +#: cgraphunit.c:1377 #, gcc-internal-format msgid "% resolver for %qD should return %qT" msgstr "" -#: cgraphunit.c:1378 +#: cgraphunit.c:1387 #, gcc-internal-format msgid "%qD alias between functions of incompatible types %qT and %qT" msgstr "" -#: cgraphunit.c:1381 cgraphunit.c:1463 +#: cgraphunit.c:1390 cgraphunit.c:1472 #, gcc-internal-format msgid "aliased declaration here" msgstr "" -#: cgraphunit.c:1419 c-family/c-pragma.c:337 +#: cgraphunit.c:1428 c-family/c-pragma.c:337 #, gcc-internal-format msgid "%q+D aliased to undefined symbol %qE" msgstr "" -#: cgraphunit.c:1435 +#: cgraphunit.c:1444 #, gcc-internal-format msgid "%q+D aliased to external symbol %qE" msgstr "" -#: cgraphunit.c:1460 +#: cgraphunit.c:1469 #, gcc-internal-format msgid "%q+D alias between function and variable is not supported" msgstr "" -#: cgraphunit.c:1534 +#: cgraphunit.c:1543 #, gcc-internal-format msgid "failed to reclaim unneeded function" msgstr "" -#: cgraphunit.c:1562 +#: cgraphunit.c:1571 #, gcc-internal-format msgid "failed to reclaim unneeded function in same comdat group" msgstr "" -#: cgraphunit.c:1842 +#: cgraphunit.c:1846 #, gcc-internal-format msgid "generic thunk code fails for method %qD which uses %<...%>" msgstr "" -#: cgraphunit.c:2222 +#: cgraphunit.c:2225 #, gcc-internal-format msgid "size of return value of %q+D is %u bytes" msgstr "" -#: cgraphunit.c:2226 +#: cgraphunit.c:2229 #, gcc-internal-format msgid "size of return value of %q+D is larger than %wu bytes" msgstr "" -#: cgraphunit.c:2714 +#: cgraphunit.c:2717 #, gcc-internal-format msgid "nodes with unreleased memory found" msgstr "" #: collect-utils.c:68 #, gcc-internal-format -msgid "can't get program status: %m" +msgid "can%'t get program status: %m" msgstr "" #: collect-utils.c:82 @@ -19212,9 +19239,9 @@ msgstr "" msgid "LTO support has not been enabled in this configuration" msgstr "" -#: collect2.c:1399 +#: collect2.c:1399 graph.c:55 toplev.c:1669 objc/objc-act.c:461 #, gcc-internal-format -msgid "can't open %s: %m" +msgid "can%'t open %s: %m" msgstr "" #: collect2.c:1519 @@ -19244,7 +19271,7 @@ msgstr "" #: collect2.c:2473 #, gcc-internal-format -msgid "can't open nm output: %m" +msgid "can%'t open nm output: %m" msgstr "" #: collect2.c:2528 @@ -19264,7 +19291,7 @@ msgstr "" #: collect2.c:2642 #, gcc-internal-format -msgid "can't open ldd output: %m" +msgid "can%'t open ldd output: %m" msgstr "" #: collect2.c:2660 @@ -19297,55 +19324,55 @@ msgstr "" msgid "cannot convert to a pointer type" msgstr "" -#: convert.c:415 +#: convert.c:418 #, gcc-internal-format msgid "pointer value used where a floating point value was expected" msgstr "" -#: convert.c:419 +#: convert.c:422 #, gcc-internal-format msgid "aggregate value used where a float was expected" msgstr "" -#: convert.c:554 +#: convert.c:557 #, gcc-internal-format msgid "conversion to incomplete type" msgstr "" -#: convert.c:1019 +#: convert.c:1032 #, gcc-internal-format msgid "" "can%'t convert a vector of type %qT to type %qT which has different size" msgstr "" -#: convert.c:1027 +#: convert.c:1040 #, gcc-internal-format msgid "aggregate value used where an integer was expected" msgstr "" -#: convert.c:1115 +#: convert.c:1128 #, gcc-internal-format msgid "pointer value used where a complex was expected" msgstr "" -#: convert.c:1119 +#: convert.c:1132 #, gcc-internal-format msgid "aggregate value used where a complex was expected" msgstr "" -#: convert.c:1156 +#: convert.c:1169 #, gcc-internal-format msgid "" "can%'t convert a value of type %qT to vector type %qT which has different " "size" msgstr "" -#: convert.c:1164 +#: convert.c:1177 #, gcc-internal-format msgid "can%'t convert value to a vector" msgstr "" -#: convert.c:1203 +#: convert.c:1216 #, gcc-internal-format msgid "aggregate value used where a fixed-point was expected" msgstr "" @@ -19421,12 +19448,12 @@ msgid "" "of date" msgstr "" -#: coverage.c:672 +#: coverage.c:674 #, gcc-internal-format msgid "error writing %qs" msgstr "" -#: coverage.c:1262 +#: coverage.c:1264 #, gcc-internal-format, gfc-internal-format msgid "cannot open %s" msgstr "" @@ -19442,18 +19469,18 @@ msgid "bytecode stream: found non-null terminated string" msgstr "" #: dbgcnt.c:94 -#, gcc-internal-format, gfc-internal-format -msgid "-fdbg-cnt=%s:%d:%d has smaller upper limit than the lower" +#, gcc-internal-format +msgid "%<-fdbg-cnt=%s:%d:%d%> has smaller upper limit than the lower" msgstr "" #: dbgcnt.c:101 -#, gcc-internal-format, gfc-internal-format -msgid "Lower limit %d of -fdbg-cnt=%s must be a non-negative number" +#, gcc-internal-format +msgid "Lower limit %d of %<-fdbg-cnt=%s%> must be a non-negative number" msgstr "" #: dbgcnt.c:108 -#, gcc-internal-format, gfc-internal-format -msgid "Upper limit %d of -fdbg-cnt=%s must be a non-negative number" +#, gcc-internal-format +msgid "Upper limit %d of %<-fdbg-cnt=%s%> must be a non-negative number" msgstr "" #: dbgcnt.c:175 @@ -19462,8 +19489,8 @@ msgid "cannot find a valid counter:value pair:" msgstr "" #: dbgcnt.c:176 -#, gcc-internal-format, gfc-internal-format -msgid "-fdbg-cnt=%s" +#, gcc-internal-format +msgid "%<-fdbg-cnt=%s%>" msgstr "" #: dbgcnt.c:177 @@ -19528,12 +19555,12 @@ msgid "" "cfi_personality directive" msgstr "" -#: dwarf2out.c:10954 +#: dwarf2out.c:10987 #, gcc-internal-format -msgid "-gdwarf-6 is output as version 5 with incompatibilities" +msgid "%<-gdwarf-6%> is output as version 5 with incompatibilities" msgstr "" -#: dwarf2out.c:14465 +#: dwarf2out.c:14509 #, gcc-internal-format, gfc-internal-format msgid "non-delegitimized UNSPEC %s (%d) found in variable location" msgstr "" @@ -19563,57 +19590,57 @@ msgstr "" msgid "abort in %s, at %s:%d" msgstr "" -#: except.c:2152 +#: except.c:2156 #, gcc-internal-format msgid "argument of %<__builtin_eh_return_regno%> must be constant" msgstr "" -#: except.c:2287 +#: except.c:2291 #, gcc-internal-format -msgid "__builtin_eh_return not supported on this target" +msgid "%<__builtin_eh_return%> not supported on this target" msgstr "" -#: except.c:3411 except.c:3436 +#: except.c:3415 except.c:3440 #, gcc-internal-format, gfc-internal-format msgid "region_array is corrupted for region %i" msgstr "" -#: except.c:3424 except.c:3455 +#: except.c:3428 except.c:3459 #, gcc-internal-format, gfc-internal-format msgid "lp_array is corrupted for lp %i" msgstr "" -#: except.c:3441 +#: except.c:3445 #, gcc-internal-format, gfc-internal-format msgid "outer block of region %i is wrong" msgstr "" -#: except.c:3446 +#: except.c:3450 #, gcc-internal-format, gfc-internal-format msgid "negative nesting depth of region %i" msgstr "" -#: except.c:3460 +#: except.c:3464 #, gcc-internal-format, gfc-internal-format msgid "region of lp %i is wrong" msgstr "" -#: except.c:3487 +#: except.c:3491 #, gcc-internal-format, gfc-internal-format msgid "tree list ends on depth %i" msgstr "" -#: except.c:3492 +#: except.c:3496 #, gcc-internal-format msgid "region_array does not match region_tree" msgstr "" -#: except.c:3497 +#: except.c:3501 #, gcc-internal-format msgid "lp_array does not match region_tree" msgstr "" -#: except.c:3504 +#: except.c:3508 #, gcc-internal-format msgid "verify_eh_tree failed" msgstr "" @@ -19645,12 +19672,12 @@ msgid "" "truncated into %wu-bit" msgstr "" -#: expr.c:10982 +#: expr.c:11006 #, gcc-internal-format msgid "%Kcall to %qs declared with attribute error: %s" msgstr "" -#: expr.c:10996 +#: expr.c:11020 #, gcc-internal-format msgid "%Kcall to %qs declared with attribute warning: %s" msgstr "" @@ -19665,12 +19692,12 @@ msgstr "" msgid "the frame size of %wu bytes is larger than %wu bytes" msgstr "" -#: final.c:4810 toplev.c:1493 tree-cfgcleanup.c:1318 +#: final.c:4810 toplev.c:1493 tree-cfgcleanup.c:1464 #, gcc-internal-format msgid "could not open final insn dump file %qs: %m" msgstr "" -#: final.c:4879 tree-cfgcleanup.c:1335 +#: final.c:4879 tree-cfgcleanup.c:1481 #, gcc-internal-format msgid "could not close final insn dump file %qs: %m" msgstr "" @@ -19680,45 +19707,45 @@ msgstr "" msgid "large fixed-point constant implicitly truncated to fixed-point type" msgstr "" -#: fold-const.c:4198 fold-const.c:4208 +#: fold-const.c:4199 fold-const.c:4209 #, gcc-internal-format, gfc-internal-format msgid "comparison is always %d due to width of bit-field" msgstr "" -#: fold-const.c:5548 tree-ssa-reassoc.c:2379 tree-ssa-reassoc.c:3259 +#: fold-const.c:5552 tree-ssa-reassoc.c:2379 tree-ssa-reassoc.c:3259 #, gcc-internal-format msgid "assuming signed overflow does not occur when simplifying range test" msgstr "" -#: fold-const.c:6001 fold-const.c:6015 +#: fold-const.c:6005 fold-const.c:6019 #, gcc-internal-format, gfc-internal-format msgid "comparison is always %d" msgstr "" -#: fold-const.c:6159 +#: fold-const.c:6163 #, gcc-internal-format msgid "% of unmatched not-equal tests is always 1" msgstr "" -#: fold-const.c:6164 +#: fold-const.c:6168 #, gcc-internal-format msgid "% of mutually exclusive equal-tests is always 0" msgstr "" -#: fold-const.c:8395 +#: fold-const.c:8399 #, gcc-internal-format msgid "" "assuming signed overflow does not occur when reducing constant in comparison" msgstr "" -#: fold-const.c:8795 +#: fold-const.c:8799 #, gcc-internal-format msgid "" "assuming signed overflow does not occur when combining constants around a " "comparison" msgstr "" -#: fold-const.c:12099 +#: fold-const.c:12107 #, gcc-internal-format msgid "fold check: original tree changed by fold" msgstr "" @@ -19733,7 +19760,7 @@ msgstr "" msgid "total size of local objects exceeds maximum %wu" msgstr "" -#: function.c:1782 gimplify.c:6298 +#: function.c:1782 gimplify.c:6165 gimplify.c:6321 #, gcc-internal-format msgid "impossible constraint in %" msgstr "" @@ -19826,7 +19853,7 @@ msgstr "" #: gcc.c:3078 #, gcc-internal-format -msgid "-pipe not supported" +msgid "%<-pipe%> not supported" msgstr "" #: gcc.c:3218 gcc.c:6936 @@ -19855,7 +19882,7 @@ msgstr "" msgid "%s signal terminated program %s" msgstr "" -#: gcc.c:3772 opts-common.c:1319 opts-common.c:1351 opts-global.c:139 +#: gcc.c:3772 opts-common.c:1324 opts-common.c:1356 opts-global.c:139 #, gcc-internal-format msgid "unrecognized command line option %qs" msgstr "" @@ -19867,7 +19894,7 @@ msgstr "" #: gcc.c:4151 #, gcc-internal-format -msgid "%qs is an unknown -save-temps option" +msgid "%qs is an unknown %<-save-temps%> option" msgstr "" #: gcc.c:4624 toplev.c:878 @@ -19882,7 +19909,7 @@ msgstr "" #: gcc.c:4654 #, gcc-internal-format -msgid "-pipe ignored because -save-temps specified" +msgid "%<-pipe%> ignored because %<-save-temps%> specified" msgstr "" #: gcc.c:4742 @@ -19990,8 +20017,8 @@ msgid "%s: could not determine length of compare-debug file %s" msgstr "" #: gcc.c:7246 -#, gcc-internal-format, gfc-internal-format -msgid "%s: -fcompare-debug failure (length)" +#, gcc-internal-format +msgid "%s: %<-fcompare-debug%> failure (length)" msgstr "" #: gcc.c:7256 gcc.c:7297 @@ -20000,8 +20027,8 @@ msgid "%s: could not open compare-debug file %s" msgstr "" #: gcc.c:7276 gcc.c:7313 -#, gcc-internal-format, gfc-internal-format -msgid "%s: -fcompare-debug failure" +#, gcc-internal-format +msgid "%s: %<-fcompare-debug%> failure" msgstr "" #: gcc.c:7618 @@ -20036,130 +20063,130 @@ msgstr "" #: gcc.c:8089 #, gcc-internal-format -msgid "cannot specify -o with -c, -S or -E with multiple files" +msgid "cannot specify %<-o%> with %<-c%>, %<-S%> or %<-E%> with multiple files" msgstr "" -#: gcc.c:8130 +#: gcc.c:8131 #, gcc-internal-format, gfc-internal-format msgid "%s: %s compiler not installed on this system" msgstr "" -#: gcc.c:8155 +#: gcc.c:8156 #, gcc-internal-format -msgid "recompiling with -fcompare-debug" +msgid "recompiling with %<-fcompare-debug%>" msgstr "" -#: gcc.c:8171 +#: gcc.c:8172 #, gcc-internal-format -msgid "during -fcompare-debug recompilation" +msgid "during %<-fcompare-debug%> recompilation" msgstr "" -#: gcc.c:8180 +#: gcc.c:8181 #, gcc-internal-format msgid "comparing final insns dumps" msgstr "" -#: gcc.c:8297 -#, gcc-internal-format, gfc-internal-format -msgid "-fuse-linker-plugin, but %s not found" +#: gcc.c:8298 +#, gcc-internal-format +msgid "%<-fuse-linker-plugin%>, but %s not found" msgstr "" -#: gcc.c:8330 +#: gcc.c:8331 #, gcc-internal-format, gfc-internal-format msgid "%s: linker input file unused because linking not done" msgstr "" -#: gcc.c:8386 c-family/c-opts.c:770 +#: gcc.c:8387 c-family/c-opts.c:771 #, gcc-internal-format msgid "cannot use %<-%> as input filename for a precompiled header" msgstr "" -#: gcc.c:8392 +#: gcc.c:8393 #, gcc-internal-format, gfc-internal-format msgid "language %s not recognized" msgstr "" -#: gcc.c:8625 +#: gcc.c:8626 #, gcc-internal-format msgid "multilib spec %qs is invalid" msgstr "" -#: gcc.c:8827 +#: gcc.c:8828 #, gcc-internal-format msgid "multilib exclusions %qs is invalid" msgstr "" -#: gcc.c:8891 +#: gcc.c:8892 #, gcc-internal-format msgid "multilib select %qs %qs is invalid" msgstr "" -#: gcc.c:9053 +#: gcc.c:9054 #, gcc-internal-format msgid "multilib select %qs is invalid" msgstr "" -#: gcc.c:9093 +#: gcc.c:9094 #, gcc-internal-format msgid "multilib exclusion %qs is invalid" msgstr "" -#: gcc.c:9319 +#: gcc.c:9320 #, gcc-internal-format msgid "environment variable %qs not defined" msgstr "" -#: gcc.c:9459 gcc.c:9464 +#: gcc.c:9460 gcc.c:9465 #, gcc-internal-format msgid "invalid version number %qs" msgstr "" -#: gcc.c:9507 +#: gcc.c:9508 #, gcc-internal-format, gfc-internal-format msgid "too few arguments to %%:version-compare" msgstr "" -#: gcc.c:9513 +#: gcc.c:9514 #, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:version-compare" msgstr "" -#: gcc.c:9555 +#: gcc.c:9556 #, gcc-internal-format msgid "unknown operator %qs in %%:version-compare" msgstr "" -#: gcc.c:9679 +#: gcc.c:9680 #, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:compare-debug-dump-opt" msgstr "" -#: gcc.c:9752 +#: gcc.c:9753 #, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:compare-debug-self-opt" msgstr "" -#: gcc.c:9788 +#: gcc.c:9789 #, gcc-internal-format, gfc-internal-format msgid "too few arguments to %%:compare-debug-auxbase-opt" msgstr "" -#: gcc.c:9792 +#: gcc.c:9793 #, gcc-internal-format, gfc-internal-format msgid "too many arguments to %%:compare-debug-auxbase-opt" msgstr "" -#: gcc.c:9799 +#: gcc.c:9800 #, gcc-internal-format, gfc-internal-format msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk" msgstr "" -#: gcc.c:9873 +#: gcc.c:9874 #, gcc-internal-format, gfc-internal-format msgid "too few arguments to %%:replace-extension" msgstr "" -#: gcc.c:9926 +#: gcc.c:9927 #, gcc-internal-format, gfc-internal-format msgid "wrong number of arguments to %%:debug-level-gt" msgstr "" @@ -20293,29 +20320,29 @@ msgstr "" msgid "can%'t write PCH file" msgstr "" -#: gimple-fold.c:1783 gimple-fold.c:2784 +#: gimple-fold.c:1786 gimple-fold.c:2787 #, gcc-internal-format msgid "%qD source argument is the same as destination" msgstr "" -#: gimple-fold.c:1849 +#: gimple-fold.c:1852 msgid "" "%G%qD destination unchanged after copying no bytes from a string of length %E" msgstr "" -#: gimple-fold.c:1854 +#: gimple-fold.c:1857 msgid "%G%qD destination unchanged after copying no bytes" msgstr "" -#: gimple-fold.c:2222 tree-ssa-strlen.c:2158 +#: gimple-fold.c:2225 tree-ssa-strlen.c:2181 msgid "%G%qD specified bound %E equals destination size" msgstr "" -#: gimple-fold.c:2224 +#: gimple-fold.c:2227 msgid "%G%qD specified bound %E exceeds destination size %wu" msgstr "" -#: gimple-fold.c:2242 +#: gimple-fold.c:2245 msgid "%G%qD specified bound %E equals source length" msgstr "" @@ -20329,13 +20356,13 @@ msgstr "" msgid "null pointer dereference" msgstr "" -#: gimple-ssa-isolate-paths.c:431 gimple-ssa-isolate-paths.c:556 tree.c:13157 -#: tree.c:13194 c/c-typeck.c:2915 c/c-typeck.c:3001 c/c-typeck.c:10547 -#: c/c-typeck.c:10564 c/gimple-parser.c:1725 c/gimple-parser.c:1733 -#: cp/call.c:6645 cp/call.c:8351 cp/constexpr.c:838 cp/constexpr.c:2424 -#: cp/cvt.c:1038 cp/cvt.c:1067 cp/decl.c:7397 cp/decl2.c:5403 cp/pt.c:8369 -#: cp/semantics.c:1850 cp/semantics.c:4116 cp/typeck.c:1701 cp/typeck.c:1898 -#: cp/typeck.c:3933 cp/typeck.c:9285 +#: gimple-ssa-isolate-paths.c:431 gimple-ssa-isolate-paths.c:556 tree.c:13222 +#: tree.c:13259 c/c-typeck.c:2915 c/c-typeck.c:3001 c/c-typeck.c:10545 +#: c/c-typeck.c:10562 c/gimple-parser.c:2041 c/gimple-parser.c:2049 +#: cp/call.c:6718 cp/call.c:8451 cp/constexpr.c:839 cp/constexpr.c:2464 +#: cp/cvt.c:1038 cp/cvt.c:1067 cp/decl.c:7410 cp/decl2.c:5422 cp/pt.c:8401 +#: cp/semantics.c:1857 cp/semantics.c:4159 cp/typeck.c:1701 cp/typeck.c:1898 +#: cp/typeck.c:3940 cp/typeck.c:9298 #, gcc-internal-format msgid "declared here" msgstr "" @@ -20345,34 +20372,34 @@ msgstr "" msgid "nonnull argument %qD compared to NULL" msgstr "" -#: gimple-ssa-sprintf.c:2477 gimple-ssa-sprintf.c:2597 +#: gimple-ssa-sprintf.c:2502 gimple-ssa-sprintf.c:2622 #, gcc-internal-format msgid "%qE output may be truncated before the last format character" msgstr "" -#: gimple-ssa-sprintf.c:2479 gimple-ssa-sprintf.c:2599 +#: gimple-ssa-sprintf.c:2504 gimple-ssa-sprintf.c:2624 #, gcc-internal-format msgid "%qE output truncated before the last format character" msgstr "" -#: gimple-ssa-sprintf.c:2482 gimple-ssa-sprintf.c:2602 +#: gimple-ssa-sprintf.c:2507 gimple-ssa-sprintf.c:2627 #, gcc-internal-format msgid "%qE may write a terminating nul past the end of the destination" msgstr "" -#: gimple-ssa-sprintf.c:2484 gimple-ssa-sprintf.c:2604 +#: gimple-ssa-sprintf.c:2509 gimple-ssa-sprintf.c:2629 #, gcc-internal-format msgid "%qE writing a terminating nul past the end of the destination" msgstr "" -#: gimple-ssa-sprintf.c:2494 +#: gimple-ssa-sprintf.c:2519 #, gcc-internal-format msgid "%<%.*s%> directive writing %wu byte into a region of size %wu" msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2501 +#: gimple-ssa-sprintf.c:2526 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing %wu byte into a region of " @@ -20383,7 +20410,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2508 +#: gimple-ssa-sprintf.c:2533 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing %wu byte into a region of size " @@ -20394,86 +20421,86 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2519 +#: gimple-ssa-sprintf.c:2544 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing up to %wu bytes into a " "region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2522 +#: gimple-ssa-sprintf.c:2547 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing up to %wu bytes into a region of " "size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2524 +#: gimple-ssa-sprintf.c:2549 #, gcc-internal-format msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2536 +#: gimple-ssa-sprintf.c:2561 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing likely %wu or more bytes " "into a region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2539 +#: gimple-ssa-sprintf.c:2564 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing likely %wu or more bytes into a " "region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2542 +#: gimple-ssa-sprintf.c:2567 #, gcc-internal-format msgid "" "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2551 +#: gimple-ssa-sprintf.c:2576 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes " "into a region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2554 +#: gimple-ssa-sprintf.c:2579 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a " "region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2557 +#: gimple-ssa-sprintf.c:2582 #, gcc-internal-format msgid "" "%<%.*s%> directive writing between %wu and %wu bytes into a region of size " "%wu" msgstr "" -#: gimple-ssa-sprintf.c:2566 +#: gimple-ssa-sprintf.c:2591 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing %wu or more bytes into a " "region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2569 +#: gimple-ssa-sprintf.c:2594 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing %wu or more bytes into a region " "of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2571 +#: gimple-ssa-sprintf.c:2596 #, gcc-internal-format msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2613 +#: gimple-ssa-sprintf.c:2638 #, gcc-internal-format msgid "" "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu" @@ -20483,7 +20510,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2620 +#: gimple-ssa-sprintf.c:2645 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing %wu byte into a region of " @@ -20494,7 +20521,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2628 +#: gimple-ssa-sprintf.c:2653 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing %wu byte into a region of size " @@ -20505,222 +20532,257 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2640 +#: gimple-ssa-sprintf.c:2665 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing up to %wu bytes into a " "region of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2643 +#: gimple-ssa-sprintf.c:2668 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing up to %wu bytes into a region of " "size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2646 +#: gimple-ssa-sprintf.c:2671 #, gcc-internal-format msgid "" "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu " "and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2659 +#: gimple-ssa-sprintf.c:2684 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing likely %wu or more bytes " "into a region of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2662 +#: gimple-ssa-sprintf.c:2687 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing likely %wu or more bytes into a " "region of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2665 +#: gimple-ssa-sprintf.c:2690 #, gcc-internal-format msgid "" "%<%.*s%> directive writing likely %wu or more bytes into a region of size " "between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2675 +#: gimple-ssa-sprintf.c:2700 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes " "into a region of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2678 +#: gimple-ssa-sprintf.c:2703 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a " "region of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2681 +#: gimple-ssa-sprintf.c:2706 #, gcc-internal-format msgid "" "%<%.*s%> directive writing between %wu and %wu bytes into a region of size " "between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2690 +#: gimple-ssa-sprintf.c:2715 #, gcc-internal-format msgid "" "%<%.*s%> directive output may be truncated writing %wu or more bytes into a " "region of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2693 +#: gimple-ssa-sprintf.c:2718 #, gcc-internal-format msgid "" "%<%.*s%> directive output truncated writing %wu or more bytes into a region " "of size between %wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2696 +#: gimple-ssa-sprintf.c:2721 #, gcc-internal-format msgid "" "%<%.*s%> directive writing %wu or more bytes into a region of size between " "%wu and %wu" msgstr "" -#: gimple-ssa-sprintf.c:2785 +#: gimple-ssa-sprintf.c:2810 msgid "%G%<%.*s%> directive argument is null" msgstr "" -#: gimple-ssa-sprintf.c:2854 +#: gimple-ssa-sprintf.c:2883 #, gcc-internal-format msgid "" "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095" msgstr "" -#: gimple-ssa-sprintf.c:2861 +#: gimple-ssa-sprintf.c:2889 +#, gcc-internal-format +msgid "" +"%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required " +"size of 4095" +msgstr "" + +#: gimple-ssa-sprintf.c:2896 #, gcc-internal-format msgid "" "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum " "required size of 4095" msgstr "" -#: gimple-ssa-sprintf.c:2864 +#: gimple-ssa-sprintf.c:2926 #, gcc-internal-format -msgid "" -"%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required " -"size of 4095" +msgid "%<%.*s%> directive output of %wu bytes exceeds %" +msgstr "" + +#: gimple-ssa-sprintf.c:2932 +#, gcc-internal-format +msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %" msgstr "" -#: gimple-ssa-sprintf.c:2893 +#: gimple-ssa-sprintf.c:2943 #, gcc-internal-format msgid "" "%<%.*s%> directive output of %wu bytes causes result to exceed %" msgstr "" -#: gimple-ssa-sprintf.c:2900 +#: gimple-ssa-sprintf.c:2949 #, gcc-internal-format msgid "" "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed " "%" msgstr "" -#: gimple-ssa-sprintf.c:2903 +#: gimple-ssa-sprintf.c:2960 #, gcc-internal-format msgid "" "%<%.*s%> directive output between %wu and %wu bytes may cause result to " "exceed %" msgstr "" -#: gimple-ssa-sprintf.c:2913 +#: gimple-ssa-sprintf.c:2970 #, gcc-internal-format msgid "%<%.*s%> directive argument is not a nul-terminated string" msgstr "" -#: gimple-ssa-sprintf.c:2926 +#: gimple-ssa-sprintf.c:2983 #, gcc-internal-format msgid "assuming directive output of %wu byte" msgid_plural "assuming directive output of %wu bytes" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-sprintf.c:2933 +#: gimple-ssa-sprintf.c:2990 #, gcc-internal-format msgid "directive argument %qE" msgstr "" -#: gimple-ssa-sprintf.c:2935 +#: gimple-ssa-sprintf.c:2992 #, gcc-internal-format msgid "directive argument in the range [%E, %E]" msgstr "" -#: gimple-ssa-sprintf.c:2939 +#: gimple-ssa-sprintf.c:2996 #, gcc-internal-format msgid "using the range [%E, %E] for directive argument" msgstr "" -#: gimple-ssa-sprintf.c:2959 +#: gimple-ssa-sprintf.c:3017 #, gcc-internal-format msgid "%qE output %wu byte into a destination of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2960 +#: gimple-ssa-sprintf.c:3018 #, gcc-internal-format msgid "%qE output %wu bytes into a destination of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2964 +#: gimple-ssa-sprintf.c:3023 #, gcc-internal-format msgid "%qE output between %wu and %wu bytes into a destination of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2969 +#: gimple-ssa-sprintf.c:3028 #, gcc-internal-format msgid "" "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:2974 +#: gimple-ssa-sprintf.c:3033 #, gcc-internal-format msgid "%qE output %wu or more bytes into a destination of size %wu" msgstr "" -#: gimple-ssa-sprintf.c:3348 +#: gimple-ssa-sprintf.c:3045 +#, gcc-internal-format +msgid "%qE output %wu byte" +msgstr "" + +#: gimple-ssa-sprintf.c:3046 +#, gcc-internal-format +msgid "%qE output %wu bytes" +msgstr "" + +#: gimple-ssa-sprintf.c:3050 +#, gcc-internal-format +msgid "%qE output between %wu and %wu bytes" +msgstr "" + +#: gimple-ssa-sprintf.c:3054 +#, gcc-internal-format +msgid "%qE output %wu or more bytes (assuming %wu)" +msgstr "" + +#: gimple-ssa-sprintf.c:3058 +#, gcc-internal-format +msgid "%qE output %wu or more bytes" +msgstr "" + +#: gimple-ssa-sprintf.c:3433 #, gcc-internal-format msgid "%<%.*s%> directive width out of range" msgstr "" -#: gimple-ssa-sprintf.c:3382 +#: gimple-ssa-sprintf.c:3467 #, gcc-internal-format msgid "%<%.*s%> directive precision out of range" msgstr "" -#: gimple-ssa-sprintf.c:4006 +#: gimple-ssa-sprintf.c:4096 #, gcc-internal-format msgid "specified bound %wu exceeds maximum object size %wu" msgstr "" -#: gimple-ssa-sprintf.c:4017 +#: gimple-ssa-sprintf.c:4107 #, gcc-internal-format msgid "specified bound %wu exceeds %" msgstr "" -#: gimple-ssa-sprintf.c:4038 +#: gimple-ssa-sprintf.c:4128 #, gcc-internal-format msgid "specified bound range [%wu, %wu] exceeds %" msgstr "" -#: gimple-ssa-sprintf.c:4089 +#: gimple-ssa-sprintf.c:4179 msgid "%Gnull destination pointer" msgstr "" -#: gimple-ssa-sprintf.c:4107 +#: gimple-ssa-sprintf.c:4197 #, gcc-internal-format msgid "specified bound %wu exceeds the size %wu of the destination object" msgstr "" -#: gimple-ssa-sprintf.c:4119 +#: gimple-ssa-sprintf.c:4209 msgid "%Gnull format string" msgstr "" @@ -20807,28 +20869,28 @@ msgstr "" msgid "argument to % is zero" msgstr "" -#: gimple-ssa-warn-restrict.c:1391 +#: gimple-ssa-warn-restrict.c:1433 msgid "" "%G%qD accessing %wu byte at offsets %s and %s overlaps %wu byte at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1393 +#: gimple-ssa-warn-restrict.c:1435 msgid "" "%G%qD accessing %wu byte at offsets %s and %s overlaps %wu bytes at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1397 +#: gimple-ssa-warn-restrict.c:1439 msgid "" "%G%qD accessing %wu bytes at offsets %s and %s overlaps %wu byte at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1399 +#: gimple-ssa-warn-restrict.c:1441 msgid "" "%G%qD accessing %wu bytes at offsets %s and %s overlaps %wu bytes at offset " "%s" msgstr "" -#: gimple-ssa-warn-restrict.c:1406 +#: gimple-ssa-warn-restrict.c:1448 msgid "" "%G%qD accessing %wu byte at offsets %s and %s overlaps between %wu and %wu " "bytes at offset %s" @@ -20838,7 +20900,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1416 +#: gimple-ssa-warn-restrict.c:1458 msgid "" "%G%qD accessing %wu byte at offsets %s and %s overlaps %wu or more bytes at " "offset %s" @@ -20848,7 +20910,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1429 +#: gimple-ssa-warn-restrict.c:1471 msgid "" "%G%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu " "byte at offset %s" @@ -20858,19 +20920,19 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1439 +#: gimple-ssa-warn-restrict.c:1481 msgid "" "%G%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps " "between %wu and %wu bytes at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1447 +#: gimple-ssa-warn-restrict.c:1489 msgid "" "%G%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu " "or more bytes at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1460 +#: gimple-ssa-warn-restrict.c:1502 msgid "" "%G%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu byte at " "offset %s" @@ -20880,25 +20942,25 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1468 +#: gimple-ssa-warn-restrict.c:1510 msgid "" "%G%qD accessing %wu or more bytes at offsets %s and %s overlaps between %wu " "and %wu bytes at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1475 +#: gimple-ssa-warn-restrict.c:1517 msgid "" "%G%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu or more " "bytes at offset %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1503 +#: gimple-ssa-warn-restrict.c:1545 msgid "%G%qD accessing %wu byte may overlap %wu byte" msgid_plural "%G%qD accessing %wu bytes may overlap %wu byte" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1510 +#: gimple-ssa-warn-restrict.c:1552 msgid "" "%G%qD accessing %wu byte at offsets %s and %s may overlap %wu byte at offset " "%s" @@ -20908,13 +20970,13 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1521 +#: gimple-ssa-warn-restrict.c:1563 msgid "%G%qD accessing %wu byte may overlap up to %wu bytes" msgid_plural "%G%qD accessing %wu bytes may overlap up to %wu bytes" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1528 +#: gimple-ssa-warn-restrict.c:1570 msgid "" "%G%qD accessing %wu byte at offsets %s and %s may overlap up to %wu bytes at " "offset %s" @@ -20924,14 +20986,14 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1541 +#: gimple-ssa-warn-restrict.c:1583 msgid "%G%qD accessing between %wu and %wu bytes may overlap %wu byte" msgid_plural "" "%G%qD accessing between %wu and %wu bytes may overlap up to %wu bytes" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1548 +#: gimple-ssa-warn-restrict.c:1590 msgid "" "%G%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap " "%wu byte at offset %s" @@ -20941,7 +21003,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1560 +#: gimple-ssa-warn-restrict.c:1602 msgid "" "%G%qD accessing %wu or more bytes at offsets %s and %s may overlap %wu byte " "at offset %s" @@ -20951,77 +21013,86 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: gimple-ssa-warn-restrict.c:1632 +#: gimple-ssa-warn-restrict.c:1648 +msgid "%G%qD specified bound %wu exceeds maximum object size %wu" +msgstr "" + +#: gimple-ssa-warn-restrict.c:1654 +msgid "" +"%G%qD specified bound between %wu and %wu exceeds maximum object size %wu" +msgstr "" + +#: gimple-ssa-warn-restrict.c:1713 msgid "" "%G%qD pointer overflow between offset %s and size %s accessing array %qD " "with type %qT" msgstr "" -#: gimple-ssa-warn-restrict.c:1637 +#: gimple-ssa-warn-restrict.c:1718 #, gcc-internal-format msgid "array %qD declared here" msgstr "" -#: gimple-ssa-warn-restrict.c:1642 gimple-ssa-warn-restrict.c:1648 +#: gimple-ssa-warn-restrict.c:1723 gimple-ssa-warn-restrict.c:1729 msgid "%G%qD pointer overflow between offset %s and size %s" msgstr "" -#: gimple-ssa-warn-restrict.c:1667 +#: gimple-ssa-warn-restrict.c:1746 msgid "" "%G%qD forming offset %s is out of the bounds [0, %wu] of object %qD with " "type %qT" msgstr "" -#: gimple-ssa-warn-restrict.c:1670 +#: gimple-ssa-warn-restrict.c:1749 msgid "" "%G%qD offset %s is out of the bounds [0, %wu] of object %qD with type %qT" msgstr "" -#: gimple-ssa-warn-restrict.c:1676 +#: gimple-ssa-warn-restrict.c:1755 msgid "" "%G%qD forming offset %s is out of the bounds of object %qD with type %qT" msgstr "" -#: gimple-ssa-warn-restrict.c:1678 +#: gimple-ssa-warn-restrict.c:1757 msgid "%G%qD offset %s is out of the bounds of object %qD with type %qT" msgstr "" -#: gimple-ssa-warn-restrict.c:1684 c/c-decl.c:3768 c/c-decl.c:4041 -#: c/c-typeck.c:8690 cp/class.c:1346 cp/class.c:3107 cp/decl.c:3954 -#: cp/decl.c:10908 cp/decl.c:11344 cp/decl.c:11353 cp/friend.c:386 +#: gimple-ssa-warn-restrict.c:1763 c/c-decl.c:3768 c/c-decl.c:4041 +#: c/c-typeck.c:8688 cp/class.c:1343 cp/class.c:3104 cp/decl.c:3956 +#: cp/decl.c:10939 cp/decl.c:11375 cp/decl.c:11384 cp/friend.c:386 #: cp/friend.c:396 cp/parser.c:3292 cp/parser.c:3424 cp/parser.c:3475 -#: cp/parser.c:6440 cp/parser.c:21776 +#: cp/parser.c:6450 cp/parser.c:21870 #, gcc-internal-format msgid "%qD declared here" msgstr "" -#: gimple-ssa-warn-restrict.c:1691 +#: gimple-ssa-warn-restrict.c:1770 msgid "%G%qD forming offset %s is out of the bounds [0, %wu]" msgstr "" -#: gimple-ssa-warn-restrict.c:1693 +#: gimple-ssa-warn-restrict.c:1772 msgid "%G%qD offset %s is out of the bounds [0, %wu]" msgstr "" -#: gimple-ssa-warn-restrict.c:1699 +#: gimple-ssa-warn-restrict.c:1778 msgid "%G%qD forming offset %s is out of bounds" msgstr "" -#: gimple-ssa-warn-restrict.c:1700 +#: gimple-ssa-warn-restrict.c:1779 msgid "%G%qD offset %s is out of bounds" msgstr "" -#: gimple-ssa-warn-restrict.c:1711 +#: gimple-ssa-warn-restrict.c:1790 msgid "%G%qD offset %s from the object at %qE is out of the bounds of %qT" msgstr "" -#: gimple-ssa-warn-restrict.c:1720 +#: gimple-ssa-warn-restrict.c:1799 msgid "" "%G%qD offset %s from the object at %qE is out of the bounds of referenced " "subobject %qD with type %qT at offset %wu" msgstr "" -#: gimple-ssa-warn-restrict.c:1883 +#: gimple-ssa-warn-restrict.c:1976 msgid "%G%qD source argument is the same as destination" msgstr "" @@ -21050,277 +21121,286 @@ msgstr "" msgid "here" msgstr "" -#: gimplify.c:2334 +#. We've found [[fallthrough]]; at the end of a switch, which the C++ +#. standard says is ill-formed; see [dcl.attr.fallthrough]. +#: gimplify.c:2337 gimplify.c:2360 #, gcc-internal-format msgid "attribute % not preceding a case label or default label" msgstr "" -#: gimplify.c:3415 +#: gimplify.c:3425 #, gcc-internal-format msgid "using result of function returning %" msgstr "" -#: gimplify.c:6156 +#: gimplify.c:6166 +#, gcc-internal-format, gfc-internal-format +msgid "non-memory output %d must stay in memory" +msgstr "" + +#: gimplify.c:6179 #, gcc-internal-format, gfc-internal-format msgid "invalid lvalue in asm output %d" msgstr "" -#: gimplify.c:6299 +#: gimplify.c:6322 #, gcc-internal-format, gfc-internal-format msgid "non-memory input %d must stay in memory" msgstr "" -#: gimplify.c:6339 gimplify.c:6348 +#: gimplify.c:6362 gimplify.c:6371 #, gcc-internal-format, gfc-internal-format msgid "memory input %d is not directly addressable" msgstr "" -#: gimplify.c:6956 +#: gimplify.c:6979 #, gcc-internal-format msgid "threadprivate variable %qE used in target region" msgstr "" -#: gimplify.c:6958 +#: gimplify.c:6981 #, gcc-internal-format msgid "enclosing target region" msgstr "" -#: gimplify.c:6970 +#: gimplify.c:6993 #, gcc-internal-format msgid "threadprivate variable %qE used in untied task" msgstr "" -#: gimplify.c:6972 +#: gimplify.c:6995 #, gcc-internal-format msgid "enclosing task" msgstr "" -#: gimplify.c:7046 +#: gimplify.c:7069 #, gcc-internal-format msgid "%qE not specified in enclosing %qs" msgstr "" -#: gimplify.c:7048 +#: gimplify.c:7071 #, gcc-internal-format msgid "enclosing %qs" msgstr "" -#: gimplify.c:7173 +#: gimplify.c:7196 #, gcc-internal-format msgid "%qE not specified in enclosing OpenACC %qs construct" msgstr "" -#: gimplify.c:7175 +#: gimplify.c:7198 #, gcc-internal-format msgid "enclosing OpenACC %qs construct" msgstr "" -#: gimplify.c:7228 +#: gimplify.c:7251 #, gcc-internal-format msgid "%qE with % clause used in % function" msgstr "" -#: gimplify.c:7236 +#: gimplify.c:7259 #, gcc-internal-format msgid "%qE requires a % directive for use in a % function" msgstr "" -#: gimplify.c:7284 +#: gimplify.c:7307 #, gcc-internal-format msgid "%qE not specified in enclosing %" msgstr "" -#: gimplify.c:7286 +#: gimplify.c:7309 #, gcc-internal-format msgid "enclosing %" msgstr "" -#: gimplify.c:7316 gimplify.c:8423 +#: gimplify.c:7339 gimplify.c:8446 #, gcc-internal-format msgid "variable %qE declared in enclosing % region" msgstr "" -#: gimplify.c:7337 +#: gimplify.c:7360 #, gcc-internal-format msgid "%qD referenced in target region does not have a mappable type" msgstr "" -#: gimplify.c:7456 +#: gimplify.c:7479 #, gcc-internal-format msgid "iteration variable %qE is predetermined linear" msgstr "" -#: gimplify.c:7459 +#: gimplify.c:7482 #, gcc-internal-format msgid "iteration variable %qE should be private" msgstr "" -#: gimplify.c:7473 +#: gimplify.c:7496 #, gcc-internal-format msgid "iteration variable %qE should not be firstprivate" msgstr "" -#: gimplify.c:7476 +#: gimplify.c:7499 #, gcc-internal-format msgid "iteration variable %qE should not be reduction" msgstr "" -#: gimplify.c:7479 +#: gimplify.c:7502 #, gcc-internal-format msgid "iteration variable %qE should not be linear" msgstr "" -#: gimplify.c:8086 +#: gimplify.c:8109 #, gcc-internal-format msgid "conditional % clause on % construct" msgstr "" -#: gimplify.c:8092 +#: gimplify.c:8115 #, gcc-internal-format msgid "conditional % clause on % construct" msgstr "" -#: gimplify.c:8108 +#: gimplify.c:8131 #, gcc-internal-format msgid "non-scalar variable %qD in conditional % clause" msgstr "" -#: gimplify.c:8114 +#: gimplify.c:8137 #, gcc-internal-format msgid "% modifier on % clause not supported yet" msgstr "" -#: gimplify.c:8199 +#: gimplify.c:8222 #, gcc-internal-format msgid "% reduction modifier on a construct with a % clause" msgstr "" -#: gimplify.c:8207 +#: gimplify.c:8230 #, gcc-internal-format msgid "" "invalid % reduction modifier on construct other than %, " "% or %" msgstr "" -#: gimplify.c:8292 +#: gimplify.c:8315 #, gcc-internal-format msgid "" "% clause for variable other than loop iterator specified on " "construct combined with %" msgstr "" -#: gimplify.c:8500 +#: gimplify.c:8523 #, gcc-internal-format msgid "mapping field %qE of variable length structure" msgstr "" -#: gimplify.c:8711 +#: gimplify.c:8734 #, gcc-internal-format msgid "%qE appears more than once in map clauses" msgstr "" -#: gimplify.c:9025 +#: gimplify.c:9048 #, gcc-internal-format msgid "" "copyprivate variable %qE is not threadprivate or private in outer context" msgstr "" -#: gimplify.c:9070 +#: gimplify.c:9093 #, gcc-internal-format msgid "%s variable %qE is private in outer context" msgstr "" -#: gimplify.c:9098 +#: gimplify.c:9121 #, gcc-internal-format msgid "expected %qs % clause modifier rather than %qs" msgstr "" -#: gimplify.c:9441 +#: gimplify.c:9464 #, gcc-internal-format msgid "%<_Atomic%> %qD in implicit % clause" msgstr "" -#: gimplify.c:9474 +#: gimplify.c:9497 #, gcc-internal-format msgid "" "%<_Atomic%> %qD in implicit % clause on % construct" msgstr "" -#: gimplify.c:9674 +#: gimplify.c:9697 #, gcc-internal-format msgid "%<_Atomic%> %qD in % clause on % construct" msgstr "" -#: gimplify.c:9725 +#: gimplify.c:9748 #, gcc-internal-format msgid "" "same variable used in % and % clauses on " "% construct" msgstr "" -#: gimplify.c:9813 +#: gimplify.c:9836 #, gcc-internal-format msgid "" "incompatible data clause with reduction on %qE; promoting to present_or_copy" msgstr "" -#: gimplify.c:9962 +#: gimplify.c:9985 #, gcc-internal-format msgid "invalid private reduction on %qE" msgstr "" -#: gimplify.c:10236 +#: gimplify.c:10259 #, gcc-internal-format msgid "% kind in % clause on a % construct" msgstr "" -#: gimplify.c:12107 omp-low.c:2925 +#: gimplify.c:12130 omp-low.c:2925 #, gcc-internal-format msgid "" "% construct with % clause must be closely nested inside a " "loop with % clause with a parameter" msgstr "" -#: gimplify.c:12125 +#: gimplify.c:12148 #, gcc-internal-format msgid "variable %qE is not an iteration of outermost loop %d, expected %qE" msgstr "" -#: gimplify.c:12138 +#: gimplify.c:12161 #, gcc-internal-format msgid "" -"number of variables in % clause does not match number of " -"iteration variables" +"number of variables in % clause with % modifier does not " +"match number of iteration variables" msgstr "" -#: gimplify.c:12151 +#: gimplify.c:12174 #, gcc-internal-format -msgid "more than one % clause on an % construct" +msgid "" +"more than one % clause with % modifier on an % " +"construct" msgstr "" -#: gimplify.c:12162 +#: gimplify.c:12185 #, gcc-internal-format msgid "" -"% clause specified together with % clauses " -"on the same construct" +"% clause with % modifier specified together with % clauses with % modifier on the same construct" msgstr "" -#: gimplify.c:13410 +#: gimplify.c:13434 #, gcc-internal-format msgid "gimplification failed" msgstr "" -#: gimplify.c:13931 +#: gimplify.c:13955 #, gcc-internal-format msgid "%qT is promoted to %qT when passed through %<...%>" msgstr "" -#: gimplify.c:13936 +#: gimplify.c:13960 #, gcc-internal-format msgid "(so you should pass %qT not %qT to %)" msgstr "" -#: gimplify.c:13943 +#: gimplify.c:13967 #, gcc-internal-format msgid "if this code is reached, the program will abort" msgstr "" @@ -21335,12 +21415,7 @@ msgstr "" msgid "could not open Go dump file %qs: %m" msgstr "" -#: graph.c:55 toplev.c:1668 objc/objc-act.c:461 -#, gcc-internal-format -msgid "can%'t open %s: %m" -msgstr "" - -#: graphite.c:464 +#: graphite.c:526 #, gcc-internal-format msgid "Graphite loop optimizations cannot be used (isl is not available)." msgstr "" @@ -21406,7 +21481,7 @@ msgstr "" msgid "invalid use of attribute %" msgstr "" -#: ipa-devirt.c:762 ipa-devirt.c:919 +#: ipa-devirt.c:762 ipa-devirt.c:847 ipa-devirt.c:918 #, gcc-internal-format msgid "virtual table of type %qD violates one definition rule" msgstr "" @@ -21433,247 +21508,247 @@ msgstr "" msgid "RTTI will not work on this type" msgstr "" -#: ipa-devirt.c:848 ipa-devirt.c:877 ipa-devirt.c:950 -#, gcc-internal-format -msgid "virtual table of type %qD violates one definition rule " -msgstr "" - -#: ipa-devirt.c:854 +#: ipa-devirt.c:853 #, gcc-internal-format msgid "" "the conflicting type defined in another translation unit has virtual table " "of different size" msgstr "" -#: ipa-devirt.c:883 +#: ipa-devirt.c:876 ipa-devirt.c:949 +#, gcc-internal-format +msgid "virtual table of type %qD violates one definition rule " +msgstr "" + +#: ipa-devirt.c:882 #, gcc-internal-format msgid "" "the conflicting type defined in another translation unit with different RTTI " "information" msgstr "" -#: ipa-devirt.c:927 ipa-devirt.c:958 +#: ipa-devirt.c:926 ipa-devirt.c:957 #, gcc-internal-format msgid "the conflicting type defined in another translation unit" msgstr "" -#: ipa-devirt.c:931 +#: ipa-devirt.c:930 #, gcc-internal-format msgid "contains additional virtual method %qD" msgstr "" -#: ipa-devirt.c:938 +#: ipa-devirt.c:937 #, gcc-internal-format msgid "" "the conflicting type defined in another translation unit has virtual table " "with more entries" msgstr "" -#: ipa-devirt.c:964 +#: ipa-devirt.c:963 #, gcc-internal-format msgid "virtual method %qD" msgstr "" -#: ipa-devirt.c:968 +#: ipa-devirt.c:967 #, gcc-internal-format msgid "ought to match virtual method %qD but does not" msgstr "" -#: ipa-devirt.c:974 +#: ipa-devirt.c:973 #, gcc-internal-format msgid "" "the conflicting type defined in another translation unit has virtual table " "with different contents" msgstr "" -#: ipa-devirt.c:1008 +#: ipa-devirt.c:1007 #, gcc-internal-format msgid "type %qT (typedef of %qT) violates the C++ One Definition Rule" msgstr "" -#: ipa-devirt.c:1016 +#: ipa-devirt.c:1015 #, gcc-internal-format msgid "type %qT violates the C++ One Definition Rule" msgstr "" -#: ipa-devirt.c:1028 ipa-devirt.c:1043 ipa-devirt.c:1306 ipa-devirt.c:1382 -#: ipa-devirt.c:1421 ipa-devirt.c:1439 +#: ipa-devirt.c:1027 ipa-devirt.c:1042 ipa-devirt.c:1305 ipa-devirt.c:1381 +#: ipa-devirt.c:1420 ipa-devirt.c:1438 #, gcc-internal-format msgid "a different type is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1035 +#: ipa-devirt.c:1034 #, gcc-internal-format msgid "the first difference of corresponding definitions is field %qD" msgstr "" -#: ipa-devirt.c:1045 +#: ipa-devirt.c:1044 #, gcc-internal-format msgid "the first difference of corresponding definitions is method %qD" msgstr "" -#: ipa-devirt.c:1147 +#: ipa-devirt.c:1146 #, gcc-internal-format msgid "" "type %qT defined in anonymous namespace cannot match type %qT across the " "translation unit boundary" msgstr "" -#: ipa-devirt.c:1152 +#: ipa-devirt.c:1151 #, gcc-internal-format msgid "" "type %qT defined in anonymous namespace cannot match across the translation " "unit boundary" msgstr "" -#: ipa-devirt.c:1157 +#: ipa-devirt.c:1156 #, gcc-internal-format msgid "the incompatible type defined in another translation unit" msgstr "" -#: ipa-devirt.c:1182 +#: ipa-devirt.c:1181 #, gcc-internal-format msgid "type name %qs should match type name %qs" msgstr "" -#: ipa-devirt.c:1186 ipa-devirt.c:1283 +#: ipa-devirt.c:1185 ipa-devirt.c:1282 #, gcc-internal-format msgid "the incompatible type is defined here" msgstr "" -#: ipa-devirt.c:1214 +#: ipa-devirt.c:1213 #, gcc-internal-format msgid "array types have different bounds" msgstr "" -#: ipa-devirt.c:1229 +#: ipa-devirt.c:1228 #, gcc-internal-format msgid "return value type mismatch" msgstr "" -#: ipa-devirt.c:1244 +#: ipa-devirt.c:1243 #, gcc-internal-format msgid "implicit this pointer type mismatch" msgstr "" -#: ipa-devirt.c:1247 +#: ipa-devirt.c:1246 #, gcc-internal-format, gfc-internal-format msgid "type mismatch in parameter %i" msgstr "" -#: ipa-devirt.c:1258 +#: ipa-devirt.c:1257 #, gcc-internal-format msgid "types have different parameter counts" msgstr "" -#: ipa-devirt.c:1274 +#: ipa-devirt.c:1273 #, gcc-internal-format msgid "type %qT itself violates the C++ One Definition Rule" msgstr "" -#: ipa-devirt.c:1280 +#: ipa-devirt.c:1279 #, gcc-internal-format msgid "type %qT should match type %qT" msgstr "" -#: ipa-devirt.c:1332 +#: ipa-devirt.c:1331 #, gcc-internal-format msgid "" "an enum with different value name is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1339 +#: ipa-devirt.c:1338 #, gcc-internal-format msgid "an enum with different values is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1347 +#: ipa-devirt.c:1346 #, gcc-internal-format msgid "" "an enum with mismatching number of values is defined in another translation " "unit" msgstr "" -#: ipa-devirt.c:1365 +#: ipa-devirt.c:1364 #, gcc-internal-format msgid "a type with different precision is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1372 +#: ipa-devirt.c:1371 #, gcc-internal-format msgid "a type with different signedness is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1397 +#: ipa-devirt.c:1396 #, gcc-internal-format msgid "" "it is defined as a pointer in different address space in another translation " "unit" msgstr "" -#: ipa-devirt.c:1406 +#: ipa-devirt.c:1405 #, gcc-internal-format msgid "" "it is defined as a pointer to different type in another translation unit" msgstr "" -#: ipa-devirt.c:1466 +#: ipa-devirt.c:1465 #, gcc-internal-format msgid "an array of different size is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1481 +#: ipa-devirt.c:1480 #, gcc-internal-format msgid "has different return value in another translation unit" msgstr "" -#: ipa-devirt.c:1504 ipa-devirt.c:1516 +#: ipa-devirt.c:1503 ipa-devirt.c:1515 #, gcc-internal-format msgid "has different parameters in another translation unit" msgstr "" -#: ipa-devirt.c:1539 +#: ipa-devirt.c:1538 #, gcc-internal-format msgid "a type defined in another translation unit is not polymorphic" msgstr "" -#: ipa-devirt.c:1543 +#: ipa-devirt.c:1542 #, gcc-internal-format msgid "a type defined in another translation unit is polymorphic" msgstr "" -#: ipa-devirt.c:1561 ipa-devirt.c:1624 +#: ipa-devirt.c:1560 ipa-devirt.c:1624 #, gcc-internal-format msgid "" "a type with different virtual table pointers is defined in another " "translation unit" msgstr "" -#: ipa-devirt.c:1568 ipa-devirt.c:1629 +#: ipa-devirt.c:1567 ipa-devirt.c:1629 #, gcc-internal-format msgid "a type with different bases is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1576 +#: ipa-devirt.c:1575 #, gcc-internal-format msgid "a field with different name is defined in another translation unit" msgstr "" -#: ipa-devirt.c:1590 +#: ipa-devirt.c:1589 #, gcc-internal-format msgid "" "a field of same name but different type is defined in another translation " "unit" msgstr "" -#: ipa-devirt.c:1603 +#: ipa-devirt.c:1602 #, gcc-internal-format msgid "fields have different layout in another translation unit" msgstr "" -#: ipa-devirt.c:1610 +#: ipa-devirt.c:1609 #, gcc-internal-format -msgid "one field is bitfield while other is not" +msgid "one field is a bitfield while the other is not" msgstr "" #: ipa-devirt.c:1633 @@ -21752,7 +21827,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ipa-fnsummary.c:3423 +#: ipa-fnsummary.c:3410 #, gcc-internal-format msgid "ipa inline summary is missing in input file" msgstr "" @@ -21767,19 +21842,19 @@ msgstr "" msgid "invalid jump function in LTO stream" msgstr "" -#: ipa-pure-const.c:215 +#: ipa-pure-const.c:216 #, gcc-internal-format msgid "function might be candidate for attribute %qs" msgstr "" -#: ipa-pure-const.c:216 +#: ipa-pure-const.c:217 #, gcc-internal-format msgid "" "function might be candidate for attribute %qs if it is known to return " "normally" msgstr "" -#: ipa-reference.c:1170 +#: ipa-reference.c:1169 #, gcc-internal-format msgid "ipa reference summary is missing in ltrans unit" msgstr "" @@ -21819,71 +21894,71 @@ msgstr "" msgid "unable to find a register to spill" msgstr "" -#: lra-constraints.c:3948 reload.c:3815 reload.c:4070 +#: lra-constraints.c:3964 reload.c:3815 reload.c:4070 #, gcc-internal-format msgid "inconsistent operand constraints in an %" msgstr "" -#: lra-constraints.c:4859 +#: lra-constraints.c:4889 #, gcc-internal-format, gfc-internal-format msgid "Max. number of generated reload insns per insn is achieved (%d)\n" msgstr "" -#: lto-cgraph.c:1111 +#: lto-cgraph.c:1109 #, gcc-internal-format msgid "" "function %qs has been referenced in offloaded code but hasn%'t been marked " "to be included in the offloaded code" msgstr "" -#: lto-cgraph.c:1116 +#: lto-cgraph.c:1114 #, gcc-internal-format msgid "" "variable %qs has been referenced in offloaded code but hasn%'t been marked " "to be included in the offloaded code" msgstr "" -#: lto-cgraph.c:1278 +#: lto-cgraph.c:1276 #, gcc-internal-format, gfc-internal-format msgid "bytecode stream: found multiple instances of cgraph node with uid %d" msgstr "" -#: lto-cgraph.c:1448 +#: lto-cgraph.c:1444 #, gcc-internal-format msgid "bytecode stream: no caller found while reading edge" msgstr "" -#: lto-cgraph.c:1454 +#: lto-cgraph.c:1450 #, gcc-internal-format msgid "bytecode stream: no callee found while reading edge" msgstr "" -#: lto-cgraph.c:1528 +#: lto-cgraph.c:1524 #, gcc-internal-format msgid "bytecode stream: found empty cgraph node" msgstr "" -#: lto-cgraph.c:1644 +#: lto-cgraph.c:1640 #, gcc-internal-format, gfc-internal-format msgid "At most %i profile runs is supported. Perhaps corrupted profile?" msgstr "" -#: lto-cgraph.c:1669 +#: lto-cgraph.c:1665 #, gcc-internal-format, gfc-internal-format msgid "Profile information in %s corrupted" msgstr "" -#: lto-cgraph.c:1707 +#: lto-cgraph.c:1703 #, gcc-internal-format, gfc-internal-format msgid "cannot find LTO cgraph in %s" msgstr "" -#: lto-cgraph.c:1717 +#: lto-cgraph.c:1713 #, gcc-internal-format, gfc-internal-format msgid "cannot find LTO section refs in %s" msgstr "" -#: lto-cgraph.c:1794 +#: lto-cgraph.c:1790 #, gcc-internal-format, gfc-internal-format msgid "invalid offload table in %s" msgstr "" @@ -21910,32 +21985,32 @@ msgstr "" msgid "bytecode stream: unexpected tag %s" msgstr "" -#: lto-streamer-in.c:900 lto-streamer-in.c:910 +#: lto-streamer-in.c:901 lto-streamer-in.c:911 #, gcc-internal-format msgid "Cgraph edge statement index out of range" msgstr "" -#: lto-streamer-in.c:904 lto-streamer-in.c:913 +#: lto-streamer-in.c:905 lto-streamer-in.c:914 #, gcc-internal-format msgid "Cgraph edge statement index not found" msgstr "" -#: lto-streamer-in.c:920 +#: lto-streamer-in.c:921 #, gcc-internal-format msgid "Reference statement index out of range" msgstr "" -#: lto-streamer-in.c:923 +#: lto-streamer-in.c:924 #, gcc-internal-format msgid "Reference statement index not found" msgstr "" -#: lto-streamer-in.c:1603 +#: lto-streamer-in.c:1604 #, gcc-internal-format, gfc-internal-format msgid "cannot read LTO mode table from %s" msgstr "" -#: lto-streamer-in.c:1702 +#: lto-streamer-in.c:1703 #, gcc-internal-format, gfc-internal-format msgid "unsupported mode %s\n" msgstr "" @@ -21999,7 +22074,7 @@ msgstr "" #: lto-wrapper.c:963 #, gcc-internal-format -msgid "installation error, can't find crtoffloadtable.o" +msgid "installation error, can%'t find crtoffloadtable.o" msgstr "" #: lto-wrapper.c:1146 @@ -22052,42 +22127,46 @@ msgstr "" msgid "default % attribute was not set" msgstr "" -#: multiple_target.c:347 +#: multiple_target.c:351 #, gcc-internal-format msgid "single % attribute is ignored" msgstr "" -#: multiple_target.c:356 +#: multiple_target.c:360 #, gcc-internal-format msgid "clones for % attribute cannot be created" msgstr "" -#: multiple_target.c:359 +#: multiple_target.c:363 #, gcc-internal-format msgid "function %q+F can never be copied because it has % attribute" msgstr "" -#: multiple_target.c:376 +#: multiple_target.c:380 #, gcc-internal-format msgid "default target was not set" msgstr "" -#: multiple_target.c:384 +#: multiple_target.c:388 #, gcc-internal-format msgid "an empty string cannot be in % attribute" msgstr "" #: omp-expand.c:2150 #, gcc-internal-format -msgid "% clause waiting for lexically later iteration" +msgid "" +"% clause with % modifier waiting for lexically later " +"iteration" msgstr "" #: omp-expand.c:2287 #, gcc-internal-format -msgid "% refers to iteration never in the iteration space" +msgid "" +"% clause with % modifier refers to iteration never in the " +"iteration space" msgstr "" -#: omp-general.c:626 +#: omp-general.c:637 #, gcc-internal-format msgid "multiple loop axes specified for routine" msgstr "" @@ -22324,8 +22403,8 @@ msgid "invalid branch to/from %s structured block" msgstr "" #: omp-offload.c:642 -#, gcc-internal-format, gfc-internal-format -msgid "-fopenacc-dim operand is malformed at '%s'" +#, gcc-internal-format +msgid "%<-fopenacc-dim%> operand is malformed at '%s'" msgstr "" #: omp-offload.c:1217 @@ -22402,49 +22481,49 @@ msgstr "" msgid "indirect jumps are not available on this target" msgstr "" -#: opts-common.c:1230 +#: opts-common.c:1235 #, gcc-internal-format msgid "command line option %qs is not supported by this configuration" msgstr "" -#: opts-common.c:1240 opts.c:2161 +#: opts-common.c:1245 opts.c:2169 #, gcc-internal-format msgid "missing argument to %qs" msgstr "" -#: opts-common.c:1247 +#: opts-common.c:1252 #, gcc-internal-format msgid "" "argument to %qs should be a non-negative integer optionally followed by a " "size unit" msgstr "" -#: opts-common.c:1251 +#: opts-common.c:1256 #, gcc-internal-format msgid "argument to %qs should be a non-negative integer" msgstr "" -#: opts-common.c:1258 +#: opts-common.c:1263 #, gcc-internal-format msgid "argument to %qs is not between %d and %d" msgstr "" -#: opts-common.c:1273 +#: opts-common.c:1278 #, gcc-internal-format msgid "unrecognized argument in option %qs" msgstr "" -#: opts-common.c:1284 config/i386/i386.c:3273 +#: opts-common.c:1289 config/i386/i386.c:3490 #, gcc-internal-format msgid "valid arguments to %qs are: %s; did you mean %qs?" msgstr "" -#: opts-common.c:1287 config/i386/i386.c:3276 +#: opts-common.c:1292 config/i386/i386.c:3493 #, gcc-internal-format msgid "valid arguments to %qs are: %s" msgstr "" -#: opts-common.c:1330 c-family/c-opts.c:424 +#: opts-common.c:1335 c-family/c-opts.c:425 #, gcc-internal-format msgid "switch %qs is no longer supported" msgstr "" @@ -22482,7 +22561,9 @@ msgstr "" #: opts-global.c:451 #, gcc-internal-format -msgid "-fasan-shadow-offset should only be used with -fsanitize=kernel-address" +msgid "" +"%<-fasan-shadow-offset%> should only be used with %<-fsanitize=kernel-address" +"%>" msgstr "" #: opts-global.c:454 @@ -22643,7 +22724,7 @@ msgstr "" msgid "section anchors must be disabled when toplevel reorder is disabled" msgstr "" -#: opts.c:1004 +#: opts.c:1004 config/darwin.c:3206 #, gcc-internal-format msgid "" "%<-freorder-blocks-and-partition%> does not work with exceptions on this " @@ -22657,7 +22738,7 @@ msgid "" "architecture" msgstr "" -#: opts.c:1038 +#: opts.c:1038 config/pa/pa.c:557 #, gcc-internal-format msgid "%<-freorder-blocks-and-partition%> does not work on this architecture" msgstr "" @@ -22667,221 +22748,226 @@ msgstr "" msgid "%<-fno-fat-lto-objects%> are supported only with linker plugin" msgstr "" -#: opts.c:1090 +#: opts.c:1084 +#, gcc-internal-format +msgid "%<-gsplit-dwarf%> is not supported with LTO, disabling" +msgstr "" + +#: opts.c:1098 #, gcc-internal-format msgid "%<-fsplit-stack%> is not supported by this compiler configuration" msgstr "" -#: opts.c:1137 +#: opts.c:1145 #, gcc-internal-format msgid "" "%<-fsanitize=pointer-compare%> must be combined with %<-fsanitize=address%> " "or %<-fsanitize=kernel-address%>" msgstr "" -#: opts.c:1141 +#: opts.c:1149 #, gcc-internal-format msgid "" "%<-fsanitize=pointer-subtract%> must be combined with %<-fsanitize=address%> " "or %<-fsanitize=kernel-address%>" msgstr "" -#: opts.c:1149 +#: opts.c:1157 #, gcc-internal-format msgid "" "%<-fsanitize=address%> is incompatible with %<-fsanitize=kernel-address%>" msgstr "" -#: opts.c:1156 +#: opts.c:1164 #, gcc-internal-format msgid "" "%<-fsanitize=address%> and %<-fsanitize=kernel-address%> are incompatible " "with %<-fsanitize=thread%>" msgstr "" -#: opts.c:1162 +#: opts.c:1170 #, gcc-internal-format msgid "%<-fsanitize=leak%> is incompatible with %<-fsanitize=thread%>" msgstr "" -#: opts.c:1168 +#: opts.c:1176 #, gcc-internal-format msgid "%<-fsanitize-recover=%s%> is not supported" msgstr "" -#: opts.c:1194 +#: opts.c:1202 #, gcc-internal-format msgid "" "%<-fsanitize-address-use-after-scope%> requires %<-fstack-reuse=none%> option" msgstr "" -#: opts.c:1201 +#: opts.c:1209 #, gcc-internal-format msgid "transactional memory is not supported with %<-fsanitize=address%>" msgstr "" -#: opts.c:1204 +#: opts.c:1212 #, gcc-internal-format msgid "" "transactional memory is not supported with %<-fsanitize=kernel-address%>" msgstr "" -#: opts.c:1209 +#: opts.c:1217 #, gcc-internal-format msgid "live patching is not supported with LTO" msgstr "" -#: opts.c:1660 +#: opts.c:1668 #, gcc-internal-format msgid "unrecognized include_flags 0x%x passed to print_specific_help" msgstr "" -#: opts.c:1890 +#: opts.c:1898 #, gcc-internal-format msgid "%<-fsanitize=all%> option is not valid" msgstr "" -#: opts.c:1930 +#: opts.c:1938 #, gcc-internal-format msgid "" -"unrecognized argument to -f%ssanitize%s= option: %q.*s; did you mean %qs?" +"unrecognized argument to %<-f%ssanitize%s=%> option: %q.*s; did you mean %qs?" msgstr "" -#: opts.c:1936 +#: opts.c:1944 #, gcc-internal-format -msgid "unrecognized argument to -f%ssanitize%s= option: %q.*s" +msgid "unrecognized argument to %<-f%ssanitize%s=%> option: %q.*s" msgstr "" -#: opts.c:1971 +#: opts.c:1979 #, gcc-internal-format msgid "%<%s%> attribute directive ignored" msgstr "" -#: opts.c:1998 +#: opts.c:2006 #, gcc-internal-format msgid "invalid arguments for %<-falign-%s%> option: %qs" msgstr "" -#: opts.c:2020 +#: opts.c:2028 #, gcc-internal-format msgid "invalid number of arguments for %<-falign-%s%> option: %qs" msgstr "" -#: opts.c:2029 +#: opts.c:2037 #, gcc-internal-format msgid "%<-falign-%s%> is not between 0 and %d" msgstr "" -#: opts.c:2216 +#: opts.c:2224 #, gcc-internal-format msgid "--help argument %q.*s is ambiguous, please be more specific" msgstr "" -#: opts.c:2225 +#: opts.c:2233 #, gcc-internal-format msgid "unrecognized argument to --help= option: %q.*s" msgstr "" -#: opts.c:2488 +#: opts.c:2496 #, gcc-internal-format msgid "HSA has not been enabled during configuration" msgstr "" -#: opts.c:2500 +#: opts.c:2508 #, gcc-internal-format msgid "%<-foffload-abi%> option can be specified only for offload compiler" msgstr "" -#: opts.c:2508 +#: opts.c:2516 #, gcc-internal-format msgid "structure alignment must be a small power of two, not %wu" msgstr "" -#: opts.c:2594 +#: opts.c:2602 #, gcc-internal-format msgid "invalid arguments for %<-fpatchable_function_entry%>" msgstr "" -#: opts.c:2652 +#: opts.c:2660 #, gcc-internal-format msgid "unknown stack check parameter %qs" msgstr "" -#: opts.c:2680 +#: opts.c:2688 #, gcc-internal-format msgid "" -"%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-" -"gdwarf -g%s%> for debug level" +"%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-gdwarf" +"%> %<-g%s%> for debug level" msgstr "" -#: opts.c:2691 +#: opts.c:2699 #, gcc-internal-format msgid "dwarf version %wu is not supported" msgstr "" -#: opts.c:2815 +#: opts.c:2823 #, gcc-internal-format, gfc-internal-format msgid "%s: --param arguments should be of the form NAME=VALUE" msgstr "" -#: opts.c:2826 +#: opts.c:2834 #, gcc-internal-format msgid "invalid --param name %qs; did you mean %qs?" msgstr "" -#: opts.c:2829 +#: opts.c:2837 #, gcc-internal-format msgid "invalid --param name %qs" msgstr "" -#: opts.c:2837 +#: opts.c:2845 #, gcc-internal-format msgid "invalid --param value %qs" msgstr "" -#: opts.c:2959 +#: opts.c:2967 #, gcc-internal-format msgid "target system does not support debug output" msgstr "" -#: opts.c:2968 +#: opts.c:2976 #, gcc-internal-format msgid "debug format %qs conflicts with prior selection" msgstr "" -#: opts.c:2986 +#: opts.c:2994 #, gcc-internal-format msgid "unrecognized debug output level %qs" msgstr "" -#: opts.c:2988 +#: opts.c:2996 #, gcc-internal-format msgid "debug output level %qs is too high" msgstr "" -#: opts.c:3008 +#: opts.c:3016 #, gcc-internal-format msgid "getting core file size maximum limit: %m" msgstr "" -#: opts.c:3012 +#: opts.c:3020 #, gcc-internal-format msgid "setting core file size limit to maximum: %m" msgstr "" -#: opts.c:3057 +#: opts.c:3065 #, gcc-internal-format, gfc-internal-format msgid "unrecognized gcc debugging option: %c" msgstr "" -#: opts.c:3082 -#, gcc-internal-format, gfc-internal-format -msgid "-Werror=%s: no option -%s" +#: opts.c:3090 +#, gcc-internal-format +msgid "%<-Werror=%s%>: no option -%s" msgstr "" -#: opts.c:3084 -#, gcc-internal-format, gfc-internal-format -msgid "-Werror=%s: -%s is not an option that controls warnings" +#: opts.c:3092 +#, gcc-internal-format +msgid "%<-Werror=%s%>: -%s is not an option that controls warnings" msgstr "" #: params.c:156 @@ -22914,22 +23000,22 @@ msgstr "" #: passes.c:1024 #, gcc-internal-format -msgid "unrecognized option -fenable" +msgid "unrecognized option %<-fenable%>" msgstr "" #: passes.c:1026 #, gcc-internal-format -msgid "unrecognized option -fdisable" +msgid "unrecognized option %<-fdisable%>" msgstr "" #: passes.c:1034 -#, gcc-internal-format, gfc-internal-format -msgid "unknown pass %s specified in -fenable" +#, gcc-internal-format +msgid "unknown pass %s specified in %<-fenable%>" msgstr "" #: passes.c:1036 -#, gcc-internal-format, gfc-internal-format -msgid "unknown pass %s specified in -fdisable" +#, gcc-internal-format +msgid "unknown pass %s specified in %<-fdisable%>" msgstr "" #: passes.c:1061 passes.c:1150 @@ -22996,14 +23082,14 @@ msgid "" msgstr "" #: plugin.c:293 -#, gcc-internal-format, gfc-internal-format -msgid "malformed option -fplugin-arg-%s (missing -[=])" +#, gcc-internal-format +msgid "malformed option %<-fplugin-arg-%s%> (missing -[=])" msgstr "" #: plugin.c:356 -#, gcc-internal-format, gfc-internal-format +#, gcc-internal-format msgid "" -"plugin %s should be specified before -fplugin-arg-%s in the command line" +"plugin %s should be specified before %<-fplugin-arg-%s%> in the command line" msgstr "" #: plugin.c:375 @@ -23049,20 +23135,20 @@ msgstr "" #: plugin.c:1006 #, gcc-internal-format -msgid "-iplugindir option not passed from the gcc driver" +msgid "%<-iplugindir%> option not passed from the gcc driver" msgstr "" -#: predict.c:2485 +#: predict.c:2496 #, gcc-internal-format msgid "probability %qE must be constant floating-point expression" msgstr "" -#: predict.c:2498 +#: predict.c:2509 #, gcc-internal-format msgid "probability %qE is outside the range [0.0, 1.0]" msgstr "" -#: predict.c:3472 +#: predict.c:3483 #, gcc-internal-format, gfc-internal-format msgid "Missing counts for called function %s" msgstr "" @@ -23165,22 +23251,22 @@ msgstr "" msgid "output operand %d must use %<&%> constraint" msgstr "" -#: regcprop.c:1199 +#: regcprop.c:1215 #, gcc-internal-format, gfc-internal-format msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)" msgstr "" -#: regcprop.c:1211 +#: regcprop.c:1227 #, gcc-internal-format, gfc-internal-format msgid "validate_value_data: Loop in regno chain (%u)" msgstr "" -#: regcprop.c:1214 +#: regcprop.c:1230 #, gcc-internal-format, gfc-internal-format msgid "validate_value_data: [%u] Bad oldest_regno (%u)" msgstr "" -#: regcprop.c:1226 +#: regcprop.c:1242 #, gcc-internal-format, gfc-internal-format msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)" msgstr "" @@ -23223,7 +23309,7 @@ msgstr "" msgid "register of %qD used for multiple global register variables" msgstr "" -#: reginfo.c:790 config/rs6000/rs6000.c:29236 +#: reginfo.c:790 config/rs6000/rs6000.c:29355 #, gcc-internal-format msgid "conflicts with %qD" msgstr "" @@ -23499,141 +23585,141 @@ msgstr "" msgid "node differs from node->decl->decl_with_vis.symtab_node" msgstr "" -#: symtab.c:1045 +#: symtab.c:1047 symtab.c:1054 #, gcc-internal-format msgid "assembler name hash list corrupted" msgstr "" -#: symtab.c:1058 +#: symtab.c:1063 #, gcc-internal-format msgid "node not found in symtab assembler name hash" msgstr "" -#: symtab.c:1065 +#: symtab.c:1072 #, gcc-internal-format msgid "double linked list of assembler names corrupted" msgstr "" -#: symtab.c:1070 +#: symtab.c:1077 #, gcc-internal-format msgid "node has body_removed but is definition" msgstr "" -#: symtab.c:1075 +#: symtab.c:1082 #, gcc-internal-format msgid "node is analyzed but it is not a definition" msgstr "" -#: symtab.c:1080 +#: symtab.c:1087 #, gcc-internal-format msgid "node is alias but not implicit alias" msgstr "" -#: symtab.c:1085 +#: symtab.c:1092 #, gcc-internal-format msgid "node is alias but not definition" msgstr "" -#: symtab.c:1090 +#: symtab.c:1097 #, gcc-internal-format msgid "node is weakref but not an transparent_alias" msgstr "" -#: symtab.c:1095 +#: symtab.c:1102 #, gcc-internal-format msgid "node is transparent_alias but not an alias" msgstr "" -#: symtab.c:1104 +#: symtab.c:1111 #, gcc-internal-format msgid "node is in same_comdat_group list but has no comdat_group" msgstr "" -#: symtab.c:1109 +#: symtab.c:1116 #, gcc-internal-format msgid "same_comdat_group list across different groups" msgstr "" -#: symtab.c:1114 +#: symtab.c:1121 #, gcc-internal-format msgid "mixing different types of symbol in same comdat groups is not supported" msgstr "" -#: symtab.c:1119 +#: symtab.c:1126 #, gcc-internal-format msgid "node is alone in a comdat group" msgstr "" -#: symtab.c:1126 +#: symtab.c:1133 #, gcc-internal-format msgid "same_comdat_group is not a circular list" msgstr "" -#: symtab.c:1141 +#: symtab.c:1148 #, gcc-internal-format, gfc-internal-format msgid "comdat-local symbol referred to by %s outside its comdat" msgstr "" -#: symtab.c:1151 +#: symtab.c:1158 #, gcc-internal-format -msgid "implicit_section flag is set but section isn't" +msgid "implicit_section flag is set but section isn%'t" msgstr "" -#: symtab.c:1158 +#: symtab.c:1165 #, gcc-internal-format msgid "Both section and comdat group is set" msgstr "" -#: symtab.c:1170 +#: symtab.c:1177 #, gcc-internal-format -msgid "Alias and target's section differs" +msgid "Alias and target%'s section differs" msgstr "" -#: symtab.c:1177 +#: symtab.c:1184 #, gcc-internal-format -msgid "Alias and target's comdat groups differs" +msgid "Alias and target%'s comdat groups differs" msgstr "" -#: symtab.c:1192 +#: symtab.c:1199 #, gcc-internal-format -msgid "Transparent alias and target's assembler names differs" +msgid "Transparent alias and target%'s assembler names differs" msgstr "" -#: symtab.c:1200 +#: symtab.c:1207 #, gcc-internal-format msgid "Chained transparent aliases" msgstr "" -#: symtab.c:1223 symtab.c:1260 +#: symtab.c:1230 symtab.c:1267 #, gcc-internal-format msgid "symtab_node::verify failed" msgstr "" -#: symtab.c:1256 +#: symtab.c:1263 #, gcc-internal-format msgid "" "Two symbols with same comdat_group are not linked by the same_comdat_group " "list." msgstr "" -#: symtab.c:1665 +#: symtab.c:1672 #, gcc-internal-format msgid "function %q+D part of alias cycle" msgstr "" -#: symtab.c:1667 +#: symtab.c:1674 #, gcc-internal-format msgid "variable %q+D part of alias cycle" msgstr "" -#: symtab.c:1695 +#: symtab.c:1702 #, gcc-internal-format msgid "section of alias %q+D must match section of its target" msgstr "" #: targhooks.c:191 #, gcc-internal-format -msgid "__builtin_saveregs not supported by this target" +msgid "%<__builtin_saveregs%> not supported by this target" msgstr "" #: targhooks.c:1042 @@ -23690,7 +23776,7 @@ msgstr "" #: toplev.c:904 #, gcc-internal-format -msgid "-frecord-gcc-switches is not supported by the current target" +msgid "%<-frecord-gcc-switches%> is not supported by the current target" msgstr "" #: toplev.c:953 @@ -23726,8 +23812,9 @@ msgstr "" #: toplev.c:1369 #, gcc-internal-format msgid "" -"Graphite loop optimizations cannot be used (isl is not available) (-" -"fgraphite, -fgraphite-identity, -floop-nest-optimize, -floop-parallelize-all)" +"Graphite loop optimizations cannot be used (isl is not available) (%<-" +"fgraphite%>, %<-fgraphite-identity%>, %<-floop-nest-optimize%>, %<-floop-" +"parallelize-all%>)" msgstr "" #: toplev.c:1380 @@ -23761,8 +23848,8 @@ msgid "this target machine does not have delayed branches" msgstr "" #: toplev.c:1455 -#, gcc-internal-format, gfc-internal-format -msgid "-f%sleading-underscore not supported on this target machine" +#, gcc-internal-format +msgid "%<-f%sleading-underscore%> not supported on this target machine" msgstr "" #: toplev.c:1500 @@ -23793,100 +23880,107 @@ msgstr "" #: toplev.c:1622 #, gcc-internal-format msgid "" -"without -gdwarf-5, -gvariable-location-views=incompat5 is equivalent to -" -"gvariable-location-views" +"without %<-gdwarf-5%>, %<-gvariable-location-views=incompat5%> is equivalent " +"to %<-gvariable-location-views%>" msgstr "" -#: toplev.c:1637 +#: toplev.c:1638 #, gcc-internal-format msgid "" -"-ginternal-reset-location-views is forced disabled without -gvariable-" -"location-views" +"%<-ginternal-reset-location-views%> is forced disabled without %<-gvariable-" +"location-views%>" msgstr "" -#: toplev.c:1647 +#: toplev.c:1648 #, gcc-internal-format -msgid "-ginline-points is forced disabled without -gstatement-frontiers" +msgid "" +"%<-ginline-points%> is forced disabled without %<-gstatement-frontiers%>" msgstr "" -#: toplev.c:1676 +#: toplev.c:1677 #, gcc-internal-format -msgid "-ffunction-sections not supported for this target" +msgid "%<-ffunction-sections%> not supported for this target" msgstr "" -#: toplev.c:1682 +#: toplev.c:1683 #, gcc-internal-format -msgid "-fdata-sections not supported for this target" +msgid "%<-fdata-sections%> not supported for this target" msgstr "" -#: toplev.c:1690 +#: toplev.c:1691 #, gcc-internal-format -msgid "-fprefetch-loop-arrays not supported for this target" +msgid "%<-fprefetch-loop-arrays%> not supported for this target" msgstr "" -#: toplev.c:1696 +#: toplev.c:1697 #, gcc-internal-format msgid "" -"-fprefetch-loop-arrays not supported for this target (try -march switches)" +"%<-fprefetch-loop-arrays%> not supported for this target (try %<-march%> " +"switches)" msgstr "" -#: toplev.c:1706 +#: toplev.c:1707 #, gcc-internal-format -msgid "-fprefetch-loop-arrays is not supported with -Os" +msgid "%<-fprefetch-loop-arrays%> is not supported with %<-Os%>" msgstr "" -#: toplev.c:1718 +#: toplev.c:1719 #, gcc-internal-format -msgid "-fassociative-math disabled; other options take precedence" +msgid "%<-fassociative-math%> disabled; other options take precedence" msgstr "" -#: toplev.c:1728 +#: toplev.c:1729 #, gcc-internal-format msgid "" "%<-fstack-clash-protection%> is not supported on targets where the stack " "grows from lower to higher addresses" msgstr "" -#: toplev.c:1738 +#: toplev.c:1739 #, gcc-internal-format msgid "" "%<-fstack-check=%> and %<-fstack-clash_protection%> are mutually exclusive. " "Disabling %<-fstack-check=%>" msgstr "" -#: toplev.c:1756 +#: toplev.c:1757 #, gcc-internal-format -msgid "-fstack-protector not supported for this target" +msgid "%<-fstack-protector%> not supported for this target" msgstr "" -#: toplev.c:1768 +#: toplev.c:1769 #, gcc-internal-format msgid "" -"-fsanitize=address and -fsanitize=kernel-address are not supported for this " -"target" +"%<-fsanitize=address%> and %<-fsanitize=kernel-address%> are not supported " +"for this target" msgstr "" -#: toplev.c:1777 +#: toplev.c:1778 #, gcc-internal-format -msgid "-fsanitize=address not supported for this target" +msgid "%<-fsanitize=address%> not supported for this target" msgstr "" -#: toplev.c:2072 +#: toplev.c:2073 #, gcc-internal-format msgid "error writing to %s: %m" msgstr "" -#: toplev.c:2074 +#: toplev.c:2075 #, gcc-internal-format msgid "error closing %s: %m" msgstr "" -#: toplev.c:2230 +#: toplev.c:2183 #, gcc-internal-format -msgid "self-tests incompatible with -E" +msgid "mpfr not configured to handle all float modes" msgstr "" -#: toplev.c:2245 +#: toplev.c:2259 +#, gcc-internal-format +msgid "self-tests incompatible with %<-E%>" +msgstr "" + +#: toplev.c:2274 #, gcc-internal-format msgid "self-tests are not enabled in this build" msgstr "" @@ -23978,189 +24072,189 @@ msgstr "" msgid "%Kasm not allowed in % function" msgstr "" -#: tree-cfg.c:354 +#: tree-cfg.c:352 #, gcc-internal-format msgid "ignoring loop annotation" msgstr "" -#: tree-cfg.c:3006 +#: tree-cfg.c:2963 #, gcc-internal-format msgid "constant not recomputed when ADDR_EXPR changed" msgstr "" -#: tree-cfg.c:3011 +#: tree-cfg.c:2968 #, gcc-internal-format msgid "side effects not recomputed when ADDR_EXPR changed" msgstr "" -#: tree-cfg.c:3026 +#: tree-cfg.c:2983 #, gcc-internal-format msgid "DECL_GIMPLE_REG_P set on a variable with address taken" msgstr "" -#: tree-cfg.c:3032 tree-ssa.c:987 +#: tree-cfg.c:2989 tree-ssa.c:987 #, gcc-internal-format msgid "address taken, but ADDRESSABLE bit not set" msgstr "" -#: tree-cfg.c:3054 +#: tree-cfg.c:3011 #, gcc-internal-format msgid "invalid expression for min lvalue" msgstr "" -#: tree-cfg.c:3065 +#: tree-cfg.c:3022 #, gcc-internal-format msgid "invalid operand in indirect reference" msgstr "" -#: tree-cfg.c:3088 +#: tree-cfg.c:3045 #, gcc-internal-format msgid "non-scalar BIT_FIELD_REF, IMAGPART_EXPR or REALPART_EXPR" msgstr "" -#: tree-cfg.c:3102 +#: tree-cfg.c:3059 #, gcc-internal-format msgid "invalid position or size operand to BIT_FIELD_REF" msgstr "" -#: tree-cfg.c:3108 +#: tree-cfg.c:3065 #, gcc-internal-format msgid "" "integral result type precision does not match field size of BIT_FIELD_REF" msgstr "" -#: tree-cfg.c:3117 +#: tree-cfg.c:3074 #, gcc-internal-format msgid "" "mode size of non-integral result does not match field size of BIT_FIELD_REF" msgstr "" -#: tree-cfg.c:3124 +#: tree-cfg.c:3081 #, gcc-internal-format msgid "BIT_FIELD_REF of non-mode-precision operand" msgstr "" -#: tree-cfg.c:3131 +#: tree-cfg.c:3088 #, gcc-internal-format msgid "position plus size exceeds size of referenced object in BIT_FIELD_REF" msgstr "" -#: tree-cfg.c:3142 +#: tree-cfg.c:3099 #, gcc-internal-format msgid "type mismatch in real/imagpart reference" msgstr "" -#: tree-cfg.c:3156 +#: tree-cfg.c:3113 #, gcc-internal-format msgid "non-top-level BIT_FIELD_REF, IMAGPART_EXPR or REALPART_EXPR" msgstr "" -#: tree-cfg.c:3171 +#: tree-cfg.c:3128 #, gcc-internal-format msgid "invalid operands to array reference" msgstr "" -#: tree-cfg.c:3182 +#: tree-cfg.c:3139 #, gcc-internal-format msgid "type mismatch in array reference" msgstr "" -#: tree-cfg.c:3191 +#: tree-cfg.c:3148 #, gcc-internal-format msgid "type mismatch in array range reference" msgstr "" -#: tree-cfg.c:3202 +#: tree-cfg.c:3159 #, gcc-internal-format msgid "invalid COMPONENT_REF offset operator" msgstr "" -#: tree-cfg.c:3208 +#: tree-cfg.c:3165 #, gcc-internal-format msgid "type mismatch in component reference" msgstr "" -#: tree-cfg.c:3226 +#: tree-cfg.c:3183 #, gcc-internal-format msgid "conversion of an SSA_NAME on the left hand side" msgstr "" -#: tree-cfg.c:3233 +#: tree-cfg.c:3190 #, gcc-internal-format msgid "conversion of register to a different size" msgstr "" -#: tree-cfg.c:3250 +#: tree-cfg.c:3207 #, gcc-internal-format msgid "invalid address operand in MEM_REF" msgstr "" -#: tree-cfg.c:3257 +#: tree-cfg.c:3214 #, gcc-internal-format msgid "invalid offset operand in MEM_REF" msgstr "" -#: tree-cfg.c:3269 +#: tree-cfg.c:3226 #, gcc-internal-format msgid "invalid address operand in TARGET_MEM_REF" msgstr "" -#: tree-cfg.c:3276 +#: tree-cfg.c:3233 #, gcc-internal-format msgid "invalid offset operand in TARGET_MEM_REF" msgstr "" -#: tree-cfg.c:3283 tree-cfg.c:4457 +#: tree-cfg.c:3240 tree-cfg.c:4409 #, gcc-internal-format msgid "INDIRECT_REF in gimple IL" msgstr "" -#: tree-cfg.c:3336 +#: tree-cfg.c:3293 #, gcc-internal-format msgid "gimple call has two targets" msgstr "" -#: tree-cfg.c:3350 +#: tree-cfg.c:3302 #, gcc-internal-format msgid "gimple call has no target" msgstr "" -#: tree-cfg.c:3357 +#: tree-cfg.c:3309 #, gcc-internal-format msgid "invalid function in gimple call" msgstr "" -#: tree-cfg.c:3367 +#: tree-cfg.c:3319 #, gcc-internal-format msgid "non-function in gimple call" msgstr "" -#: tree-cfg.c:3378 +#: tree-cfg.c:3330 #, gcc-internal-format msgid "invalid pure const state for function" msgstr "" -#: tree-cfg.c:3387 +#: tree-cfg.c:3339 #, gcc-internal-format msgid "invalid LHS in gimple call" msgstr "" -#: tree-cfg.c:3395 +#: tree-cfg.c:3347 #, gcc-internal-format msgid "LHS in noreturn call" msgstr "" -#: tree-cfg.c:3409 +#: tree-cfg.c:3361 #, gcc-internal-format msgid "invalid conversion in gimple call" msgstr "" -#: tree-cfg.c:3418 +#: tree-cfg.c:3370 #, gcc-internal-format msgid "invalid static chain in gimple call" msgstr "" -#: tree-cfg.c:3429 +#: tree-cfg.c:3381 #, gcc-internal-format msgid "static chain with function that doesn%'t use one" msgstr "" @@ -24171,581 +24265,581 @@ msgstr "" #. __builtin_unreachable internally, for example when IPA figures #. out a call cannot happen in a legal program. In such cases, #. we must make sure arguments are stripped off. -#: tree-cfg.c:3447 +#: tree-cfg.c:3399 #, gcc-internal-format -msgid "__builtin_unreachable or __builtin_trap call with arguments" +msgid "%<__builtin_unreachable%> or %<__builtin_trap%> call with arguments" msgstr "" -#: tree-cfg.c:3470 +#: tree-cfg.c:3422 #, gcc-internal-format msgid "invalid argument to gimple call" msgstr "" -#: tree-cfg.c:3490 +#: tree-cfg.c:3442 #, gcc-internal-format msgid "invalid operands in gimple comparison" msgstr "" -#: tree-cfg.c:3506 +#: tree-cfg.c:3458 #, gcc-internal-format msgid "mismatching comparison operand types" msgstr "" -#: tree-cfg.c:3523 +#: tree-cfg.c:3475 #, gcc-internal-format msgid "unsupported operation or type for vector comparison returning a boolean" msgstr "" -#: tree-cfg.c:3538 +#: tree-cfg.c:3490 #, gcc-internal-format msgid "non-vector operands in vector comparison" msgstr "" -#: tree-cfg.c:3547 +#: tree-cfg.c:3499 #, gcc-internal-format msgid "invalid vector comparison resulting type" msgstr "" -#: tree-cfg.c:3554 +#: tree-cfg.c:3506 #, gcc-internal-format msgid "bogus comparison result type" msgstr "" -#: tree-cfg.c:3576 +#: tree-cfg.c:3528 #, gcc-internal-format msgid "non-register as LHS of unary operation" msgstr "" -#: tree-cfg.c:3582 +#: tree-cfg.c:3534 #, gcc-internal-format msgid "invalid operand in unary operation" msgstr "" -#: tree-cfg.c:3614 +#: tree-cfg.c:3566 #, gcc-internal-format msgid "invalid types in nop conversion" msgstr "" -#: tree-cfg.c:3629 +#: tree-cfg.c:3581 #, gcc-internal-format msgid "invalid types in address space conversion" msgstr "" -#: tree-cfg.c:3643 +#: tree-cfg.c:3595 #, gcc-internal-format msgid "invalid types in fixed-point conversion" msgstr "" -#: tree-cfg.c:3658 +#: tree-cfg.c:3610 #, gcc-internal-format msgid "invalid types in conversion to floating point" msgstr "" -#: tree-cfg.c:3673 +#: tree-cfg.c:3625 #, gcc-internal-format msgid "invalid types in conversion to integer" msgstr "" -#: tree-cfg.c:3713 +#: tree-cfg.c:3665 #, gcc-internal-format msgid "type mismatch in vector unpack expression" msgstr "" -#: tree-cfg.c:3735 +#: tree-cfg.c:3687 #, gcc-internal-format msgid "invalid types for ABSU_EXPR" msgstr "" -#: tree-cfg.c:3746 +#: tree-cfg.c:3698 #, gcc-internal-format msgid "vec_duplicate should be from a scalar to a like vector" msgstr "" -#: tree-cfg.c:3760 +#: tree-cfg.c:3712 #, gcc-internal-format msgid "non-trivial conversion in unary operation" msgstr "" -#: tree-cfg.c:3785 +#: tree-cfg.c:3737 #, gcc-internal-format msgid "non-register as LHS of binary operation" msgstr "" -#: tree-cfg.c:3792 +#: tree-cfg.c:3744 #, gcc-internal-format msgid "invalid operands in binary operation" msgstr "" -#: tree-cfg.c:3807 +#: tree-cfg.c:3759 #, gcc-internal-format msgid "type mismatch in complex expression" msgstr "" -#: tree-cfg.c:3836 +#: tree-cfg.c:3788 #, gcc-internal-format msgid "type mismatch in shift expression" msgstr "" -#: tree-cfg.c:3853 tree-cfg.c:3874 +#: tree-cfg.c:3805 tree-cfg.c:3826 #, gcc-internal-format msgid "type mismatch in widening vector shift expression" msgstr "" -#: tree-cfg.c:3895 +#: tree-cfg.c:3847 #, gcc-internal-format msgid "invalid non-vector operands to vector valued plus" msgstr "" -#: tree-cfg.c:3906 +#: tree-cfg.c:3858 #, gcc-internal-format msgid "invalid (pointer) operands to plus/minus" msgstr "" -#: tree-cfg.c:3920 +#: tree-cfg.c:3872 #, gcc-internal-format msgid "type mismatch in pointer plus expression" msgstr "" -#: tree-cfg.c:3941 +#: tree-cfg.c:3893 #, gcc-internal-format msgid "type mismatch in pointer diff expression" msgstr "" -#: tree-cfg.c:3995 +#: tree-cfg.c:3947 #, gcc-internal-format msgid "type mismatch in widening sum reduction" msgstr "" -#: tree-cfg.c:4015 +#: tree-cfg.c:3967 #, gcc-internal-format msgid "type mismatch in vector widening multiplication" msgstr "" -#: tree-cfg.c:4051 tree-cfg.c:4072 +#: tree-cfg.c:4003 tree-cfg.c:4024 #, gcc-internal-format msgid "type mismatch in vector pack expression" msgstr "" -#: tree-cfg.c:4104 +#: tree-cfg.c:4056 #, gcc-internal-format msgid "type mismatch in series expression" msgstr "" -#: tree-cfg.c:4112 +#: tree-cfg.c:4064 #, gcc-internal-format msgid "vector type expected in series expression" msgstr "" -#: tree-cfg.c:4125 +#: tree-cfg.c:4077 #, gcc-internal-format msgid "type mismatch in binary expression" msgstr "" -#: tree-cfg.c:4153 +#: tree-cfg.c:4105 #, gcc-internal-format msgid "non-register as LHS of ternary operation" msgstr "" -#: tree-cfg.c:4162 +#: tree-cfg.c:4114 #, gcc-internal-format msgid "invalid operands in ternary operation" msgstr "" -#: tree-cfg.c:4178 +#: tree-cfg.c:4130 #, gcc-internal-format msgid "type mismatch in widening multiply-accumulate expression" msgstr "" -#: tree-cfg.c:4192 +#: tree-cfg.c:4144 #, gcc-internal-format msgid "" "the first argument of a VEC_COND_EXPR must be of a boolean vector type of " "the same number of elements as the result" msgstr "" -#: tree-cfg.c:4210 c/c-typeck.c:5383 +#: tree-cfg.c:4162 c/c-typeck.c:5381 #, gcc-internal-format msgid "type mismatch in conditional expression" msgstr "" -#: tree-cfg.c:4222 +#: tree-cfg.c:4174 #, gcc-internal-format msgid "type mismatch in vector permute expression" msgstr "" -#: tree-cfg.c:4234 +#: tree-cfg.c:4186 #, gcc-internal-format msgid "vector types expected in vector permute expression" msgstr "" -#: tree-cfg.c:4249 +#: tree-cfg.c:4201 #, gcc-internal-format msgid "" "vectors with different element number found in vector permute expression" msgstr "" -#: tree-cfg.c:4265 +#: tree-cfg.c:4217 #, gcc-internal-format msgid "invalid mask type in vector permute expression" msgstr "" -#: tree-cfg.c:4281 +#: tree-cfg.c:4233 #, gcc-internal-format msgid "type mismatch in sad expression" msgstr "" -#: tree-cfg.c:4293 +#: tree-cfg.c:4245 #, gcc-internal-format msgid "vector types expected in sad expression" msgstr "" -#: tree-cfg.c:4306 +#: tree-cfg.c:4258 #, gcc-internal-format msgid "type mismatch in BIT_INSERT_EXPR" msgstr "" -#: tree-cfg.c:4316 +#: tree-cfg.c:4268 #, gcc-internal-format msgid "not allowed type combination in BIT_INSERT_EXPR" msgstr "" -#: tree-cfg.c:4325 +#: tree-cfg.c:4277 #, gcc-internal-format msgid "invalid position or size in BIT_INSERT_EXPR" msgstr "" -#: tree-cfg.c:4331 +#: tree-cfg.c:4283 #, gcc-internal-format msgid "BIT_INSERT_EXPR into non-mode-precision operand" msgstr "" -#: tree-cfg.c:4341 +#: tree-cfg.c:4293 #, gcc-internal-format msgid "insertion out of range in BIT_INSERT_EXPR" msgstr "" -#: tree-cfg.c:4351 +#: tree-cfg.c:4303 #, gcc-internal-format msgid "vector insertion not at element boundary" msgstr "" -#: tree-cfg.c:4370 +#: tree-cfg.c:4322 #, gcc-internal-format msgid "type mismatch in dot product reduction" msgstr "" -#: tree-cfg.c:4404 +#: tree-cfg.c:4356 #, gcc-internal-format msgid "non-trivial conversion at assignment" msgstr "" -#: tree-cfg.c:4413 +#: tree-cfg.c:4365 #, gcc-internal-format msgid "non-decl/MEM_REF LHS in clobber statement" msgstr "" -#: tree-cfg.c:4431 +#: tree-cfg.c:4383 #, gcc-internal-format msgid "invalid operand in unary expression" msgstr "" -#: tree-cfg.c:4445 +#: tree-cfg.c:4397 #, gcc-internal-format msgid "type mismatch in address expression" msgstr "" -#: tree-cfg.c:4472 tree-cfg.c:4498 +#: tree-cfg.c:4424 tree-cfg.c:4450 #, gcc-internal-format msgid "invalid rhs for gimple memory store" msgstr "" -#: tree-cfg.c:4532 tree-cfg.c:4550 tree-cfg.c:4564 +#: tree-cfg.c:4484 tree-cfg.c:4502 tree-cfg.c:4516 #, gcc-internal-format msgid "incorrect type of vector CONSTRUCTOR elements" msgstr "" -#: tree-cfg.c:4541 tree-cfg.c:4557 +#: tree-cfg.c:4493 tree-cfg.c:4509 #, gcc-internal-format msgid "incorrect number of vector CONSTRUCTOR elements" msgstr "" -#: tree-cfg.c:4573 +#: tree-cfg.c:4525 #, gcc-internal-format msgid "vector CONSTRUCTOR with non-NULL element index" msgstr "" -#: tree-cfg.c:4579 +#: tree-cfg.c:4531 #, gcc-internal-format msgid "vector CONSTRUCTOR element is not a GIMPLE value" msgstr "" -#: tree-cfg.c:4587 +#: tree-cfg.c:4539 #, gcc-internal-format msgid "non-vector CONSTRUCTOR with elements" msgstr "" -#: tree-cfg.c:4598 +#: tree-cfg.c:4550 #, gcc-internal-format msgid "ASSERT_EXPR with an always-false condition" msgstr "" -#: tree-cfg.c:4657 +#: tree-cfg.c:4609 #, gcc-internal-format msgid "invalid operand in return statement" msgstr "" -#: tree-cfg.c:4672 c/gimple-parser.c:1731 +#: tree-cfg.c:4624 c/gimple-parser.c:2047 #, gcc-internal-format msgid "invalid conversion in return statement" msgstr "" -#: tree-cfg.c:4696 +#: tree-cfg.c:4648 #, gcc-internal-format msgid "goto destination is neither a label nor a pointer" msgstr "" -#: tree-cfg.c:4715 +#: tree-cfg.c:4667 #, gcc-internal-format msgid "invalid operand to switch statement" msgstr "" -#: tree-cfg.c:4723 +#: tree-cfg.c:4675 #, gcc-internal-format msgid "non-integral type switch statement" msgstr "" -#: tree-cfg.c:4733 +#: tree-cfg.c:4685 #, gcc-internal-format msgid "invalid default case label in switch statement" msgstr "" -#: tree-cfg.c:4745 +#: tree-cfg.c:4697 #, gcc-internal-format msgid "invalid CASE_CHAIN" msgstr "" -#: tree-cfg.c:4751 +#: tree-cfg.c:4703 #, gcc-internal-format msgid "invalid case label in switch statement" msgstr "" -#: tree-cfg.c:4758 +#: tree-cfg.c:4710 #, gcc-internal-format msgid "invalid case range in switch statement" msgstr "" -#: tree-cfg.c:4768 +#: tree-cfg.c:4720 #, gcc-internal-format msgid "type mismatch for case label in switch statement" msgstr "" -#: tree-cfg.c:4778 +#: tree-cfg.c:4730 #, gcc-internal-format msgid "type precision mismatch in switch statement" msgstr "" -#: tree-cfg.c:4787 +#: tree-cfg.c:4739 #, gcc-internal-format msgid "case labels not sorted in switch statement" msgstr "" -#: tree-cfg.c:4830 +#: tree-cfg.c:4782 #, gcc-internal-format -msgid "label's context is not the current function decl" +msgid "label%'s context is not the current function decl" msgstr "" -#: tree-cfg.c:4839 +#: tree-cfg.c:4791 #, gcc-internal-format msgid "incorrect entry in label_to_block_map" msgstr "" -#: tree-cfg.c:4849 +#: tree-cfg.c:4801 #, gcc-internal-format msgid "incorrect setting of landing pad number" msgstr "" -#: tree-cfg.c:4865 +#: tree-cfg.c:4817 #, gcc-internal-format msgid "invalid comparison code in gimple cond" msgstr "" -#: tree-cfg.c:4873 +#: tree-cfg.c:4825 #, gcc-internal-format msgid "invalid labels in gimple cond" msgstr "" -#: tree-cfg.c:4956 tree-cfg.c:4965 +#: tree-cfg.c:4908 tree-cfg.c:4917 #, gcc-internal-format msgid "invalid PHI result" msgstr "" -#: tree-cfg.c:4975 +#: tree-cfg.c:4927 #, gcc-internal-format msgid "missing PHI def" msgstr "" -#: tree-cfg.c:4989 +#: tree-cfg.c:4941 #, gcc-internal-format msgid "invalid PHI argument" msgstr "" -#: tree-cfg.c:4996 +#: tree-cfg.c:4948 #, gcc-internal-format, gfc-internal-format msgid "incompatible types in PHI argument %u" msgstr "" -#: tree-cfg.c:5094 tree-cfg.c:5434 +#: tree-cfg.c:5046 tree-cfg.c:5386 #, gcc-internal-format msgid "verify_gimple failed" msgstr "" -#: tree-cfg.c:5151 +#: tree-cfg.c:5103 #, gcc-internal-format msgid "dead STMT in EH table" msgstr "" -#: tree-cfg.c:5167 +#: tree-cfg.c:5119 #, gcc-internal-format msgid "location references block not in block tree" msgstr "" -#: tree-cfg.c:5216 +#: tree-cfg.c:5168 #, gcc-internal-format msgid "local declaration from a different function" msgstr "" -#: tree-cfg.c:5311 +#: tree-cfg.c:5263 #, gcc-internal-format msgid "gimple_bb (phi) is set to a wrong basic block" msgstr "" -#: tree-cfg.c:5320 +#: tree-cfg.c:5272 #, gcc-internal-format msgid "PHI node with location" msgstr "" -#: tree-cfg.c:5331 tree-cfg.c:5378 +#: tree-cfg.c:5283 tree-cfg.c:5330 #, gcc-internal-format msgid "incorrect sharing of tree nodes" msgstr "" -#: tree-cfg.c:5339 +#: tree-cfg.c:5291 #, gcc-internal-format msgid "virtual PHI with argument locations" msgstr "" -#: tree-cfg.c:5366 +#: tree-cfg.c:5318 #, gcc-internal-format msgid "gimple_bb (stmt) is set to a wrong basic block" msgstr "" -#: tree-cfg.c:5406 +#: tree-cfg.c:5358 #, gcc-internal-format msgid "statement marked for throw, but doesn%'t" msgstr "" -#: tree-cfg.c:5412 +#: tree-cfg.c:5364 #, gcc-internal-format msgid "statement marked for throw in middle of block" msgstr "" -#: tree-cfg.c:5456 +#: tree-cfg.c:5408 #, gcc-internal-format msgid "ENTRY_BLOCK has IL associated with it" msgstr "" -#: tree-cfg.c:5463 +#: tree-cfg.c:5415 #, gcc-internal-format msgid "EXIT_BLOCK has IL associated with it" msgstr "" -#: tree-cfg.c:5470 +#: tree-cfg.c:5422 #, gcc-internal-format, gfc-internal-format msgid "fallthru to exit from bb %d" msgstr "" -#: tree-cfg.c:5494 +#: tree-cfg.c:5446 #, gcc-internal-format msgid "nonlocal label " msgstr "" -#: tree-cfg.c:5503 +#: tree-cfg.c:5455 #, gcc-internal-format msgid "EH landing pad label " msgstr "" -#: tree-cfg.c:5512 tree-cfg.c:5521 tree-cfg.c:5546 +#: tree-cfg.c:5464 tree-cfg.c:5473 tree-cfg.c:5498 #, gcc-internal-format msgid "label " msgstr "" -#: tree-cfg.c:5536 +#: tree-cfg.c:5488 #, gcc-internal-format, gfc-internal-format msgid "control flow in the middle of basic block %d" msgstr "" -#: tree-cfg.c:5569 +#: tree-cfg.c:5521 #, gcc-internal-format, gfc-internal-format msgid "fallthru edge after a control statement in bb %d" msgstr "" -#: tree-cfg.c:5582 +#: tree-cfg.c:5534 #, gcc-internal-format, gfc-internal-format msgid "true/false edge after a non-GIMPLE_COND in bb %d" msgstr "" -#: tree-cfg.c:5605 tree-cfg.c:5627 tree-cfg.c:5644 tree-cfg.c:5713 +#: tree-cfg.c:5557 tree-cfg.c:5579 tree-cfg.c:5596 tree-cfg.c:5665 #, gcc-internal-format, gfc-internal-format msgid "wrong outgoing edge flags at end of bb %d" msgstr "" -#: tree-cfg.c:5615 +#: tree-cfg.c:5567 #, gcc-internal-format, gfc-internal-format msgid "explicit goto at end of bb %d" msgstr "" -#: tree-cfg.c:5649 +#: tree-cfg.c:5601 #, gcc-internal-format, gfc-internal-format msgid "return edge does not point to exit in bb %d" msgstr "" -#: tree-cfg.c:5679 +#: tree-cfg.c:5631 #, gcc-internal-format msgid "found default case not at the start of case vector" msgstr "" -#: tree-cfg.c:5687 +#: tree-cfg.c:5639 #, gcc-internal-format msgid "case labels not sorted: " msgstr "" -#: tree-cfg.c:5704 +#: tree-cfg.c:5656 #, gcc-internal-format, gfc-internal-format msgid "extra outgoing edge %d->%d" msgstr "" -#: tree-cfg.c:5727 +#: tree-cfg.c:5679 #, gcc-internal-format, gfc-internal-format msgid "missing edge %i->%i" msgstr "" -#: tree-cfg.c:9279 +#: tree-cfg.c:9268 #, gcc-internal-format msgid "% function does return" msgstr "" -#: tree-cfg.c:9300 tree-cfg.c:9332 +#: tree-cfg.c:9289 tree-cfg.c:9321 #, gcc-internal-format msgid "control reaches end of non-void function" msgstr "" -#: tree-cfg.c:9398 cp/cvt.c:1064 +#: tree-cfg.c:9387 cp/cvt.c:1064 #, gcc-internal-format msgid "" "ignoring return value of %qD, declared with attribute warn_unused_result" msgstr "" -#: tree-cfg.c:9403 cp/cvt.c:1071 +#: tree-cfg.c:9392 cp/cvt.c:1071 #, gcc-internal-format msgid "" "ignoring return value of function declared with attribute warn_unused_result" @@ -24806,105 +24900,105 @@ msgstr "" msgid "BB %i has incorrect fallthru edge" msgstr "" -#: tree-inline.c:3567 +#: tree-inline.c:3569 #, gcc-internal-format msgid "function %q+F can never be copied because it receives a non-local goto" msgstr "" -#: tree-inline.c:3574 +#: tree-inline.c:3576 #, gcc-internal-format msgid "" "function %q+F can never be copied because it saves address of local label in " "a static variable" msgstr "" -#: tree-inline.c:3614 +#: tree-inline.c:3616 #, gcc-internal-format msgid "" "function %q+F can never be inlined because it uses alloca (override using " "the always_inline attribute)" msgstr "" -#: tree-inline.c:3628 +#: tree-inline.c:3630 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses setjmp" msgstr "" -#: tree-inline.c:3642 +#: tree-inline.c:3644 #, gcc-internal-format msgid "" "function %q+F can never be inlined because it uses variable argument lists" msgstr "" -#: tree-inline.c:3654 +#: tree-inline.c:3656 #, gcc-internal-format msgid "" "function %q+F can never be inlined because it uses setjmp-longjmp exception " "handling" msgstr "" -#: tree-inline.c:3662 +#: tree-inline.c:3664 #, gcc-internal-format msgid "function %q+F can never be inlined because it uses non-local goto" msgstr "" -#: tree-inline.c:3674 +#: tree-inline.c:3676 #, gcc-internal-format msgid "" -"function %q+F can never be inlined because it uses __builtin_return or " -"__builtin_apply_args" +"function %q+F can never be inlined because it uses %<__builtin_return%> or " +"%<__builtin_apply_args%>" msgstr "" -#: tree-inline.c:3694 +#: tree-inline.c:3696 #, gcc-internal-format msgid "function %q+F can never be inlined because it contains a computed goto" msgstr "" -#: tree-inline.c:3795 +#: tree-inline.c:3797 #, gcc-internal-format msgid "" -"function %q+F can never be inlined because it is suppressed using -fno-inline" +"function %q+F can never be inlined because it is suppressed using %<-fno-" +"inline%>" msgstr "" -#: tree-inline.c:3803 +#: tree-inline.c:3805 #, gcc-internal-format msgid "" "function %q+F can never be inlined because it uses attributes conflicting " "with inlining" msgstr "" -#: tree-inline.c:4479 +#: tree-inline.c:4481 #, gcc-internal-format msgid "inlining failed in call to always_inline %q+F: %s" msgstr "" -#: tree-inline.c:4482 tree-inline.c:4503 +#: tree-inline.c:4484 tree-inline.c:4505 #, gcc-internal-format msgid "called from here" msgstr "" -#: tree-inline.c:4485 tree-inline.c:4506 +#: tree-inline.c:4487 tree-inline.c:4508 #, gcc-internal-format msgid "called from this function" msgstr "" -#: tree-inline.c:4499 +#: tree-inline.c:4501 #, gcc-internal-format msgid "inlining failed in call to %q+F: %s" msgstr "" -#: tree-into-ssa.c:3315 +#: tree-into-ssa.c:3307 #, gcc-internal-format msgid "statement uses released SSA name:" msgstr "" -#: tree-into-ssa.c:3327 +#: tree-into-ssa.c:3319 #, gcc-internal-format msgid "cannot update SSA form" msgstr "" -#: tree-into-ssa.c:3418 tree-outof-ssa.c:826 tree-outof-ssa.c:885 -#: tree-ssa-coalesce.c:1002 +#: tree-into-ssa.c:3410 tree-outof-ssa.c:866 tree-ssa-coalesce.c:1002 #, gcc-internal-format msgid "SSA corruption" msgstr "" @@ -24958,42 +25052,42 @@ msgstr "" msgid "% parameter is not a power of two %d" msgstr "" -#: tree-ssa-operands.c:975 +#: tree-ssa-operands.c:977 #, gcc-internal-format msgid "virtual definition of statement not up-to-date" msgstr "" -#: tree-ssa-operands.c:982 +#: tree-ssa-operands.c:984 #, gcc-internal-format msgid "virtual def operand missing for stmt" msgstr "" -#: tree-ssa-operands.c:992 +#: tree-ssa-operands.c:994 #, gcc-internal-format msgid "virtual use of statement not up-to-date" msgstr "" -#: tree-ssa-operands.c:999 +#: tree-ssa-operands.c:1001 #, gcc-internal-format msgid "virtual use operand missing for stmt" msgstr "" -#: tree-ssa-operands.c:1016 +#: tree-ssa-operands.c:1018 #, gcc-internal-format msgid "excess use operand for stmt" msgstr "" -#: tree-ssa-operands.c:1026 +#: tree-ssa-operands.c:1028 #, gcc-internal-format msgid "use operand missing for stmt" msgstr "" -#: tree-ssa-operands.c:1033 +#: tree-ssa-operands.c:1035 #, gcc-internal-format msgid "stmt volatile flag not up-to-date" msgstr "" -#: tree-ssa-strlen.c:2072 +#: tree-ssa-strlen.c:2095 msgid "" "%G%qD output truncated before terminating nul copying %E byte from a string " "of the same length" @@ -25003,20 +25097,20 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: tree-ssa-strlen.c:2088 +#: tree-ssa-strlen.c:2111 msgid "%G%qD output truncated copying %E byte from a string of length %wu" msgid_plural "" "%G%qD output truncated copying %E bytes from a string of length %wu" msgstr[0] "" msgstr[1] "" -#: tree-ssa-strlen.c:2095 +#: tree-ssa-strlen.c:2118 msgid "" "%G%qD output truncated copying between %wu and %wu bytes from a string of " "length %wu" msgstr "" -#: tree-ssa-strlen.c:2107 +#: tree-ssa-strlen.c:2130 msgid "" "%G%qD output may be truncated copying %E byte from a string of length %wu" msgid_plural "" @@ -25024,23 +25118,23 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: tree-ssa-strlen.c:2114 tree-ssa-strlen.c:2130 +#: tree-ssa-strlen.c:2137 tree-ssa-strlen.c:2153 msgid "" "%G%qD output may be truncated copying between %wu and %wu bytes from a " "string of length %wu" msgstr "" -#: tree-ssa-strlen.c:2256 +#: tree-ssa-strlen.c:2293 msgid "" "%G%qD output truncated before terminating nul copying as many bytes from a " "string as its length" msgstr "" -#: tree-ssa-strlen.c:2262 +#: tree-ssa-strlen.c:2299 msgid "%G%qD specified bound depends on the length of the source argument" msgstr "" -#: tree-ssa-strlen.c:2269 +#: tree-ssa-strlen.c:2306 #, gcc-internal-format msgid "length computed here" msgstr "" @@ -25245,7 +25339,7 @@ msgstr "" msgid "vector shuffling operation will be expanded piecewise" msgstr "" -#: tree-vect-loop.c:3635 +#: tree-vect-loop.c:3616 #, gcc-internal-format msgid "vectorization did not happen for a simd loop" msgstr "" @@ -25265,32 +25359,32 @@ msgstr "" msgid "array subscript %E is below array bounds of %qT" msgstr "" -#: tree-vrp.c:4499 tree-vrp.c:4750 tree-vrp.c:4851 +#: tree-vrp.c:4499 tree-vrp.c:4748 tree-vrp.c:4849 #, gcc-internal-format msgid "while referencing %qD" msgstr "" -#: tree-vrp.c:4740 +#: tree-vrp.c:4738 #, gcc-internal-format msgid "array subscript %wi is outside array bounds of %qT" msgstr "" -#: tree-vrp.c:4745 +#: tree-vrp.c:4743 #, gcc-internal-format msgid "array subscript [%wi, %wi] is outside array bounds of %qT" msgstr "" -#: tree-vrp.c:4766 +#: tree-vrp.c:4765 #, gcc-internal-format msgid "intermediate array offset %wi is outside array bounds of %qT" msgstr "" -#: tree-vrp.c:4829 +#: tree-vrp.c:4827 #, gcc-internal-format msgid "array subscript %wi is below array bounds of %qT" msgstr "" -#: tree-vrp.c:4843 +#: tree-vrp.c:4841 #, gcc-internal-format msgid "array subscript %wu is above array bounds of %qT" msgstr "" @@ -25305,97 +25399,97 @@ msgstr "" msgid "side-effects element in no-side-effects CONSTRUCTOR" msgstr "" -#: tree.c:8293 +#: tree.c:8361 #, gcc-internal-format msgid "arrays of functions are not meaningful" msgstr "" -#: tree.c:8462 +#: tree.c:8530 #, gcc-internal-format msgid "function return type cannot be function" msgstr "" -#: tree.c:9813 tree.c:9898 tree.c:9959 +#: tree.c:9881 tree.c:9966 tree.c:10027 #, gcc-internal-format, gfc-internal-format msgid "tree check: %s, have %s in %s, at %s:%d" msgstr "" -#: tree.c:9850 +#: tree.c:9918 #, gcc-internal-format, gfc-internal-format msgid "tree check: expected none of %s, have %s in %s, at %s:%d" msgstr "" -#: tree.c:9863 +#: tree.c:9931 #, gcc-internal-format msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d" msgstr "" -#: tree.c:9912 +#: tree.c:9980 #, gcc-internal-format msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d" msgstr "" -#: tree.c:9925 +#: tree.c:9993 #, gcc-internal-format, gfc-internal-format msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d" msgstr "" -#: tree.c:9985 +#: tree.c:10053 #, gcc-internal-format msgid "" "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:" "%d" msgstr "" -#: tree.c:9999 +#: tree.c:10067 #, gcc-internal-format, gfc-internal-format msgid "" "tree check: accessed elt %d of tree_int_cst with %d elts in %s, at %s:%d" msgstr "" -#: tree.c:10011 +#: tree.c:10079 #, gcc-internal-format, gfc-internal-format msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" msgstr "" -#: tree.c:10024 +#: tree.c:10092 #, gcc-internal-format, gfc-internal-format msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" msgstr "" -#: tree.c:10037 +#: tree.c:10105 #, gcc-internal-format, gfc-internal-format msgid "" "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at " "%s:%d" msgstr "" -#: tree.c:13152 +#: tree.c:13217 #, gcc-internal-format msgid "%qD is deprecated: %s" msgstr "" -#: tree.c:13155 +#: tree.c:13220 #, gcc-internal-format msgid "%qD is deprecated" msgstr "" -#: tree.c:13178 +#: tree.c:13243 #, gcc-internal-format msgid "%qE is deprecated: %s" msgstr "" -#: tree.c:13181 +#: tree.c:13246 #, gcc-internal-format msgid "%qE is deprecated" msgstr "" -#: tree.c:13187 +#: tree.c:13252 #, gcc-internal-format, gfc-internal-format msgid "type is deprecated: %s" msgstr "" -#: tree.c:13190 +#: tree.c:13255 #, gcc-internal-format msgid "type is deprecated" msgstr "" @@ -25420,242 +25514,242 @@ msgstr "" #. - vector types may differ by TYPE_VECTOR_OPAQUE #. #. Convenience macro for matching individual fields. -#: tree.c:13731 +#: tree.c:13796 #, gcc-internal-format, gfc-internal-format msgid "type variant differs by %s" msgstr "" -#: tree.c:13772 +#: tree.c:13837 #, gcc-internal-format msgid "type variant has different TYPE_SIZE_UNIT" msgstr "" -#: tree.c:13774 +#: tree.c:13839 #, gcc-internal-format -msgid "type variant's TYPE_SIZE_UNIT" +msgid "type variant%'s TYPE_SIZE_UNIT" msgstr "" -#: tree.c:13776 +#: tree.c:13841 #, gcc-internal-format -msgid "type's TYPE_SIZE_UNIT" +msgid "type%'s TYPE_SIZE_UNIT" msgstr "" -#: tree.c:13796 +#: tree.c:13861 #, gcc-internal-format msgid "type variant with TYPE_ALIAS_SET_KNOWN_P" msgstr "" -#: tree.c:13809 +#: tree.c:13874 #, gcc-internal-format msgid "type variant has different TYPE_VFIELD" msgstr "" -#: tree.c:13845 +#: tree.c:13910 #, gcc-internal-format msgid "type variant has different TYPE_BINFO" msgstr "" -#: tree.c:13847 +#: tree.c:13912 #, gcc-internal-format -msgid "type variant's TYPE_BINFO" +msgid "type variant%'s TYPE_BINFO" msgstr "" -#: tree.c:13849 +#: tree.c:13914 #, gcc-internal-format -msgid "type's TYPE_BINFO" +msgid "type%'s TYPE_BINFO" msgstr "" -#: tree.c:13888 +#: tree.c:13953 #, gcc-internal-format msgid "type variant has different TYPE_FIELDS" msgstr "" -#: tree.c:13890 +#: tree.c:13955 #, gcc-internal-format msgid "first mismatch is field" msgstr "" -#: tree.c:13892 +#: tree.c:13957 #, gcc-internal-format msgid "and field" msgstr "" -#: tree.c:13909 +#: tree.c:13974 #, gcc-internal-format msgid "type variant has different TREE_TYPE" msgstr "" -#: tree.c:13911 tree.c:13922 +#: tree.c:13976 tree.c:13987 #, gcc-internal-format -msgid "type variant's TREE_TYPE" +msgid "type variant%'s TREE_TYPE" msgstr "" -#: tree.c:13913 tree.c:13924 +#: tree.c:13978 tree.c:13989 #, gcc-internal-format -msgid "type's TREE_TYPE" +msgid "type%'s TREE_TYPE" msgstr "" -#: tree.c:13920 +#: tree.c:13985 #, gcc-internal-format msgid "type is not compatible with its variant" msgstr "" -#: tree.c:14223 +#: tree.c:14288 #, gcc-internal-format msgid "Main variant is not defined" msgstr "" -#: tree.c:14228 +#: tree.c:14293 #, gcc-internal-format msgid "TYPE_MAIN_VARIANT has different TYPE_MAIN_VARIANT" msgstr "" -#: tree.c:14240 +#: tree.c:14305 #, gcc-internal-format msgid "TYPE_CANONICAL has different TYPE_CANONICAL" msgstr "" -#: tree.c:14259 +#: tree.c:14324 #, gcc-internal-format msgid "TYPE_CANONICAL is not compatible" msgstr "" -#: tree.c:14267 +#: tree.c:14332 #, gcc-internal-format msgid "TYPE_MODE of TYPE_CANONICAL is not compatible" msgstr "" -#: tree.c:14273 +#: tree.c:14338 #, gcc-internal-format msgid "TYPE_CANONICAL of main variant is not main variant" msgstr "" -#: tree.c:14289 +#: tree.c:14354 #, gcc-internal-format msgid "TYPE_VFIELD is not FIELD_DECL nor TREE_LIST" msgstr "" -#: tree.c:14299 +#: tree.c:14364 #, gcc-internal-format msgid "TYPE_NEXT_PTR_TO is not POINTER_TYPE" msgstr "" -#: tree.c:14309 +#: tree.c:14374 #, gcc-internal-format msgid "TYPE_NEXT_REF_TO is not REFERENCE_TYPE" msgstr "" -#: tree.c:14330 +#: tree.c:14395 #, gcc-internal-format msgid "TYPE_BINFO is not TREE_BINFO" msgstr "" -#: tree.c:14336 +#: tree.c:14401 #, gcc-internal-format msgid "TYPE_BINFO type is not TYPE_MAIN_VARIANT" msgstr "" -#: tree.c:14347 +#: tree.c:14412 #, gcc-internal-format msgid "TYPE_METHOD_BASETYPE is not record nor union" msgstr "" -#: tree.c:14358 +#: tree.c:14423 #, gcc-internal-format msgid "TYPE_OFFSET_BASETYPE is not record nor union" msgstr "" -#: tree.c:14376 +#: tree.c:14441 #, gcc-internal-format msgid "TYPE_ARRAY_MAX_SIZE not INTEGER_CST" msgstr "" -#: tree.c:14383 +#: tree.c:14448 #, gcc-internal-format msgid "TYPE_MAX_VALUE_RAW non-NULL" msgstr "" -#: tree.c:14390 +#: tree.c:14455 #, gcc-internal-format msgid "TYPE_LANG_SLOT_1 (binfo) field is non-NULL" msgstr "" -#: tree.c:14406 +#: tree.c:14471 #, gcc-internal-format msgid "Enum value is not CONST_DECL or INTEGER_CST" msgstr "" -#: tree.c:14414 +#: tree.c:14479 #, gcc-internal-format msgid "Enum value type is not INTEGER_TYPE nor convertible to the enum" msgstr "" -#: tree.c:14421 +#: tree.c:14486 #, gcc-internal-format msgid "Enum value name is not IDENTIFIER_NODE" msgstr "" -#: tree.c:14431 +#: tree.c:14496 #, gcc-internal-format msgid "Array TYPE_DOMAIN is not integer type" msgstr "" -#: tree.c:14440 +#: tree.c:14505 #, gcc-internal-format msgid "TYPE_FIELDS defined in incomplete type" msgstr "" -#: tree.c:14462 +#: tree.c:14527 #, gcc-internal-format msgid "Wrong tree in TYPE_FIELDS list" msgstr "" -#: tree.c:14477 +#: tree.c:14542 #, gcc-internal-format msgid "TYPE_CACHED_VALUES_P is %i while TYPE_CACHED_VALUES is %p" msgstr "" -#: tree.c:14483 +#: tree.c:14548 #, gcc-internal-format msgid "TYPE_CACHED_VALUES is not TREE_VEC" msgstr "" -#: tree.c:14496 +#: tree.c:14561 #, gcc-internal-format msgid "wrong TYPE_CACHED_VALUES entry" msgstr "" -#: tree.c:14509 +#: tree.c:14574 #, gcc-internal-format msgid "TREE_PURPOSE is non-NULL in TYPE_ARG_TYPES list" msgstr "" -#: tree.c:14515 +#: tree.c:14580 #, gcc-internal-format msgid "Wrong entry in TYPE_ARG_TYPES list" msgstr "" -#: tree.c:14522 +#: tree.c:14587 #, gcc-internal-format msgid "TYPE_VALUES_RAW field is non-NULL" msgstr "" -#: tree.c:14534 +#: tree.c:14599 #, gcc-internal-format msgid "TYPE_CACHED_VALUES_P is set while it should not" msgstr "" -#: tree.c:14540 +#: tree.c:14605 #, gcc-internal-format msgid "TYPE_STRING_FLAG is set on wrong type code" msgstr "" -#: tree.c:14550 +#: tree.c:14615 #, gcc-internal-format msgid "TYPE_METHOD_BASETYPE is not main variant" msgstr "" -#: tree.c:14557 +#: tree.c:14622 #, gcc-internal-format msgid "verify_type failed" msgstr "" @@ -25687,7 +25781,7 @@ msgstr "" #: var-tracking.c:7184 #, gcc-internal-format msgid "" -"variable tracking size limit exceeded with -fvar-tracking-assignments, " +"variable tracking size limit exceeded with %<-fvar-tracking-assignments%>, " "retrying without" msgstr "" @@ -25716,219 +25810,219 @@ msgstr "" msgid "section type conflict" msgstr "" -#: varasm.c:1034 +#: varasm.c:1041 #, gcc-internal-format msgid "alignment of %q+D is greater than maximum object file alignment %d" msgstr "" -#: varasm.c:1187 +#: varasm.c:1194 #, gcc-internal-format msgid "only zero initializers are allowed in section %qs" msgstr "" -#: varasm.c:1389 varasm.c:1398 +#: varasm.c:1396 varasm.c:1405 #, gcc-internal-format msgid "register name not specified for %q+D" msgstr "" -#: varasm.c:1400 +#: varasm.c:1407 #, gcc-internal-format msgid "invalid register name for %q+D" msgstr "" -#: varasm.c:1402 +#: varasm.c:1409 #, gcc-internal-format msgid "data type of %q+D isn%'t suitable for a register" msgstr "" -#: varasm.c:1405 +#: varasm.c:1412 #, gcc-internal-format msgid "" "the register specified for %q+D cannot be accessed by the current target" msgstr "" -#: varasm.c:1408 +#: varasm.c:1415 #, gcc-internal-format msgid "" "the register specified for %q+D is not general enough to be used as a " "register variable" msgstr "" -#: varasm.c:1411 +#: varasm.c:1418 #, gcc-internal-format msgid "register specified for %q+D isn%'t suitable for data type" msgstr "" -#: varasm.c:1421 +#: varasm.c:1428 #, gcc-internal-format msgid "global register variable has initial value" msgstr "" -#: varasm.c:1425 +#: varasm.c:1432 #, gcc-internal-format msgid "optimization may eliminate reads and/or writes to register variables" msgstr "" -#: varasm.c:1471 +#: varasm.c:1478 #, gcc-internal-format msgid "register name given for non-register variable %q+D" msgstr "" -#: varasm.c:1882 +#: varasm.c:1889 #, gcc-internal-format msgid "Patchable function entry > size" msgstr "" -#: varasm.c:2081 +#: varasm.c:2088 #, gcc-internal-format msgid "thread-local COMMON data not implemented" msgstr "" -#: varasm.c:2114 +#: varasm.c:2121 #, gcc-internal-format msgid "" "requested alignment for %q+D is greater than implemented alignment of %wu" msgstr "" -#: varasm.c:2217 c/c-decl.c:5195 c/c-parser.c:1544 +#: varasm.c:2224 c/c-decl.c:5199 c/c-parser.c:1544 #, gcc-internal-format msgid "storage size of %q+D isn%'t known" msgstr "" -#: varasm.c:4976 +#: varasm.c:4988 #, gcc-internal-format msgid "initializer for integer/fixed-point value is too complicated" msgstr "" -#: varasm.c:4981 +#: varasm.c:4993 #, gcc-internal-format msgid "initializer for floating value is not a floating constant" msgstr "" -#: varasm.c:5300 +#: varasm.c:5312 #, gcc-internal-format msgid "invalid initial value for member %qE" msgstr "" -#: varasm.c:5556 +#: varasm.c:5568 #, gcc-internal-format msgid "%+qD declared weak after being used" msgstr "" -#: varasm.c:5608 +#: varasm.c:5620 #, gcc-internal-format msgid "" "weak declaration of %q+D being applied to a already existing, static " "definition" msgstr "" -#: varasm.c:5644 +#: varasm.c:5656 #, gcc-internal-format msgid "weak declaration of %q+D must be public" msgstr "" -#: varasm.c:5648 +#: varasm.c:5660 #, gcc-internal-format msgid "weak declaration of %q+D not supported" msgstr "" -#: varasm.c:5677 varasm.c:5980 +#: varasm.c:5689 varasm.c:5992 #, gcc-internal-format msgid "only weak aliases are supported in this configuration" msgstr "" -#: varasm.c:5872 +#: varasm.c:5884 #, gcc-internal-format msgid "weakref is not supported in this configuration" msgstr "" -#: varasm.c:5900 +#: varasm.c:5912 #, gcc-internal-format msgid "ifunc is not supported on this target" msgstr "" -#: varasm.c:5958 +#: varasm.c:5970 #, gcc-internal-format msgid "weakref %q+D ultimately targets itself" msgstr "" -#: varasm.c:5960 +#: varasm.c:5972 #, gcc-internal-format msgid "weakref %q+D must have static linkage" msgstr "" -#: varasm.c:5967 +#: varasm.c:5979 #, gcc-internal-format msgid "alias definitions not supported in this configuration" msgstr "" -#: varasm.c:5977 +#: varasm.c:5989 #, gcc-internal-format msgid "ifunc is not supported in this configuration" msgstr "" -#: varasm.c:6195 config/sol2.c:159 config/i386/winnt.c:265 +#: varasm.c:6207 config/sol2.c:159 config/i386/winnt.c:265 #, gcc-internal-format msgid "visibility attribute not supported in this configuration; ignored" msgstr "" -#: vec.c:202 +#: vec.c:199 #, gcc-internal-format, gfc-internal-format msgid "qsort comparator not anti-commutative: %d, %d" msgstr "" -#: vec.c:207 +#: vec.c:204 #, gcc-internal-format, gfc-internal-format msgid "qsort comparator non-negative on sorted output: %d" msgstr "" -#: vec.c:212 +#: vec.c:209 #, gcc-internal-format, gfc-internal-format msgid "qsort comparator not transitive: %d, %d, %d" msgstr "" -#: vec.c:214 +#: vec.c:211 #, gcc-internal-format msgid "qsort checking failed" msgstr "" -#: vr-values.c:2427 +#: vr-values.c:2432 #, gcc-internal-format msgid "" "assuming signed overflow does not occur when simplifying conditional to " "constant" msgstr "" -#: vr-values.c:2433 +#: vr-values.c:2438 #, gcc-internal-format msgid "assuming signed overflow does not occur when simplifying conditional" msgstr "" -#: vr-values.c:2477 +#: vr-values.c:2482 #, gcc-internal-format msgid "comparison always false due to limited range of data type" msgstr "" -#: vr-values.c:2479 +#: vr-values.c:2484 #, gcc-internal-format msgid "comparison always true due to limited range of data type" msgstr "" -#: vr-values.c:3154 +#: vr-values.c:3159 #, gcc-internal-format msgid "" "assuming signed overflow does not occur when simplifying % or %<%%%> to " "%<>>%> or %<&%>" msgstr "" -#: vr-values.c:3221 +#: vr-values.c:3226 #, gcc-internal-format msgid "" "assuming signed overflow does not occur when simplifying % " "to % or %" msgstr "" -#: vr-values.c:3272 +#: vr-values.c:3277 #, gcc-internal-format msgid "" "assuming signed overflow does not occur when simplifying % to % option to enable it" msgstr "" -#: c-family/c-attribs.c:1113 c-family/c-attribs.c:1119 -#: c-family/c-attribs.c:3808 c-family/c-attribs.c:3843 -#: c-family/c-attribs.c:3849 +#: c-family/c-attribs.c:1114 c-family/c-attribs.c:1120 +#: c-family/c-attribs.c:3809 c-family/c-attribs.c:3844 +#: c-family/c-attribs.c:3850 #, gcc-internal-format msgid "%qE attribute ignored due to conflict with %qs attribute" msgstr "" -#: c-family/c-attribs.c:1175 brig/brig-lang.c:490 lto/lto-lang.c:291 +#: c-family/c-attribs.c:1176 brig/brig-lang.c:490 lto/lto-lang.c:291 #, gcc-internal-format msgid "%qE attribute has no effect on unit local functions" msgstr "" -#: c-family/c-attribs.c:1329 +#: c-family/c-attribs.c:1330 #, gcc-internal-format msgid "%qE attribute have effect only on public objects" msgstr "" -#: c-family/c-attribs.c:1358 +#: c-family/c-attribs.c:1359 #, gcc-internal-format msgid "%qE attribute only affects top level objects" msgstr "" -#: c-family/c-attribs.c:1397 c-family/c-attribs.c:3089 +#: c-family/c-attribs.c:1398 c-family/c-attribs.c:3090 #, gcc-internal-format msgid "%qE attribute on function returning %" msgstr "" -#: c-family/c-attribs.c:1420 c-family/c-pragma.c:419 +#: c-family/c-attribs.c:1421 c-family/c-pragma.c:419 #, gcc-internal-format msgid "scalar_storage_order is not supported because endianness is not uniform" msgstr "" -#: c-family/c-attribs.c:1437 +#: c-family/c-attribs.c:1438 #, gcc-internal-format msgid "" "scalar_storage_order argument must be one of \"big-endian\" or \"little-" "endian\"" msgstr "" -#: c-family/c-attribs.c:1533 +#: c-family/c-attribs.c:1534 #, gcc-internal-format msgid "destructor priorities are not supported" msgstr "" -#: c-family/c-attribs.c:1535 +#: c-family/c-attribs.c:1536 #, gcc-internal-format msgid "constructor priorities are not supported" msgstr "" -#: c-family/c-attribs.c:1557 +#: c-family/c-attribs.c:1558 #, gcc-internal-format, gfc-internal-format msgid "destructor priorities from 0 to %d are reserved for the implementation" msgstr "" -#: c-family/c-attribs.c:1562 +#: c-family/c-attribs.c:1563 #, gcc-internal-format, gfc-internal-format msgid "constructor priorities from 0 to %d are reserved for the implementation" msgstr "" -#: c-family/c-attribs.c:1570 +#: c-family/c-attribs.c:1571 #, gcc-internal-format, gfc-internal-format msgid "destructor priorities must be integers from 0 to %d inclusive" msgstr "" -#: c-family/c-attribs.c:1573 +#: c-family/c-attribs.c:1574 #, gcc-internal-format, gfc-internal-format msgid "constructor priorities must be integers from 0 to %d inclusive" msgstr "" -#: c-family/c-attribs.c:1726 +#: c-family/c-attribs.c:1727 #, gcc-internal-format msgid "unknown machine mode %qE" msgstr "" -#: c-family/c-attribs.c:1760 +#: c-family/c-attribs.c:1761 #, gcc-internal-format msgid "specifying vector types with __attribute__ ((mode)) is deprecated" msgstr "" -#: c-family/c-attribs.c:1763 +#: c-family/c-attribs.c:1764 #, gcc-internal-format msgid "use __attribute__ ((vector_size)) instead" msgstr "" -#: c-family/c-attribs.c:1772 +#: c-family/c-attribs.c:1773 #, gcc-internal-format msgid "unable to emulate %qs" msgstr "" -#: c-family/c-attribs.c:1785 +#: c-family/c-attribs.c:1786 #, gcc-internal-format msgid "invalid pointer mode %qs" msgstr "" -#: c-family/c-attribs.c:1802 +#: c-family/c-attribs.c:1803 #, gcc-internal-format msgid "signedness of type and machine mode %qs don%'t match" msgstr "" -#: c-family/c-attribs.c:1813 +#: c-family/c-attribs.c:1814 #, gcc-internal-format msgid "no data type for mode %qs" msgstr "" -#: c-family/c-attribs.c:1823 +#: c-family/c-attribs.c:1824 #, gcc-internal-format msgid "cannot use mode %qs for enumeral types" msgstr "" -#: c-family/c-attribs.c:1850 +#: c-family/c-attribs.c:1851 #, gcc-internal-format msgid "mode %qs applied to inappropriate type" msgstr "" -#: c-family/c-attribs.c:1872 +#: c-family/c-attribs.c:1873 #, gcc-internal-format msgid "section attributes are not supported for this target" msgstr "" -#: c-family/c-attribs.c:1878 +#: c-family/c-attribs.c:1879 #, gcc-internal-format msgid "section attribute not allowed for %q+D" msgstr "" -#: c-family/c-attribs.c:1884 +#: c-family/c-attribs.c:1885 #, gcc-internal-format msgid "section attribute argument not a string constant" msgstr "" -#: c-family/c-attribs.c:1893 +#: c-family/c-attribs.c:1894 #, gcc-internal-format msgid "section attribute cannot be specified for local variables" msgstr "" -#: c-family/c-attribs.c:1903 config/bfin/bfin.c:4806 config/bfin/bfin.c:4857 -#: config/bfin/bfin.c:4883 config/bfin/bfin.c:4896 +#: c-family/c-attribs.c:1904 config/bfin/bfin.c:4809 config/bfin/bfin.c:4860 +#: config/bfin/bfin.c:4886 config/bfin/bfin.c:4899 #, gcc-internal-format msgid "section of %q+D conflicts with previous declaration" msgstr "" -#: c-family/c-attribs.c:1911 +#: c-family/c-attribs.c:1912 #, gcc-internal-format msgid "section of %q+D cannot be overridden" msgstr "" -#: c-family/c-attribs.c:1976 +#: c-family/c-attribs.c:1977 #, gcc-internal-format, gfc-internal-format msgid "requested alignment %d is larger than %d" msgstr "" -#: c-family/c-attribs.c:2076 +#: c-family/c-attribs.c:2077 #, gcc-internal-format msgid "alignment may not be specified for %q+D" msgstr "" -#: c-family/c-attribs.c:2098 +#: c-family/c-attribs.c:2099 #, gcc-internal-format msgid "" "ignoring attribute %<%E (%u)%> because it conflicts with attribute %<%E " @@ -26239,347 +26333,347 @@ msgstr "" #. that appear to relax the implicit function alignment for #. the target. Both increasing and increasing the alignment #. set by -falign-functions setting is permitted. -#: c-family/c-attribs.c:2145 +#: c-family/c-attribs.c:2146 #, gcc-internal-format msgid "" "alignment for %q+D was previously specified as %d and may not be decreased" msgstr "" -#: c-family/c-attribs.c:2162 +#: c-family/c-attribs.c:2163 #, gcc-internal-format msgid "% may not be specified for %q+D" msgstr "" -#: c-family/c-attribs.c:2210 +#: c-family/c-attribs.c:2211 #, gcc-internal-format msgid "inline function %q+D declared weak" msgstr "" -#: c-family/c-attribs.c:2215 +#: c-family/c-attribs.c:2216 #, gcc-internal-format msgid "indirect function %q+D cannot be declared weak" msgstr "" -#: c-family/c-attribs.c:2239 +#: c-family/c-attribs.c:2240 #, gcc-internal-format msgid "%qE attribute is only applicable on functions" msgstr "" -#: c-family/c-attribs.c:2270 +#: c-family/c-attribs.c:2271 #, gcc-internal-format msgid "%q+D defined both normally and as %qE attribute" msgstr "" -#: c-family/c-attribs.c:2278 +#: c-family/c-attribs.c:2279 #, gcc-internal-format msgid "weak %q+D cannot be defined %qE" msgstr "" -#: c-family/c-attribs.c:2295 c-family/c-attribs.c:2989 +#: c-family/c-attribs.c:2296 c-family/c-attribs.c:2990 #, gcc-internal-format msgid "attribute %qE argument not a string" msgstr "" -#: c-family/c-attribs.c:2330 +#: c-family/c-attribs.c:2331 #, gcc-internal-format msgid "%+qD declared alias after being used" msgstr "" -#: c-family/c-attribs.c:2332 +#: c-family/c-attribs.c:2333 #, gcc-internal-format msgid "%+qD declared ifunc after being used" msgstr "" -#: c-family/c-attribs.c:2382 +#: c-family/c-attribs.c:2383 #, gcc-internal-format msgid "%qE attribute argument cannot be a string" msgstr "" -#: c-family/c-attribs.c:2395 +#: c-family/c-attribs.c:2396 #, gcc-internal-format msgid "%qE attribute argument cannot be a constant arithmetic expression" msgstr "" -#: c-family/c-attribs.c:2406 +#: c-family/c-attribs.c:2407 #, gcc-internal-format msgid "%qE attribute ignored on a redeclaration of the referenced symbol" msgstr "" -#: c-family/c-attribs.c:2441 +#: c-family/c-attribs.c:2442 #, gcc-internal-format msgid "" "%qE attribute ignored on a declaration of a different kind than referenced " "symbol" msgstr "" -#: c-family/c-attribs.c:2446 +#: c-family/c-attribs.c:2447 #, gcc-internal-format msgid "symbol %qD referenced by %qD declared here" msgstr "" -#: c-family/c-attribs.c:2493 +#: c-family/c-attribs.c:2494 #, gcc-internal-format msgid "%qE attribute must apply to a declaration" msgstr "" -#: c-family/c-attribs.c:2552 +#: c-family/c-attribs.c:2553 #, gcc-internal-format msgid "indirect function %q+D cannot be declared weakref" msgstr "" -#: c-family/c-attribs.c:2574 +#: c-family/c-attribs.c:2575 #, gcc-internal-format msgid "weakref attribute must appear before alias attribute" msgstr "" -#: c-family/c-attribs.c:2586 +#: c-family/c-attribs.c:2587 #, gcc-internal-format msgid "%+qD declared weakref after being used" msgstr "" -#: c-family/c-attribs.c:2610 +#: c-family/c-attribs.c:2611 #, gcc-internal-format msgid "%qE attribute ignored on non-class types" msgstr "" -#: c-family/c-attribs.c:2616 +#: c-family/c-attribs.c:2617 #, gcc-internal-format msgid "%qE attribute ignored because %qT is already defined" msgstr "" -#: c-family/c-attribs.c:2629 +#: c-family/c-attribs.c:2630 #, gcc-internal-format msgid "visibility argument not a string" msgstr "" -#: c-family/c-attribs.c:2641 +#: c-family/c-attribs.c:2642 #, gcc-internal-format msgid "%qE attribute ignored on types" msgstr "" -#: c-family/c-attribs.c:2657 +#: c-family/c-attribs.c:2658 #, gcc-internal-format msgid "" "visibility argument must be one of \"default\", \"hidden\", \"protected\" or " "\"internal\"" msgstr "" -#: c-family/c-attribs.c:2668 +#: c-family/c-attribs.c:2669 #, gcc-internal-format msgid "%qD redeclared with different visibility" msgstr "" -#: c-family/c-attribs.c:2671 c-family/c-attribs.c:2675 +#: c-family/c-attribs.c:2672 c-family/c-attribs.c:2676 #, gcc-internal-format msgid "%qD was declared %qs which implies default visibility" msgstr "" -#: c-family/c-attribs.c:2704 +#: c-family/c-attribs.c:2705 #, gcc-internal-format msgid "%qE attribute ignored because %qD is not a variable" msgstr "" -#: c-family/c-attribs.c:2712 +#: c-family/c-attribs.c:2713 #, gcc-internal-format msgid "%qE attribute ignored because %qD does not have thread storage duration" msgstr "" -#: c-family/c-attribs.c:2721 +#: c-family/c-attribs.c:2722 #, gcc-internal-format msgid "%qE argument not a string" msgstr "" -#: c-family/c-attribs.c:2734 +#: c-family/c-attribs.c:2735 #, gcc-internal-format msgid "%qE argument must be one of %qs, %qs, %qs, or %qs" msgstr "" -#: c-family/c-attribs.c:2756 c-family/c-attribs.c:3063 -#: c-family/c-attribs.c:3917 config/m32c/m32c.c:2944 +#: c-family/c-attribs.c:2757 c-family/c-attribs.c:3064 +#: c-family/c-attribs.c:3918 config/m32c/m32c.c:2944 #, gcc-internal-format msgid "%qE attribute applies only to functions" msgstr "" -#: c-family/c-attribs.c:2812 c-family/c-attribs.c:2853 -#: c-family/c-attribs.c:2877 +#: c-family/c-attribs.c:2813 c-family/c-attribs.c:2854 +#: c-family/c-attribs.c:2878 #, gcc-internal-format msgid "%qE attribute ignored on a function returning %qT" msgstr "" -#: c-family/c-attribs.c:2896 +#: c-family/c-attribs.c:2897 #, gcc-internal-format msgid "%qE attribute %E is not an integer constant" msgstr "" -#: c-family/c-attribs.c:2908 +#: c-family/c-attribs.c:2909 #, gcc-internal-format msgid "%qE attribute argument %E is not a power of 2" msgstr "" -#: c-family/c-attribs.c:2921 +#: c-family/c-attribs.c:2922 #, gcc-internal-format msgid "%qE attribute argument %E is not in the range [0, %E)" msgstr "" -#: c-family/c-attribs.c:3002 +#: c-family/c-attribs.c:3003 #, gcc-internal-format msgid "" "only % and % flags are allowed for %<__simd__%> " "attribute" msgstr "" -#: c-family/c-attribs.c:3069 c-family/c-attribs.c:3923 +#: c-family/c-attribs.c:3070 c-family/c-attribs.c:3924 #, gcc-internal-format msgid "can%'t set %qE attribute after definition" msgstr "" -#: c-family/c-attribs.c:3134 +#: c-family/c-attribs.c:3135 #, gcc-internal-format msgid "%qE attribute duplicated" msgstr "" -#: c-family/c-attribs.c:3136 +#: c-family/c-attribs.c:3137 #, gcc-internal-format msgid "%qE attribute follows %qE" msgstr "" -#: c-family/c-attribs.c:3235 +#: c-family/c-attribs.c:3236 #, gcc-internal-format msgid "type was previously declared %qE" msgstr "" -#: c-family/c-attribs.c:3248 cp/class.c:4463 +#: c-family/c-attribs.c:3249 cp/class.c:4461 #, gcc-internal-format msgid "" "% may only be specified for a virtual function" msgstr "" -#: c-family/c-attribs.c:3306 +#: c-family/c-attribs.c:3307 #, gcc-internal-format msgid "%qE argument not an identifier" msgstr "" -#: c-family/c-attribs.c:3317 +#: c-family/c-attribs.c:3318 #, gcc-internal-format msgid "%qD is not compatible with %qD" msgstr "" -#: c-family/c-attribs.c:3320 +#: c-family/c-attribs.c:3321 #, gcc-internal-format msgid "%qE argument is not a function" msgstr "" -#: c-family/c-attribs.c:3368 +#: c-family/c-attribs.c:3369 #, gcc-internal-format msgid "deprecated message is not a string" msgstr "" -#: c-family/c-attribs.c:3409 +#: c-family/c-attribs.c:3410 #, gcc-internal-format msgid "%qE attribute ignored for %qE" msgstr "" -#: c-family/c-attribs.c:3467 c-family/c-attribs.c:3469 +#: c-family/c-attribs.c:3468 c-family/c-attribs.c:3470 #, gcc-internal-format msgid "invalid vector type for attribute %qE" msgstr "" -#: c-family/c-attribs.c:3496 ada/gcc-interface/utils.c:3962 +#: c-family/c-attribs.c:3497 ada/gcc-interface/utils.c:3969 #, gcc-internal-format msgid "vector size not an integral multiple of component size" msgstr "" -#: c-family/c-attribs.c:3502 ada/gcc-interface/utils.c:3969 +#: c-family/c-attribs.c:3503 ada/gcc-interface/utils.c:3976 #, gcc-internal-format msgid "zero vector size" msgstr "" -#: c-family/c-attribs.c:3511 c-family/c-attribs.c:3514 +#: c-family/c-attribs.c:3512 c-family/c-attribs.c:3515 #, gcc-internal-format msgid "number of components of the vector not a power of two" msgstr "" -#: c-family/c-attribs.c:3572 ada/gcc-interface/utils.c:6180 +#: c-family/c-attribs.c:3573 ada/gcc-interface/utils.c:6200 #, gcc-internal-format msgid "nonnull attribute without arguments on a non-prototype" msgstr "" -#: c-family/c-attribs.c:3628 +#: c-family/c-attribs.c:3629 #, gcc-internal-format msgid "%qE attribute ignored on objects of type %qT" msgstr "" -#: c-family/c-attribs.c:3636 +#: c-family/c-attribs.c:3637 #, gcc-internal-format msgid "%qE attribute does not apply to functions" msgstr "" -#: c-family/c-attribs.c:3693 +#: c-family/c-attribs.c:3694 #, gcc-internal-format msgid "cleanup argument not an identifier" msgstr "" -#: c-family/c-attribs.c:3700 +#: c-family/c-attribs.c:3701 #, gcc-internal-format msgid "cleanup argument not a function" msgstr "" -#: c-family/c-attribs.c:3737 +#: c-family/c-attribs.c:3738 #, gcc-internal-format msgid "%qE attribute requires prototypes with named arguments" msgstr "" -#: c-family/c-attribs.c:3745 +#: c-family/c-attribs.c:3746 #, gcc-internal-format msgid "%qE attribute only applies to variadic functions" msgstr "" -#: c-family/c-attribs.c:3761 ada/gcc-interface/utils.c:6267 +#: c-family/c-attribs.c:3762 ada/gcc-interface/utils.c:6287 #, gcc-internal-format msgid "requested position is not an integer constant" msgstr "" -#: c-family/c-attribs.c:3769 ada/gcc-interface/utils.c:6274 +#: c-family/c-attribs.c:3770 ada/gcc-interface/utils.c:6294 #, gcc-internal-format msgid "requested position is less than zero" msgstr "" -#: c-family/c-attribs.c:3824 +#: c-family/c-attribs.c:3825 #, gcc-internal-format msgid "empty string in attribute %" msgstr "" -#: c-family/c-attribs.c:3940 +#: c-family/c-attribs.c:3941 #, gcc-internal-format msgid "returns_nonnull attribute on a function not returning a pointer" msgstr "" -#: c-family/c-attribs.c:3955 +#: c-family/c-attribs.c:3956 #, gcc-internal-format msgid "%qE attribute is only valid on % type" msgstr "" -#: c-family/c-attribs.c:3993 +#: c-family/c-attribs.c:3994 #, gcc-internal-format msgid "unknown attribute %qE" msgstr "" -#: c-family/c-attribs.c:4020 +#: c-family/c-attribs.c:4021 #, gcc-internal-format msgid "invalid operand type %qT for %qs" msgstr "" -#: c-family/c-attribs.c:4114 +#: c-family/c-attribs.c:4115 #, gcc-internal-format msgid "%qs attribute not supported for %qT in %<__builtin_has_attribute%>" msgstr "" -#: c-family/c-attribs.c:4116 +#: c-family/c-attribs.c:4117 #, gcc-internal-format msgid "%qs attribute not supported for %qE in %<__builtin_has_attribute%>" msgstr "" -#: c-family/c-attribs.c:4297 +#: c-family/c-attribs.c:4298 #, gcc-internal-format msgid "%qs attribute not supported in %<__builtin_has_attribute%>" msgstr "" @@ -26604,37 +26698,37 @@ msgstr "" #: c-family/c-common.c:979 #, gcc-internal-format msgid "" -"use -flax-vector-conversions to permit conversions between vectors with " +"use %<-flax-vector-conversions%> to permit conversions between vectors with " "differing element types or numbers of subparts" msgstr "" #: c-family/c-common.c:1019 #, gcc-internal-format -msgid "__builtin_shuffle last argument must be an integer vector" +msgid "%<__builtin_shuffle%> last argument must be an integer vector" msgstr "" #: c-family/c-common.c:1028 #, gcc-internal-format -msgid "__builtin_shuffle arguments must be vectors" +msgid "%<__builtin_shuffle%> arguments must be vectors" msgstr "" #: c-family/c-common.c:1035 #, gcc-internal-format -msgid "__builtin_shuffle argument vectors must be of the same type" +msgid "%<__builtin_shuffle%> argument vectors must be of the same type" msgstr "" #: c-family/c-common.c:1046 #, gcc-internal-format msgid "" -"__builtin_shuffle number of elements of the argument vector(s) and the mask " -"vector should be the same" +"%<__builtin_shuffle%> number of elements of the argument vector(s) and the " +"mask vector should be the same" msgstr "" #: c-family/c-common.c:1056 #, gcc-internal-format msgid "" -"__builtin_shuffle argument vector(s) inner type must have the same size as " -"inner type of the mask" +"%<__builtin_shuffle%> argument vector(s) inner type must have the same size " +"as inner type of the mask" msgstr "" #: c-family/c-common.c:1104 @@ -26658,12 +26752,12 @@ msgid "" "and the second argument vector type should be the same" msgstr "" -#: c-family/c-common.c:1360 c-family/c-warn.c:1283 +#: c-family/c-common.c:1360 c-family/c-warn.c:1291 #, gcc-internal-format msgid "unsigned conversion from %qT to %qT changes value from %qE to %qE" msgstr "" -#: c-family/c-common.c:1365 c-family/c-warn.c:1291 +#: c-family/c-common.c:1365 c-family/c-warn.c:1299 #, gcc-internal-format msgid "unsigned conversion from %qT to %qT changes the value of %qE" msgstr "" @@ -26735,430 +26829,460 @@ msgstr "" msgid "comparison is always true due to limited range of data type" msgstr "" -#: c-family/c-common.c:3141 +#: c-family/c-common.c:3148 #, gcc-internal-format msgid "comparison of unsigned expression >= 0 is always true" msgstr "" -#: c-family/c-common.c:3148 +#: c-family/c-common.c:3155 #, gcc-internal-format msgid "comparison of unsigned expression < 0 is always false" msgstr "" -#: c-family/c-common.c:3191 +#: c-family/c-common.c:3198 #, gcc-internal-format msgid "pointer of type % used in arithmetic" msgstr "" -#: c-family/c-common.c:3200 +#: c-family/c-common.c:3207 #, gcc-internal-format msgid "pointer to a function used in arithmetic" msgstr "" -#: c-family/c-common.c:3374 +#: c-family/c-common.c:3381 #, gcc-internal-format msgid "enum constant in boolean context" msgstr "" -#: c-family/c-common.c:3401 +#: c-family/c-common.c:3408 #, gcc-internal-format msgid "the address of %qD will always evaluate as %" msgstr "" -#: c-family/c-common.c:3445 +#: c-family/c-common.c:3452 #, gcc-internal-format msgid "%<*%> in boolean context, suggest %<&&%> instead" msgstr "" -#: c-family/c-common.c:3457 +#: c-family/c-common.c:3464 #, gcc-internal-format msgid "%<<<%> in boolean context, did you mean %<<%> ?" msgstr "" -#: c-family/c-common.c:3473 +#: c-family/c-common.c:3480 #, gcc-internal-format msgid "" "?: using integer constants in boolean context, the expression will always " "evaluate to %" msgstr "" -#: c-family/c-common.c:3482 +#: c-family/c-common.c:3489 #, gcc-internal-format msgid "?: using integer constants in boolean context" msgstr "" -#: c-family/c-common.c:3518 +#: c-family/c-common.c:3525 #, gcc-internal-format msgid "" "the compiler can assume that the address of %qD will always evaluate to " "%" msgstr "" -#: c-family/c-common.c:3545 cp/semantics.c:663 cp/typeck.c:9069 +#: c-family/c-common.c:3551 cp/semantics.c:662 cp/typeck.c:9082 #, gcc-internal-format msgid "suggest parentheses around assignment used as truth value" msgstr "" -#: c-family/c-common.c:3633 c/c-decl.c:4492 c/c-decl.c:6621 c/c-typeck.c:14936 +#: c-family/c-common.c:3638 c/c-decl.c:4492 c/c-decl.c:6627 c/c-typeck.c:14934 #, gcc-internal-format msgid "invalid use of %" msgstr "" -#: c-family/c-common.c:3707 +#: c-family/c-common.c:3712 #, gcc-internal-format msgid "invalid application of % to a function type" msgstr "" -#: c-family/c-common.c:3717 +#: c-family/c-common.c:3722 #, gcc-internal-format msgid "ISO C++ does not permit % applied to a function type" msgstr "" -#: c-family/c-common.c:3720 +#: c-family/c-common.c:3725 #, gcc-internal-format msgid "ISO C does not permit %<_Alignof%> applied to a function type" msgstr "" -#: c-family/c-common.c:3731 +#: c-family/c-common.c:3736 #, gcc-internal-format msgid "invalid application of %qs to a void type" msgstr "" -#: c-family/c-common.c:3740 +#: c-family/c-common.c:3745 #, gcc-internal-format msgid "invalid application of %qs to incomplete type %qT" msgstr "" -#: c-family/c-common.c:3748 +#: c-family/c-common.c:3753 #, gcc-internal-format msgid "invalid application of %qs to array type %qT of incomplete element type" msgstr "" -#: c-family/c-common.c:3790 +#: c-family/c-common.c:3795 #, gcc-internal-format msgid "%<__alignof%> applied to a bit-field" msgstr "" -#: c-family/c-common.c:4585 +#: c-family/c-common.c:4590 #, gcc-internal-format msgid "first argument to % not of type %" msgstr "" -#: c-family/c-common.c:4705 +#: c-family/c-common.c:4710 #, gcc-internal-format msgid "cannot disable built-in function %qs" msgstr "" -#: c-family/c-common.c:4897 +#: c-family/c-common.c:4902 #, gcc-internal-format msgid "pointers are not permitted as case values" msgstr "" -#: c-family/c-common.c:4904 +#: c-family/c-common.c:4909 #, gcc-internal-format msgid "range expressions in switch statements are non-standard" msgstr "" -#: c-family/c-common.c:4930 +#: c-family/c-common.c:4935 #, gcc-internal-format msgid "empty range specified" msgstr "" -#: c-family/c-common.c:4991 +#: c-family/c-common.c:4996 #, gcc-internal-format msgid "duplicate (or overlapping) case value" msgstr "" -#: c-family/c-common.c:4993 +#: c-family/c-common.c:4998 #, gcc-internal-format msgid "this is the first entry overlapping that value" msgstr "" -#: c-family/c-common.c:4997 +#: c-family/c-common.c:5002 #, gcc-internal-format msgid "duplicate case value" msgstr "" -#: c-family/c-common.c:4998 c-family/c-warn.c:2315 +#: c-family/c-common.c:5003 c-family/c-warn.c:2323 #, gcc-internal-format msgid "previously used here" msgstr "" -#: c-family/c-common.c:5002 +#: c-family/c-common.c:5007 #, gcc-internal-format msgid "multiple default labels in one switch" msgstr "" -#: c-family/c-common.c:5004 +#: c-family/c-common.c:5009 #, gcc-internal-format msgid "this is the first default label" msgstr "" -#: c-family/c-common.c:5098 +#: c-family/c-common.c:5103 #, gcc-internal-format msgid "taking the address of a label is non-standard" msgstr "" -#: c-family/c-common.c:5272 +#: c-family/c-common.c:5277 #, gcc-internal-format msgid "requested alignment is not an integer constant" msgstr "" -#: c-family/c-common.c:5280 c-family/c-common.c:5289 +#: c-family/c-common.c:5285 c-family/c-common.c:5294 #, gcc-internal-format msgid "requested alignment %qE is not a positive power of 2" msgstr "" -#: c-family/c-common.c:5299 +#: c-family/c-common.c:5304 #, gcc-internal-format msgid "requested alignment %qE exceeds object file maximum %u" msgstr "" -#: c-family/c-common.c:5307 +#: c-family/c-common.c:5312 #, gcc-internal-format msgid "requested alignment %qE exceeds maximum %u" msgstr "" -#: c-family/c-common.c:5455 +#: c-family/c-common.c:5460 #, gcc-internal-format msgid "not enough variable arguments to fit a sentinel" msgstr "" -#: c-family/c-common.c:5469 +#: c-family/c-common.c:5474 #, gcc-internal-format msgid "missing sentinel in function call" msgstr "" -#: c-family/c-common.c:5574 +#: c-family/c-common.c:5579 #, gcc-internal-format, gfc-internal-format msgid "null argument where non-null required (argument %lu)" msgstr "" -#: c-family/c-common.c:5667 c-family/c-common.c:5717 +#: c-family/c-common.c:5672 c-family/c-common.c:5722 #, gcc-internal-format msgid "bad option %qs to attribute %" msgstr "" -#: c-family/c-common.c:5670 c-family/c-common.c:5721 +#: c-family/c-common.c:5675 c-family/c-common.c:5726 #, gcc-internal-format msgid "bad option %qs to pragma %" msgstr "" -#: c-family/c-common.c:5753 +#: c-family/c-common.c:5758 #, gcc-internal-format msgid "% attribute specified multiple times" msgstr "" -#: c-family/c-common.c:5757 +#: c-family/c-common.c:5762 #, gcc-internal-format msgid "% attribute specified with a parameter" msgstr "" -#: c-family/c-common.c:5902 c-family/c-common.c:6671 c-family/c-common.c:6718 -#: c-family/c-common.c:6791 c-family/c-common.c:6864 c/c-typeck.c:3643 +#: c-family/c-common.c:5907 c-family/c-common.c:6676 c-family/c-common.c:6723 +#: c-family/c-common.c:6796 c-family/c-common.c:6869 c/c-typeck.c:3641 #, gcc-internal-format msgid "too few arguments to function %qE" msgstr "" -#: c-family/c-common.c:5907 c-family/c-common.c:6724 c-family/c-common.c:6890 +#: c-family/c-common.c:5912 c-family/c-common.c:6729 c-family/c-common.c:6895 #: c/c-typeck.c:3505 #, gcc-internal-format msgid "too many arguments to function %qE" msgstr "" -#: c-family/c-common.c:5937 +#: c-family/c-common.c:5942 #, gcc-internal-format msgid "third argument to function %qE must be a constant integer" msgstr "" -#: c-family/c-common.c:5962 +#: c-family/c-common.c:5967 #, gcc-internal-format msgid "" "second argument to function %qE must be a constant integer power of 2 " "between %qi and %qu bits" msgstr "" -#: c-family/c-common.c:5983 c-family/c-common.c:6027 +#: c-family/c-common.c:5988 c-family/c-common.c:6032 #, gcc-internal-format msgid "non-floating-point argument in call to function %qE" msgstr "" -#: c-family/c-common.c:6006 +#: c-family/c-common.c:6011 #, gcc-internal-format msgid "non-floating-point arguments in call to function %qE" msgstr "" -#: c-family/c-common.c:6020 +#: c-family/c-common.c:6025 #, gcc-internal-format msgid "non-const integer argument %u in call to function %qE" msgstr "" -#: c-family/c-common.c:6040 +#: c-family/c-common.c:6045 #, gcc-internal-format msgid "non-integer argument 3 in call to function %qE" msgstr "" -#: c-family/c-common.c:6057 c-family/c-common.c:6093 +#: c-family/c-common.c:6062 c-family/c-common.c:6098 #, gcc-internal-format msgid "argument %u in call to function %qE does not have integral type" msgstr "" -#: c-family/c-common.c:6064 +#: c-family/c-common.c:6069 #, gcc-internal-format msgid "" "argument 3 in call to function %qE does not have pointer to integral type" msgstr "" -#: c-family/c-common.c:6070 +#: c-family/c-common.c:6075 #, gcc-internal-format msgid "argument 3 in call to function %qE has pointer to enumerated type" msgstr "" -#: c-family/c-common.c:6076 +#: c-family/c-common.c:6081 #, gcc-internal-format msgid "argument 3 in call to function %qE has pointer to boolean type" msgstr "" -#: c-family/c-common.c:6099 +#: c-family/c-common.c:6104 #, gcc-internal-format msgid "argument 3 in call to function %qE has enumerated type" msgstr "" -#: c-family/c-common.c:6105 +#: c-family/c-common.c:6110 #, gcc-internal-format msgid "argument 3 in call to function %qE has boolean type" msgstr "" -#: c-family/c-common.c:6356 +#: c-family/c-common.c:6361 #, gcc-internal-format msgid "cannot apply % to static data member %qD" msgstr "" -#: c-family/c-common.c:6361 +#: c-family/c-common.c:6366 #, gcc-internal-format msgid "cannot apply % when % is overloaded" msgstr "" -#: c-family/c-common.c:6368 +#: c-family/c-common.c:6373 #, gcc-internal-format msgid "cannot apply % to a non constant address" msgstr "" -#: c-family/c-common.c:6381 +#: c-family/c-common.c:6386 #, gcc-internal-format msgid "attempt to take address of bit-field structure member %qD" msgstr "" -#: c-family/c-common.c:6434 +#: c-family/c-common.c:6439 #, gcc-internal-format msgid "index %E denotes an offset greater than size of %qT" msgstr "" -#: c-family/c-common.c:6595 cp/init.c:3089 cp/init.c:3108 +#: c-family/c-common.c:6600 #, gcc-internal-format msgid "size of array is too large" msgstr "" -#: c-family/c-common.c:6701 c-family/c-common.c:6823 +#: c-family/c-common.c:6706 c-family/c-common.c:6828 #, gcc-internal-format msgid "operand type %qT is incompatible with argument %d of %qE" msgstr "" -#: c-family/c-common.c:6735 +#: c-family/c-common.c:6740 #, gcc-internal-format msgid "expecting argument of type pointer or of type integer for argument 1" msgstr "" -#: c-family/c-common.c:6749 +#: c-family/c-common.c:6754 #, gcc-internal-format msgid "both arguments must be compatible" msgstr "" -#: c-family/c-common.c:6957 +#: c-family/c-common.c:6962 #, gcc-internal-format msgid "incorrect number of arguments to function %qE" msgstr "" -#: c-family/c-common.c:6971 +#: c-family/c-common.c:6976 #, gcc-internal-format msgid "argument 1 of %qE must be a non-void pointer type" msgstr "" -#: c-family/c-common.c:6980 +#: c-family/c-common.c:6985 #, gcc-internal-format msgid "argument 1 of %qE must be a pointer to a constant size type" msgstr "" -#: c-family/c-common.c:6991 +#: c-family/c-common.c:6996 #, gcc-internal-format msgid "argument 1 of %qE must be a pointer to a nonzero size object" msgstr "" -#: c-family/c-common.c:7012 +#: c-family/c-common.c:7017 #, gcc-internal-format msgid "argument %d of %qE must be a pointer type" msgstr "" -#: c-family/c-common.c:7020 +#: c-family/c-common.c:7025 #, gcc-internal-format msgid "argument %d of %qE must be a pointer to a constant size type" msgstr "" -#: c-family/c-common.c:7026 +#: c-family/c-common.c:7031 #, gcc-internal-format msgid "argument %d of %qE must not be a pointer to a function" msgstr "" -#: c-family/c-common.c:7034 +#: c-family/c-common.c:7039 #, gcc-internal-format msgid "size mismatch in argument %d of %qE" msgstr "" -#: c-family/c-common.c:7046 +#: c-family/c-common.c:7051 #, gcc-internal-format msgid "non-integer memory model argument %d of %qE" msgstr "" -#: c-family/c-common.c:7059 +#: c-family/c-common.c:7064 #, gcc-internal-format msgid "invalid memory model argument %d of %qE" msgstr "" -#: c-family/c-common.c:7459 +#: c-family/c-common.c:7464 #, gcc-internal-format msgid "" "this target does not define a speculation barrier; your program will still " "execute correctly, but incorrect speculation may not be be restricted" msgstr "" -#: c-family/c-common.c:8031 +#: c-family/c-common.c:8036 #, gcc-internal-format msgid "index value is out of bound" msgstr "" -#: c-family/c-common.c:8073 c-family/c-common.c:8122 c-family/c-common.c:8138 +#: c-family/c-common.c:8078 c-family/c-common.c:8127 c-family/c-common.c:8143 #, gcc-internal-format msgid "conversion of scalar %qT to vector %qT involves truncation" msgstr "" #. Reject arguments that are built-in functions with #. no library fallback. -#: c-family/c-common.c:8226 +#: c-family/c-common.c:8231 #, gcc-internal-format msgid "built-in function %qE must be directly called" msgstr "" -#: c-family/c-common.c:8250 c/c-decl.c:6368 +#: c-family/c-common.c:8251 #, gcc-internal-format -msgid "size of array %qE is too large" +msgid "size of array %qE is not a constant expression" msgstr "" -#: c-family/c-common.c:8252 c/c-decl.c:6371 +#: c-family/c-common.c:8254 #, gcc-internal-format -msgid "size of unnamed array is too large" +msgid "size of array is not a constant expression" +msgstr "" + +#: c-family/c-common.c:8258 +#, gcc-internal-format +msgid "size %qE of array %qE is negative" +msgstr "" + +#: c-family/c-common.c:8261 +#, gcc-internal-format +msgid "size %qE of array is negative" +msgstr "" + +#: c-family/c-common.c:8266 +#, gcc-internal-format +msgid "size %qE of array %qE exceeds maximum object size %qE" +msgstr "" + +#: c-family/c-common.c:8269 +#, gcc-internal-format +msgid "size %qE of array exceeds maximum object size %qE" +msgstr "" + +#: c-family/c-common.c:8274 +#, gcc-internal-format +msgid "size of array %qE exceeds maximum object size %qE" msgstr "" -#: c-family/c-common.c:8283 +#: c-family/c-common.c:8277 +#, gcc-internal-format +msgid "size of array exceeds maximum object size %qE" +msgstr "" + +#: c-family/c-common.c:8348 #, gcc-internal-format msgid "" "environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer " @@ -27557,8 +27681,8 @@ msgstr "" #: c-family/c-indentation.c:67 #, gcc-internal-format msgid "" -"-Wmisleading-indentation is disabled from this point onwards, since column-" -"tracking was disabled due to the size of the code/headers" +"%<-Wmisleading-indentation%> is disabled from this point onwards, since " +"column-tracking was disabled due to the size of the code/headers" msgstr "" #: c-family/c-indentation.c:614 @@ -27711,7 +27835,7 @@ msgstr "" msgid "% modifier may not be specified on % construct" msgstr "" -#: c-family/c-omp.c:721 cp/semantics.c:8631 +#: c-family/c-omp.c:721 cp/semantics.c:8680 #, gcc-internal-format msgid "invalid type for iteration variable %qE" msgstr "" @@ -27726,17 +27850,17 @@ msgstr "" msgid "%qE is not initialized" msgstr "" -#: c-family/c-omp.c:763 cp/semantics.c:8520 +#: c-family/c-omp.c:763 cp/semantics.c:8569 #, gcc-internal-format msgid "missing controlling predicate" msgstr "" -#: c-family/c-omp.c:869 cp/semantics.c:8162 +#: c-family/c-omp.c:869 cp/semantics.c:8211 #, gcc-internal-format msgid "invalid controlling predicate" msgstr "" -#: c-family/c-omp.c:876 cp/semantics.c:8526 +#: c-family/c-omp.c:876 cp/semantics.c:8575 #, gcc-internal-format msgid "missing increment expression" msgstr "" @@ -27746,7 +27870,7 @@ msgstr "" msgid "increment is not constant 1 or -1 for != condition" msgstr "" -#: c-family/c-omp.c:1007 cp/semantics.c:8277 +#: c-family/c-omp.c:1007 cp/semantics.c:8326 #, gcc-internal-format msgid "invalid increment expression" msgstr "" @@ -27785,187 +27909,187 @@ msgstr "" #: c-family/c-opts.c:327 #, gcc-internal-format -msgid "-I- specified twice" +msgid "%<-I-%> specified twice" msgstr "" #: c-family/c-opts.c:330 #, gcc-internal-format -msgid "obsolete option -I- used, please use -iquote instead" +msgid "obsolete option %<-I-%> used, please use %<-iquote%> instead" msgstr "" -#: c-family/c-opts.c:408 +#: c-family/c-opts.c:409 #, gcc-internal-format msgid "%<-Wabi=1%> is not supported, using =2" msgstr "" -#: c-family/c-opts.c:602 fortran/cpp.c:351 +#: c-family/c-opts.c:603 fortran/cpp.c:351 #, gcc-internal-format msgid "output filename specified twice" msgstr "" -#: c-family/c-opts.c:799 +#: c-family/c-opts.c:800 #, gcc-internal-format -msgid "-fexcess-precision=standard for C++" +msgid "%<-fexcess-precision=standard%> for C++" msgstr "" -#: c-family/c-opts.c:834 +#: c-family/c-opts.c:835 #, gcc-internal-format -msgid "-fno-gnu89-inline is only supported in GNU99 or C99 mode" +msgid "%<-fno-gnu89-inline%> is only supported in GNU99 or C99 mode" msgstr "" -#: c-family/c-opts.c:880 +#: c-family/c-opts.c:881 #, gcc-internal-format -msgid "-Wformat-y2k ignored without -Wformat" +msgid "%<-Wformat-y2k%> ignored without %<-Wformat%>" msgstr "" -#: c-family/c-opts.c:882 +#: c-family/c-opts.c:883 #, gcc-internal-format -msgid "-Wformat-extra-args ignored without -Wformat" +msgid "%<-Wformat-extra-args%> ignored without %<-Wformat%>" msgstr "" -#: c-family/c-opts.c:884 +#: c-family/c-opts.c:885 #, gcc-internal-format -msgid "-Wformat-zero-length ignored without -Wformat" +msgid "%<-Wformat-zero-length%> ignored without %<-Wformat%>" msgstr "" -#: c-family/c-opts.c:886 +#: c-family/c-opts.c:887 #, gcc-internal-format -msgid "-Wformat-nonliteral ignored without -Wformat" +msgid "%<-Wformat-nonliteral%> ignored without %<-Wformat%>" msgstr "" -#: c-family/c-opts.c:888 +#: c-family/c-opts.c:889 #, gcc-internal-format -msgid "-Wformat-contains-nul ignored without -Wformat" +msgid "%<-Wformat-contains-nul%> ignored without %<-Wformat%>" msgstr "" -#: c-family/c-opts.c:890 +#: c-family/c-opts.c:891 #, gcc-internal-format -msgid "-Wformat-security ignored without -Wformat" +msgid "%<-Wformat-security%> ignored without %<-Wformat%>" msgstr "" -#: c-family/c-opts.c:920 +#: c-family/c-opts.c:921 #, gcc-internal-format msgid "%<-fabi-compat-version=1%> is not supported, using =2" msgstr "" -#: c-family/c-opts.c:947 +#: c-family/c-opts.c:948 #, gcc-internal-format -msgid "-Wabi won't warn about anything" +msgid "%<-Wabi%> won%'t warn about anything" msgstr "" -#: c-family/c-opts.c:949 +#: c-family/c-opts.c:950 #, gcc-internal-format msgid "" -"-Wabi warns about differences from the most up-to-date ABI, which is also " -"used by default" +"%<-Wabi%> warns about differences from the most up-to-date ABI, which is " +"also used by default" msgstr "" -#: c-family/c-opts.c:952 +#: c-family/c-opts.c:953 #, gcc-internal-format -msgid "use e.g. -Wabi=11 to warn about changes from GCC 7" +msgid "use e.g. %<-Wabi=11%> to warn about changes from GCC 7" msgstr "" -#: c-family/c-opts.c:1010 +#: c-family/c-opts.c:1011 #, gcc-internal-format msgid "external TLS initialization functions not supported on this target" msgstr "" -#: c-family/c-opts.c:1024 +#: c-family/c-opts.c:1025 #, gcc-internal-format, gfc-internal-format msgid "too many filenames given. Type %s --help for usage" msgstr "" -#: c-family/c-opts.c:1039 +#: c-family/c-opts.c:1040 #, gcc-internal-format msgid "opening output file %s: %m" msgstr "" -#: c-family/c-opts.c:1059 +#: c-family/c-opts.c:1060 #, gcc-internal-format, gfc-internal-format msgid "the \"%s\" debug format cannot be used with pre-compiled headers" msgstr "" -#: c-family/c-opts.c:1213 +#: c-family/c-opts.c:1214 #, gcc-internal-format msgid "opening dependency file %s: %m" msgstr "" -#: c-family/c-opts.c:1224 +#: c-family/c-opts.c:1225 #, gcc-internal-format msgid "closing dependency file %s: %m" msgstr "" -#: c-family/c-opts.c:1227 +#: c-family/c-opts.c:1228 #, gcc-internal-format msgid "when writing output to %s: %m" msgstr "" -#: c-family/c-opts.c:1307 +#: c-family/c-opts.c:1308 #, gcc-internal-format -msgid "to generate dependencies you must specify either -M or -MM" +msgid "to generate dependencies you must specify either %<-M%> or %<-MM%>" msgstr "" -#: c-family/c-opts.c:1330 +#: c-family/c-opts.c:1332 #, gcc-internal-format -msgid "-MG may only be used with -M or -MM" +msgid "%<-MG%> may only be used with %<-M%> or %<-MM%>" msgstr "" -#: c-family/c-opts.c:1363 +#: c-family/c-opts.c:1365 #, gcc-internal-format -msgid "-fdirectives-only is incompatible with -Wunused_macros" +msgid "%<-fdirectives-only%> is incompatible with %<-Wunused-macros%>" msgstr "" -#: c-family/c-opts.c:1365 +#: c-family/c-opts.c:1368 #, gcc-internal-format -msgid "-fdirectives-only is incompatible with -traditional" +msgid "%<-fdirectives-only%> is incompatible with %<-traditional%>" msgstr "" -#: c-family/c-opts.c:1550 +#: c-family/c-opts.c:1553 #, gcc-internal-format msgid "too late for # directive to set debug directory" msgstr "" -#: c-family/c-pch.c:110 +#: c-family/c-pch.c:106 #, gcc-internal-format msgid "can%'t create precompiled header %s: %m" msgstr "" -#: c-family/c-pch.c:133 +#: c-family/c-pch.c:127 #, gcc-internal-format msgid "can%'t write to %s: %m" msgstr "" -#: c-family/c-pch.c:191 +#: c-family/c-pch.c:185 #, gcc-internal-format msgid "can%'t write %s: %m" msgstr "" -#: c-family/c-pch.c:219 c-family/c-pch.c:260 c-family/c-pch.c:311 +#: c-family/c-pch.c:211 c-family/c-pch.c:252 c-family/c-pch.c:303 #, gcc-internal-format msgid "can%'t read %s: %m" msgstr "" -#: c-family/c-pch.c:417 +#: c-family/c-pch.c:409 #, gcc-internal-format -msgid "pch_preprocess pragma should only be used with -fpreprocessed" +msgid "pch_preprocess pragma should only be used with %<-fpreprocessed%>" msgstr "" -#: c-family/c-pch.c:418 +#: c-family/c-pch.c:411 #, gcc-internal-format msgid "use #include instead" msgstr "" -#: c-family/c-pch.c:424 +#: c-family/c-pch.c:417 #, gcc-internal-format msgid "%s: couldn%'t open PCH file: %m" msgstr "" -#: c-family/c-pch.c:429 +#: c-family/c-pch.c:422 #, gcc-internal-format -msgid "use -Winvalid-pch for more information" +msgid "use %<-Winvalid-pch%> for more information" msgstr "" -#: c-family/c-pch.c:430 +#: c-family/c-pch.c:423 #, gcc-internal-format, gfc-internal-format msgid "%s: PCH file was invalid" msgstr "" @@ -28018,7 +28142,7 @@ msgstr "" #: c-family/c-pragma.c:199 #, gcc-internal-format -msgid "#pragma pack has no effect with -fpack-struct - ignored" +msgid "#pragma pack has no effect with %<-fpack-struct%> - ignored" msgstr "" #: c-family/c-pragma.c:220 @@ -28322,8 +28446,8 @@ msgstr "" msgid "wrong type argument to %s" msgstr "" -#: c-family/c-warn.c:55 c-family/c-warn.c:68 cp/constexpr.c:1942 -#: cp/constexpr.c:4246 +#: c-family/c-warn.c:55 c-family/c-warn.c:68 cp/constexpr.c:1983 +#: cp/constexpr.c:4392 #, gcc-internal-format msgid "overflow in constant expression" msgstr "" @@ -28390,692 +28514,692 @@ msgid "" "complex floating point overflow in expression of type %qT results in %qE" msgstr "" -#: c-family/c-warn.c:220 +#: c-family/c-warn.c:227 #, gcc-internal-format msgid "logical % applied to non-boolean constant" msgstr "" -#: c-family/c-warn.c:223 +#: c-family/c-warn.c:231 #, gcc-internal-format msgid "logical % applied to non-boolean constant" msgstr "" -#: c-family/c-warn.c:294 +#: c-family/c-warn.c:302 #, gcc-internal-format msgid "logical % of collectively exhaustive tests is always true" msgstr "" -#: c-family/c-warn.c:298 +#: c-family/c-warn.c:306 #, gcc-internal-format msgid "logical % of mutually exclusive tests is always false" msgstr "" -#: c-family/c-warn.c:308 +#: c-family/c-warn.c:316 #, gcc-internal-format msgid "logical % of equal expressions" msgstr "" -#: c-family/c-warn.c:311 +#: c-family/c-warn.c:319 #, gcc-internal-format msgid "logical % of equal expressions" msgstr "" -#: c-family/c-warn.c:397 +#: c-family/c-warn.c:405 #, gcc-internal-format msgid "bitwise comparison always evaluates to false" msgstr "" -#: c-family/c-warn.c:400 +#: c-family/c-warn.c:408 #, gcc-internal-format msgid "bitwise comparison always evaluates to true" msgstr "" -#: c-family/c-warn.c:505 +#: c-family/c-warn.c:513 #, gcc-internal-format msgid "self-comparison always evaluates to true" msgstr "" -#: c-family/c-warn.c:508 +#: c-family/c-warn.c:516 #, gcc-internal-format msgid "self-comparison always evaluates to false" msgstr "" -#: c-family/c-warn.c:559 +#: c-family/c-warn.c:567 #, gcc-internal-format msgid "logical not is only applied to the left hand side of comparison" msgstr "" -#: c-family/c-warn.c:567 +#: c-family/c-warn.c:575 #, gcc-internal-format msgid "" "add parentheses around left hand side expression to silence this warning" msgstr "" -#: c-family/c-warn.c:701 +#: c-family/c-warn.c:709 #, gcc-internal-format msgid "type-punning to incomplete type might break strict-aliasing rules" msgstr "" -#: c-family/c-warn.c:719 +#: c-family/c-warn.c:727 #, gcc-internal-format msgid "dereferencing type-punned pointer will break strict-aliasing rules" msgstr "" -#: c-family/c-warn.c:727 c-family/c-warn.c:745 +#: c-family/c-warn.c:735 c-family/c-warn.c:753 #, gcc-internal-format msgid "dereferencing type-punned pointer might break strict-aliasing rules" msgstr "" -#: c-family/c-warn.c:892 +#: c-family/c-warn.c:900 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the source; did " "you mean to use the size of the destination?" msgstr "" -#: c-family/c-warn.c:923 +#: c-family/c-warn.c:931 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the " "destination; did you mean to remove the addressof?" msgstr "" -#: c-family/c-warn.c:930 +#: c-family/c-warn.c:938 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the " "destination; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-warn.c:935 +#: c-family/c-warn.c:943 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the " "destination; did you mean to dereference it?" msgstr "" -#: c-family/c-warn.c:947 +#: c-family/c-warn.c:955 #, gcc-internal-format msgid "" "argument to % in %qD call is the same pointer type %qT as the " "destination; expected %qT or an explicit length" msgstr "" -#: c-family/c-warn.c:963 +#: c-family/c-warn.c:971 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the source; did " "you mean to remove the addressof?" msgstr "" -#: c-family/c-warn.c:970 +#: c-family/c-warn.c:978 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the source; did " "you mean to provide an explicit length?" msgstr "" -#: c-family/c-warn.c:975 +#: c-family/c-warn.c:983 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the source; did " "you mean to dereference it?" msgstr "" -#: c-family/c-warn.c:987 +#: c-family/c-warn.c:995 #, gcc-internal-format msgid "" "argument to % in %qD call is the same pointer type %qT as the " "source; expected %qT or an explicit length" msgstr "" -#: c-family/c-warn.c:1003 +#: c-family/c-warn.c:1011 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the first " "source; did you mean to remove the addressof?" msgstr "" -#: c-family/c-warn.c:1010 +#: c-family/c-warn.c:1018 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the first " "source; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-warn.c:1015 +#: c-family/c-warn.c:1023 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the first " "source; did you mean to dereference it?" msgstr "" -#: c-family/c-warn.c:1027 +#: c-family/c-warn.c:1035 #, gcc-internal-format msgid "" "argument to % in %qD call is the same pointer type %qT as the first " "source; expected %qT or an explicit length" msgstr "" -#: c-family/c-warn.c:1043 +#: c-family/c-warn.c:1051 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the second " "source; did you mean to remove the addressof?" msgstr "" -#: c-family/c-warn.c:1050 +#: c-family/c-warn.c:1058 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the second " "source; did you mean to provide an explicit length?" msgstr "" -#: c-family/c-warn.c:1055 +#: c-family/c-warn.c:1063 #, gcc-internal-format msgid "" "argument to % in %qD call is the same expression as the second " "source; did you mean to dereference it?" msgstr "" -#: c-family/c-warn.c:1067 +#: c-family/c-warn.c:1075 #, gcc-internal-format msgid "" "argument to % in %qD call is the same pointer type %qT as the " "second source; expected %qT or an explicit length" msgstr "" -#: c-family/c-warn.c:1096 c-family/c-warn.c:1103 +#: c-family/c-warn.c:1104 c-family/c-warn.c:1111 #, gcc-internal-format msgid "%<_Atomic%>-qualified parameter type %qT of %q+D" msgstr "" -#: c-family/c-warn.c:1113 +#: c-family/c-warn.c:1121 #, gcc-internal-format msgid "first argument of %q+D should be %" msgstr "" -#: c-family/c-warn.c:1122 +#: c-family/c-warn.c:1130 #, gcc-internal-format msgid "second argument of %q+D should be %" msgstr "" -#: c-family/c-warn.c:1131 +#: c-family/c-warn.c:1139 #, gcc-internal-format msgid "third argument of %q+D should probably be %" msgstr "" -#: c-family/c-warn.c:1142 +#: c-family/c-warn.c:1150 #, gcc-internal-format msgid "%q+D takes only zero or two arguments" msgstr "" -#: c-family/c-warn.c:1146 +#: c-family/c-warn.c:1154 #, gcc-internal-format msgid "%q+D declared as variadic function" msgstr "" -#: c-family/c-warn.c:1188 +#: c-family/c-warn.c:1196 #, gcc-internal-format msgid "conversion to %qT from boolean expression" msgstr "" -#: c-family/c-warn.c:1206 c-family/c-warn.c:1281 +#: c-family/c-warn.c:1214 c-family/c-warn.c:1289 #, gcc-internal-format msgid "conversion from %qT to %qT changes value from %qE to %qE" msgstr "" -#: c-family/c-warn.c:1210 c-family/c-warn.c:1289 +#: c-family/c-warn.c:1218 c-family/c-warn.c:1297 #, gcc-internal-format msgid "conversion from %qT to %qT changes the value of %qE" msgstr "" -#: c-family/c-warn.c:1230 +#: c-family/c-warn.c:1238 #, gcc-internal-format msgid "conversion from %qT to %qT discards imaginary component" msgstr "" -#: c-family/c-warn.c:1242 +#: c-family/c-warn.c:1250 #, gcc-internal-format msgid "conversion from %qT to %qT may change value" msgstr "" -#: c-family/c-warn.c:1302 c-family/c-warn.c:1319 c-family/c-warn.c:1336 +#: c-family/c-warn.c:1310 c-family/c-warn.c:1327 c-family/c-warn.c:1344 #, gcc-internal-format msgid "overflow in conversion from %qT to %qT changes value from %qE to %qE" msgstr "" -#: c-family/c-warn.c:1307 c-family/c-warn.c:1324 c-family/c-warn.c:1341 +#: c-family/c-warn.c:1315 c-family/c-warn.c:1332 c-family/c-warn.c:1349 #, gcc-internal-format msgid "overflow in conversion from %qT to %qT changes the value of %qE" msgstr "" -#: c-family/c-warn.c:1371 +#: c-family/c-warn.c:1379 #, gcc-internal-format msgid "case value %qs not in enumerated type" msgstr "" -#: c-family/c-warn.c:1376 +#: c-family/c-warn.c:1384 #, gcc-internal-format msgid "case value %qs not in enumerated type %qT" msgstr "" -#: c-family/c-warn.c:1437 +#: c-family/c-warn.c:1445 #, gcc-internal-format msgid "switch missing default case" msgstr "" -#: c-family/c-warn.c:1482 +#: c-family/c-warn.c:1490 #, gcc-internal-format msgid "switch condition has boolean value" msgstr "" -#: c-family/c-warn.c:1555 +#: c-family/c-warn.c:1563 #, gcc-internal-format msgid "enumeration value %qE not handled in switch" msgstr "" -#: c-family/c-warn.c:1583 +#: c-family/c-warn.c:1591 #, gcc-internal-format msgid "" "the omitted middle operand in ?: will always be %, suggest explicit " "middle operand" msgstr "" -#: c-family/c-warn.c:1605 +#: c-family/c-warn.c:1613 #, gcc-internal-format msgid "assignment of member %qD in read-only object" msgstr "" -#: c-family/c-warn.c:1607 +#: c-family/c-warn.c:1615 #, gcc-internal-format msgid "increment of member %qD in read-only object" msgstr "" -#: c-family/c-warn.c:1609 +#: c-family/c-warn.c:1617 #, gcc-internal-format msgid "decrement of member %qD in read-only object" msgstr "" -#: c-family/c-warn.c:1611 +#: c-family/c-warn.c:1619 #, gcc-internal-format msgid "member %qD in read-only object used as % output" msgstr "" -#: c-family/c-warn.c:1615 +#: c-family/c-warn.c:1623 #, gcc-internal-format msgid "assignment of read-only member %qD" msgstr "" -#: c-family/c-warn.c:1616 +#: c-family/c-warn.c:1624 #, gcc-internal-format msgid "increment of read-only member %qD" msgstr "" -#: c-family/c-warn.c:1617 +#: c-family/c-warn.c:1625 #, gcc-internal-format msgid "decrement of read-only member %qD" msgstr "" -#: c-family/c-warn.c:1618 +#: c-family/c-warn.c:1626 #, gcc-internal-format msgid "read-only member %qD used as % output" msgstr "" -#: c-family/c-warn.c:1622 +#: c-family/c-warn.c:1630 #, gcc-internal-format msgid "assignment of read-only variable %qD" msgstr "" -#: c-family/c-warn.c:1623 +#: c-family/c-warn.c:1631 #, gcc-internal-format msgid "increment of read-only variable %qD" msgstr "" -#: c-family/c-warn.c:1624 +#: c-family/c-warn.c:1632 #, gcc-internal-format msgid "decrement of read-only variable %qD" msgstr "" -#: c-family/c-warn.c:1625 +#: c-family/c-warn.c:1633 #, gcc-internal-format msgid "read-only variable %qD used as % output" msgstr "" -#: c-family/c-warn.c:1628 +#: c-family/c-warn.c:1636 #, gcc-internal-format msgid "assignment of read-only parameter %qD" msgstr "" -#: c-family/c-warn.c:1629 +#: c-family/c-warn.c:1637 #, gcc-internal-format msgid "increment of read-only parameter %qD" msgstr "" -#: c-family/c-warn.c:1630 +#: c-family/c-warn.c:1638 #, gcc-internal-format msgid "decrement of read-only parameter %qD" msgstr "" -#: c-family/c-warn.c:1631 +#: c-family/c-warn.c:1639 #, gcc-internal-format msgid "read-only parameter %qD use as % output" msgstr "" -#: c-family/c-warn.c:1636 +#: c-family/c-warn.c:1644 #, gcc-internal-format msgid "assignment of read-only named return value %qD" msgstr "" -#: c-family/c-warn.c:1638 +#: c-family/c-warn.c:1646 #, gcc-internal-format msgid "increment of read-only named return value %qD" msgstr "" -#: c-family/c-warn.c:1640 +#: c-family/c-warn.c:1648 #, gcc-internal-format msgid "decrement of read-only named return value %qD" msgstr "" -#: c-family/c-warn.c:1642 +#: c-family/c-warn.c:1650 #, gcc-internal-format msgid "read-only named return value %qD used as %output" msgstr "" -#: c-family/c-warn.c:1647 +#: c-family/c-warn.c:1655 #, gcc-internal-format msgid "assignment of function %qD" msgstr "" -#: c-family/c-warn.c:1648 +#: c-family/c-warn.c:1656 #, gcc-internal-format msgid "increment of function %qD" msgstr "" -#: c-family/c-warn.c:1649 +#: c-family/c-warn.c:1657 #, gcc-internal-format msgid "decrement of function %qD" msgstr "" -#: c-family/c-warn.c:1650 +#: c-family/c-warn.c:1658 #, gcc-internal-format msgid "function %qD used as % output" msgstr "" -#: c-family/c-warn.c:1653 c/c-typeck.c:4888 +#: c-family/c-warn.c:1661 c/c-typeck.c:4886 #, gcc-internal-format msgid "assignment of read-only location %qE" msgstr "" -#: c-family/c-warn.c:1654 c/c-typeck.c:4891 +#: c-family/c-warn.c:1662 c/c-typeck.c:4889 #, gcc-internal-format msgid "increment of read-only location %qE" msgstr "" -#: c-family/c-warn.c:1655 c/c-typeck.c:4894 +#: c-family/c-warn.c:1663 c/c-typeck.c:4892 #, gcc-internal-format msgid "decrement of read-only location %qE" msgstr "" -#: c-family/c-warn.c:1656 +#: c-family/c-warn.c:1664 #, gcc-internal-format msgid "read-only location %qE used as % output" msgstr "" -#: c-family/c-warn.c:1670 +#: c-family/c-warn.c:1678 #, gcc-internal-format msgid "lvalue required as left operand of assignment" msgstr "" -#: c-family/c-warn.c:1673 +#: c-family/c-warn.c:1681 #, gcc-internal-format msgid "lvalue required as increment operand" msgstr "" -#: c-family/c-warn.c:1676 +#: c-family/c-warn.c:1684 #, gcc-internal-format msgid "lvalue required as decrement operand" msgstr "" -#: c-family/c-warn.c:1679 +#: c-family/c-warn.c:1687 #, gcc-internal-format msgid "lvalue required as unary %<&%> operand" msgstr "" -#: c-family/c-warn.c:1682 +#: c-family/c-warn.c:1690 #, gcc-internal-format msgid "lvalue required in asm statement" msgstr "" -#: c-family/c-warn.c:1699 +#: c-family/c-warn.c:1707 #, gcc-internal-format msgid "invalid type argument (have %qT)" msgstr "" -#: c-family/c-warn.c:1703 +#: c-family/c-warn.c:1711 #, gcc-internal-format msgid "invalid type argument of array indexing (have %qT)" msgstr "" -#: c-family/c-warn.c:1708 +#: c-family/c-warn.c:1716 #, gcc-internal-format msgid "invalid type argument of unary %<*%> (have %qT)" msgstr "" -#: c-family/c-warn.c:1713 +#: c-family/c-warn.c:1721 #, gcc-internal-format msgid "invalid type argument of %<->%> (have %qT)" msgstr "" -#: c-family/c-warn.c:1718 +#: c-family/c-warn.c:1726 #, gcc-internal-format msgid "invalid type argument of %<->*%> (have %qT)" msgstr "" -#: c-family/c-warn.c:1723 +#: c-family/c-warn.c:1731 #, gcc-internal-format msgid "invalid type argument of implicit conversion (have %qT)" msgstr "" -#: c-family/c-warn.c:1750 +#: c-family/c-warn.c:1758 #, gcc-internal-format msgid "array subscript has type %" msgstr "" -#: c-family/c-warn.c:1786 c-family/c-warn.c:1789 +#: c-family/c-warn.c:1794 c-family/c-warn.c:1797 #, gcc-internal-format msgid "suggest parentheses around %<+%> inside %<<<%>" msgstr "" -#: c-family/c-warn.c:1792 c-family/c-warn.c:1795 +#: c-family/c-warn.c:1800 c-family/c-warn.c:1803 #, gcc-internal-format msgid "suggest parentheses around %<-%> inside %<<<%>" msgstr "" -#: c-family/c-warn.c:1801 c-family/c-warn.c:1804 +#: c-family/c-warn.c:1809 c-family/c-warn.c:1812 #, gcc-internal-format msgid "suggest parentheses around %<+%> inside %<>>%>" msgstr "" -#: c-family/c-warn.c:1807 c-family/c-warn.c:1810 +#: c-family/c-warn.c:1815 c-family/c-warn.c:1818 #, gcc-internal-format msgid "suggest parentheses around %<-%> inside %<>>%>" msgstr "" -#: c-family/c-warn.c:1816 c-family/c-warn.c:1819 +#: c-family/c-warn.c:1824 c-family/c-warn.c:1827 #, gcc-internal-format msgid "suggest parentheses around %<&&%> within %<||%>" msgstr "" -#: c-family/c-warn.c:1826 c-family/c-warn.c:1830 +#: c-family/c-warn.c:1834 c-family/c-warn.c:1838 #, gcc-internal-format msgid "suggest parentheses around arithmetic in operand of %<|%>" msgstr "" -#: c-family/c-warn.c:1834 c-family/c-warn.c:1837 +#: c-family/c-warn.c:1842 c-family/c-warn.c:1845 #, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<|%>" msgstr "" -#: c-family/c-warn.c:1842 +#: c-family/c-warn.c:1850 #, gcc-internal-format msgid "" "suggest parentheses around operand of % or change %<|%> to %<||%> or % to %<~%>" msgstr "" -#: c-family/c-warn.c:1850 c-family/c-warn.c:1854 +#: c-family/c-warn.c:1858 c-family/c-warn.c:1862 #, gcc-internal-format msgid "suggest parentheses around arithmetic in operand of %<^%>" msgstr "" -#: c-family/c-warn.c:1858 c-family/c-warn.c:1861 +#: c-family/c-warn.c:1866 c-family/c-warn.c:1869 #, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<^%>" msgstr "" -#: c-family/c-warn.c:1867 c-family/c-warn.c:1870 +#: c-family/c-warn.c:1875 c-family/c-warn.c:1878 #, gcc-internal-format msgid "suggest parentheses around %<+%> in operand of %<&%>" msgstr "" -#: c-family/c-warn.c:1873 c-family/c-warn.c:1876 +#: c-family/c-warn.c:1881 c-family/c-warn.c:1884 #, gcc-internal-format msgid "suggest parentheses around %<-%> in operand of %<&%>" msgstr "" -#: c-family/c-warn.c:1880 c-family/c-warn.c:1883 +#: c-family/c-warn.c:1888 c-family/c-warn.c:1891 #, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<&%>" msgstr "" -#: c-family/c-warn.c:1888 +#: c-family/c-warn.c:1896 #, gcc-internal-format msgid "" "suggest parentheses around operand of % or change %<&%> to %<&&%> or % to %<~%>" msgstr "" -#: c-family/c-warn.c:1895 c-family/c-warn.c:1898 +#: c-family/c-warn.c:1903 c-family/c-warn.c:1906 #, gcc-internal-format msgid "suggest parentheses around comparison in operand of %<==%>" msgstr "" -#: c-family/c-warn.c:1903 c-family/c-warn.c:1906 +#: c-family/c-warn.c:1911 c-family/c-warn.c:1914 #, gcc-internal-format msgid "suggest parentheses around comparison in operand of %" msgstr "" -#: c-family/c-warn.c:1916 c-family/c-warn.c:1922 +#: c-family/c-warn.c:1924 c-family/c-warn.c:1930 #, gcc-internal-format msgid "comparisons like % do not have their mathematical meaning" msgstr "" -#: c-family/c-warn.c:1938 +#: c-family/c-warn.c:1946 #, gcc-internal-format msgid "label %q+D defined but not used" msgstr "" -#: c-family/c-warn.c:1940 +#: c-family/c-warn.c:1948 #, gcc-internal-format msgid "label %q+D declared but not defined" msgstr "" -#: c-family/c-warn.c:1963 +#: c-family/c-warn.c:1971 #, gcc-internal-format msgid "division by zero" msgstr "" -#: c-family/c-warn.c:1983 +#: c-family/c-warn.c:1991 #, gcc-internal-format msgid "" "% used with constant zero length parameter; this could be due to " "transposed parameters" msgstr "" -#: c-family/c-warn.c:2007 +#: c-family/c-warn.c:2015 #, gcc-internal-format msgid "" "% used with length equal to number of elements without " "multiplication by element size" msgstr "" -#: c-family/c-warn.c:2046 c/c-typeck.c:11913 c/c-typeck.c:12081 -#: cp/typeck.c:5173 +#: c-family/c-warn.c:2054 c/c-typeck.c:11911 c/c-typeck.c:12079 +#: cp/typeck.c:5184 #, gcc-internal-format msgid "comparison between types %qT and %qT" msgstr "" -#: c-family/c-warn.c:2096 +#: c-family/c-warn.c:2104 #, gcc-internal-format msgid "comparison of integer expressions of different signedness: %qT and %qT" msgstr "" -#: c-family/c-warn.c:2149 +#: c-family/c-warn.c:2157 #, gcc-internal-format msgid "promoted ~unsigned is always non-zero" msgstr "" -#: c-family/c-warn.c:2152 +#: c-family/c-warn.c:2160 #, gcc-internal-format msgid "comparison of promoted ~unsigned with constant" msgstr "" -#: c-family/c-warn.c:2162 +#: c-family/c-warn.c:2170 #, gcc-internal-format msgid "comparison of promoted ~unsigned with unsigned" msgstr "" -#: c-family/c-warn.c:2216 +#: c-family/c-warn.c:2224 #, gcc-internal-format msgid "unused parameter %qD" msgstr "" -#: c-family/c-warn.c:2278 +#: c-family/c-warn.c:2286 #, gcc-internal-format msgid "typedef %qD locally defined but not used" msgstr "" -#: c-family/c-warn.c:2314 +#: c-family/c-warn.c:2322 #, gcc-internal-format msgid "duplicated % condition" msgstr "" -#: c-family/c-warn.c:2343 +#: c-family/c-warn.c:2351 #, gcc-internal-format msgid "" "optimization attribute on %qD follows definition but the attribute doesn%'t " "match" msgstr "" -#: c-family/c-warn.c:2351 +#: c-family/c-warn.c:2359 #, gcc-internal-format msgid "" "inline declaration of %qD follows declaration with attribute %" msgstr "" -#: c-family/c-warn.c:2356 +#: c-family/c-warn.c:2364 #, gcc-internal-format msgid "" "declaration of %q+D with attribute % follows inline declaration" msgstr "" -#: c-family/c-warn.c:2405 +#: c-family/c-warn.c:2413 #, gcc-internal-format msgid "result of %qE requires %u bits to represent, but %qT only has %u bits" msgstr "" -#: c-family/c-warn.c:2443 c-family/c-warn.c:2467 +#: c-family/c-warn.c:2451 c-family/c-warn.c:2475 #, gcc-internal-format msgid "comparison of constant %qE with boolean expression is always false" msgstr "" -#: c-family/c-warn.c:2446 c-family/c-warn.c:2464 +#: c-family/c-warn.c:2454 c-family/c-warn.c:2472 #, gcc-internal-format msgid "comparison of constant %qE with boolean expression is always true" msgstr "" -#: c-family/c-warn.c:2514 +#: c-family/c-warn.c:2522 msgid "" "passing argument %i to restrict-qualified parameter aliases with argument %Z" msgid_plural "" @@ -29083,34 +29207,34 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: c-family/c-warn.c:2579 c/c-typeck.c:5459 cp/call.c:5469 +#: c-family/c-warn.c:2587 c/c-typeck.c:5457 cp/call.c:5542 #, gcc-internal-format msgid "this condition has identical branches" msgstr "" -#: c-family/c-warn.c:2686 +#: c-family/c-warn.c:2694 #, gcc-internal-format msgid "macro expands to multiple statements" msgstr "" -#: c-family/c-warn.c:2687 +#: c-family/c-warn.c:2695 #, gcc-internal-format msgid "some parts of macro expansion are not guarded by this %qs clause" msgstr "" -#: c-family/c-warn.c:2777 +#: c-family/c-warn.c:2785 #, gcc-internal-format msgid "" "converting a packed %qT pointer (alignment %d) to a %qT pointer (alignment " "%d) may result in an unaligned pointer value" msgstr "" -#: c-family/c-warn.c:2783 c-family/c-warn.c:2786 cp/init.c:629 +#: c-family/c-warn.c:2791 c-family/c-warn.c:2794 cp/init.c:638 #, gcc-internal-format msgid "defined here" msgstr "" -#: c-family/c-warn.c:2872 +#: c-family/c-warn.c:2880 #, gcc-internal-format msgid "" "taking address of packed member of %qT may result in an unaligned pointer " @@ -29127,26 +29251,26 @@ msgstr "" msgid "too many input files" msgstr "" -#: common/config/aarch64/aarch64-common.c:78 +#: common/config/aarch64/aarch64-common.c:80 #, gcc-internal-format msgid "" "only values 12 (4 KB) and 16 (64 KB) are supported for guard size. Given " "value %d (%llu KB) is out of range" msgstr "" -#: common/config/aarch64/aarch64-common.c:385 config/aarch64/aarch64.c:11684 +#: common/config/aarch64/aarch64-common.c:539 config/aarch64/aarch64.c:11690 #, gcc-internal-format -msgid "unknown value %qs for -mcpu" +msgid "unknown value %qs for %<-mcpu%>" msgstr "" #: common/config/alpha/alpha-common.c:75 #, gcc-internal-format -msgid "bad value %qs for -mtls-size switch" +msgid "bad value %qs for %<-mtls-size%> switch" msgstr "" #: common/config/arc/arc-common.c:87 #, gcc-internal-format -msgid "multiple -mcpu= options specified." +msgid "multiple %<-mcpu=%> options specified." msgstr "" #: common/config/arc/arc-common.c:93 @@ -29165,14 +29289,14 @@ msgid "unrecognized option passed to %%:target_mode_check" msgstr "" #: common/config/arm/arm-common.c:331 common/config/arm/arm-common.c:395 -#: common/config/arm/arm-common.c:442 config/aarch64/aarch64.c:11616 -#: config/aarch64/aarch64.c:11654 +#: common/config/arm/arm-common.c:442 config/aarch64/aarch64.c:11622 +#: config/aarch64/aarch64.c:11660 #, gcc-internal-format msgid "valid arguments are: %s; did you mean %qs?" msgstr "" #: common/config/arm/arm-common.c:334 common/config/arm/arm-common.c:398 -#: common/config/arm/arm-common.c:445 config/aarch64/aarch64.c:11619 +#: common/config/arm/arm-common.c:445 config/aarch64/aarch64.c:11625 #, gcc-internal-format, gfc-internal-format msgid "valid arguments are: %s" msgstr "" @@ -29183,8 +29307,8 @@ msgid "unrecognized %s target: %s" msgstr "" #: common/config/arm/arm-common.c:461 -#, gcc-internal-format, gfc-internal-format -msgid "unrecognized -mfpu target: %s" +#, gcc-internal-format +msgid "unrecognized %<-mfpu%> target: %s" msgstr "" #: common/config/arm/arm-common.c:489 @@ -29223,112 +29347,112 @@ msgid "unrecognized operand to %%:asm_auto_mfpu" msgstr "" #: common/config/bfin/bfin-common.c:304 common/config/m68k/m68k-common.c:60 -#, gcc-internal-format, gfc-internal-format -msgid "-mshared-library-id=%s is not between 0 and %d" +#, gcc-internal-format +msgid "%<-mshared-library-id=%s%> is not between 0 and %d" msgstr "" #: common/config/bfin/bfin-common.c:323 -#, gcc-internal-format, gfc-internal-format -msgid "-mcpu=%s is not valid" +#, gcc-internal-format +msgid "%<-mcpu=%s%> is not valid" msgstr "" #: common/config/bfin/bfin-common.c:359 -#, gcc-internal-format, gfc-internal-format -msgid "-mcpu=%s has invalid silicon revision" +#, gcc-internal-format +msgid "%<-mcpu=%s%> has invalid silicon revision" msgstr "" #: common/config/i386/i386-common.c:1340 #, gcc-internal-format -msgid "-malign-loops is obsolete, use -falign-loops" +msgid "%<-malign-loops%> is obsolete, use %<-falign-loops%>" msgstr "" -#: common/config/i386/i386-common.c:1342 -#, gcc-internal-format, gfc-internal-format -msgid "-malign-loops=%d is not between 0 and %d" +#: common/config/i386/i386-common.c:1343 +#, gcc-internal-format +msgid "%<-malign-loops=%d%> is not between 0 and %d" msgstr "" -#: common/config/i386/i386-common.c:1349 +#: common/config/i386/i386-common.c:1350 #, gcc-internal-format -msgid "-malign-jumps is obsolete, use -falign-jumps" +msgid "%<-malign-jumps%> is obsolete, use %<-falign-jumps%>" msgstr "" -#: common/config/i386/i386-common.c:1351 -#, gcc-internal-format, gfc-internal-format -msgid "-malign-jumps=%d is not between 0 and %d" +#: common/config/i386/i386-common.c:1353 +#, gcc-internal-format +msgid "%<-malign-jumps=%d%> is not between 0 and %d" msgstr "" -#: common/config/i386/i386-common.c:1359 +#: common/config/i386/i386-common.c:1361 #, gcc-internal-format -msgid "-malign-functions is obsolete, use -falign-functions" +msgid "%<-malign-functions%> is obsolete, use %<-falign-functions%>" msgstr "" -#: common/config/i386/i386-common.c:1361 -#, gcc-internal-format, gfc-internal-format -msgid "-malign-functions=%d is not between 0 and %d" +#: common/config/i386/i386-common.c:1364 +#, gcc-internal-format +msgid "%<-malign-functions=%d%> is not between 0 and %d" msgstr "" -#: common/config/i386/i386-common.c:1370 -#, gcc-internal-format, gfc-internal-format -msgid "-mbranch-cost=%d is not between 0 and 5" +#: common/config/i386/i386-common.c:1373 +#, gcc-internal-format +msgid "%<-mbranch-cost=%d%> is not between 0 and 5" msgstr "" -#: common/config/i386/i386-common.c:1424 +#: common/config/i386/i386-common.c:1427 #, gcc-internal-format msgid "%<-fsplit-stack%> currently only supported on GNU/Linux" msgstr "" -#: common/config/i386/i386-common.c:1430 +#: common/config/i386/i386-common.c:1433 #, gcc-internal-format msgid "%<-fsplit-stack%> requires assembler support for CFI directives" msgstr "" #: common/config/ia64/ia64-common.c:58 #, gcc-internal-format -msgid "bad value %<%s%> for -mtls-size= switch" +msgid "bad value %<%s%> for %<-mtls-size=%> switch" msgstr "" #: common/config/msp430/msp430-common.c:57 -#, gcc-internal-format, gfc-internal-format -msgid "unrecognized argument of -mcpu: %s" +#, gcc-internal-format +msgid "unrecognized argument of %<-mcpu%>: %s" msgstr "" #: common/config/nds32/nds32-common.c:49 #, gcc-internal-format -msgid "for the option -misr-vector-size=X, the valid X must be: 4 or 16" +msgid "%<-misr-vector-size=%d%> argument must be 4 or 16" msgstr "" -#: common/config/nds32/nds32-common.c:60 +#: common/config/nds32/nds32-common.c:59 #, gcc-internal-format -msgid "for the option -misr-secure=X, the valid X must be: 0, 1, 2, or 3" +msgid "%<-misr-secure=%d%> argument not in between 0 and 3" msgstr "" -#: common/config/nds32/nds32-common.c:70 +#: common/config/nds32/nds32-common.c:69 #, gcc-internal-format msgid "" -"for the option -mcache-block-size=X, the valid X must be: 4, 8, 16, 32, 64, " -"128, 256, or 512" +"for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, " +"64, 128, 256, or 512" msgstr "" #: common/config/powerpcspe/powerpcspe-common.c:173 -#: common/config/rs6000/rs6000-common.c:181 config/sparc/sparc.c:1760 -#, gcc-internal-format, gfc-internal-format -msgid "unknown -mdebug-%s switch" +#: common/config/rs6000/rs6000-common.c:181 config/sparc/sparc.c:1743 +#, gcc-internal-format +msgid "unknown %<-mdebug-%s%> switch" msgstr "" #: common/config/powerpcspe/powerpcspe-common.c:221 #: common/config/rs6000/rs6000-common.c:220 -#, gcc-internal-format, gfc-internal-format -msgid "unknown switch -mlong-double-%s" +#, gcc-internal-format +msgid "unknown switch %<-mlong-double-%s%>" msgstr "" #: common/config/powerpcspe/powerpcspe-common.c:231 #, gcc-internal-format -msgid "-msingle-float option equivalent to -mhard-float" +msgid "%<-msingle-float%> option equivalent to %<-mhard-float%>" msgstr "" #: common/config/powerpcspe/powerpcspe-common.c:247 #, gcc-internal-format -msgid "-msimple-fpu option ignored" +msgid "%<-msimple-fpu%> option ignored" msgstr "" #: common/config/powerpcspe/powerpcspe-common.c:313 @@ -29339,24 +29463,39 @@ msgid "" "glibc-2.18 or later" msgstr "" -#: common/config/riscv/riscv-common.c:44 -#, gcc-internal-format, gfc-internal-format -msgid "-march=%s: ISA string must begin with rv32 or rv64" +#: common/config/riscv/riscv-common.c:253 +#, gcc-internal-format +msgid "%<-march=%s%>: Expect number after `%dp'." msgstr "" -#: common/config/riscv/riscv-common.c:93 +#: common/config/riscv/riscv-common.c:329 #, gcc-internal-format -msgid "RV64E is not a valid base ISA" +msgid "%<-march=%s%>: rv%de is not a valid base ISA" msgstr "" -#: common/config/riscv/riscv-common.c:109 -#, gcc-internal-format, gfc-internal-format -msgid "-march=%s: invalid ISA string" +#: common/config/riscv/riscv-common.c:351 +#, gcc-internal-format +msgid "%<-march=%s%>: first ISA subset must be `e', `i' or `g'" msgstr "" -#: common/config/riscv/riscv-common.c:119 +#: common/config/riscv/riscv-common.c:378 #, gcc-internal-format -msgid "-march=%s: unsupported ISA substring %qs" +msgid "%<-march=%s%>: unsupported ISA subset `%c'" +msgstr "" + +#: common/config/riscv/riscv-common.c:382 +#, gcc-internal-format +msgid "%<-march=%s%>: ISA string is not in canonical order. `%c'" +msgstr "" + +#: common/config/riscv/riscv-common.c:458 +#, gcc-internal-format +msgid "%<-march=%s%>: %s must separate with _" +msgstr "" + +#: common/config/riscv/riscv-common.c:486 +#, gcc-internal-format +msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64" msgstr "" #: common/config/rx/rx-common.c:61 @@ -29442,7 +29581,7 @@ msgstr "" #: config/darwin-c.c:718 #, gcc-internal-format -msgid "unknown value %qs of -mmacosx-version-min" +msgid "unknown value %qs of %<-mmacosx-version-min%>" msgstr "" #: config/darwin-driver.c:48 @@ -29496,95 +29635,93 @@ msgstr "" msgid "%s conflicts with ppc64 (arch flags ignored)" msgstr "" -#: config/darwin.c:1687 +#: config/darwin.c:1688 #, gcc-internal-format msgid "" "the use of _OBJC_-prefixed variable names to select meta-data sections is " "deprecated at 4.6 and will be removed in 4.7" msgstr "" -#: config/darwin.c:1945 +#: config/darwin.c:1946 #, gcc-internal-format, gfc-internal-format msgid "failed to open temporary file %s for LTO output" msgstr "" -#: config/darwin.c:2038 +#: config/darwin.c:2039 #, gcc-internal-format msgid "" "%qE 2.95 vtable-compatibility attribute applies only when compiling a kext" msgstr "" -#: config/darwin.c:2045 +#: config/darwin.c:2046 #, gcc-internal-format msgid "%qE 2.95 vtable-compatibility attribute applies only to C++ classes" msgstr "" -#: config/darwin.c:2761 +#: config/darwin.c:2762 #, gcc-internal-format msgid "" "protected visibility attribute not supported in this configuration; ignored" msgstr "" -#: config/darwin.c:2977 +#: config/darwin.c:2978 #, gcc-internal-format, gfc-internal-format msgid "failed to open temporary file %s with LTO output" msgstr "" -#: config/darwin.c:3156 +#: config/darwin.c:3157 #, gcc-internal-format msgid "" "%<-fobjc-abi-version%> >= 2 must be used for %<-m64%> targets with %<-fnext-" "runtime%>" msgstr "" -#: config/darwin.c:3160 +#: config/darwin.c:3161 #, gcc-internal-format msgid "" "%<-fobjc-abi-version%> >= 2 is not supported on %<-m32%> targets with %<-" "fnext-runtime%>" msgstr "" -#: config/darwin.c:3175 -#, gcc-internal-format -msgid "-gsplit-dwarf is not supported on this platform, ignored" -msgstr "" - -#: config/darwin.c:3205 +#: config/darwin.c:3176 #, gcc-internal-format -msgid "" -"-freorder-blocks-and-partition does not work with exceptions on this " -"architecture" +msgid "%<-gsplit-dwarf%> is not supported on this platform, ignored" msgstr "" -#: config/darwin.c:3253 +#: config/darwin.c:3254 #, gcc-internal-format msgid "" "%<-mdynamic-no-pic%> overrides %<-fpic%>, %<-fPIC%>, %<-fpie%> or %<-fPIE%>" msgstr "" -#: config/darwin.c:3441 +#: config/darwin.c:3442 #, gcc-internal-format msgid "built-in function %qD requires the %<-mconstant-cfstrings%> flag" msgstr "" -#: config/darwin.c:3448 +#: config/darwin.c:3449 #, gcc-internal-format msgid "built-in function %qD takes one argument only" msgstr "" -#: config/darwin.c:3534 +#: config/darwin.c:3535 #, gcc-internal-format msgid "CFString literal is missing" msgstr "" -#: config/darwin.c:3545 +#: config/darwin.c:3546 #, gcc-internal-format msgid "CFString literal expression is not a string constant" msgstr "" -#: config/darwin.c:3568 -#, gcc-internal-format, gfc-internal-format -msgid "%s in CFString literal" +#: config/darwin.c:3570 +#, gcc-internal-format +msgid "non-ASCII character in CFString literal" +msgstr "" + +#: config/darwin.c:3571 +#, gcc-internal-format +msgid "embedded NUL in CFString literal" msgstr "" #: config/host-darwin.c:61 @@ -29715,333 +29852,333 @@ msgstr "" msgid "%qs feature modifier is incompatible with the use of vector types" msgstr "" -#: config/aarch64/aarch64.c:3916 config/aarch64/aarch64.c:3962 -#: config/aarch64/aarch64.c:4059 config/aarch64/aarch64.c:13411 -#: config/arm/arm.c:6711 config/arm/arm.c:6741 config/arm/arm.c:27024 +#: config/aarch64/aarch64.c:3919 config/aarch64/aarch64.c:3965 +#: config/aarch64/aarch64.c:4062 config/aarch64/aarch64.c:13416 +#: config/arm/arm.c:6715 config/arm/arm.c:6745 config/arm/arm.c:27086 #, gcc-internal-format msgid "parameter passing for argument of type %qT changed in GCC 9.1" msgstr "" -#: config/aarch64/aarch64.c:4181 +#: config/aarch64/aarch64.c:4184 #, gcc-internal-format msgid "stack probes for SVE frames" msgstr "" -#: config/aarch64/aarch64.c:11148 -#, gcc-internal-format, gfc-internal-format -msgid "unknown flag passed in -moverride=%s (%s)" +#: config/aarch64/aarch64.c:11154 +#, gcc-internal-format +msgid "unknown flag passed in %<-moverride=%s%> (%s)" msgstr "" -#: config/aarch64/aarch64.c:11192 +#: config/aarch64/aarch64.c:11198 #, gcc-internal-format, gfc-internal-format msgid "%s string ill-formed\n" msgstr "" -#: config/aarch64/aarch64.c:11248 +#: config/aarch64/aarch64.c:11254 #, gcc-internal-format msgid "invalid format for sve_width" msgstr "" -#: config/aarch64/aarch64.c:11260 +#: config/aarch64/aarch64.c:11266 #, gcc-internal-format, gfc-internal-format msgid "invalid sve_width value: %d" msgstr "" -#: config/aarch64/aarch64.c:11280 +#: config/aarch64/aarch64.c:11286 #, gcc-internal-format, gfc-internal-format msgid "tuning string missing in option (%s)" msgstr "" -#: config/aarch64/aarch64.c:11298 +#: config/aarch64/aarch64.c:11304 #, gcc-internal-format, gfc-internal-format msgid "unknown tuning option (%s)" msgstr "" -#: config/aarch64/aarch64.c:11451 +#: config/aarch64/aarch64.c:11457 #, gcc-internal-format msgid "" -"incompatible options -mstack-protector-guard=global and-mstack-protector-" -"guard-offset=%qs" +"incompatible options %<-mstack-protector-guard=global%> and%<-mstack-" +"protector-guard-offset=%s%>" msgstr "" -#: config/aarch64/aarch64.c:11460 +#: config/aarch64/aarch64.c:11466 #, gcc-internal-format msgid "" -"both -mstack-protector-guard-offset and -mstack-protector-guard-reg must be " -"used with -mstack-protector-guard=sysreg" +"both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> " +"must be used with %<-mstack-protector-guard=sysreg%>" msgstr "" -#: config/aarch64/aarch64.c:11468 +#: config/aarch64/aarch64.c:11474 #, gcc-internal-format msgid "specify a system register with a small string length." msgstr "" -#: config/aarch64/aarch64.c:11478 config/rs6000/rs6000.c:4619 +#: config/aarch64/aarch64.c:11484 config/rs6000/rs6000.c:4622 #, gcc-internal-format msgid "%qs is not a valid offset in %qs" msgstr "" -#: config/aarch64/aarch64.c:11572 +#: config/aarch64/aarch64.c:11578 #, gcc-internal-format, gfc-internal-format msgid "stack clash guard size '%d' must be equal to probing interval '%d'" msgstr "" -#: config/aarch64/aarch64.c:11657 +#: config/aarch64/aarch64.c:11663 #, gcc-internal-format, gfc-internal-format msgid "valid arguments are: %s;" msgstr "" -#: config/aarch64/aarch64.c:11681 +#: config/aarch64/aarch64.c:11687 #, gcc-internal-format msgid "missing cpu name in %<-mcpu=%s%>" msgstr "" -#: config/aarch64/aarch64.c:11688 +#: config/aarch64/aarch64.c:11694 #, gcc-internal-format msgid "invalid feature modifier %qs in %<-mcpu=%s%>" msgstr "" -#: config/aarch64/aarch64.c:11796 +#: config/aarch64/aarch64.c:11802 #, gcc-internal-format msgid "invalid arg %<%s%> for %<-mbranch-protection=%>" msgstr "" -#: config/aarch64/aarch64.c:11798 +#: config/aarch64/aarch64.c:11804 #, gcc-internal-format msgid "missing arg for %<-mbranch-protection=%>" msgstr "" -#: config/aarch64/aarch64.c:11822 +#: config/aarch64/aarch64.c:11828 #, gcc-internal-format msgid "missing arch name in %<-march=%s%>" msgstr "" -#: config/aarch64/aarch64.c:11825 +#: config/aarch64/aarch64.c:11831 #, gcc-internal-format -msgid "unknown value %qs for -march" +msgid "unknown value %qs for %<-march%>" msgstr "" -#: config/aarch64/aarch64.c:11829 +#: config/aarch64/aarch64.c:11835 #, gcc-internal-format msgid "invalid feature modifier %qs in %<-march=%s%>" msgstr "" -#: config/aarch64/aarch64.c:11857 +#: config/aarch64/aarch64.c:11863 #, gcc-internal-format msgid "missing cpu name in %<-mtune=%s%>" msgstr "" -#: config/aarch64/aarch64.c:11860 +#: config/aarch64/aarch64.c:11866 #, gcc-internal-format -msgid "unknown value %qs for -mtune" +msgid "unknown value %qs for %<-mtune%>" msgstr "" -#: config/aarch64/aarch64.c:11985 config/arm/arm.c:3184 -#, gcc-internal-format, gfc-internal-format -msgid "switch -mcpu=%s conflicts with -march=%s switch" +#: config/aarch64/aarch64.c:11991 config/arm/arm.c:3185 +#, gcc-internal-format +msgid "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch" msgstr "" -#: config/aarch64/aarch64.c:12042 +#: config/aarch64/aarch64.c:12047 #, gcc-internal-format -msgid "assembler does not support -mabi=ilp32" +msgid "assembler does not support %<-mabi=ilp32%>" msgstr "" -#: config/aarch64/aarch64.c:12049 +#: config/aarch64/aarch64.c:12054 #, gcc-internal-format -msgid "return address signing is only supported for -mabi=lp64" +msgid "return address signing is only supported for %<-mabi=lp64%>" msgstr "" -#: config/aarch64/aarch64.c:12117 +#: config/aarch64/aarch64.c:12122 #, gcc-internal-format -msgid "code model %qs with -f%s" +msgid "code model %qs with %<-f%s%>" msgstr "" -#: config/aarch64/aarch64.c:12290 +#: config/aarch64/aarch64.c:12295 #, gcc-internal-format msgid "missing name in % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12293 +#: config/aarch64/aarch64.c:12298 #, gcc-internal-format msgid "invalid name (\"%s\") in % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12297 config/aarch64/aarch64.c:12339 -#: config/aarch64/aarch64.c:12446 +#: config/aarch64/aarch64.c:12302 config/aarch64/aarch64.c:12344 +#: config/aarch64/aarch64.c:12451 #, gcc-internal-format msgid "" "invalid feature modifier %s of value (\"%s\") in % pragma or " "attribute" msgstr "" -#: config/aarch64/aarch64.c:12332 +#: config/aarch64/aarch64.c:12337 #, gcc-internal-format msgid "missing name in % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12335 +#: config/aarch64/aarch64.c:12340 #, gcc-internal-format msgid "invalid name (\"%s\") in % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12362 +#: config/aarch64/aarch64.c:12367 #, gcc-internal-format msgid "" "missing argument to % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12366 +#: config/aarch64/aarch64.c:12371 #, gcc-internal-format msgid "" "invalid protection type (\"%s\") in % " "pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12401 +#: config/aarch64/aarch64.c:12406 #, gcc-internal-format msgid "invalid name (\"%s\") in % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12442 +#: config/aarch64/aarch64.c:12447 #, gcc-internal-format msgid "missing value in % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12498 config/aarch64/aarch64.c:12675 +#: config/aarch64/aarch64.c:12503 config/aarch64/aarch64.c:12680 #, gcc-internal-format msgid "malformed % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:12546 +#: config/aarch64/aarch64.c:12551 #, gcc-internal-format msgid "pragma or attribute % does not accept an argument" msgstr "" -#: config/aarch64/aarch64.c:12554 +#: config/aarch64/aarch64.c:12559 #, gcc-internal-format msgid "pragma or attribute % does not allow a negated form" msgstr "" -#: config/aarch64/aarch64.c:12608 +#: config/aarch64/aarch64.c:12613 #, gcc-internal-format msgid "pragma or attribute % is not valid" msgstr "" -#: config/aarch64/aarch64.c:12665 config/arm/arm.c:30784 -#: config/i386/i386.c:5208 config/rs6000/rs6000.c:36633 -#: config/s390/s390.c:15170 +#: config/aarch64/aarch64.c:12670 config/arm/arm.c:30866 +#: config/i386/i386.c:5426 config/rs6000/rs6000.c:36751 +#: config/s390/s390.c:15268 #, gcc-internal-format msgid "attribute % argument not a string" msgstr "" -#: config/aarch64/aarch64.c:12692 +#: config/aarch64/aarch64.c:12697 #, gcc-internal-format msgid "pragma or attribute % is not valid" msgstr "" -#: config/aarch64/aarch64.c:12701 +#: config/aarch64/aarch64.c:12706 #, gcc-internal-format msgid "malformed % pragma or attribute" msgstr "" -#: config/aarch64/aarch64.c:14775 +#: config/aarch64/aarch64.c:14780 #, gcc-internal-format msgid "%Klane %wd out of range %wd - %wd" msgstr "" -#: config/aarch64/aarch64.c:14777 +#: config/aarch64/aarch64.c:14782 #, gcc-internal-format msgid "lane %wd out of range %wd - %wd" msgstr "" -#: config/aarch64/aarch64.c:18613 config/i386/i386.c:50420 -#: config/i386/i386.c:50536 +#: config/aarch64/aarch64.c:18618 config/i386/i386.c:50678 +#: config/i386/i386.c:50805 #, gcc-internal-format, gfc-internal-format msgid "unsupported simdlen %d" msgstr "" -#: config/aarch64/aarch64.c:18623 config/aarch64/aarch64.c:18644 +#: config/aarch64/aarch64.c:18628 config/aarch64/aarch64.c:18649 #, gcc-internal-format msgid "GCC does not currently support mixed size types for % functions" msgstr "" -#: config/aarch64/aarch64.c:18627 +#: config/aarch64/aarch64.c:18632 #, gcc-internal-format msgid "GCC does not currently support return type %qT for % functions" msgstr "" -#: config/aarch64/aarch64.c:18631 +#: config/aarch64/aarch64.c:18636 #, gcc-internal-format msgid "unsupported return type %qT for % functions" msgstr "" -#: config/aarch64/aarch64.c:18648 +#: config/aarch64/aarch64.c:18653 #, gcc-internal-format msgid "GCC does not currently support argument type %qT for % functions" msgstr "" -#: config/aarch64/aarch64.c:18670 +#: config/aarch64/aarch64.c:18675 #, gcc-internal-format msgid "GCC does not currently support simdlen %d for type %qT" msgstr "" #: config/alpha/alpha.c:420 #, gcc-internal-format -msgid "bad value %qs for -mtrap-precision switch" +msgid "bad value %qs for %<-mtrap-precision%> switch" msgstr "" -#: config/alpha/alpha.c:434 +#: config/alpha/alpha.c:435 #, gcc-internal-format -msgid "bad value %qs for -mfp-rounding-mode switch" +msgid "bad value %qs for %<-mfp-rounding-mode%> switch" msgstr "" -#: config/alpha/alpha.c:449 +#: config/alpha/alpha.c:450 #, gcc-internal-format -msgid "bad value %qs for -mfp-trap-mode switch" +msgid "bad value %qs for %<-mfp-trap-mode%> switch" msgstr "" -#: config/alpha/alpha.c:466 +#: config/alpha/alpha.c:468 #, gcc-internal-format -msgid "bad value %qs for -mcpu switch" +msgid "bad value %qs for %<-mcpu%> switch" msgstr "" -#: config/alpha/alpha.c:481 +#: config/alpha/alpha.c:483 #, gcc-internal-format -msgid "bad value %qs for -mtune switch" +msgid "bad value %qs for %<-mtune%> switch" msgstr "" -#: config/alpha/alpha.c:502 +#: config/alpha/alpha.c:504 #, gcc-internal-format -msgid "fp software completion requires -mtrap-precision=i" +msgid "fp software completion requires %<-mtrap-precision=i%>" msgstr "" -#: config/alpha/alpha.c:518 +#: config/alpha/alpha.c:520 #, gcc-internal-format msgid "rounding mode not supported for VAX floats" msgstr "" -#: config/alpha/alpha.c:523 +#: config/alpha/alpha.c:525 #, gcc-internal-format msgid "trap mode not supported for VAX floats" msgstr "" -#: config/alpha/alpha.c:527 +#: config/alpha/alpha.c:529 #, gcc-internal-format msgid "128-bit long double not supported for VAX floats" msgstr "" -#: config/alpha/alpha.c:555 +#: config/alpha/alpha.c:557 #, gcc-internal-format, gfc-internal-format msgid "L%d cache latency unknown for %s" msgstr "" -#: config/alpha/alpha.c:570 +#: config/alpha/alpha.c:572 #, gcc-internal-format -msgid "bad value %qs for -mmemory-latency" +msgid "bad value %qs for %<-mmemory-latency%>" msgstr "" -#: config/alpha/alpha.c:6716 config/alpha/alpha.c:6719 config/arc/arc.c:6891 -#: config/arc/arc.c:7165 config/s390/s390.c:841 config/tilegx/tilegx.c:3544 +#: config/alpha/alpha.c:6719 config/alpha/alpha.c:6722 config/arc/arc.c:6852 +#: config/arc/arc.c:7126 config/s390/s390.c:833 config/tilegx/tilegx.c:3544 #: config/tilepro/tilepro.c:3108 #, gcc-internal-format msgid "bad builtin fcode" @@ -30049,12 +30186,12 @@ msgstr "" #: config/arc/arc.c:936 #, gcc-internal-format -msgid "-mno-mpy supported only for ARC700 or ARCv2" +msgid "%<-mno-mpy%> supported only for ARC700 or ARCv2" msgstr "" #: config/arc/arc.c:939 #, gcc-internal-format -msgid "-mno-dpfp-lrsr supported only with -mdpfp" +msgid "%<-mno-dpfp-lrsr%> supported only with %<-mdpfp%>" msgstr "" #: config/arc/arc.c:944 @@ -30064,7 +30201,7 @@ msgstr "" #: config/arc/arc.c:948 #, gcc-internal-format -msgid "-mspfp_fast not available on ARC600 or ARC601" +msgid "%<-mspfp_fast%> not available on ARC600 or ARC601" msgstr "" #: config/arc/arc.c:953 @@ -30099,214 +30236,215 @@ msgid "%s-%s is an empty range" msgstr "" #: config/arc/arc.c:1113 -#, gcc-internal-format, gfc-internal-format +#, gcc-internal-format msgid "" -"invalid number in -mrgf-banked-regs=%s valid values are 0, 4, 8, 16, or 32" +"invalid number in %<-mrgf-banked-regs=%s%> valid values are 0, 4, 8, 16, or " +"32" msgstr "" #: config/arc/arc.c:1175 #, gcc-internal-format -msgid "option -mirq-ctrl-saved valid only for ARC v2 processors" +msgid "option %<-mirq-ctrl-saved%> valid only for ARC v2 processors" msgstr "" -#: config/arc/arc.c:1183 +#: config/arc/arc.c:1184 #, gcc-internal-format -msgid "option -mrgf-banked-regs valid only for ARC v2 processors" +msgid "option %<-mrgf-banked-regs%> valid only for ARC v2 processors" msgstr "" #. Check options against architecture options. Throw an error if #. option is not allowed. Extra, check options against default #. architecture/cpu flags and throw an warning if we find a #. mismatch. -#: config/arc/arc.c:1223 +#: config/arc/arc.c:1225 #, gcc-internal-format, gfc-internal-format msgid "Option %s=%s is not available for %s CPU." msgstr "" -#: config/arc/arc.c:1228 +#: config/arc/arc.c:1230 #, gcc-internal-format, gfc-internal-format msgid "Option %s is ignored, the default value %s is considered for %s CPU." msgstr "" -#: config/arc/arc.c:1236 +#: config/arc/arc.c:1238 #, gcc-internal-format, gfc-internal-format msgid "Option %s is not available for %s CPU" msgstr "" -#: config/arc/arc.c:1241 +#: config/arc/arc.c:1243 #, gcc-internal-format, gfc-internal-format msgid "Unset option %s is ignored, it is always enabled for %s CPU." msgstr "" -#: config/arc/arc.c:1800 +#: config/arc/arc.c:1809 #, gcc-internal-format, gfc-internal-format msgid "multiply option implies r%d is fixed" msgstr "" -#: config/arc/arc.c:1996 config/epiphany/epiphany.c:508 +#: config/arc/arc.c:1957 config/epiphany/epiphany.c:508 #: config/epiphany/epiphany.c:548 #, gcc-internal-format msgid "argument of %qE attribute is not a string constant" msgstr "" -#: config/arc/arc.c:2005 +#: config/arc/arc.c:1966 #, gcc-internal-format msgid "argument of %qE attribute is not \"ilink1\" or \"ilink2\"" msgstr "" -#: config/arc/arc.c:2014 +#: config/arc/arc.c:1975 #, gcc-internal-format msgid "argument of %qE attribute is not \"ilink\" or \"firq\"" msgstr "" -#: config/arc/arc.c:2028 config/arm/arm.c:6857 config/arm/arm.c:6875 -#: config/arm/arm.c:7050 config/avr/avr.c:9718 config/avr/avr.c:9734 -#: config/bfin/bfin.c:4705 config/bfin/bfin.c:4766 config/bfin/bfin.c:4795 +#: config/arc/arc.c:1989 config/arm/arm.c:6861 config/arm/arm.c:6879 +#: config/arm/arm.c:7054 config/avr/avr.c:9718 config/avr/avr.c:9734 +#: config/bfin/bfin.c:4708 config/bfin/bfin.c:4769 config/bfin/bfin.c:4798 #: config/csky/csky.c:6020 config/csky/csky.c:6048 #: config/epiphany/epiphany.c:491 config/gcn/gcn.c:312 -#: config/h8300/h8300.c:5459 config/i386/i386.c:6209 config/i386/i386.c:12024 -#: config/i386/i386.c:41023 config/i386/i386.c:41073 config/i386/i386.c:41143 +#: config/h8300/h8300.c:5459 config/i386/i386.c:6440 config/i386/i386.c:12253 +#: config/i386/i386.c:41278 config/i386/i386.c:41328 config/i386/i386.c:41398 #: config/m68k/m68k.c:788 config/mcore/mcore.c:3073 config/nvptx/nvptx.c:5059 -#: config/riscv/riscv.c:2740 config/rl78/rl78.c:816 config/rl78/rl78.c:885 -#: config/rs6000/rs6000.c:32742 config/rx/rx.c:2719 config/rx/rx.c:2745 -#: config/s390/s390.c:1050 config/s390/s390.c:1137 config/sh/sh.c:8444 +#: config/riscv/riscv.c:2774 config/rl78/rl78.c:820 config/rl78/rl78.c:889 +#: config/rs6000/rs6000.c:32862 config/rx/rx.c:2720 config/rx/rx.c:2746 +#: config/s390/s390.c:1048 config/s390/s390.c:1135 config/sh/sh.c:8444 #: config/sh/sh.c:8462 config/sh/sh.c:8486 config/sh/sh.c:8557 #: config/sh/sh.c:8580 config/spu/spu.c:3690 config/stormy16/stormy16.c:2216 -#: config/v850/v850.c:2034 config/visium/visium.c:739 +#: config/v850/v850.c:2034 config/visium/visium.c:725 #, gcc-internal-format msgid "%qE attribute only applies to functions" msgstr "" -#: config/arc/arc.c:6790 +#: config/arc/arc.c:6751 #, gcc-internal-format -msgid "__builtin_arc_aligned with non-constant alignment" +msgid "%<__builtin_arc_aligned%> with non-constant alignment" msgstr "" -#: config/arc/arc.c:6798 +#: config/arc/arc.c:6759 #, gcc-internal-format -msgid "invalid alignment value for __builtin_arc_aligned" +msgid "invalid alignment value for %<__builtin_arc_aligned%>" msgstr "" -#: config/arc/arc.c:6961 +#: config/arc/arc.c:6922 #, gcc-internal-format msgid "operand 1 should be an unsigned 3-bit immediate" msgstr "" -#: config/arc/arc.c:7002 config/arc/arc.c:7099 +#: config/arc/arc.c:6963 config/arc/arc.c:7060 #, gcc-internal-format msgid "operand 2 should be an unsigned 3-bit value (I0-I7)" msgstr "" -#: config/arc/arc.c:7035 config/arc/arc.c:7067 +#: config/arc/arc.c:6996 config/arc/arc.c:7028 #, gcc-internal-format msgid "operand 1 should be an unsigned 3-bit value (I0-I7)" msgstr "" -#: config/arc/arc.c:7039 config/arc/arc.c:7071 +#: config/arc/arc.c:7000 config/arc/arc.c:7032 #, gcc-internal-format msgid "operand 2 should be an unsigned 8-bit value" msgstr "" -#: config/arc/arc.c:7103 +#: config/arc/arc.c:7064 #, gcc-internal-format msgid "operand 3 should be an unsigned 8-bit value" msgstr "" -#: config/arc/arc.c:7136 +#: config/arc/arc.c:7097 #, gcc-internal-format msgid "operand 4 should be an unsigned 8-bit value (0-255)" msgstr "" -#: config/arc/arc.c:7140 +#: config/arc/arc.c:7101 #, gcc-internal-format msgid "operand 3 should be an unsigned 3-bit value (I0-I7)" msgstr "" -#: config/arc/arc.c:7147 +#: config/arc/arc.c:7108 #, gcc-internal-format msgid "operand 2 should be an unsigned 3-bit value (subreg 0-7)" msgstr "" -#: config/arc/arc.c:7150 +#: config/arc/arc.c:7111 #, gcc-internal-format msgid "operand 2 should be an even 3-bit value (subreg 0,2,4,6)" msgstr "" -#: config/arc/arc.c:7197 +#: config/arc/arc.c:7158 #, gcc-internal-format, gfc-internal-format msgid "builtin requires an immediate for operand %d" msgstr "" -#: config/arc/arc.c:7202 +#: config/arc/arc.c:7163 #, gcc-internal-format, gfc-internal-format msgid "operand %d should be a 6 bit unsigned immediate" msgstr "" -#: config/arc/arc.c:7206 +#: config/arc/arc.c:7167 #, gcc-internal-format, gfc-internal-format msgid "operand %d should be a 8 bit unsigned immediate" msgstr "" -#: config/arc/arc.c:7210 +#: config/arc/arc.c:7171 #, gcc-internal-format, gfc-internal-format msgid "operand %d should be a 3 bit unsigned immediate" msgstr "" -#: config/arc/arc.c:7213 +#: config/arc/arc.c:7174 #, gcc-internal-format, gfc-internal-format msgid "unknown builtin immediate operand type for operand %d" msgstr "" -#: config/arc/arc.c:7264 +#: config/arc/arc.c:7225 #, gcc-internal-format msgid "" "register number must be a compile-time constant. Try giving higher " "optimization levels" msgstr "" -#: config/arc/arc.c:8257 +#: config/arc/arc.c:8218 #, gcc-internal-format msgid "Insn addresses not set after shorten_branches" msgstr "" -#: config/arc/arc.c:8470 +#: config/arc/arc.c:8431 #, gcc-internal-format msgid "insn addresses not freed" msgstr "" -#: config/arc/arc.c:11021 +#: config/arc/arc.c:10982 #, gcc-internal-format msgid "%qE attribute only valid for ARCv2 architecture" msgstr "" -#: config/arc/arc.c:11029 config/arc/arc.c:11068 +#: config/arc/arc.c:10990 config/arc/arc.c:11029 #, gcc-internal-format msgid "argument of %qE attribute is missing" msgstr "" -#: config/arc/arc.c:11040 config/arc/arc.c:11079 config/arc/arc.c:11189 +#: config/arc/arc.c:11001 config/arc/arc.c:11040 config/arc/arc.c:11150 #: config/avr/avr.c:9790 #, gcc-internal-format msgid "%qE attribute allows only an integer constant argument" msgstr "" -#: config/arc/arc.c:11060 +#: config/arc/arc.c:11021 #, gcc-internal-format msgid "%qE attribute only valid for ARC EM architecture" msgstr "" -#: config/arc/arc.c:11115 +#: config/arc/arc.c:11076 #, gcc-internal-format msgid "%qE attribute only applies to types" msgstr "" -#: config/arc/arc.c:11121 +#: config/arc/arc.c:11082 #, gcc-internal-format msgid "argument of %qE attribute ignored" msgstr "" -#: config/arc/arc.c:11179 config/avr/avr.c:9777 config/bfin/bfin.c:4827 -#: config/i386/winnt.c:63 config/msp430/msp430.c:2050 config/nvptx/nvptx.c:5082 +#: config/arc/arc.c:11140 config/avr/avr.c:9777 config/bfin/bfin.c:4830 +#: config/i386/winnt.c:63 config/msp430/msp430.c:2055 config/nvptx/nvptx.c:5082 #, gcc-internal-format msgid "%qE attribute only applies to variables" msgstr "" @@ -30319,8 +30457,8 @@ msgstr "" #: config/arm/arm-builtins.c:2516 #, gcc-internal-format msgid "" -"You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to " -"use these intrinsics." +"You must enable NEON instructions (e.g. %<-mfloat-abi=softfp%> %<-mfpu=neon" +"%>) to use these intrinsics." msgstr "" #: config/arm/arm-builtins.c:2554 @@ -30331,204 +30469,204 @@ msgstr "" #: config/arm/arm-builtins.c:2614 #, gcc-internal-format msgid "" -"You must enable crypto instructions (e.g. include -mfloat-abi=softfp -" -"mfpu=crypto-neon...) to use these intrinsics." +"You must enable crypto instructions (e.g. include %<-mfloat-abi=softfp%> %<-" +"mfpu=crypto-neon%>) to use these intrinsics." msgstr "" #. @@@ better error message -#: config/arm/arm-builtins.c:2674 config/arm/arm-builtins.c:2778 +#: config/arm/arm-builtins.c:2675 config/arm/arm-builtins.c:2779 #, gcc-internal-format msgid "selector must be an immediate" msgstr "" -#: config/arm/arm-builtins.c:2682 config/arm/arm-builtins.c:2727 -#: config/arm/arm-builtins.c:2785 config/arm/arm-builtins.c:2794 +#: config/arm/arm-builtins.c:2683 config/arm/arm-builtins.c:2728 +#: config/arm/arm-builtins.c:2786 config/arm/arm-builtins.c:2795 #, gcc-internal-format msgid "the range of selector should be in 0 to 7" msgstr "" -#: config/arm/arm-builtins.c:2687 config/arm/arm-builtins.c:2796 +#: config/arm/arm-builtins.c:2688 config/arm/arm-builtins.c:2797 #, gcc-internal-format msgid "the range of selector should be in 0 to 3" msgstr "" -#: config/arm/arm-builtins.c:2692 config/arm/arm-builtins.c:2798 +#: config/arm/arm-builtins.c:2693 config/arm/arm-builtins.c:2799 #, gcc-internal-format msgid "the range of selector should be in 0 to 1" msgstr "" -#: config/arm/arm-builtins.c:2864 +#: config/arm/arm-builtins.c:2865 #, gcc-internal-format msgid "mask must be an immediate" msgstr "" -#: config/arm/arm-builtins.c:2869 +#: config/arm/arm-builtins.c:2870 #, gcc-internal-format msgid "the range of mask should be in 0 to 255" msgstr "" -#: config/arm/arm-builtins.c:3057 +#: config/arm/arm-builtins.c:3058 #, gcc-internal-format msgid "" "the range of count should be in 0 to 32. please check the intrinsic " "_mm_rori_pi16 in code." msgstr "" -#: config/arm/arm-builtins.c:3059 +#: config/arm/arm-builtins.c:3060 #, gcc-internal-format msgid "" "the range of count should be in 0 to 32. please check the intrinsic " "_mm_rori_pi32 in code." msgstr "" -#: config/arm/arm-builtins.c:3061 +#: config/arm/arm-builtins.c:3062 #, gcc-internal-format msgid "" "the range of count should be in 0 to 32. please check the intrinsic " "_mm_ror_pi16 in code." msgstr "" -#: config/arm/arm-builtins.c:3063 +#: config/arm/arm-builtins.c:3064 #, gcc-internal-format msgid "" "the range of count should be in 0 to 32. please check the intrinsic " "_mm_ror_pi32 in code." msgstr "" -#: config/arm/arm-builtins.c:3069 +#: config/arm/arm-builtins.c:3070 #, gcc-internal-format msgid "" "the range of count should be in 0 to 64. please check the intrinsic " "_mm_rori_si64 in code." msgstr "" -#: config/arm/arm-builtins.c:3071 +#: config/arm/arm-builtins.c:3072 #, gcc-internal-format msgid "" "the range of count should be in 0 to 64. please check the intrinsic " "_mm_ror_si64 in code." msgstr "" -#: config/arm/arm-builtins.c:3076 +#: config/arm/arm-builtins.c:3077 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_srli_pi16 in code." msgstr "" -#: config/arm/arm-builtins.c:3078 +#: config/arm/arm-builtins.c:3079 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_srli_pi32 in code." msgstr "" -#: config/arm/arm-builtins.c:3080 +#: config/arm/arm-builtins.c:3081 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_srli_si64 in code." msgstr "" -#: config/arm/arm-builtins.c:3082 +#: config/arm/arm-builtins.c:3083 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_slli_pi16 in code." msgstr "" -#: config/arm/arm-builtins.c:3084 +#: config/arm/arm-builtins.c:3085 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_slli_pi32 in code." msgstr "" -#: config/arm/arm-builtins.c:3086 +#: config/arm/arm-builtins.c:3087 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_slli_si64 in code." msgstr "" -#: config/arm/arm-builtins.c:3088 +#: config/arm/arm-builtins.c:3089 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_srai_pi16 in code." msgstr "" -#: config/arm/arm-builtins.c:3090 +#: config/arm/arm-builtins.c:3091 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_srai_pi32 in code." msgstr "" -#: config/arm/arm-builtins.c:3092 +#: config/arm/arm-builtins.c:3093 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic " "_mm_srai_si64 in code." msgstr "" -#: config/arm/arm-builtins.c:3094 +#: config/arm/arm-builtins.c:3095 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_srl_pi16 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3096 +#: config/arm/arm-builtins.c:3097 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_srl_pi32 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3098 +#: config/arm/arm-builtins.c:3099 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_srl_si64 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3100 +#: config/arm/arm-builtins.c:3101 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_sll_pi16 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3102 +#: config/arm/arm-builtins.c:3103 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_sll_pi32 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3104 +#: config/arm/arm-builtins.c:3105 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_sll_si64 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3106 +#: config/arm/arm-builtins.c:3107 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_sra_pi16 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3108 +#: config/arm/arm-builtins.c:3109 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_sra_pi32 " "in code." msgstr "" -#: config/arm/arm-builtins.c:3110 +#: config/arm/arm-builtins.c:3111 #, gcc-internal-format msgid "" "the count should be no less than 0. please check the intrinsic _mm_sra_si64 " @@ -30560,251 +30698,251 @@ msgstr "" #: config/arm/arm.c:2887 #, gcc-internal-format -msgid "-g with -mno-apcs-frame may not give sensible debugging" +msgid "%<-g%> with %<-mno-apcs-frame%> may not give sensible debugging" msgstr "" -#: config/arm/arm.c:2891 +#: config/arm/arm.c:2892 #, gcc-internal-format msgid "iWMMXt unsupported under Thumb mode" msgstr "" -#: config/arm/arm.c:2894 +#: config/arm/arm.c:2895 #, gcc-internal-format -msgid "cannot use -mtp=cp15 with 16-bit Thumb" +msgid "cannot use %<-mtp=cp15%> with 16-bit Thumb" msgstr "" -#: config/arm/arm.c:2898 +#: config/arm/arm.c:2899 #, gcc-internal-format msgid "RTP PIC is incompatible with Thumb" msgstr "" -#: config/arm/arm.c:2910 +#: config/arm/arm.c:2911 #, gcc-internal-format, gfc-internal-format msgid "" "%s only supports non-pic code on M-profile targets with the MOVT instruction" msgstr "" -#: config/arm/arm.c:2916 -#, gcc-internal-format, gfc-internal-format -msgid "%s incompatible with -mword-relocations" +#: config/arm/arm.c:2917 +#, gcc-internal-format +msgid "%s incompatible with %<-mword-relocations%>" msgstr "" -#: config/arm/arm.c:3026 +#: config/arm/arm.c:3027 #, gcc-internal-format msgid "target CPU does not support THUMB instructions" msgstr "" -#: config/arm/arm.c:3071 +#: config/arm/arm.c:3072 #, gcc-internal-format msgid "target CPU does not support unaligned accesses" msgstr "" -#: config/arm/arm.c:3409 +#: config/arm/arm.c:3411 #, gcc-internal-format -msgid "-mapcs-stack-check incompatible with -mno-apcs-frame" +msgid "%<-mapcs-stack-check%> incompatible with %<-mno-apcs-frame%>" msgstr "" -#: config/arm/arm.c:3417 +#: config/arm/arm.c:3420 #, gcc-internal-format -msgid "-fpic and -mapcs-reent are incompatible" +msgid "%<-fpic%> and %<-mapcs-reent%> are incompatible" msgstr "" -#: config/arm/arm.c:3420 +#: config/arm/arm.c:3423 #, gcc-internal-format msgid "APCS reentrant code not supported. Ignored" msgstr "" -#: config/arm/arm.c:3443 +#: config/arm/arm.c:3446 #, gcc-internal-format msgid "option %<-mstructure-size-boundary%> is deprecated" msgstr "" -#: config/arm/arm.c:3451 +#: config/arm/arm.c:3454 #, gcc-internal-format msgid "structure size boundary can only be set to 8, 32 or 64" msgstr "" -#: config/arm/arm.c:3453 +#: config/arm/arm.c:3456 #, gcc-internal-format msgid "structure size boundary can only be set to 8 or 32" msgstr "" -#: config/arm/arm.c:3478 +#: config/arm/arm.c:3481 #, gcc-internal-format -msgid "RTP PIC is incompatible with -msingle-pic-base" +msgid "RTP PIC is incompatible with %<-msingle-pic-base%>" msgstr "" -#: config/arm/arm.c:3490 +#: config/arm/arm.c:3493 #, gcc-internal-format -msgid "-mpic-register= is useless without -fpic" +msgid "%<-mpic-register=%> is useless without %<-fpic%>" msgstr "" -#: config/arm/arm.c:3499 +#: config/arm/arm.c:3502 #, gcc-internal-format, gfc-internal-format msgid "unable to use '%s' for PIC register" msgstr "" -#: config/arm/arm.c:3521 +#: config/arm/arm.c:3524 #, gcc-internal-format -msgid "-freorder-blocks-and-partition not supported on this architecture" +msgid "%<-freorder-blocks-and-partition%> not supported on this architecture" msgstr "" -#: config/arm/arm.c:3675 +#: config/arm/arm.c:3679 #, gcc-internal-format msgid "selected fp16 options are incompatible" msgstr "" -#: config/arm/arm.c:3712 +#: config/arm/arm.c:3716 #, gcc-internal-format msgid "iwmmxt requires an AAPCS compatible ABI for proper operation" msgstr "" -#: config/arm/arm.c:3715 +#: config/arm/arm.c:3719 #, gcc-internal-format msgid "iwmmxt abi requires an iwmmxt capable cpu" msgstr "" -#: config/arm/arm.c:3723 +#: config/arm/arm.c:3727 #, gcc-internal-format msgid "target CPU does not support interworking" msgstr "" -#: config/arm/arm.c:3736 +#: config/arm/arm.c:3740 #, gcc-internal-format -msgid "AAPCS does not support -mcaller-super-interworking" +msgid "AAPCS does not support %<-mcaller-super-interworking%>" msgstr "" -#: config/arm/arm.c:3739 +#: config/arm/arm.c:3743 #, gcc-internal-format -msgid "AAPCS does not support -mcallee-super-interworking" +msgid "AAPCS does not support %<-mcallee-super-interworking%>" msgstr "" -#: config/arm/arm.c:3744 +#: config/arm/arm.c:3748 #, gcc-internal-format msgid "__fp16 and no ldrh" msgstr "" -#: config/arm/arm.c:3747 +#: config/arm/arm.c:3751 #, gcc-internal-format msgid "target CPU does not support ARMv8-M Security Extensions" msgstr "" -#: config/arm/arm.c:3752 +#: config/arm/arm.c:3756 #, gcc-internal-format msgid "ARMv8-M Security Extensions incompatible with selected FPU" msgstr "" -#: config/arm/arm.c:3763 +#: config/arm/arm.c:3767 #, gcc-internal-format -msgid "-mfloat-abi=hard: selected processor lacks an FPU" +msgid "%<-mfloat-abi=hard%>: selected processor lacks an FPU" msgstr "" -#: config/arm/arm.c:3771 +#: config/arm/arm.c:3775 #, gcc-internal-format -msgid "-mfloat-abi=hard and VFP" +msgid "%<-mfloat-abi=hard%> and VFP" msgstr "" -#: config/arm/arm.c:5834 +#: config/arm/arm.c:5838 #, gcc-internal-format msgid "non-AAPCS derived PCS variant" msgstr "" -#: config/arm/arm.c:5836 +#: config/arm/arm.c:5840 #, gcc-internal-format msgid "variadic functions must use the base AAPCS variant" msgstr "" -#: config/arm/arm.c:5855 +#: config/arm/arm.c:5859 #, gcc-internal-format msgid "PCS variant" msgstr "" -#: config/arm/arm.c:6053 +#: config/arm/arm.c:6057 #, gcc-internal-format msgid "Thumb-1 hard-float VFP ABI" msgstr "" -#: config/arm/arm.c:6492 config/arm/arm.c:6705 config/arm/arm.c:6738 -#: config/arm/arm.c:27017 +#: config/arm/arm.c:6496 config/arm/arm.c:6709 config/arm/arm.c:6742 +#: config/arm/arm.c:27079 #, gcc-internal-format msgid "parameter passing for argument of type %qT changed in GCC 7.1" msgstr "" -#: config/arm/arm.c:6999 +#: config/arm/arm.c:7003 #, gcc-internal-format msgid "" "%qE attribute not available to functions with arguments passed on the stack" msgstr "" -#: config/arm/arm.c:7011 +#: config/arm/arm.c:7015 #, gcc-internal-format msgid "" "%qE attribute not available to functions with variable number of arguments" msgstr "" -#: config/arm/arm.c:7020 +#: config/arm/arm.c:7024 #, gcc-internal-format msgid "%qE attribute not available to functions that return value on the stack" msgstr "" -#: config/arm/arm.c:7042 config/arm/arm.c:7094 +#: config/arm/arm.c:7046 config/arm/arm.c:7098 #, gcc-internal-format -msgid "%qE attribute ignored without -mcmse option." +msgid "%qE attribute ignored without %<-mcmse%> option." msgstr "" -#: config/arm/arm.c:7061 +#: config/arm/arm.c:7065 #, gcc-internal-format msgid "%qE attribute has no effect on functions with static linkage" msgstr "" -#: config/arm/arm.c:7110 +#: config/arm/arm.c:7114 #, gcc-internal-format msgid "%qE attribute only applies to base type of a function pointer" msgstr "" -#: config/arm/arm.c:8884 +#: config/arm/arm.c:8888 #, gcc-internal-format msgid "" -"accessing thread-local storage is not currently supported with -mpure-code " -"or -mslow-flash-data" +"accessing thread-local storage is not currently supported with %<-mpure-code" +"%> or %<-mslow-flash-data%>" msgstr "" -#: config/arm/arm.c:12526 +#: config/arm/arm.c:12535 #, gcc-internal-format msgid "%K%s %wd out of range %wd - %wd" msgstr "" -#: config/arm/arm.c:12529 +#: config/arm/arm.c:12538 #, gcc-internal-format msgid "%s %wd out of range %wd - %wd" msgstr "" -#: config/arm/arm.c:23958 +#: config/arm/arm.c:24020 #, gcc-internal-format msgid "unable to compute real location of stacked parameter" msgstr "" -#: config/arm/arm.c:24614 +#: config/arm/arm.c:24676 #, gcc-internal-format msgid "Unexpected thumb1 far jump" msgstr "" -#: config/arm/arm.c:24878 +#: config/arm/arm.c:24940 #, gcc-internal-format msgid "no low registers available for popping high registers" msgstr "" -#: config/arm/arm.c:25128 +#: config/arm/arm.c:25190 #, gcc-internal-format msgid "interrupt Service Routines cannot be coded in Thumb mode" msgstr "" -#: config/arm/arm.c:25359 +#: config/arm/arm.c:25421 #, gcc-internal-format -msgid "-fstack-check=specific for Thumb-1" +msgid "%<-fstack-check=specific%> for Thumb-1" msgstr "" -#: config/arm/arm.c:30808 +#: config/arm/arm.c:30890 #, gcc-internal-format msgid "invalid fpu for target attribute or pragma %qs" msgstr "" @@ -30812,17 +30950,17 @@ msgstr "" #. This doesn't really make sense until we support #. general dynamic selection of the architecture and all #. sub-features. -#: config/arm/arm.c:30816 +#: config/arm/arm.c:30898 #, gcc-internal-format msgid "auto fpu selection not currently permitted here" msgstr "" -#: config/arm/arm.c:30829 +#: config/arm/arm.c:30911 #, gcc-internal-format msgid "invalid architecture for target attribute or pragma %qs" msgstr "" -#: config/arm/arm.c:30843 +#: config/arm/arm.c:30925 #, gcc-internal-format msgid "unknown target attribute or pragma %qs" msgstr "" @@ -30883,35 +31021,35 @@ msgstr "" #: config/avr/avr.c:765 config/visium/visium.c:422 #, gcc-internal-format -msgid "-fpic is not supported" +msgid "%<-fpic%> is not supported" msgstr "" #: config/avr/avr.c:767 config/visium/visium.c:424 #, gcc-internal-format -msgid "-fPIC is not supported" +msgid "%<-fPIC%> is not supported" msgstr "" #: config/avr/avr.c:769 #, gcc-internal-format -msgid "-fpie is not supported" +msgid "%<-fpie%> is not supported" msgstr "" #: config/avr/avr.c:771 #, gcc-internal-format -msgid "-fPIE is not supported" +msgid "%<-fPIE%> is not supported" msgstr "" -#: config/avr/avr.c:1047 config/avr/avr.c:1052 config/riscv/riscv.c:4615 +#: config/avr/avr.c:1047 config/avr/avr.c:1052 config/riscv/riscv.c:4677 #, gcc-internal-format msgid "function attributes %qs and %qs are mutually exclusive" msgstr "" -#: config/avr/avr.c:1073 config/riscv/riscv.c:4627 +#: config/avr/avr.c:1073 config/riscv/riscv.c:4689 #, gcc-internal-format msgid "%qs function cannot have arguments" msgstr "" -#: config/avr/avr.c:1076 config/riscv/riscv.c:4624 +#: config/avr/avr.c:1076 config/riscv/riscv.c:4686 #, gcc-internal-format msgid "%qs function cannot return a value" msgstr "" @@ -31091,73 +31229,75 @@ msgstr "" #: config/bfin/bfin.c:2382 #, gcc-internal-format -msgid "-mfdpic is not supported, please use a bfin-linux-uclibc target" +msgid "%<-mfdpic%> is not supported, please use a bfin-linux-uclibc target" msgstr "" -#: config/bfin/bfin.c:2387 +#: config/bfin/bfin.c:2388 #, gcc-internal-format -msgid "-mshared-library-id= specified without -mid-shared-library" +msgid "%<-mshared-library-id=%> specified without %<-mid-shared-library%>" msgstr "" -#: config/bfin/bfin.c:2391 +#: config/bfin/bfin.c:2393 #, gcc-internal-format -msgid "-fstack-limit- options are ignored with -mfdpic; use -mstack-check-l1" +msgid "" +"%<-fstack-limit-%> options are ignored with %<-mfdpic%>; use %<-mstack-check-" +"l1%>" msgstr "" -#: config/bfin/bfin.c:2396 +#: config/bfin/bfin.c:2399 #, gcc-internal-format msgid "can%'t use multiple stack checking methods together" msgstr "" -#: config/bfin/bfin.c:2399 +#: config/bfin/bfin.c:2402 #, gcc-internal-format msgid "ID shared libraries and FD-PIC mode can%'t be used together" msgstr "" -#: config/bfin/bfin.c:2404 config/m68k/m68k.c:586 +#: config/bfin/bfin.c:2407 config/m68k/m68k.c:586 #, gcc-internal-format -msgid "cannot specify both -msep-data and -mid-shared-library" -msgstr "" - -#: config/bfin/bfin.c:2424 -#, gcc-internal-format -msgid "-mmulticore can only be used with BF561" +msgid "cannot specify both %<-msep-data%> and %<-mid-shared-library%>" msgstr "" #: config/bfin/bfin.c:2427 #, gcc-internal-format -msgid "-mcorea should be used with -mmulticore" +msgid "%<-mmulticore%> can only be used with BF561" msgstr "" #: config/bfin/bfin.c:2430 #, gcc-internal-format -msgid "-mcoreb should be used with -mmulticore" +msgid "%<-mcorea%> should be used with %<-mmulticore%>" msgstr "" #: config/bfin/bfin.c:2433 #, gcc-internal-format -msgid "-mcorea and -mcoreb can%'t be used together" +msgid "%<-mcoreb%> should be used with %<-mmulticore%>" +msgstr "" + +#: config/bfin/bfin.c:2436 +#, gcc-internal-format +msgid "%<-mcorea%> and %<-mcoreb%> can%'t be used together" msgstr "" -#: config/bfin/bfin.c:4710 +#: config/bfin/bfin.c:4713 #, gcc-internal-format msgid "multiple function type attributes specified" msgstr "" -#: config/bfin/bfin.c:4777 +#: config/bfin/bfin.c:4780 #, gcc-internal-format msgid "" "can%'t apply both longcall and shortcall attributes to the same function" msgstr "" -#: config/bfin/bfin.c:4834 +#: config/bfin/bfin.c:4837 #, gcc-internal-format msgid "%qE attribute cannot be specified for local variables" msgstr "" #: config/c6x/c6x.c:242 #, gcc-internal-format -msgid "-fpic and -fPIC not supported without -mdsbt on this target" +msgid "%<-fpic%> and %<-fPIC%> not supported without %<-mdsbt%> on this target" msgstr "" #: config/c6x/c6x.h:351 config/nvptx/nvptx.h:181 @@ -31171,8 +31311,8 @@ msgid "data-model=far not valid for cr16c architecture" msgstr "" #: config/cr16/cr16.c:309 -#, gcc-internal-format, gfc-internal-format -msgid "invalid data model option -mdata-model=%s" +#, gcc-internal-format +msgid "invalid data model option %<-mdata-model=%s%>" msgstr "" #: config/cr16/cr16.h:408 @@ -31216,46 +31356,46 @@ msgid "internal error: cris_side_effect_mode_ok with bad operands" msgstr "" #: config/cris/cris.c:2654 -#, gcc-internal-format, gfc-internal-format -msgid "-max-stackframe=%d is not usable, not between 0 and %d" +#, gcc-internal-format +msgid "%<-max-stackframe=%d%> is not usable, not between 0 and %d" msgstr "" -#: config/cris/cris.c:2682 -#, gcc-internal-format, gfc-internal-format -msgid "unknown CRIS version specification in -march= or -mcpu= : %s" +#: config/cris/cris.c:2683 +#, gcc-internal-format +msgid "unknown CRIS version specification in %<-march=%> or %<-mcpu=%> : %s" msgstr "" -#: config/cris/cris.c:2718 -#, gcc-internal-format, gfc-internal-format -msgid "unknown CRIS cpu version specification in -mtune= : %s" +#: config/cris/cris.c:2719 +#, gcc-internal-format +msgid "unknown CRIS cpu version specification in %<-mtune=%> : %s" msgstr "" -#: config/cris/cris.c:2739 +#: config/cris/cris.c:2740 #, gcc-internal-format -msgid "-fPIC and -fpic are not supported in this configuration" +msgid "%<-fPIC%> and %<-fpic%> are not supported in this configuration" msgstr "" -#: config/cris/cris.c:2988 +#: config/cris/cris.c:2990 #, gcc-internal-format msgid "unknown src" msgstr "" -#: config/cris/cris.c:3043 +#: config/cris/cris.c:3045 #, gcc-internal-format msgid "unknown dest" msgstr "" -#: config/cris/cris.c:3324 +#: config/cris/cris.c:3326 #, gcc-internal-format, gfc-internal-format msgid "stackframe too big: %d bytes" msgstr "" -#: config/cris/cris.c:3812 config/cris/cris.c:3840 +#: config/cris/cris.c:3814 config/cris/cris.c:3842 #, gcc-internal-format msgid "expand_binop failed in movsi got" msgstr "" -#: config/cris/cris.c:3935 +#: config/cris/cris.c:3937 #, gcc-internal-format msgid "emitting PIC operand, but PIC register isn%'t set up" msgstr "" @@ -31363,7 +31503,7 @@ msgstr "" #: config/csky/csky.c:6038 #, gcc-internal-format -msgid "%qE attribute ignored without -mistack" +msgid "%qE attribute ignored without %<-mistack%>" msgstr "" #: config/epiphany/epiphany.c:499 @@ -31409,19 +31549,19 @@ msgstr "" msgid "invalid IACC argument" msgstr "" -#: config/frv/frv.c:8632 config/sparc/sparc.c:10957 +#: config/frv/frv.c:8632 config/sparc/sparc.c:10931 #, gcc-internal-format msgid "%qs expects a constant argument" msgstr "" -#: config/frv/frv.c:8637 config/sparc/sparc.c:10963 +#: config/frv/frv.c:8637 config/sparc/sparc.c:10937 #, gcc-internal-format msgid "constant argument out of range for %qs" msgstr "" #: config/frv/frv.c:9118 #, gcc-internal-format -msgid "media functions are not available unless -mmedia is used" +msgid "media functions are not available unless %<-mmedia%> is used" msgstr "" #: config/frv/frv.c:9130 @@ -31509,7 +31649,7 @@ msgstr "" msgid "using vector_length (64), ignoring runtime setting" msgstr "" -#: config/gcn/gcn.c:4695 config/nvptx/nvptx.c:5703 +#: config/gcn/gcn.c:4695 config/nvptx/nvptx.c:5668 #, gcc-internal-format, gfc-internal-format msgid "using num_workers (%d), ignoring %d" msgstr "" @@ -31526,43 +31666,42 @@ msgstr "" #: config/h8300/h8300.c:329 #, gcc-internal-format -msgid "-msx is not supported in coff" +msgid "%<-msx%> is not supported in coff" msgstr "" #: config/h8300/h8300.c:351 #, gcc-internal-format -msgid "-ms2600 is used without -ms" +msgid "%<-ms2600%> is used without %<-ms%>" msgstr "" #: config/h8300/h8300.c:357 #, gcc-internal-format -msgid "-mn is used without -mh or -ms or -msx" +msgid "%<-mn%> is used without %<-mh%> or %<-ms%> or %<-msx%>" msgstr "" #: config/h8300/h8300.c:363 #, gcc-internal-format -msgid "-mexr is used without -ms" +msgid "%<-mexr%> is used without %<-ms%>" msgstr "" #: config/h8300/h8300.c:369 #, gcc-internal-format -msgid "-mint32 is not supported for H8300 and H8300L targets" +msgid "%<-mint32%> is not supported for H8300 and H8300L targets" msgstr "" #: config/h8300/h8300.c:375 #, gcc-internal-format -msgid "-mexr is used without -ms or -msx" +msgid "%<-mexr%> is used without %<-ms%> or %<-msx%>" msgstr "" #: config/h8300/h8300.c:381 #, gcc-internal-format -msgid "" -"-mno-exr valid only with -ms or -msx - Option ignored!" +msgid "%<-mno-exr%> valid only with %<-ms%> or %<-msx%> - Option ignored!" msgstr "" #: config/h8300/h8300.c:388 #, gcc-internal-format -msgid "-mn is not supported for linux targets" +msgid "%<-mn%> is not supported for linux targets" msgstr "" #: config/i386/host-cygwin.c:64 @@ -31575,61 +31714,61 @@ msgstr "" msgid "can%'t set position in PCH file: %m" msgstr "" -#: config/i386/i386.c:3244 +#: config/i386/i386.c:3461 #, gcc-internal-format msgid "wrong argument %qs to option %qs" msgstr "" -#: config/i386/i386.c:3250 +#: config/i386/i386.c:3467 #, gcc-internal-format msgid "size ranges of option %qs should be increasing" msgstr "" -#: config/i386/i386.c:3260 +#: config/i386/i386.c:3477 #, gcc-internal-format msgid "wrong strategy name %qs specified for option %qs" msgstr "" #. rep; movq isn't available in 32-bit code. -#: config/i386/i386.c:3286 +#: config/i386/i386.c:3503 #, gcc-internal-format msgid "" "strategy name %qs specified for option %qs not supported for 32-bit code" msgstr "" -#: config/i386/i386.c:3299 +#: config/i386/i386.c:3516 #, gcc-internal-format msgid "unknown alignment %qs specified for option %qs" msgstr "" -#: config/i386/i386.c:3309 +#: config/i386/i386.c:3526 #, gcc-internal-format msgid "the max value for the last size range should be -1 for option %qs" msgstr "" -#: config/i386/i386.c:3316 +#: config/i386/i386.c:3533 #, gcc-internal-format msgid "too many size ranges specified in option %qs" msgstr "" -#: config/i386/i386.c:3369 -#, gcc-internal-format, gfc-internal-format -msgid "unknown parameter to option -mtune-ctrl: %s" +#: config/i386/i386.c:3586 +#, gcc-internal-format +msgid "unknown parameter to option %<-mtune-ctrl%>: %s" msgstr "" -#: config/i386/i386.c:3489 +#: config/i386/i386.c:3706 #, gcc-internal-format msgid "Intel MCU psABI isn%'t supported in %s mode" msgstr "" -#: config/i386/i386.c:3538 +#: config/i386/i386.c:3755 #, gcc-internal-format msgid "" "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> " "instead as appropriate" msgstr "" -#: config/i386/i386.c:3540 +#: config/i386/i386.c:3757 #, gcc-internal-format msgid "" "% is deprecated; use % or " @@ -31637,500 +31776,516 @@ msgid "" msgstr "" #. rep; movq isn't available in 32-bit code. -#: config/i386/i386.c:3566 +#: config/i386/i386.c:3783 #, gcc-internal-format -msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code" +msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code" msgstr "" -#: config/i386/i386.c:3583 +#: config/i386/i386.c:3800 #, gcc-internal-format msgid "address mode %qs not supported in the %s bit mode" msgstr "" -#: config/i386/i386.c:3595 +#: config/i386/i386.c:3812 #, gcc-internal-format -msgid "-mabi=ms not supported with X32 ABI" +msgid "%<-mabi=ms%> not supported with X32 ABI" msgstr "" -#: config/i386/i386.c:3599 +#: config/i386/i386.c:3816 #, gcc-internal-format msgid "%<-mabi=ms%> not supported with %<-fsanitize=address%>" msgstr "" -#: config/i386/i386.c:3601 +#: config/i386/i386.c:3818 #, gcc-internal-format msgid "%<-mabi=ms%> not supported with %<-fsanitize=kernel-address%>" msgstr "" -#: config/i386/i386.c:3603 +#: config/i386/i386.c:3820 #, gcc-internal-format msgid "%<-mabi=ms%> not supported with %<-fsanitize=thread%>" msgstr "" -#: config/i386/i386.c:3620 config/i386/i386.c:3629 config/i386/i386.c:3641 -#: config/i386/i386.c:3652 config/i386/i386.c:3663 +#: config/i386/i386.c:3837 config/i386/i386.c:3846 config/i386/i386.c:3858 +#: config/i386/i386.c:3869 config/i386/i386.c:3880 #, gcc-internal-format msgid "code model %qs not supported in the %s bit mode" msgstr "" -#: config/i386/i386.c:3632 config/i386/i386.c:3644 +#: config/i386/i386.c:3849 config/i386/i386.c:3861 #, gcc-internal-format msgid "code model %qs not supported in x32 mode" msgstr "" -#: config/i386/i386.c:3650 config/i386/i386.c:3659 config/i386/i386.c:4979 +#: config/i386/i386.c:3867 config/i386/i386.c:3876 config/i386/i386.c:5197 #, gcc-internal-format, gfc-internal-format msgid "code model %s does not support PIC mode" msgstr "" -#: config/i386/i386.c:3687 +#: config/i386/i386.c:3904 #, gcc-internal-format -msgid "-masm=intel not supported in this configuration" +msgid "%<-masm=intel%> not supported in this configuration" msgstr "" -#: config/i386/i386.c:3692 +#: config/i386/i386.c:3909 #, gcc-internal-format, gfc-internal-format msgid "%i-bit mode not compiled in" msgstr "" -#: config/i386/i386.c:3701 +#: config/i386/i386.c:3918 #, gcc-internal-format msgid "% CPU can be used only for %<-mtune=%> switch" msgstr "" -#: config/i386/i386.c:3703 +#: config/i386/i386.c:3920 #, gcc-internal-format msgid "% CPU can be used only for % attribute" msgstr "" -#: config/i386/i386.c:3710 +#: config/i386/i386.c:3927 #, gcc-internal-format msgid "% CPU can be used only for %<-mtune=%> switch" msgstr "" -#: config/i386/i386.c:3712 +#: config/i386/i386.c:3929 #, gcc-internal-format msgid "% CPU can be used only for % attribute" msgstr "" -#: config/i386/i386.c:3720 config/i386/i386.c:4028 +#: config/i386/i386.c:3937 config/i386/i386.c:4245 #, gcc-internal-format msgid "CPU you selected does not support x86-64 instruction set" msgstr "" -#: config/i386/i386.c:3968 +#: config/i386/i386.c:4185 #, gcc-internal-format msgid "bad value (%qs) for %<-march=%> switch" msgstr "" -#: config/i386/i386.c:3969 +#: config/i386/i386.c:4186 #, gcc-internal-format msgid "bad value (%qs) for % attribute" msgstr "" -#: config/i386/i386.c:3991 +#: config/i386/i386.c:4208 #, gcc-internal-format msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?" msgstr "" -#: config/i386/i386.c:3993 +#: config/i386/i386.c:4210 #, gcc-internal-format msgid "" "valid arguments to % attribute are: %s; did you mean %qs?" msgstr "" -#: config/i386/i386.c:3998 +#: config/i386/i386.c:4215 #, gcc-internal-format msgid "valid arguments to %<-march=%> switch are: %s" msgstr "" -#: config/i386/i386.c:3999 +#: config/i386/i386.c:4216 #, gcc-internal-format msgid "valid arguments to % attribute are: %s" msgstr "" -#: config/i386/i386.c:4047 +#: config/i386/i386.c:4264 #, gcc-internal-format msgid "bad value (%qs) for %<-mtune=%> switch" msgstr "" -#: config/i386/i386.c:4048 +#: config/i386/i386.c:4265 #, gcc-internal-format msgid "bad value (%qs) for % attribute" msgstr "" -#: config/i386/i386.c:4068 +#: config/i386/i386.c:4285 #, gcc-internal-format msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?" msgstr "" -#: config/i386/i386.c:4070 +#: config/i386/i386.c:4287 #, gcc-internal-format msgid "" "valid arguments to % attribute are: %s; did you mean %qs?" msgstr "" -#: config/i386/i386.c:4075 +#: config/i386/i386.c:4292 #, gcc-internal-format msgid "valid arguments to %<-mtune=%> switch are: %s" msgstr "" -#: config/i386/i386.c:4076 +#: config/i386/i386.c:4293 #, gcc-internal-format msgid "valid arguments to % attribute are: %s" msgstr "" -#: config/i386/i386.c:4142 +#: config/i386/i386.c:4359 #, gcc-internal-format -msgid "-mregparm is ignored in 64-bit mode" +msgid "%<-mregparm%> is ignored in 64-bit mode" msgstr "" -#: config/i386/i386.c:4144 +#: config/i386/i386.c:4361 #, gcc-internal-format -msgid "-mregparm is ignored for Intel MCU psABI" +msgid "%<-mregparm%> is ignored for Intel MCU psABI" msgstr "" -#: config/i386/i386.c:4147 -#, gcc-internal-format, gfc-internal-format -msgid "-mregparm=%d is not between 0 and %d" +#: config/i386/i386.c:4364 +#, gcc-internal-format +msgid "%<-mregparm=%d%> is not between 0 and %d" msgstr "" -#: config/i386/i386.c:4180 +#: config/i386/i386.c:4392 #, gcc-internal-format msgid "%<-mrtd%> is ignored in 64bit mode" msgstr "" -#: config/i386/i386.c:4181 +#: config/i386/i386.c:4393 #, gcc-internal-format msgid "% is ignored in 64bit mode" msgstr "" -#: config/i386/i386.c:4260 +#: config/i386/i386.c:4472 #, gcc-internal-format -msgid "-mpreferred-stack-boundary is not supported for this target" +msgid "%<-mpreferred-stack-boundary%> is not supported for this target" msgstr "" -#: config/i386/i386.c:4263 -#, gcc-internal-format, gfc-internal-format -msgid "-mpreferred-stack-boundary=%d is not between %d and %d" +#: config/i386/i386.c:4475 +#, gcc-internal-format +msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d" msgstr "" -#: config/i386/i386.c:4286 -#, gcc-internal-format, gfc-internal-format -msgid "-mincoming-stack-boundary=%d is not between %d and 12" +#: config/i386/i386.c:4498 +#, gcc-internal-format +msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12" msgstr "" -#: config/i386/i386.c:4299 +#: config/i386/i386.c:4511 #, gcc-internal-format -msgid "-mnop-mcount is not compatible with this target" +msgid "%<-mnop-mcount%> is not compatible with this target" msgstr "" -#: config/i386/i386.c:4302 +#: config/i386/i386.c:4514 #, gcc-internal-format -msgid "-mnop-mcount is not implemented for -fPIC" +msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>" msgstr "" -#: config/i386/i386.c:4308 +#: config/i386/i386.c:4520 #, gcc-internal-format msgid "%<-msseregparm%> used without SSE enabled" msgstr "" -#: config/i386/i386.c:4309 +#: config/i386/i386.c:4521 #, gcc-internal-format msgid "% used without SSE enabled" msgstr "" -#: config/i386/i386.c:4319 +#: config/i386/i386.c:4531 #, gcc-internal-format msgid "SSE instruction set disabled, using 387 arithmetics" msgstr "" -#: config/i386/i386.c:4326 +#: config/i386/i386.c:4538 #, gcc-internal-format msgid "387 instruction set disabled, using SSE arithmetics" msgstr "" -#: config/i386/i386.c:4376 +#: config/i386/i386.c:4588 #, gcc-internal-format msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness" msgstr "" -#: config/i386/i386.c:4378 +#: config/i386/i386.c:4590 #, gcc-internal-format msgid "" "stack probing requires % for " "correctness" msgstr "" -#: config/i386/i386.c:4392 +#: config/i386/i386.c:4604 #, gcc-internal-format msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>" msgstr "" -#: config/i386/i386.c:4394 +#: config/i386/i386.c:4606 #, gcc-internal-format msgid "fixed ebp register requires %" msgstr "" -#: config/i386/i386.c:4504 +#: config/i386/i386.c:4716 #, gcc-internal-format -msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic" +msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>" msgstr "" -#: config/i386/i386.c:4507 +#: config/i386/i386.c:4719 #, gcc-internal-format -msgid "-mno-fentry isn%'t compatible with SEH" +msgid "%<-mno-fentry%> isn%'t compatible with SEH" msgstr "" -#: config/i386/i386.c:4511 +#: config/i386/i386.c:4723 #, gcc-internal-format -msgid "-mcall-ms2sysv-xlogues isn%'t currently supported with SEH" +msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH" msgstr "" -#: config/i386/i386.c:4576 -#, gcc-internal-format, gfc-internal-format -msgid "unknown option for -mrecip=%s" +#: config/i386/i386.c:4788 +#, gcc-internal-format +msgid "unknown option for %<-mrecip=%s%>" msgstr "" -#: config/i386/i386.c:4635 +#: config/i386/i386.c:4847 #, gcc-internal-format -msgid "%qs is not a valid number in -mstack-protector-guard-offset=" +msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>" msgstr "" -#: config/i386/i386.c:4640 +#: config/i386/i386.c:4852 #, gcc-internal-format -msgid "%qs is not a valid offset in -mstack-protector-guard-offset=" +msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>" msgstr "" -#: config/i386/i386.c:4668 +#: config/i386/i386.c:4880 #, gcc-internal-format -msgid "%qs is not a valid base register in -mstack-protector-guard-reg=" +msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>" msgstr "" -#: config/i386/i386.c:5274 config/i386/i386.c:5321 config/s390/s390.c:15236 -#: config/s390/s390.c:15286 config/s390/s390.c:15303 +#: config/i386/i386.c:5492 config/i386/i386.c:5539 config/s390/s390.c:15334 +#: config/s390/s390.c:15384 config/s390/s390.c:15401 #, gcc-internal-format, gfc-internal-format msgid "attribute(target(\"%s\")) is unknown" msgstr "" -#: config/i386/i386.c:5302 +#: config/i386/i386.c:5520 #, gcc-internal-format, gfc-internal-format msgid "option(\"%s\") was already specified" msgstr "" -#: config/i386/i386.c:5606 +#: config/i386/i386.c:5824 #, gcc-internal-format msgid "interrupt and naked attributes are not compatible" msgstr "" -#: config/i386/i386.c:5621 +#: config/i386/i386.c:5839 #, gcc-internal-format -msgid "Only DWARF debug format is supported for interrupt service routine." +msgid "only DWARF debug format is supported for interrupt service routine" msgstr "" -#: config/i386/i386.c:5670 +#: config/i386/i386.c:5888 #, gcc-internal-format msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible" msgstr "" -#: config/i386/i386.c:5708 +#: config/i386/i386.c:5896 +#, gcc-internal-format +msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible" +msgstr "" + +#: config/i386/i386.c:5931 #, gcc-internal-format msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible" msgstr "" -#: config/i386/i386.c:5804 -#, gcc-internal-format, gfc-internal-format -msgid "%s instructions aren't allowed in %s service routine" +#: config/i386/i386.c:5939 +#, gcc-internal-format +msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible" msgstr "" -#: config/i386/i386.c:5808 -#, gcc-internal-format, gfc-internal-format +#: config/i386/i386.c:6033 +#, gcc-internal-format +msgid "%s instructions aren%'t allowed in an exception service routine" +msgstr "" + +#: config/i386/i386.c:6035 +#, gcc-internal-format +msgid "%s instructions aren%'t allowed in an interrupt service routine" +msgstr "" + +#: config/i386/i386.c:6039 +#, gcc-internal-format msgid "" -"%s instructions aren't allowed in function with no_caller_saved_registers " -"attribute" +"%s instructions aren%'t allowed in a function with the " +"% attribute" msgstr "" -#: config/i386/i386.c:6222 config/i386/i386.c:6273 +#: config/i386/i386.c:6453 config/i386/i386.c:6504 #, gcc-internal-format msgid "fastcall and regparm attributes are not compatible" msgstr "" -#: config/i386/i386.c:6227 +#: config/i386/i386.c:6458 #, gcc-internal-format msgid "regparam and thiscall attributes are not compatible" msgstr "" -#: config/i386/i386.c:6234 config/i386/i386.c:41043 +#: config/i386/i386.c:6465 config/i386/i386.c:41298 #, gcc-internal-format msgid "%qE attribute requires an integer constant argument" msgstr "" -#: config/i386/i386.c:6240 +#: config/i386/i386.c:6471 #, gcc-internal-format msgid "argument to %qE attribute larger than %d" msgstr "" -#: config/i386/i386.c:6265 config/i386/i386.c:6308 +#: config/i386/i386.c:6496 config/i386/i386.c:6539 #, gcc-internal-format msgid "fastcall and cdecl attributes are not compatible" msgstr "" -#: config/i386/i386.c:6269 +#: config/i386/i386.c:6500 #, gcc-internal-format msgid "fastcall and stdcall attributes are not compatible" msgstr "" -#: config/i386/i386.c:6277 config/i386/i386.c:6326 +#: config/i386/i386.c:6508 config/i386/i386.c:6557 #, gcc-internal-format msgid "fastcall and thiscall attributes are not compatible" msgstr "" -#: config/i386/i386.c:6287 config/i386/i386.c:6304 +#: config/i386/i386.c:6518 config/i386/i386.c:6535 #, gcc-internal-format msgid "stdcall and cdecl attributes are not compatible" msgstr "" -#: config/i386/i386.c:6291 +#: config/i386/i386.c:6522 #, gcc-internal-format msgid "stdcall and fastcall attributes are not compatible" msgstr "" -#: config/i386/i386.c:6295 config/i386/i386.c:6322 +#: config/i386/i386.c:6526 config/i386/i386.c:6553 #, gcc-internal-format msgid "stdcall and thiscall attributes are not compatible" msgstr "" -#: config/i386/i386.c:6312 config/i386/i386.c:6330 +#: config/i386/i386.c:6543 config/i386/i386.c:6561 #, gcc-internal-format msgid "cdecl and thiscall attributes are not compatible" msgstr "" -#: config/i386/i386.c:6318 +#: config/i386/i386.c:6549 #, gcc-internal-format msgid "%qE attribute is used for non-class method" msgstr "" -#: config/i386/i386.c:6562 +#: config/i386/i386.c:6793 #, gcc-internal-format msgid "calling %qD with attribute sseregparm without SSE/SSE2 enabled" msgstr "" -#: config/i386/i386.c:6565 +#: config/i386/i386.c:6796 #, gcc-internal-format msgid "calling %qT with attribute sseregparm without SSE/SSE2 enabled" msgstr "" -#: config/i386/i386.c:6880 +#: config/i386/i386.c:7111 #, gcc-internal-format msgid "X32 does not support ms_abi attribute" msgstr "" -#: config/i386/i386.c:6914 +#: config/i386/i386.c:7145 #, gcc-internal-format msgid "ms_hook_prologue is not compatible with nested function" msgstr "" -#: config/i386/i386.c:7253 +#: config/i386/i386.c:7484 #, gcc-internal-format msgid "AVX512F vector argument without AVX512F enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7259 +#: config/i386/i386.c:7490 #, gcc-internal-format msgid "AVX512F vector return without AVX512F enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7273 +#: config/i386/i386.c:7504 #, gcc-internal-format msgid "AVX vector argument without AVX enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7279 +#: config/i386/i386.c:7510 #, gcc-internal-format msgid "AVX vector return without AVX enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7295 +#: config/i386/i386.c:7526 #, gcc-internal-format msgid "SSE vector argument without SSE enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7301 +#: config/i386/i386.c:7532 #, gcc-internal-format msgid "SSE vector return without SSE enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7317 +#: config/i386/i386.c:7548 #, gcc-internal-format msgid "MMX vector argument without MMX enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7323 +#: config/i386/i386.c:7554 #, gcc-internal-format msgid "MMX vector return without MMX enabled changes the ABI" msgstr "" -#: config/i386/i386.c:7504 +#: config/i386/i386.c:7735 #, gcc-internal-format msgid "" "the ABI of passing struct with a flexible array member has changed in GCC 4.4" msgstr "" -#: config/i386/i386.c:7621 +#: config/i386/i386.c:7852 #, gcc-internal-format msgid "the ABI of passing union with long double has changed in GCC 4.4" msgstr "" -#: config/i386/i386.c:7739 +#: config/i386/i386.c:7970 #, gcc-internal-format msgid "" "the ABI of passing structure with complex float member has changed in GCC 4.4" msgstr "" -#: config/i386/i386.c:7902 +#: config/i386/i386.c:8133 #, gcc-internal-format msgid "SSE register return with SSE disabled" msgstr "" -#: config/i386/i386.c:7908 +#: config/i386/i386.c:8139 #, gcc-internal-format msgid "SSE register argument with SSE disabled" msgstr "" -#: config/i386/i386.c:7924 +#: config/i386/i386.c:8155 #, gcc-internal-format msgid "x87 register return with x87 disabled" msgstr "" -#: config/i386/i386.c:8234 config/i386/i386.c:8476 config/i386/i386.c:8976 +#: config/i386/i386.c:8465 config/i386/i386.c:8705 config/i386/i386.c:9205 #, gcc-internal-format msgid "calling %qD with SSE calling convention without SSE/SSE2 enabled" msgstr "" -#: config/i386/i386.c:8236 config/i386/i386.c:8478 config/i386/i386.c:8978 +#: config/i386/i386.c:8467 config/i386/i386.c:8707 config/i386/i386.c:9207 #, gcc-internal-format msgid "" "this is a GCC bug that can be worked around by adding attribute used to " "function called" msgstr "" -#: config/i386/i386.c:8882 +#: config/i386/i386.c:9111 #, gcc-internal-format, gfc-internal-format msgid "" -"The ABI for passing parameters with %d-byte alignment has changed in GCC 4.6" +"the ABI for passing parameters with %d-byte alignment has changed in GCC 4.6" msgstr "" -#: config/i386/i386.c:11140 -#, gcc-internal-format, gfc-internal-format -msgid "-mcall-ms2sysv-xlogues is not compatible with %s" +#: config/i386/i386.c:11369 +#, gcc-internal-format +msgid "%<-mcall-ms2sysv-xlogues%> is not compatible with %s" msgstr "" -#: config/i386/i386.c:13139 +#: config/i386/i386.c:13368 #, gcc-internal-format -msgid "ms_hook_prologue attribute isn%'t compatible with -mfentry for 32-bit" +msgid "" +"ms_hook_prologue attribute isn%'t compatible with %<-mfentry%> for 32-bit" msgstr "" -#: config/i386/i386.c:13229 +#: config/i386/i386.c:13458 #, gcc-internal-format msgid "" "Dynamic Realign Argument Pointer (DRAP) not supported in interrupt service " @@ -32138,317 +32293,316 @@ msgid "" "return." msgstr "" -#: config/i386/i386.c:14516 +#: config/i386/i386.c:14748 #, gcc-internal-format -msgid "-fsplit-stack does not support fastcall with nested function" +msgid "%<-fsplit-stack%> does not support fastcall with nested function" msgstr "" -#: config/i386/i386.c:14536 +#: config/i386/i386.c:14768 #, gcc-internal-format msgid "" -"-fsplit-stack does not support 2 register parameters for a nested function" +"%<-fsplit-stack%> does not support 2 register parameters for a nested " +"function" msgstr "" #. FIXME: We could make this work by pushing a register #. around the addition and comparison. -#: config/i386/i386.c:14547 +#: config/i386/i386.c:14779 #, gcc-internal-format -msgid "-fsplit-stack does not support 3 register parameters" +msgid "%<-fsplit-stack%> does not support 3 register parameters" msgstr "" -#: config/i386/i386.c:17487 +#: config/i386/i386.c:17719 #, gcc-internal-format msgid "'V' modifier on non-integer register" msgstr "" -#: config/i386/i386.c:17498 config/i386/i386.c:17512 +#: config/i386/i386.c:17730 config/i386/i386.c:17744 #, gcc-internal-format msgid "unsupported size for integer register" msgstr "" -#: config/i386/i386.c:17544 +#: config/i386/i386.c:17776 #, gcc-internal-format msgid "extended registers have no high halves" msgstr "" -#: config/i386/i386.c:17559 +#: config/i386/i386.c:17791 #, gcc-internal-format msgid "unsupported operand size for extended register" msgstr "" -#: config/i386/i386.c:17750 +#: config/i386/i386.c:17983 #, gcc-internal-format msgid "non-integer operand used with operand code 'z'" msgstr "" -#: config/i386/i386.c:28200 +#: config/i386/i386.c:28453 #, gcc-internal-format -msgid "interrupt service routine can't be called directly" +msgid "interrupt service routine can%'t be called directly" msgstr "" -#: config/i386/i386.c:29579 +#: config/i386/i386.c:29832 #, gcc-internal-format msgid "" -"empty class %qT parameter passing ABI changes in -fabi-version=12 (GCC 8)" +"empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)" msgstr "" -#: config/i386/i386.c:31924 +#: config/i386/i386.c:32177 #, gcc-internal-format -msgid "No dispatcher found for the versioning attributes" +msgid "no dispatcher found for the versioning attributes" msgstr "" -#: config/i386/i386.c:31974 +#: config/i386/i386.c:32227 #, gcc-internal-format, gfc-internal-format -msgid "No dispatcher found for %s" +msgid "no dispatcher found for %s" msgstr "" -#: config/i386/i386.c:31984 +#: config/i386/i386.c:32237 #, gcc-internal-format, gfc-internal-format -msgid "No dispatcher found for the versioning attributes : %s" +msgid "no dispatcher found for the versioning attributes: %s" msgstr "" -#: config/i386/i386.c:32146 +#: config/i386/i386.c:32399 #, gcc-internal-format msgid "" -"Function versions cannot be marked as gnu_inline, bodies have to be generated" +"function versions cannot be marked as gnu_inline, bodies have to be generated" msgstr "" -#: config/i386/i386.c:32151 config/i386/i386.c:32427 -#: config/rs6000/rs6000.c:37579 +#: config/i386/i386.c:32404 config/i386/i386.c:32681 #, gcc-internal-format -msgid "Virtual function multiversioning not supported" +msgid "virtual function multiversioning not supported" msgstr "" -#: config/i386/i386.c:32284 config/rs6000/rs6000.c:37336 +#: config/i386/i386.c:32537 config/rs6000/rs6000.c:37454 #, gcc-internal-format msgid "multiversioning needs ifunc which is not supported on this target" msgstr "" -#: config/i386/i386.c:32706 +#: config/i386/i386.c:32960 #, gcc-internal-format -msgid "Parameter to builtin must be a string constant or literal" +msgid "parameter to builtin must be a string constant or literal" msgstr "" -#: config/i386/i386.c:32731 config/i386/i386.c:32781 +#: config/i386/i386.c:32985 config/i386/i386.c:33035 #, gcc-internal-format, gfc-internal-format -msgid "Parameter to builtin not valid: %s" +msgid "parameter to builtin not valid: %s" msgstr "" -#: config/i386/i386.c:34011 config/i386/i386.c:35451 +#: config/i386/i386.c:34265 config/i386/i386.c:35705 #, gcc-internal-format msgid "the last argument must be a 2-bit immediate" msgstr "" -#: config/i386/i386.c:34406 +#: config/i386/i386.c:34660 #, gcc-internal-format msgid "the fifth argument must be an 8-bit immediate" msgstr "" -#: config/i386/i386.c:34501 +#: config/i386/i386.c:34755 #, gcc-internal-format msgid "the third argument must be an 8-bit immediate" msgstr "" -#: config/i386/i386.c:35382 +#: config/i386/i386.c:35636 #, gcc-internal-format msgid "the last argument must be an 1-bit immediate" msgstr "" -#: config/i386/i386.c:35397 +#: config/i386/i386.c:35651 #, gcc-internal-format msgid "the last argument must be a 3-bit immediate" msgstr "" -#: config/i386/i386.c:35430 +#: config/i386/i386.c:35684 #, gcc-internal-format msgid "the last argument must be a 4-bit immediate" msgstr "" -#: config/i386/i386.c:35470 +#: config/i386/i386.c:35724 #, gcc-internal-format msgid "the last argument must be a 1-bit immediate" msgstr "" -#: config/i386/i386.c:35483 +#: config/i386/i386.c:35737 #, gcc-internal-format msgid "the last argument must be a 5-bit immediate" msgstr "" -#: config/i386/i386.c:35493 +#: config/i386/i386.c:35747 #, gcc-internal-format msgid "the next to last argument must be an 8-bit immediate" msgstr "" -#: config/i386/i386.c:35498 config/i386/i386.c:36285 +#: config/i386/i386.c:35752 config/i386/i386.c:36539 #, gcc-internal-format msgid "the last argument must be an 8-bit immediate" msgstr "" -#: config/i386/i386.c:35632 +#: config/i386/i386.c:35886 #, gcc-internal-format msgid "the third argument must be comparison constant" msgstr "" -#: config/i386/i386.c:35637 +#: config/i386/i386.c:35891 #, gcc-internal-format msgid "incorrect comparison mode" msgstr "" -#: config/i386/i386.c:35643 config/i386/i386.c:35850 +#: config/i386/i386.c:35897 config/i386/i386.c:36104 #, gcc-internal-format msgid "incorrect rounding operand" msgstr "" -#: config/i386/i386.c:35832 +#: config/i386/i386.c:36086 #, gcc-internal-format msgid "the immediate argument must be a 4-bit immediate" msgstr "" -#: config/i386/i386.c:35838 +#: config/i386/i386.c:36092 #, gcc-internal-format msgid "the immediate argument must be a 5-bit immediate" msgstr "" -#: config/i386/i386.c:35841 +#: config/i386/i386.c:36095 #, gcc-internal-format msgid "the immediate argument must be an 8-bit immediate" msgstr "" -#: config/i386/i386.c:36283 +#: config/i386/i386.c:36537 #, gcc-internal-format msgid "the last argument must be a 32-bit immediate" msgstr "" -#: config/i386/i386.c:36365 config/rs6000/rs6000.c:14669 +#: config/i386/i386.c:36619 config/rs6000/rs6000.c:14693 #, gcc-internal-format msgid "selector must be an integer constant in the range 0..%wi" msgstr "" -#: config/i386/i386.c:36545 +#: config/i386/i386.c:36799 #, gcc-internal-format msgid "%qE needs unknown isa option" msgstr "" -#: config/i386/i386.c:36549 +#: config/i386/i386.c:36803 #, gcc-internal-format msgid "%qE needs isa option %s" msgstr "" -#: config/i386/i386.c:37128 +#: config/i386/i386.c:37382 #, gcc-internal-format msgid "last argument must be an immediate" msgstr "" -#: config/i386/i386.c:37884 config/i386/i386.c:38096 +#: config/i386/i386.c:38138 config/i386/i386.c:38350 #, gcc-internal-format msgid "the last argument must be scale 1, 2, 4, 8" msgstr "" -#: config/i386/i386.c:38149 +#: config/i386/i386.c:38403 #, gcc-internal-format msgid "the forth argument must be scale 1, 2, 4, 8" msgstr "" -#: config/i386/i386.c:38155 +#: config/i386/i386.c:38409 #, gcc-internal-format msgid "incorrect hint operand" msgstr "" -#: config/i386/i386.c:38174 +#: config/i386/i386.c:38428 #, gcc-internal-format -msgid "the xabort's argument must be an 8-bit immediate" +msgid "the argument to % intrinsic must be an 8-bit immediate" msgstr "" -#: config/i386/i386.c:41030 +#: config/i386/i386.c:41285 #, gcc-internal-format msgid "%qE attribute only available for 32-bit" msgstr "" -#: config/i386/i386.c:41051 +#: config/i386/i386.c:41306 #, gcc-internal-format msgid "argument to %qE attribute is neither zero, nor one" msgstr "" -#: config/i386/i386.c:41084 config/i386/i386.c:41093 +#: config/i386/i386.c:41339 config/i386/i386.c:41348 #, gcc-internal-format msgid "ms_abi and sysv_abi attributes are not compatible" msgstr "" -#: config/i386/i386.c:41129 config/rs6000/rs6000.c:32849 +#: config/i386/i386.c:41384 config/rs6000/rs6000.c:32967 #, gcc-internal-format msgid "%qE incompatible attribute ignored" msgstr "" -#: config/i386/i386.c:41154 config/i386/i386.c:41176 config/ia64/ia64.c:815 -#: config/s390/s390.c:1147 +#: config/i386/i386.c:41409 config/i386/i386.c:41431 config/ia64/ia64.c:815 +#: config/s390/s390.c:1145 #, gcc-internal-format msgid "%qE attribute requires a string constant argument" msgstr "" -#: config/i386/i386.c:41164 config/i386/i386.c:41186 config/s390/s390.c:1176 +#: config/i386/i386.c:41419 config/i386/i386.c:41441 config/s390/s390.c:1174 #, gcc-internal-format msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)" msgstr "" -#: config/i386/i386.c:41218 +#: config/i386/i386.c:41473 #, gcc-internal-format msgid "interrupt service routine should have a pointer as the first argument" msgstr "" -#: config/i386/i386.c:41225 -#, gcc-internal-format, gfc-internal-format -msgid "" -"interrupt service routine should have unsigned %sint as the second argument" +#: config/i386/i386.c:41480 +#, gcc-internal-format +msgid "interrupt service routine should have %qs as the second argument" msgstr "" -#: config/i386/i386.c:41235 +#: config/i386/i386.c:41491 #, gcc-internal-format msgid "" "interrupt service routine can only have a pointer argument and an optional " "integer argument" msgstr "" -#: config/i386/i386.c:41238 +#: config/i386/i386.c:41494 #, gcc-internal-format -msgid "interrupt service routine can't have non-void return value" +msgid "interrupt service routine can%'t have non-void return value" msgstr "" -#: config/i386/i386.c:44101 +#: config/i386/i386.c:44357 #, gcc-internal-format msgid "alternatives not allowed in asm flag output" msgstr "" -#: config/i386/i386.c:44165 +#: config/i386/i386.c:44421 #, gcc-internal-format msgid "unknown asm flag output %qs" msgstr "" -#: config/i386/i386.c:44194 +#: config/i386/i386.c:44450 #, gcc-internal-format msgid "invalid type for asm flag output" msgstr "" -#: config/i386/i386.c:50383 +#: config/i386/i386.c:50641 #, gcc-internal-format msgid "unknown architecture specific memory model" msgstr "" -#: config/i386/i386.c:50390 +#: config/i386/i386.c:50648 #, gcc-internal-format msgid "HLE_ACQUIRE not used with ACQUIRE or stronger memory model" msgstr "" -#: config/i386/i386.c:50396 +#: config/i386/i386.c:50654 #, gcc-internal-format msgid "HLE_RELEASE not used with RELEASE or stronger memory model" msgstr "" -#: config/i386/i386.c:50439 +#: config/i386/i386.c:50699 #, gcc-internal-format msgid "unsupported return type %qT for simd" msgstr "" -#: config/i386/i386.c:50461 +#: config/i386/i386.c:50729 #, gcc-internal-format msgid "unsupported argument type %qT for simd" msgstr "" @@ -32459,7 +32613,7 @@ msgid "deleting file %s: %m" msgstr "" #: config/i386/intelmic-mkoffload.c:255 config/i386/intelmic-mkoffload.c:319 -#: config/i386/intelmic-mkoffload.c:360 config/nvptx/mkoffload.c:527 +#: config/i386/intelmic-mkoffload.c:360 config/nvptx/mkoffload.c:528 #, gcc-internal-format, gfc-internal-format msgid "cannot open '%s'" msgstr "" @@ -32540,7 +32694,7 @@ msgstr "" #: config/ia64/ia64.c:6027 config/pa/pa.c:456 config/sh/sh.c:8282 #: config/spu/spu.c:4920 #, gcc-internal-format -msgid "value of -mfixed-range must have form REG1-REG2" +msgid "value of %<-mfixed-range%> must have form REG1-REG2" msgstr "" #: config/ia64/ia64.c:11286 @@ -32635,28 +32789,28 @@ msgid "invalid argument of %qs attribute" msgstr "" #: config/m68k/m68k.c:527 -#, gcc-internal-format, gfc-internal-format -msgid "-mcpu=%s conflicts with -march=%s" +#, gcc-internal-format +msgid "%<-mcpu=%s%> conflicts with %<-march=%s%>" msgstr "" #: config/m68k/m68k.c:598 #, gcc-internal-format -msgid "-mpcrel -fPIC is not currently supported on selected cpu" +msgid "%<-mpcrel%> %<-fPIC%> is not currently supported on selected cpu" msgstr "" #: config/m68k/m68k.c:662 -#, gcc-internal-format, gfc-internal-format -msgid "-falign-labels=%d is not supported" +#, gcc-internal-format +msgid "%<-falign-labels=%d%> is not supported" msgstr "" #: config/m68k/m68k.c:669 -#, gcc-internal-format, gfc-internal-format -msgid "-falign-loops=%d is not supported" +#, gcc-internal-format +msgid "%<-falign-loops=%d%> is not supported" msgstr "" #: config/m68k/m68k.c:677 #, gcc-internal-format -msgid "-fstack-limit- options are not supported on this cpu" +msgid "%<-fstack-limit-%> options are not supported on this cpu" msgstr "" #: config/m68k/m68k.c:795 @@ -32669,7 +32823,7 @@ msgstr "" msgid "interrupt_thread is available only on fido" msgstr "" -#: config/m68k/m68k.c:1136 config/rs6000/rs6000.c:25593 +#: config/m68k/m68k.c:1136 config/rs6000/rs6000.c:25712 #, gcc-internal-format msgid "stack limit expression is not supported" msgstr "" @@ -32681,32 +32835,34 @@ msgstr "" #: config/microblaze/microblaze.c:1762 #, gcc-internal-format -msgid "-fPIC/-fpic not supported for this target" +msgid "%<-fPIC%>/%<-fpic%> not supported for this target" msgstr "" #: config/microblaze/microblaze.c:1774 #, gcc-internal-format -msgid "%qs is an invalid argument to -mcpu=" +msgid "%qs is an invalid argument to %<-mcpu=%>" msgstr "" #: config/microblaze/microblaze.c:1823 #, gcc-internal-format -msgid "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater" +msgid "" +"%<-mxl-multiply-high%> can be used only with %<-mcpu=v6.00.a%> or greater" msgstr "" -#: config/microblaze/microblaze.c:1839 +#: config/microblaze/microblaze.c:1840 #, gcc-internal-format -msgid "-mxl-reorder can be used only with -mcpu=v8.30.a or greater" +msgid "%<-mxl-reorder%> can be used only with %<-mcpu=v8.30.a%> or greater" msgstr "" -#: config/microblaze/microblaze.c:1845 +#: config/microblaze/microblaze.c:1847 #, gcc-internal-format -msgid "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a" +msgid "" +"%<-mxl-reorder%> requires %<-mxl-pattern-compare%> for %<-mcpu=v8.30.a%>" msgstr "" -#: config/microblaze/microblaze.c:1850 +#: config/microblaze/microblaze.c:1853 #, gcc-internal-format -msgid "-mxl-multiply-high requires -mno-xl-soft-mul" +msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>" msgstr "" #: config/mips/mips.c:1424 config/mips/mips.c:1428 @@ -32719,12 +32875,12 @@ msgstr "" msgid "%qE cannot have both %qs and %qs attributes" msgstr "" -#: config/mips/mips.c:1473 config/mips/mips.c:1479 config/nios2/nios2.c:4457 +#: config/mips/mips.c:1473 config/mips/mips.c:1479 config/nios2/nios2.c:4458 #, gcc-internal-format msgid "%qE redeclared with conflicting %qs attributes" msgstr "" -#: config/mips/mips.c:1511 config/mips/mips.c:1565 config/riscv/riscv.c:2768 +#: config/mips/mips.c:1511 config/mips/mips.c:1565 config/riscv/riscv.c:2802 #, gcc-internal-format msgid "%qE attribute requires a string argument" msgstr "" @@ -32746,139 +32902,139 @@ msgstr "" msgid "argument to %qE attribute is not intstack" msgstr "" -#: config/mips/mips.c:7726 +#: config/mips/mips.c:7742 #, gcc-internal-format msgid "cannot handle inconsistent calls to %qs" msgstr "" -#: config/mips/mips.c:10962 +#: config/mips/mips.c:10978 #, gcc-internal-format msgid "the % attribute requires a MIPS32r2 processor or greater" msgstr "" -#: config/mips/mips.c:10964 +#: config/mips/mips.c:10980 #, gcc-internal-format msgid "interrupt handlers cannot be MIPS16 functions" msgstr "" -#: config/mips/mips.c:11954 +#: config/mips/mips.c:11970 #, gcc-internal-format -msgid "-fstack-check=specific not implemented for MIPS16" +msgid "%<-fstack-check=specific%> not implemented for MIPS16" msgstr "" -#: config/mips/mips.c:16934 +#: config/mips/mips.c:16950 #, gcc-internal-format, gfc-internal-format msgid "argument %d to the built-in must be a constant in range %d to %d" msgstr "" -#: config/mips/mips.c:16940 config/nios2/nios2.c:3609 +#: config/mips/mips.c:16956 config/nios2/nios2.c:3610 #: config/riscv/riscv-builtins.c:219 #, gcc-internal-format msgid "invalid argument to built-in function" msgstr "" -#: config/mips/mips.c:17054 +#: config/mips/mips.c:17070 #, gcc-internal-format msgid "failed to expand built-in function" msgstr "" -#: config/mips/mips.c:17185 +#: config/mips/mips.c:17201 #, gcc-internal-format msgid "built-in function %qE not supported for MIPS16" msgstr "" -#: config/mips/mips.c:17793 +#: config/mips/mips.c:17809 #, gcc-internal-format msgid "%qs does not support MIPS16 code" msgstr "" -#: config/mips/mips.c:19598 +#: config/mips/mips.c:19614 #, gcc-internal-format msgid "MIPS16 PIC for ABIs other than o32 and o64" msgstr "" -#: config/mips/mips.c:19601 +#: config/mips/mips.c:19617 #, gcc-internal-format -msgid "MIPS16 -mxgot code" +msgid "MIPS16 %<-mxgot%> code" msgstr "" -#: config/mips/mips.c:19604 +#: config/mips/mips.c:19620 #, gcc-internal-format msgid "hard-float MIPS16 code for ABIs other than o32 and o64" msgstr "" -#: config/mips/mips.c:19607 +#: config/mips/mips.c:19623 #, gcc-internal-format msgid "MSA MIPS16 code" msgstr "" -#: config/mips/mips.c:19782 config/mips/mips.c:19787 config/mips/mips.c:19869 -#: config/mips/mips.c:19871 config/mips/mips.c:19901 config/mips/mips.c:19911 -#: config/mips/mips.c:20017 config/mips/mips.c:20047 +#: config/mips/mips.c:19798 config/mips/mips.c:19803 config/mips/mips.c:19885 +#: config/mips/mips.c:19887 config/mips/mips.c:19917 config/mips/mips.c:19927 +#: config/mips/mips.c:20033 config/mips/mips.c:20063 #, gcc-internal-format, gfc-internal-format msgid "unsupported combination: %s" msgstr "" -#: config/mips/mips.c:19821 +#: config/mips/mips.c:19837 #, gcc-internal-format msgid "" "%<-%s%> conflicts with the other architecture options, which specify a %s " "processor" msgstr "" -#: config/mips/mips.c:19831 +#: config/mips/mips.c:19847 #, gcc-internal-format msgid "%<-march=%s%> is not compatible with the selected ABI" msgstr "" -#: config/mips/mips.c:19846 +#: config/mips/mips.c:19862 #, gcc-internal-format msgid "%<-mgp64%> used with a 32-bit processor" msgstr "" -#: config/mips/mips.c:19848 +#: config/mips/mips.c:19864 #, gcc-internal-format msgid "%<-mgp32%> used with a 64-bit ABI" msgstr "" -#: config/mips/mips.c:19850 +#: config/mips/mips.c:19866 #, gcc-internal-format msgid "%<-mgp64%> used with a 32-bit ABI" msgstr "" -#: config/mips/mips.c:19866 +#: config/mips/mips.c:19882 #, gcc-internal-format msgid "the %qs architecture does not support %<-mfp32%>" msgstr "" -#: config/mips/mips.c:19875 +#: config/mips/mips.c:19891 #, gcc-internal-format msgid "" "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the " "mfhc1 and mthc1 instructions" msgstr "" -#: config/mips/mips.c:19878 +#: config/mips/mips.c:19894 #, gcc-internal-format msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI" msgstr "" -#: config/mips/mips.c:19899 +#: config/mips/mips.c:19915 #, gcc-internal-format msgid "%<-mfpxx%> can only be used with the o32 ABI" msgstr "" -#: config/mips/mips.c:19903 +#: config/mips/mips.c:19919 #, gcc-internal-format msgid "%<-march=%s%> requires %<-mfp32%>" msgstr "" -#: config/mips/mips.c:19905 +#: config/mips/mips.c:19921 #, gcc-internal-format msgid "%<-mfpxx%> requires %<-mlra%>" msgstr "" -#: config/mips/mips.c:19921 config/mips/mips.c:19923 config/mips/mips.c:19936 +#: config/mips/mips.c:19937 config/mips/mips.c:19939 config/mips/mips.c:19952 #, gcc-internal-format msgid "%qs is incompatible with %qs" msgstr "" @@ -32888,177 +33044,177 @@ msgstr "" #. effort to support the combination of 32-bit GOT entries #. and 64-bit pointers, so we treat the abicalls case as #. an error. -#: config/mips/mips.c:19930 +#: config/mips/mips.c:19946 #, gcc-internal-format msgid "the combination of %qs and %qs is incompatible with %qs" msgstr "" -#: config/mips/mips.c:19983 +#: config/mips/mips.c:19999 #, gcc-internal-format msgid "the %qs architecture does not support branch-likely instructions" msgstr "" -#: config/mips/mips.c:19998 +#: config/mips/mips.c:20014 #, gcc-internal-format msgid "the %qs architecture does not support madd or msub instructions" msgstr "" -#: config/mips/mips.c:20012 +#: config/mips/mips.c:20028 #, gcc-internal-format msgid "the %qs architecture does not support odd single-precision registers" msgstr "" -#: config/mips/mips.c:20025 config/mips/mips.c:20031 +#: config/mips/mips.c:20041 config/mips/mips.c:20047 #, gcc-internal-format msgid "unsupported combination: %qs%s %s" msgstr "" -#: config/mips/mips.c:20040 +#: config/mips/mips.c:20056 #, gcc-internal-format msgid "unsupported combination: %qs %s" msgstr "" -#: config/mips/mips.c:20055 +#: config/mips/mips.c:20071 #, gcc-internal-format msgid "cannot generate position-independent code for %qs" msgstr "" -#: config/mips/mips.c:20058 +#: config/mips/mips.c:20074 #, gcc-internal-format msgid "position-independent code requires %qs" msgstr "" -#: config/mips/mips.c:20091 +#: config/mips/mips.c:20107 #, gcc-internal-format msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>" msgstr "" -#: config/mips/mips.c:20099 config/mips/mips.c:20102 +#: config/mips/mips.c:20115 config/mips/mips.c:20118 #, gcc-internal-format msgid "cannot use small-data accesses for %qs" msgstr "" -#: config/mips/mips.c:20117 +#: config/mips/mips.c:20133 #, gcc-internal-format msgid "the %qs architecture does not support %<-m%s=legacy%>" msgstr "" -#: config/mips/mips.c:20124 +#: config/mips/mips.c:20140 #, gcc-internal-format msgid "the %qs architecture does not support %<-m%s=2008%>" msgstr "" -#: config/mips/mips.c:20142 +#: config/mips/mips.c:20158 #, gcc-internal-format msgid "%<-mips3d%> requires %<-mpaired-single%>" msgstr "" -#: config/mips/mips.c:20152 +#: config/mips/mips.c:20168 #, gcc-internal-format msgid "%qs must be used with %qs" msgstr "" -#: config/mips/mips.c:20162 +#: config/mips/mips.c:20178 #, gcc-internal-format msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>" msgstr "" -#: config/mips/mips.c:20169 +#: config/mips/mips.c:20185 #, gcc-internal-format msgid "the %qs architecture does not support paired-single instructions" msgstr "" -#: config/mips/mips.c:20178 +#: config/mips/mips.c:20194 #, gcc-internal-format msgid "%qs requires a target that provides the %qs instruction" msgstr "" -#: config/mips/mips.c:20189 +#: config/mips/mips.c:20205 #, gcc-internal-format msgid "the %qs architecture does not support DSP instructions" msgstr "" -#: config/mips/mips.c:20199 +#: config/mips/mips.c:20215 #, gcc-internal-format msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>" msgstr "" -#: config/mips/mips.c:20209 +#: config/mips/mips.c:20225 #, gcc-internal-format msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>" msgstr "" -#: config/mips/mips.c:20315 +#: config/mips/mips.c:20331 #, gcc-internal-format msgid "%qs requires branch-likely instructions" msgstr "" -#: config/mips/mips.c:20319 +#: config/mips/mips.c:20335 #, gcc-internal-format msgid "the %qs architecture does not support the synci instruction" msgstr "" -#: config/mips/mips.c:21154 +#: config/mips/mips.c:21170 #, gcc-internal-format msgid "mips16 function profiling" msgstr "" #: config/mmix/mmix.c:320 -#, gcc-internal-format, gfc-internal-format -msgid "-f%s not supported: ignored" +#, gcc-internal-format +msgid "%<-f%s%> not supported: ignored" msgstr "" -#: config/mmix/mmix.c:758 +#: config/mmix/mmix.c:759 #, gcc-internal-format msgid "support for mode %qs" msgstr "" -#: config/mmix/mmix.c:772 +#: config/mmix/mmix.c:773 #, gcc-internal-format, gfc-internal-format msgid "" "too large function value type, needs %d registers, have only %d registers " "for this" msgstr "" -#: config/mmix/mmix.c:949 +#: config/mmix/mmix.c:950 #, gcc-internal-format msgid "function_profiler support for MMIX" msgstr "" -#: config/mmix/mmix.c:973 +#: config/mmix/mmix.c:974 #, gcc-internal-format msgid "MMIX Internal: Last named vararg would not fit in a register" msgstr "" -#: config/mmix/mmix.c:1606 config/mmix/mmix.c:1630 config/mmix/mmix.c:1746 +#: config/mmix/mmix.c:1607 config/mmix/mmix.c:1631 config/mmix/mmix.c:1747 #, gcc-internal-format, gfc-internal-format msgid "MMIX Internal: Bad register: %d" msgstr "" #. Presumably there's a missing case above if we get here. -#: config/mmix/mmix.c:1738 +#: config/mmix/mmix.c:1739 #, gcc-internal-format msgid "MMIX Internal: Missing %qc case in mmix_print_operand" msgstr "" -#: config/mmix/mmix.c:2023 +#: config/mmix/mmix.c:2024 #, gcc-internal-format msgid "stack frame not a multiple of 8 bytes: %wd" msgstr "" -#: config/mmix/mmix.c:2261 +#: config/mmix/mmix.c:2262 #, gcc-internal-format msgid "stack frame not a multiple of octabyte: %wd" msgstr "" -#: config/mmix/mmix.c:2547 config/mmix/mmix.c:2606 +#: config/mmix/mmix.c:2548 config/mmix/mmix.c:2607 #, gcc-internal-format, gfc-internal-format msgid "MMIX Internal: %s is not a shiftable int" msgstr "" #: config/mn10300/mn10300.c:107 #, gcc-internal-format -msgid "-mtune= expects mn10300, am33, am33-2, or am34" +msgid "%<-mtune=%> expects mn10300, am33, am33-2, or am34" msgstr "" #: config/msp430/driver-msp430.c:661 @@ -33082,135 +33238,139 @@ msgid "msp430_select_hwmult_lib needs one or more arguments" msgstr "" #: config/msp430/msp430.c:800 -#, gcc-internal-format, gfc-internal-format -msgid "MCU '%s' supports %s ISA but -mcpu option is set to %s" +#, gcc-internal-format +msgid "MCU '%s' supports %s ISA but %<-mcpu%> option is set to %s" msgstr "" -#: config/msp430/msp430.c:806 -#, gcc-internal-format, gfc-internal-format +#: config/msp430/msp430.c:807 +#, gcc-internal-format msgid "" -"MCU '%s' does not have hardware multiply support, but -mhwmult is set to %s" +"MCU '%s' does not have hardware multiply support, but %<-mhwmult%> is set to " +"%s" msgstr "" -#: config/msp430/msp430.c:813 -#, gcc-internal-format, gfc-internal-format -msgid "MCU '%s' supports %s hardware multiply, but -mhwmult is set to 16-bit" +#: config/msp430/msp430.c:815 +#, gcc-internal-format +msgid "" +"MCU '%s' supports %s hardware multiply, but %<-mhwmult%> is set to 16-bit" msgstr "" -#: config/msp430/msp430.c:816 -#, gcc-internal-format, gfc-internal-format -msgid "MCU '%s' supports %s hardware multiply, but -mhwmult is set to 32-bit" +#: config/msp430/msp430.c:819 +#, gcc-internal-format +msgid "" +"MCU '%s' supports %s hardware multiply, but %<-mhwmult%> is set to 32-bit" msgstr "" -#: config/msp430/msp430.c:819 -#, gcc-internal-format, gfc-internal-format -msgid "MCU '%s' supports %s hardware multiply, but -mhwmult is set to f5series" +#: config/msp430/msp430.c:823 +#, gcc-internal-format +msgid "" +"MCU '%s' supports %s hardware multiply, but %<-mhwmult%> is set to f5series" msgstr "" -#: config/msp430/msp430.c:835 -#, gcc-internal-format, gfc-internal-format +#: config/msp430/msp430.c:840 +#, gcc-internal-format msgid "" "Unrecognized MCU name '%s', assuming that it is just a MSP430 with no " "hardware multiply.\n" -"Use the -mcpu and -mhwmult options to set these explicitly." +"Use the %<-mcpu%> and %<-mhwmult%> options to set these explicitly." msgstr "" -#: config/msp430/msp430.c:842 -#, gcc-internal-format, gfc-internal-format +#: config/msp430/msp430.c:847 +#, gcc-internal-format msgid "" "Unrecognized MCU name '%s', assuming that it has no hardware multiply.\n" -"Use the -mhwmult option to set this explicitly." +"Use the %<-mhwmult%> option to set this explicitly." msgstr "" -#: config/msp430/msp430.c:854 -#, gcc-internal-format, gfc-internal-format +#: config/msp430/msp430.c:859 +#, gcc-internal-format msgid "" "Unrecognized MCU name '%s', assuming that it just supports the MSP430 ISA.\n" -"Use the -mcpu option to set the ISA explicitly." +"Use the %<-mcpu%> option to set the ISA explicitly." msgstr "" -#: config/msp430/msp430.c:862 +#: config/msp430/msp430.c:867 #, gcc-internal-format, gfc-internal-format msgid "Unrecognized MCU name '%s'." msgstr "" -#: config/msp430/msp430.c:871 +#: config/msp430/msp430.c:876 #, gcc-internal-format -msgid "-mlarge requires a 430X-compatible -mmcu=" +msgid "%<-mlarge%> requires a 430X-compatible %<-mmcu=%>" msgstr "" -#: config/msp430/msp430.c:874 +#: config/msp430/msp430.c:879 #, gcc-internal-format -msgid "-mcode-region=upper requires 430X-compatible cpu" +msgid "%<-mcode-region=upper%> requires 430X-compatible cpu" msgstr "" -#: config/msp430/msp430.c:876 +#: config/msp430/msp430.c:881 #, gcc-internal-format -msgid "-mdata-region=upper requires 430X-compatible cpu" +msgid "%<-mdata-region=upper%> requires 430X-compatible cpu" msgstr "" -#: config/msp430/msp430.c:1910 +#: config/msp430/msp430.c:1915 #, gcc-internal-format msgid "unrecognized interrupt vector argument of %qE attribute" msgstr "" -#: config/msp430/msp430.c:1919 +#: config/msp430/msp430.c:1924 #, gcc-internal-format msgid "numeric argument of %qE attribute must be in range 0..63" msgstr "" -#: config/msp430/msp430.c:1925 +#: config/msp430/msp430.c:1930 #, gcc-internal-format msgid "argument of %qE attribute is not a string constant or number" msgstr "" -#: config/msp430/msp430.c:1952 +#: config/msp430/msp430.c:1957 #, gcc-internal-format msgid "critical attribute has no effect on interrupt functions" msgstr "" -#: config/msp430/msp430.c:2055 +#: config/msp430/msp430.c:2060 #, gcc-internal-format msgid "%qE attribute cannot be applied to variables with specific sections" msgstr "" -#: config/msp430/msp430.c:2059 +#: config/msp430/msp430.c:2064 #, gcc-internal-format msgid "%qE attribute has no effect on automatic variables" msgstr "" -#: config/msp430/msp430.c:2206 +#: config/msp430/msp430.c:2211 #, gcc-internal-format msgid "argument to interrupt attribute is unsupported for weak functions" msgstr "" -#: config/msp430/msp430.c:2582 +#: config/msp430/msp430.c:2587 #, gcc-internal-format msgid "__delay_cycles() only takes constant arguments" msgstr "" -#: config/msp430/msp430.c:2592 +#: config/msp430/msp430.c:2597 #, gcc-internal-format msgid "__delay_cycles only takes non-negative cycle counts" msgstr "" -#: config/msp430/msp430.c:2612 +#: config/msp430/msp430.c:2617 #, gcc-internal-format msgid "__delay_cycles is limited to 32-bit loop counts" msgstr "" -#: config/msp430/msp430.c:2682 +#: config/msp430/msp430.c:2687 #, gcc-internal-format msgid "MSP430 builtin functions only work inside interrupt handlers" msgstr "" -#: config/msp430/msp430.c:2694 config/rx/rx.c:2658 config/xtensa/xtensa.c:3468 +#: config/msp430/msp430.c:2699 config/rx/rx.c:2659 config/xtensa/xtensa.c:3468 #: config/xtensa/xtensa.c:3494 #, gcc-internal-format msgid "bad builtin code" msgstr "" -#: config/nds32/nds32-intrinsic.c:126 config/nios2/nios2.c:3847 +#: config/nds32/nds32-intrinsic.c:126 config/nios2/nios2.c:3848 #, gcc-internal-format, gfc-internal-format msgid "invalid argument to built-in function %s" msgstr "" @@ -33222,7 +33382,7 @@ msgstr "" #: config/nds32/nds32-intrinsic.c:1003 #, gcc-internal-format -msgid "don't support DSP extension instructions" +msgid "don%'t support DSP extension instructions" msgstr "" #: config/nds32/nds32-intrinsic.c:1016 @@ -33242,17 +33402,17 @@ msgstr "" #: config/nds32/nds32-intrinsic.c:1062 #, gcc-internal-format -msgid "don't support performance extension instructions" +msgid "don%'t support performance extension instructions" msgstr "" #: config/nds32/nds32-intrinsic.c:1074 #, gcc-internal-format -msgid "don't support performance extension version 2 instructions" +msgid "don%'t support performance extension version 2 instructions" msgstr "" #: config/nds32/nds32-intrinsic.c:1086 #, gcc-internal-format -msgid "don't support string extension instructions" +msgid "don%'t support string extension instructions" msgstr "" #: config/nds32/nds32-isr.c:116 config/nds32/nds32-isr.c:207 @@ -33323,47 +33483,47 @@ msgstr "" msgid "CCTL intrinsic function subtype out of range!" msgstr "" -#: config/nds32/nds32.c:3941 +#: config/nds32/nds32.c:3939 #, gcc-internal-format msgid "cannot use indirect_call attribute under linux toolchain" msgstr "" -#: config/nds32/nds32.c:3949 +#: config/nds32/nds32.c:3947 #, gcc-internal-format -msgid "indirect_call attribute can't apply for static function" +msgid "indirect_call attribute can%'t apply for static function" msgstr "" -#: config/nds32/nds32.c:4038 +#: config/nds32/nds32.c:4036 #, gcc-internal-format msgid "invalid id value for interrupt/exception attribute" msgstr "" -#: config/nds32/nds32.c:4066 +#: config/nds32/nds32.c:4064 #, gcc-internal-format msgid "invalid id value for reset attribute" msgstr "" -#: config/nds32/nds32.c:4082 +#: config/nds32/nds32.c:4080 #, gcc-internal-format msgid "invalid nmi function for reset attribute" msgstr "" -#: config/nds32/nds32.c:4095 +#: config/nds32/nds32.c:4093 #, gcc-internal-format msgid "invalid warm function for reset attribute" msgstr "" -#: config/nds32/nds32.c:4146 +#: config/nds32/nds32.c:4144 #, gcc-internal-format -msgid "not support -fpic option for v3m toolchain" +msgid "not support %<-fpic%> option for v3m toolchain" msgstr "" -#: config/nds32/nds32.c:4179 +#: config/nds32/nds32.c:4177 #, gcc-internal-format msgid "Disable FPU ISA, the ABI option must be enable '-mfloat-abi=soft'" msgstr "" -#: config/nds32/nds32.c:4182 +#: config/nds32/nds32.c:4180 #, gcc-internal-format msgid "" "'-mabi=2fp+' option only support when FPU available, must be enable '-mext-" @@ -33383,168 +33543,169 @@ msgstr "" #: config/nios2/nios2.c:1195 #, gcc-internal-format msgid "" -"switch %<-mcustom-%s%> has no effect unless -funsafe-math-optimizations is " -"specified" +"switch %<-mcustom-%s%> has no effect unless %<-funsafe-math-optimizations%> " +"is specified" msgstr "" -#: config/nios2/nios2.c:1204 +#: config/nios2/nios2.c:1205 #, gcc-internal-format msgid "" -"switch %<-mcustom-%s%> has no effect unless -ffinite-math-only is specified" +"switch %<-mcustom-%s%> has no effect unless %<-ffinite-math-only%> is " +"specified" msgstr "" -#: config/nios2/nios2.c:1213 +#: config/nios2/nios2.c:1214 #, gcc-internal-format msgid "" -"switch %<-mcustom-%s%> has no effect unless -fno-math-errno is specified" +"switch %<-mcustom-%s%> has no effect unless %<-fno-math-errno%> is specified" msgstr "" -#: config/nios2/nios2.c:1218 +#: config/nios2/nios2.c:1219 #, gcc-internal-format msgid "" -"conflicting use of -mcustom switches, target attributes, and/or " -"__builtin_custom_ functions" +"conflicting use of %<-mcustom%> switches, target attributes, and/or " +"%<__builtin_custom_%> functions" msgstr "" -#: config/nios2/nios2.c:1320 +#: config/nios2/nios2.c:1321 #, gcc-internal-format msgid "ignoring unrecognized switch %<-mcustom-fpu-cfg%> value %<%s%>" msgstr "" -#: config/nios2/nios2.c:1339 +#: config/nios2/nios2.c:1340 #, gcc-internal-format msgid "switch %<-mcustom-%s%> value %d must be between 0 and 255" msgstr "" -#: config/nios2/nios2.c:1362 +#: config/nios2/nios2.c:1363 #, gcc-internal-format msgid "position-independent code requires the Linux ABI" msgstr "" -#: config/nios2/nios2.c:1365 +#: config/nios2/nios2.c:1366 #, gcc-internal-format -msgid "PIC support for -fstack-limit-symbol" +msgid "PIC support for %<-fstack-limit-symbol%>" msgstr "" -#: config/nios2/nios2.c:1387 +#: config/nios2/nios2.c:1388 #, gcc-internal-format -msgid "-mgpopt not supported with PIC." +msgid "%<-mgpopt%> not supported with PIC." msgstr "" -#: config/nios2/nios2.c:1389 +#: config/nios2/nios2.c:1390 #, gcc-internal-format -msgid "-mgprel-sec= not supported with PIC." +msgid "%<-mgprel-sec=%> not supported with PIC." msgstr "" -#: config/nios2/nios2.c:1391 +#: config/nios2/nios2.c:1392 #, gcc-internal-format -msgid "-mr0rel-sec= not supported with PIC." +msgid "%<-mr0rel-sec=%> not supported with PIC." msgstr "" -#: config/nios2/nios2.c:1399 +#: config/nios2/nios2.c:1400 #, gcc-internal-format -msgid "-mgprel-sec= argument is not a valid regular expression." +msgid "%<-mgprel-sec=%> argument is not a valid regular expression." msgstr "" -#: config/nios2/nios2.c:1405 +#: config/nios2/nios2.c:1406 #, gcc-internal-format -msgid "-mr0rel-sec= argument is not a valid regular expression." +msgid "%<-mr0rel-sec=%> argument is not a valid regular expression." msgstr "" -#: config/nios2/nios2.c:1416 +#: config/nios2/nios2.c:1417 #, gcc-internal-format msgid "BMX instructions are only supported with R2 architecture" msgstr "" -#: config/nios2/nios2.c:1418 +#: config/nios2/nios2.c:1419 #, gcc-internal-format msgid "CDX instructions are only supported with R2 architecture" msgstr "" -#: config/nios2/nios2.c:1423 +#: config/nios2/nios2.c:1424 #, gcc-internal-format msgid "R2 architecture is little-endian only" msgstr "" -#: config/nios2/nios2.c:3593 +#: config/nios2/nios2.c:3594 #, gcc-internal-format msgid "" "Cannot call %<__builtin_custom_%s%> without specifying switch %<-mcustom-%s%>" msgstr "" -#: config/nios2/nios2.c:3701 -#, gcc-internal-format, gfc-internal-format +#: config/nios2/nios2.c:3702 +#, gcc-internal-format msgid "" "custom instruction opcode must be compile time constant in the range 0-255 " -"for __builtin_custom_%s" +"for %<__builtin_custom_%s%>" msgstr "" -#: config/nios2/nios2.c:3906 +#: config/nios2/nios2.c:3907 #, gcc-internal-format, gfc-internal-format msgid "Control register number must be in range 0-31 for %s" msgstr "" -#: config/nios2/nios2.c:3934 +#: config/nios2/nios2.c:3935 #, gcc-internal-format, gfc-internal-format msgid "Register number must be in range 0-31 for %s" msgstr "" -#: config/nios2/nios2.c:3941 +#: config/nios2/nios2.c:3942 #, gcc-internal-format, gfc-internal-format msgid "The immediate value must fit into a %d-bit integer for %s" msgstr "" -#: config/nios2/nios2.c:3991 +#: config/nios2/nios2.c:3992 #, gcc-internal-format msgid "The ENI instruction operand must be either 0 or 1" msgstr "" -#: config/nios2/nios2.c:4019 +#: config/nios2/nios2.c:4020 #, gcc-internal-format, gfc-internal-format msgid "Builtin function %s requires Nios II R%d" msgstr "" -#: config/nios2/nios2.c:4099 +#: config/nios2/nios2.c:4100 #, gcc-internal-format msgid "switch %<-mcustom-%s%> conflicts with switch %<-mcustom-%s%>" msgstr "" -#: config/nios2/nios2.c:4105 config/nios2/nios2.c:4115 +#: config/nios2/nios2.c:4106 config/nios2/nios2.c:4116 #, gcc-internal-format msgid "call to %<__builtin_custom_%s%> conflicts with switch %<-mcustom-%s%>" msgstr "" -#: config/nios2/nios2.c:4221 +#: config/nios2/nios2.c:4222 #, gcc-internal-format msgid "custom-fpu-cfg option does not support %" msgstr "" -#: config/nios2/nios2.c:4226 +#: config/nios2/nios2.c:4227 #, gcc-internal-format msgid "custom-fpu-cfg option requires configuration argument" msgstr "" -#: config/nios2/nios2.c:4255 +#: config/nios2/nios2.c:4256 #, gcc-internal-format msgid "% does not accept arguments" msgstr "" -#: config/nios2/nios2.c:4270 +#: config/nios2/nios2.c:4271 #, gcc-internal-format msgid "% requires argument" msgstr "" -#: config/nios2/nios2.c:4280 +#: config/nios2/nios2.c:4281 #, gcc-internal-format msgid "% argument should be a non-negative integer" msgstr "" -#: config/nios2/nios2.c:4292 +#: config/nios2/nios2.c:4293 #, gcc-internal-format msgid "% is not recognized as FPU instruction" msgstr "" -#: config/nios2/nios2.c:4299 +#: config/nios2/nios2.c:4300 #, gcc-internal-format msgid "%<%s%> is unknown" msgstr "" @@ -33566,17 +33727,17 @@ msgstr "" #: config/nvptx/mkoffload.c:491 #, gcc-internal-format -msgid "either -fopenacc or -fopenmp must be set" +msgid "either %<-fopenacc%> or %<-fopenmp%> must be set" msgstr "" -#: config/nvptx/mkoffload.c:555 +#: config/nvptx/mkoffload.c:556 #, gcc-internal-format msgid "cannot open intermediate ptx file" msgstr "" #: config/nvptx/nvptx.c:197 -#, gcc-internal-format, gfc-internal-format -msgid "option %s is not supported together with -fopenacc" +#, gcc-internal-format +msgid "option %s is not supported together with %<-fopenacc%>" msgstr "" #: config/nvptx/nvptx.c:223 @@ -33610,19 +33771,19 @@ msgstr "" msgid "%qE attribute not allowed with auto storage class" msgstr "" -#: config/nvptx/nvptx.c:5676 +#: config/nvptx/nvptx.c:5641 #, gcc-internal-format, gfc-internal-format msgid "" "using vector_length (%d) due to call to vector-partitionable routine, " "ignoring %d" msgstr "" -#: config/nvptx/nvptx.c:5684 +#: config/nvptx/nvptx.c:5649 #, gcc-internal-format, gfc-internal-format msgid "using vector_length (%d), ignoring runtime setting" msgstr "" -#: config/nvptx/nvptx.c:5698 +#: config/nvptx/nvptx.c:5663 #, gcc-internal-format, gfc-internal-format msgid "using vector_length (%d), ignoring %d" msgstr "" @@ -33644,17 +33805,12 @@ msgstr "" #: config/pa/pa.c:542 #, gcc-internal-format -msgid "-g is only supported when using GAS on this processor," +msgid "%<-g%> is only supported when using GAS on this processor," msgstr "" #: config/pa/pa.c:543 #, gcc-internal-format -msgid "-g option disabled" -msgstr "" - -#: config/pa/pa.c:557 -#, gcc-internal-format -msgid "-freorder-blocks-and-partition does not work on this architecture" +msgid "%<-g%> option disabled" msgstr "" #: config/pa/pa.c:8794 @@ -33664,43 +33820,50 @@ msgid "" "Using %u" msgstr "" -#: config/riscv/riscv.c:331 +#: config/riscv/riscv.c:332 #, gcc-internal-format -msgid "unknown cpu %qs for -mtune" +msgid "unknown cpu %qs for %<-mtune%>" msgstr "" -#: config/riscv/riscv.c:2779 +#: config/riscv/riscv.c:2813 #, gcc-internal-format msgid "" "argument to %qE attribute is not \"user\", \"supervisor\", or \"machine\"" msgstr "" -#: config/riscv/riscv.c:4301 +#: config/riscv/riscv.c:4352 #, gcc-internal-format -msgid "-mdiv requires -march to subsume the % extension" +msgid "%<-mdiv%> requires %<-march%> to subsume the % extension" msgstr "" -#: config/riscv/riscv.c:4341 +#: config/riscv/riscv.c:4392 #, gcc-internal-format -msgid "requested ABI requires -march to subsume the %qc extension" +msgid "requested ABI requires %<-march%> to subsume the %qc extension" msgstr "" -#: config/riscv/riscv.c:4345 +#: config/riscv/riscv.c:4396 #, gcc-internal-format msgid "rv32e requires ilp32e ABI" msgstr "" -#: config/riscv/riscv.c:4349 -#, gcc-internal-format, gfc-internal-format -msgid "ABI requires -march=rv%d" +#: config/riscv/riscv.c:4400 +#, gcc-internal-format +msgid "ABI requires %<-march=rv%d%>" msgstr "" -#: config/riscv/riscv.c:4359 -#, gcc-internal-format, gfc-internal-format -msgid "-mpreferred-stack-boundary=%d must be between %d and %d" +#: config/riscv/riscv.c:4410 +#, gcc-internal-format +msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d" +msgstr "" + +#: config/riscv/riscv.c:4423 +#, gcc-internal-format +msgid "" +"%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-" +"attribute%>]" msgstr "" -#: config/riscv/riscv.c:4653 +#: config/riscv/riscv.c:4715 #, gcc-internal-format msgid "%qs function cannot have different intterupt type." msgstr "" @@ -33708,7 +33871,7 @@ msgstr "" #. Address spaces are currently only supported by C. #: config/rl78/rl78.c:375 #, gcc-internal-format -msgid "-mes0 can only be used with C" +msgid "%<-mes0%> can only be used with C" msgstr "" #: config/rl78/rl78.c:378 @@ -33718,48 +33881,48 @@ msgstr "" #: config/rl78/rl78.c:393 #, gcc-internal-format -msgid "-mmul=g13 cannot be used with -mcpu=g10" +msgid "%<-mmul=g13%> cannot be used with %<-mcpu=g10%>" msgstr "" -#: config/rl78/rl78.c:394 +#: config/rl78/rl78.c:395 #, gcc-internal-format -msgid "-mmul=g14 cannot be used with -mcpu=g10" +msgid "%<-mmul=g14%> cannot be used with %<-mcpu=g10%>" msgstr "" #. The S2 core does not have mul/div instructions. -#: config/rl78/rl78.c:405 +#: config/rl78/rl78.c:407 #, gcc-internal-format -msgid "-mmul=g14 cannot be used with -mcpu=g13" +msgid "%<-mmul=g14%> cannot be used with %<-mcpu=g13%>" msgstr "" #. The G14 core does not have the hardware multiply peripheral used by the #. G13 core, hence you cannot use G13 multipliy routines on G14 hardware. -#: config/rl78/rl78.c:417 +#: config/rl78/rl78.c:420 #, gcc-internal-format -msgid "-mmul=g13 cannot be used with -mcpu=g14" +msgid "%<-mmul=g13%> cannot be used with %<-mcpu=g14%>" msgstr "" -#: config/rl78/rl78.c:839 +#: config/rl78/rl78.c:843 #, gcc-internal-format msgid "naked attribute only applies to functions" msgstr "" -#: config/rl78/rl78.c:863 +#: config/rl78/rl78.c:867 #, gcc-internal-format -msgid "%qE attribute doesn't apply to functions" +msgid "%qE attribute doesn%'t apply to functions" msgstr "" #. This is unpredictable, as we're truncating off usable address #. bits. -#: config/rl78/rl78.c:1229 +#: config/rl78/rl78.c:1233 #, gcc-internal-format msgid "converting far pointer to near pointer" msgstr "" #: config/rs6000/driver-rs6000.c:268 -#, gcc-internal-format, gfc-internal-format +#, gcc-internal-format msgid "" -"Unsupported cpu name returned from kernel for -mcpu=native: %s\n" +"Unsupported cpu name returned from kernel for %<-mcpu=native%>: %s\n" "Please use an explicit cpu name. Valid cpu names are: %s" msgstr "" @@ -33838,13 +34001,13 @@ msgstr "" #: config/rs6000/rs6000-c.c:6157 config/rs6000/rs6000-c.c:6208 #: config/rs6000/rs6000-c.c:6478 config/rs6000/rs6000-c.c:6544 -#: config/rs6000/rs6000-c.c:6889 config/rs6000/rs6000-c.c:6936 +#: config/rs6000/rs6000-c.c:6891 config/rs6000/rs6000-c.c:6938 #, gcc-internal-format msgid "builtin %qs only accepts 2 arguments" msgstr "" #: config/rs6000/rs6000-c.c:6281 config/rs6000/rs6000-c.c:6364 -#: config/rs6000/rs6000-c.c:6720 +#: config/rs6000/rs6000-c.c:6722 #, gcc-internal-format msgid "builtin %qs only accepts 3 arguments" msgstr "" @@ -33854,22 +34017,22 @@ msgstr "" msgid "builtin %qs only accepts 1 argument" msgstr "" -#: config/rs6000/rs6000-c.c:6841 +#: config/rs6000/rs6000-c.c:6843 #, gcc-internal-format msgid "passing arg %d of %qE discards qualifiers from pointer target type" msgstr "" -#: config/rs6000/rs6000-c.c:7027 +#: config/rs6000/rs6000-c.c:7029 #, gcc-internal-format msgid "builtin %qs requires builtin %qs" msgstr "" -#: config/rs6000/rs6000-c.c:7031 +#: config/rs6000/rs6000-c.c:7033 #, gcc-internal-format msgid "builtin function %qs not supported in this compiler configuration" msgstr "" -#: config/rs6000/rs6000-c.c:7041 +#: config/rs6000/rs6000-c.c:7043 #, gcc-internal-format msgid "invalid parameter combination for AltiVec intrinsic %qs" msgstr "" @@ -33892,17 +34055,17 @@ msgid "" "installed C and C++ libraries" msgstr "" -#: config/rs6000/rs6000.c:3954 +#: config/rs6000/rs6000.c:3957 #, gcc-internal-format msgid "AltiVec not supported in this target" msgstr "" -#: config/rs6000/rs6000.c:3971 +#: config/rs6000/rs6000.c:3974 #, gcc-internal-format msgid "%qs is not supported on little endian systems" msgstr "" -#: config/rs6000/rs6000.c:4050 +#: config/rs6000/rs6000.c:4053 #, gcc-internal-format msgid "" "power9 target option is incompatible with %<%s=%> for less than " @@ -33911,484 +34074,491 @@ msgstr "" #. Enforce that none of the ISA_3_0_MASKS_SERVER flags #. were explicitly cleared. -#: config/rs6000/rs6000.c:4058 +#: config/rs6000/rs6000.c:4061 #, gcc-internal-format msgid "%qs incompatible with explicitly disabled options" msgstr "" -#: config/rs6000/rs6000.c:4083 config/rs6000/rs6000.c:4090 -#: config/rs6000/rs6000.c:4097 config/rs6000/rs6000.c:4105 -#: config/rs6000/rs6000.c:4124 config/rs6000/rs6000.c:4186 -#: config/rs6000/rs6000.c:4213 config/rs6000/rs6000.c:4240 -#: config/rs6000/rs6000.c:4255 config/rs6000/rs6000.c:4263 -#: config/rs6000/rs6000.c:4292 config/rs6000/rs6000.c:4294 -#: config/rs6000/rs6000.c:4378 +#: config/rs6000/rs6000.c:4086 config/rs6000/rs6000.c:4093 +#: config/rs6000/rs6000.c:4100 config/rs6000/rs6000.c:4108 +#: config/rs6000/rs6000.c:4127 config/rs6000/rs6000.c:4189 +#: config/rs6000/rs6000.c:4216 config/rs6000/rs6000.c:4243 +#: config/rs6000/rs6000.c:4258 config/rs6000/rs6000.c:4266 +#: config/rs6000/rs6000.c:4295 config/rs6000/rs6000.c:4297 +#: config/rs6000/rs6000.c:4381 #, gcc-internal-format msgid "%qs requires %qs" msgstr "" -#: config/rs6000/rs6000.c:4283 +#: config/rs6000/rs6000.c:4286 #, gcc-internal-format msgid "target attribute or pragma changes long double size" msgstr "" -#: config/rs6000/rs6000.c:4309 +#: config/rs6000/rs6000.c:4312 #, gcc-internal-format msgid "%qs requires full ISA 2.06 support" msgstr "" -#: config/rs6000/rs6000.c:4318 +#: config/rs6000/rs6000.c:4321 #, gcc-internal-format msgid "Using IEEE extended precision long double" msgstr "" -#: config/rs6000/rs6000.c:4320 +#: config/rs6000/rs6000.c:4323 #, gcc-internal-format msgid "Using IBM extended precision long double" msgstr "" -#: config/rs6000/rs6000.c:4338 +#: config/rs6000/rs6000.c:4341 #, gcc-internal-format msgid "%qs requires VSX support" msgstr "" -#: config/rs6000/rs6000.c:4347 +#: config/rs6000/rs6000.c:4350 #, gcc-internal-format -msgid "The -mfloat128 option may not be fully supported" +msgid "The %<-mfloat128%> option may not be fully supported" msgstr "" -#: config/rs6000/rs6000.c:4370 +#: config/rs6000/rs6000.c:4373 #, gcc-internal-format msgid "%qs requires full ISA 3.0 support" msgstr "" -#: config/rs6000/rs6000.c:4437 +#: config/rs6000/rs6000.c:4440 #, gcc-internal-format msgid "unknown vectorization library ABI type (%qs) for %qs switch" msgstr "" -#: config/rs6000/rs6000.c:4460 config/rs6000/rs6000.c:4475 +#: config/rs6000/rs6000.c:4463 config/rs6000/rs6000.c:4478 #, gcc-internal-format msgid "target attribute or pragma changes AltiVec ABI" msgstr "" -#: config/rs6000/rs6000.c:4488 +#: config/rs6000/rs6000.c:4491 #, gcc-internal-format msgid "target attribute or pragma changes darwin64 ABI" msgstr "" -#: config/rs6000/rs6000.c:4614 +#: config/rs6000/rs6000.c:4617 #, gcc-internal-format msgid "%qs is not a valid number in %qs" msgstr "" -#: config/rs6000/rs6000.c:4631 +#: config/rs6000/rs6000.c:4634 #, gcc-internal-format msgid "%qs is not a valid base register in %qs" msgstr "" -#: config/rs6000/rs6000.c:4639 +#: config/rs6000/rs6000.c:4642 #, gcc-internal-format msgid "%qs needs a valid base register" msgstr "" -#: config/rs6000/rs6000.c:4932 +#: config/rs6000/rs6000.c:4935 #, gcc-internal-format msgid "unknown option for %<%s=%s%>" msgstr "" -#: config/rs6000/rs6000.c:4969 +#: config/rs6000/rs6000.c:4972 #, gcc-internal-format msgid "%qs is deprecated and not recommended in any circumstances" msgstr "" -#: config/rs6000/rs6000.c:7376 +#: config/rs6000/rs6000.c:7398 #, gcc-internal-format, gfc-internal-format msgid "" "the layout of aggregates containing vectors with %d-byte alignment has " "changed in GCC 5" msgstr "" -#: config/rs6000/rs6000.c:10664 +#: config/rs6000/rs6000.c:10686 #, gcc-internal-format msgid "" "GCC vector returned by reference: non-standard ABI extension with no " "compatibility guarantee" msgstr "" -#: config/rs6000/rs6000.c:10854 +#: config/rs6000/rs6000.c:10876 #, gcc-internal-format msgid "" "cannot return value in vector register because altivec instructions are " "disabled, use %qs to enable them" msgstr "" -#: config/rs6000/rs6000.c:11047 +#: config/rs6000/rs6000.c:11069 #, gcc-internal-format, gfc-internal-format msgid "" "the ABI of passing aggregates with %d-byte alignment has changed in GCC 5" msgstr "" -#: config/rs6000/rs6000.c:11317 +#: config/rs6000/rs6000.c:11339 #, gcc-internal-format msgid "" "cannot pass argument in vector register because altivec instructions are " "disabled, use %qs to enable them" msgstr "" -#: config/rs6000/rs6000.c:12061 +#: config/rs6000/rs6000.c:12083 #, gcc-internal-format msgid "the ABI of passing homogeneous float aggregates has changed in GCC 5" msgstr "" -#: config/rs6000/rs6000.c:12238 +#: config/rs6000/rs6000.c:12260 #, gcc-internal-format msgid "" "GCC vector passed by reference: non-standard ABI extension with no " "compatibility guarantee" msgstr "" -#: config/rs6000/rs6000.c:13028 +#: config/rs6000/rs6000.c:13050 #, gcc-internal-format msgid "internal error: builtin function %qs already processed" msgstr "" -#: config/rs6000/rs6000.c:13346 +#: config/rs6000/rs6000.c:13368 #, gcc-internal-format -msgid "__builtin_mffsl() not supported with -msoft-float" +msgid "%<__builtin_mffsl%> not supported with %<-msoft-float%>" msgstr "" -#: config/rs6000/rs6000.c:13387 +#: config/rs6000/rs6000.c:13409 #, gcc-internal-format msgid "argument 1 must be an 8-bit field value" msgstr "" -#: config/rs6000/rs6000.c:13418 +#: config/rs6000/rs6000.c:13440 #, gcc-internal-format -msgid "__builtin_mtfsb0 and __builtin_mtfsb1 not supported with -msoft-float" +msgid "" +"%<__builtin_mtfsb0%> and %<__builtin_mtfsb1%> not supported with %<-msoft-" +"float%>" msgstr "" -#: config/rs6000/rs6000.c:13429 +#: config/rs6000/rs6000.c:13452 #, gcc-internal-format msgid "Argument must be a constant between 0 and 31." msgstr "" -#: config/rs6000/rs6000.c:13455 +#: config/rs6000/rs6000.c:13478 #, gcc-internal-format -msgid "__builtin_set_fpscr_rn not supported with -msoft-float" +msgid "%<__builtin_set_fpscr_rn%> not supported with %<-msoft-float%>" msgstr "" -#: config/rs6000/rs6000.c:13470 +#: config/rs6000/rs6000.c:13493 #, gcc-internal-format msgid "Argument must be a value between 0 and 3." msgstr "" -#: config/rs6000/rs6000.c:13495 +#: config/rs6000/rs6000.c:13518 #, gcc-internal-format -msgid "__builtin_set_fpscr_drn is not supported in 32-bit mode." +msgid "%<__builtin_set_fpscr_drn%> is not supported in 32-bit mode." msgstr "" -#: config/rs6000/rs6000.c:13499 +#: config/rs6000/rs6000.c:13523 #, gcc-internal-format -msgid "__builtin_set_fpscr_drn not supported with -msoft-float" +msgid "%<__builtin_set_fpscr_drn%> not supported with %<-msoft-float%>" msgstr "" -#: config/rs6000/rs6000.c:13518 +#: config/rs6000/rs6000.c:13542 #, gcc-internal-format msgid "Argument must be a value between 0 and 7." msgstr "" -#: config/rs6000/rs6000.c:13559 +#: config/rs6000/rs6000.c:13583 #, gcc-internal-format msgid "argument 1 must be a 5-bit signed literal" msgstr "" -#: config/rs6000/rs6000.c:13643 +#: config/rs6000/rs6000.c:13667 #, gcc-internal-format msgid "argument 2 must be a 1-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13654 +#: config/rs6000/rs6000.c:13678 #, gcc-internal-format msgid "argument 2 must be a 2-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13665 +#: config/rs6000/rs6000.c:13689 #, gcc-internal-format msgid "argument 2 must be a 3-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13676 +#: config/rs6000/rs6000.c:13700 #, gcc-internal-format msgid "argument 2 must be a 4-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13690 +#: config/rs6000/rs6000.c:13714 #, gcc-internal-format msgid "argument 2 must be a 5-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13708 +#: config/rs6000/rs6000.c:13732 #, gcc-internal-format msgid "argument 1 must be a 6-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13724 +#: config/rs6000/rs6000.c:13748 #, gcc-internal-format msgid "argument 2 must be a 7-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:13763 +#: config/rs6000/rs6000.c:13787 #, gcc-internal-format msgid "argument 1 of %qs must be a constant" msgstr "" -#: config/rs6000/rs6000.c:13821 +#: config/rs6000/rs6000.c:13845 #, gcc-internal-format msgid "argument 1 of %qs is out of range" msgstr "" -#: config/rs6000/rs6000.c:14110 +#: config/rs6000/rs6000.c:14134 #, gcc-internal-format msgid "builtin %qs is only valid in 64-bit mode" msgstr "" -#: config/rs6000/rs6000.c:14159 +#: config/rs6000/rs6000.c:14183 #, gcc-internal-format, gfc-internal-format msgid "argument %d must be an unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14161 +#: config/rs6000/rs6000.c:14185 #, gcc-internal-format, gfc-internal-format msgid "argument %d is an unsigned literal that is out of range" msgstr "" -#: config/rs6000/rs6000.c:14307 +#: config/rs6000/rs6000.c:14331 #, gcc-internal-format msgid "builtin %qs only accepts a string argument" msgstr "" #. Invalid CPU argument. -#: config/rs6000/rs6000.c:14326 +#: config/rs6000/rs6000.c:14350 #, gcc-internal-format msgid "cpu %qs is an invalid argument to builtin %qs" msgstr "" #. Invalid HWCAP argument. -#: config/rs6000/rs6000.c:14354 +#: config/rs6000/rs6000.c:14378 #, gcc-internal-format msgid "%s %qs is an invalid argument to builtin %qs" msgstr "" -#: config/rs6000/rs6000.c:14380 +#: config/rs6000/rs6000.c:14404 #, gcc-internal-format msgid "" "builtin %qs needs GLIBC (2.23 and newer) that exports hardware capability " "bits" msgstr "" -#: config/rs6000/rs6000.c:14433 +#: config/rs6000/rs6000.c:14457 #, gcc-internal-format msgid "argument 3 must be a 4-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14458 +#: config/rs6000/rs6000.c:14482 #, gcc-internal-format msgid "argument 3 must be a 2-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14478 +#: config/rs6000/rs6000.c:14502 #, gcc-internal-format msgid "argument 3 must be a 1-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14490 +#: config/rs6000/rs6000.c:14514 #, gcc-internal-format msgid "argument 1 must be 0 or 2" msgstr "" -#: config/rs6000/rs6000.c:14502 +#: config/rs6000/rs6000.c:14526 #, gcc-internal-format msgid "argument 1 must be a 1-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14516 +#: config/rs6000/rs6000.c:14540 #, gcc-internal-format msgid "argument 2 must be a 6-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14528 +#: config/rs6000/rs6000.c:14552 #, gcc-internal-format msgid "argument 2 must be 0 or 1" msgstr "" -#: config/rs6000/rs6000.c:14536 +#: config/rs6000/rs6000.c:14560 #, gcc-internal-format msgid "argument 3 must be in the range 0..15" msgstr "" -#: config/rs6000/rs6000.c:14602 config/rs6000/rs6000.c:14934 +#: config/rs6000/rs6000.c:14626 config/rs6000/rs6000.c:14966 #, gcc-internal-format msgid "argument to %qs must be a 2-bit unsigned literal" msgstr "" -#: config/rs6000/rs6000.c:14759 +#: config/rs6000/rs6000.c:14791 #, gcc-internal-format msgid "unresolved overload for Altivec builtin %qF" msgstr "" -#: config/rs6000/rs6000.c:14981 +#: config/rs6000/rs6000.c:15013 #, gcc-internal-format msgid "second argument to %qs must be 0..12" msgstr "" -#: config/rs6000/rs6000.c:14996 +#: config/rs6000/rs6000.c:15028 #, gcc-internal-format msgid "third argument to %qs must be 0..12" msgstr "" -#: config/rs6000/rs6000.c:15190 +#: config/rs6000/rs6000.c:15222 #, gcc-internal-format msgid "builtin function %qs is only valid for the cell processor" msgstr "" -#: config/rs6000/rs6000.c:15192 config/rs6000/rs6000.c:15194 -#: config/rs6000/rs6000.c:15196 config/rs6000/rs6000.c:15202 -#: config/rs6000/rs6000.c:15204 config/rs6000/rs6000.c:15211 -#: config/rs6000/rs6000.c:15218 config/rs6000/rs6000.c:15223 -#: config/rs6000/rs6000.c:15226 config/rs6000/rs6000.c:15230 -#: config/rs6000/rs6000.c:15236 +#: config/rs6000/rs6000.c:15224 config/rs6000/rs6000.c:15226 +#: config/rs6000/rs6000.c:15228 config/rs6000/rs6000.c:15234 +#: config/rs6000/rs6000.c:15236 config/rs6000/rs6000.c:15243 +#: config/rs6000/rs6000.c:15250 config/rs6000/rs6000.c:15255 +#: config/rs6000/rs6000.c:15258 config/rs6000/rs6000.c:15262 +#: config/rs6000/rs6000.c:15268 #, gcc-internal-format msgid "builtin function %qs requires the %qs option" msgstr "" -#: config/rs6000/rs6000.c:15199 config/rs6000/rs6000.c:15208 -#: config/rs6000/rs6000.c:15215 +#: config/rs6000/rs6000.c:15231 config/rs6000/rs6000.c:15240 +#: config/rs6000/rs6000.c:15247 #, gcc-internal-format msgid "builtin function %qs requires the %qs and %qs options" msgstr "" -#: config/rs6000/rs6000.c:15233 +#: config/rs6000/rs6000.c:15265 #, gcc-internal-format msgid "builtin function %qs requires ISA 3.0 IEEE 128-bit floating point" msgstr "" -#: config/rs6000/rs6000.c:15239 +#: config/rs6000/rs6000.c:15272 #, gcc-internal-format msgid "" "builtin function %qs requires the %qs (or newer), and %qs or %qs options" msgstr "" -#: config/rs6000/rs6000.c:15243 +#: config/rs6000/rs6000.c:15276 #, gcc-internal-format msgid "builtin function %qs is not supported with the current options" msgstr "" -#: config/rs6000/rs6000.c:17794 +#: config/rs6000/rs6000.c:17867 #, gcc-internal-format msgid "internal error: builtin function %qs had an unexpected return type %qs" msgstr "" -#: config/rs6000/rs6000.c:17811 +#: config/rs6000/rs6000.c:17884 #, gcc-internal-format msgid "" "internal error: builtin function %qs, argument %d had unexpected argument " "type %qs" msgstr "" -#: config/rs6000/rs6000.c:25560 +#: config/rs6000/rs6000.c:25679 #, gcc-internal-format msgid "stack frame too large" msgstr "" -#: config/rs6000/rs6000.c:29234 +#: config/rs6000/rs6000.c:29353 #, gcc-internal-format msgid "%qs uses register r29" msgstr "" -#: config/rs6000/rs6000.c:29242 +#: config/rs6000/rs6000.c:29361 #, gcc-internal-format -msgid "Stack frame larger than 2G is not supported for -fsplit-stack" +msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>" msgstr "" -#: config/rs6000/rs6000.c:30227 +#: config/rs6000/rs6000.c:30347 #, gcc-internal-format msgid "no profiling of 64-bit code for this ABI" msgstr "" -#: config/rs6000/rs6000.c:32528 +#: config/rs6000/rs6000.c:32648 #, gcc-internal-format msgid "" "you cannot take the address of a nested function if you use the %qs option" msgstr "" -#: config/rs6000/rs6000.c:32610 +#: config/rs6000/rs6000.c:32730 #, gcc-internal-format msgid "use of % in AltiVec types is invalid" msgstr "" -#: config/rs6000/rs6000.c:32612 +#: config/rs6000/rs6000.c:32732 #, gcc-internal-format msgid "use of boolean types in AltiVec types is invalid" msgstr "" -#: config/rs6000/rs6000.c:32614 +#: config/rs6000/rs6000.c:32734 #, gcc-internal-format msgid "use of % in AltiVec types is invalid" msgstr "" -#: config/rs6000/rs6000.c:32616 +#: config/rs6000/rs6000.c:32736 #, gcc-internal-format msgid "use of decimal floating point types in AltiVec types is invalid" msgstr "" -#: config/rs6000/rs6000.c:32622 +#: config/rs6000/rs6000.c:32742 #, gcc-internal-format msgid "use of % in AltiVec types is invalid for 64-bit code without %qs" msgstr "" -#: config/rs6000/rs6000.c:32625 +#: config/rs6000/rs6000.c:32745 #, gcc-internal-format msgid "use of % in AltiVec types is deprecated; use %" msgstr "" -#: config/rs6000/rs6000.c:32630 +#: config/rs6000/rs6000.c:32750 #, gcc-internal-format msgid "use of % in AltiVec types is invalid without %qs" msgstr "" -#: config/rs6000/rs6000.c:32633 +#: config/rs6000/rs6000.c:32753 #, gcc-internal-format msgid "use of % in AltiVec types is invalid without %qs" msgstr "" -#: config/rs6000/rs6000.c:36605 +#: config/rs6000/rs6000.c:36723 #, gcc-internal-format msgid "invalid cpu %qs for %s%qs%s" msgstr "" -#: config/rs6000/rs6000.c:36608 +#: config/rs6000/rs6000.c:36726 #, gcc-internal-format msgid "%s%qs%s is not allowed" msgstr "" -#: config/rs6000/rs6000.c:36610 +#: config/rs6000/rs6000.c:36728 #, gcc-internal-format msgid "%s%qs%s is invalid" msgstr "" -#: config/rs6000/rs6000.c:37145 +#: config/rs6000/rs6000.c:37263 #, gcc-internal-format msgid "%<-mno-%s%> turns off %<-m%s%>" msgstr "" -#: config/rs6000/rs6000.c:37304 +#: config/rs6000/rs6000.c:37422 #, gcc-internal-format msgid "" "target_clones attribute needs GLIBC (2.23 and newer) that exports hardware " "capability bits" msgstr "" +#: config/rs6000/rs6000.c:37698 +#, gcc-internal-format +msgid "Virtual function multiversioning not supported" +msgstr "" + #. Definitions of target machine for GNU compiler, #. for IBM RS/6000 POWER running AIX V6.1. #. Copyright (C) 2002-2019 Free Software Foundation, Inc. @@ -34457,7 +34627,7 @@ msgstr "" #. get control in TARGET_OPTION_OVERRIDE. #: config/rs6000/aix61.h:30 config/rs6000/aix71.h:30 config/rs6000/aix72.h:30 #, gcc-internal-format -msgid "-maix64 requires PowerPC64 architecture remain enabled" +msgid "%<-maix64%> requires PowerPC64 architecture remain enabled" msgstr "" #: config/rs6000/aix61.h:36 config/rs6000/aix71.h:36 config/rs6000/aix72.h:36 @@ -34468,70 +34638,80 @@ msgstr "" #: config/rs6000/aix61.h:40 config/rs6000/aix71.h:40 config/rs6000/aix72.h:40 #, gcc-internal-format msgid "" -"-maix64 required: 64-bit computation with 32-bit addressing not yet supported" +"%<-maix64%> required: 64-bit computation with 32-bit addressing not yet " +"supported" msgstr "" #: config/rs6000/aix61.h:47 config/rs6000/aix71.h:47 config/rs6000/aix72.h:47 -#: config/rs6000/freebsd64.h:120 config/rs6000/linux64.h:142 -#: config/rs6000/rtems.h:121 +#: config/rs6000/freebsd64.h:120 config/rs6000/rtems.h:121 #, gcc-internal-format -msgid "-mcmodel incompatible with other toc options" +msgid "%<-mcmodel%> incompatible with other toc options" msgstr "" #: config/rs6000/freebsd64.h:98 config/rs6000/linux64.h:115 #, gcc-internal-format -msgid "-mcall-aixdesc incompatible with -mabi=elfv2" +msgid "%<-mcall-aixdesc%> incompatible with %<-mabi=elfv2%>" msgstr "" #: config/rs6000/freebsd64.h:113 config/rs6000/linux64.h:135 #: config/rs6000/rtems.h:114 #, gcc-internal-format -msgid "-m64 requires a PowerPC64 cpu" +msgid "%<-m64%> requires a PowerPC64 cpu" +msgstr "" + +#: config/rs6000/linux64.h:142 +#, gcc-internal-format +msgid "%<-mcmodel incompatible with other toc options%>" +msgstr "" + +#: config/rs6000/linux64.h:161 +#, gcc-internal-format +msgid "%qs unsupported for this ABI" msgstr "" #. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to #. get control in TARGET_OPTION_OVERRIDE. -#: config/rs6000/sysv4.h:112 +#: config/rs6000/sysv4.h:117 #, gcc-internal-format msgid "bad value for %<%s-%s%>" msgstr "" -#: config/rs6000/sysv4.h:128 +#: config/rs6000/sysv4.h:133 #, gcc-internal-format msgid "bad value for %<%s=%s%>" msgstr "" -#: config/rs6000/sysv4.h:145 +#: config/rs6000/sysv4.h:150 #, gcc-internal-format msgid "%qs and %<%s=%s%> are incompatible" msgstr "" -#: config/rs6000/sysv4.h:154 +#: config/rs6000/sysv4.h:159 #, gcc-internal-format msgid "%<-f%s%> and %<%s=%s%> are incompatible" msgstr "" -#: config/rs6000/sysv4.h:163 +#: config/rs6000/sysv4.h:168 #, gcc-internal-format msgid "%<%s=%s%> and %<%s-%s%> are incompatible" msgstr "" -#: config/rs6000/sysv4.h:172 +#: config/rs6000/sysv4.h:177 config/rs6000/sysv4.h:211 #, gcc-internal-format msgid "%qs and %qs are incompatible" msgstr "" -#: config/rs6000/sysv4.h:179 config/rs6000/sysv4.h:186 +#: config/rs6000/sysv4.h:184 config/rs6000/sysv4.h:191 #, gcc-internal-format msgid "%qs and %<%s-%s%> are incompatible" msgstr "" -#: config/rs6000/sysv4.h:192 +#: config/rs6000/sysv4.h:197 config/rs6000/sysv4.h:203 #, gcc-internal-format msgid "%qs not supported by your assembler" msgstr "" -#: config/rs6000/sysv4.h:220 +#: config/rs6000/sysv4.h:245 #, gcc-internal-format msgid "%<-m%s%> not supported in this configuration" msgstr "" @@ -34547,21 +34727,22 @@ msgid "multiple fast interrupt routines seen: %qE and %qE" msgstr "" #: config/rx/rx.c:2596 -#, gcc-internal-format, gfc-internal-format -msgid "__builtin_rx_%s takes 'C', 'Z', 'S', 'O', 'I', or 'U'" +#, gcc-internal-format +msgid "%<__builtin_rx_%s%> takes 'C', 'Z', 'S', 'O', 'I', or 'U'" msgstr "" #: config/rx/rx.c:2598 #, gcc-internal-format -msgid "use __builtin_rx_mvtc (0, ... ) to write arbitrary values to PSW" +msgid "use %<__builtin_rx_mvtc%> (0, ... ) to write arbitrary values to PSW" msgstr "" #: config/rx/rx.c:2645 #, gcc-internal-format -msgid "-mno-allow-string-insns forbids the generation of the RMPA instruction" +msgid "" +"%<-mno-allow-string-insns%> forbids the generation of the RMPA instruction" msgstr "" -#: config/rx/rx.c:2792 +#: config/rx/rx.c:2793 #, gcc-internal-format msgid "RX FPU instructions do not support NaNs and infinities" msgstr "" @@ -34571,136 +34752,136 @@ msgstr "" msgid "builtin vec_step can only be used on vector types." msgstr "" -#: config/s390/s390-c.c:680 config/s390/s390.c:881 +#: config/s390/s390-c.c:694 config/s390/s390.c:873 #, gcc-internal-format msgid "constant value required for builtin %qF argument %d" msgstr "" -#: config/s390/s390-c.c:695 +#: config/s390/s390-c.c:709 #, gcc-internal-format msgid "" "valid values for builtin %qF argument %d are 64, 128, 256, 512, 1024, 2048, " "and 4096" msgstr "" -#: config/s390/s390-c.c:866 +#: config/s390/s390-c.c:880 #, gcc-internal-format msgid "builtin %qF is for GCC internal use only." msgstr "" -#: config/s390/s390-c.c:874 +#: config/s390/s390-c.c:888 #, gcc-internal-format msgid "builtin %qF is deprecated." msgstr "" -#: config/s390/s390-c.c:878 +#: config/s390/s390-c.c:892 #, gcc-internal-format -msgid "%qF requires -mvx" +msgid "%qF requires %<-mvx%>" msgstr "" -#: config/s390/s390-c.c:884 +#: config/s390/s390-c.c:898 #, gcc-internal-format msgid "%qF requires z14 or higher" msgstr "" -#: config/s390/s390-c.c:898 +#: config/s390/s390-c.c:912 #, gcc-internal-format msgid "mismatch in number of arguments for builtin %qF. Expected: %d got %d" msgstr "" -#: config/s390/s390-c.c:947 +#: config/s390/s390-c.c:961 #, gcc-internal-format msgid "invalid parameter combination for intrinsic %qs" msgstr "" -#: config/s390/s390-c.c:953 +#: config/s390/s390-c.c:967 #, gcc-internal-format msgid "ambiguous overload for intrinsic %qs" msgstr "" -#: config/s390/s390-c.c:961 +#: config/s390/s390-c.c:975 #, gcc-internal-format msgid "%qs matching variant requires z14 or higher" msgstr "" -#: config/s390/s390-c.c:967 +#: config/s390/s390-c.c:981 #, gcc-internal-format msgid "%qs matching variant is deprecated." msgstr "" -#: config/s390/s390-c.c:1007 +#: config/s390/s390-c.c:1021 #, gcc-internal-format msgid "constant argument %d for builtin %qF is out of range for target type" msgstr "" -#: config/s390/s390.c:737 +#: config/s390/s390.c:732 #, gcc-internal-format -msgid "constant argument %d for builtin %qF is out of range (0.." +msgid "constant argument %d for builtin %qF is out of range (0..%wu)" msgstr "" -#: config/s390/s390.c:754 +#: config/s390/s390.c:748 #, gcc-internal-format -msgid "constant argument %d for builtin %qF is out of range (" +msgid "constant argument %d for builtin %qF is out of range (%wd..%wd)" msgstr "" -#: config/s390/s390.c:805 +#: config/s390/s390.c:797 #, gcc-internal-format msgid "" -"builtin %qF is not supported without -mhtm (default with -march=zEC12 and " -"higher)." +"builtin %qF is not supported without %<-mhtm%> (default with %<-" +"march=zEC12%> and higher)." msgstr "" -#: config/s390/s390.c:811 +#: config/s390/s390.c:803 #, gcc-internal-format -msgid "builtin %qF requires -mvx (default with -march=z13 and higher)." +msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)." msgstr "" -#: config/s390/s390.c:818 +#: config/s390/s390.c:810 #, gcc-internal-format msgid "Builtin %qF requires z14 or higher." msgstr "" -#: config/s390/s390.c:837 +#: config/s390/s390.c:829 #, gcc-internal-format msgid "unresolved overloaded builtin" msgstr "" -#: config/s390/s390.c:844 config/tilegx/tilegx.c:3547 +#: config/s390/s390.c:836 config/tilegx/tilegx.c:3547 #: config/tilepro/tilepro.c:3111 #, gcc-internal-format msgid "bad builtin icode" msgstr "" -#: config/s390/s390.c:972 +#: config/s390/s390.c:970 #, gcc-internal-format msgid "invalid argument %d for builtin %qF" msgstr "" -#: config/s390/s390.c:1073 +#: config/s390/s390.c:1071 #, gcc-internal-format msgid "" "requested %qE attribute is not a comma separated pair of non-negative " "integer constants or too large (max. %d)" msgstr "" -#: config/s390/s390.c:1163 +#: config/s390/s390.c:1161 #, gcc-internal-format msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)" msgstr "" -#: config/s390/s390.c:9655 +#: config/s390/s390.c:9674 #, gcc-internal-format msgid "total size of local variables exceeds architecture limit" msgstr "" -#: config/s390/s390.c:10997 +#: config/s390/s390.c:11001 #, gcc-internal-format msgid "" "frame size of function %qs is %wd bytes exceeding user provided stack limit " "of %d bytes. An unconditional trap is added." msgstr "" -#: config/s390/s390.c:11013 +#: config/s390/s390.c:11017 #, gcc-internal-format msgid "" "frame size of function %qs is %wd bytes which is more than half the stack " @@ -34708,120 +34889,122 @@ msgid "" "function." msgstr "" -#: config/s390/s390.c:11041 +#: config/s390/s390.c:11045 #, gcc-internal-format msgid "frame size of %qs is %wd bytes" msgstr "" -#: config/s390/s390.c:11045 +#: config/s390/s390.c:11049 #, gcc-internal-format msgid "%qs uses dynamic stack allocation" msgstr "" -#: config/s390/s390.c:12651 +#: config/s390/s390.c:12655 #, gcc-internal-format -msgid "nested functions cannot be profiled with -mfentry on s390" +msgid "nested functions cannot be profiled with %<-mfentry%> on s390" msgstr "" -#: config/s390/s390.c:14818 +#: config/s390/s390.c:14901 #, gcc-internal-format msgid "64-bit ABI not supported in ESA/390 mode" msgstr "" -#: config/s390/s390.c:14825 +#: config/s390/s390.c:14908 #, gcc-internal-format -msgid "thunk-inline is only supported with -mindirect-branch-jump" +msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>" msgstr "" -#: config/s390/s390.c:14860 +#: config/s390/s390.c:14943 #, gcc-internal-format, gfc-internal-format msgid "hardware vector support not available on %s" msgstr "" -#: config/s390/s390.c:14863 +#: config/s390/s390.c:14946 #, gcc-internal-format -msgid "hardware vector support not available with -msoft-float" +msgid "hardware vector support not available with %<-msoft-float%>" msgstr "" -#: config/s390/s390.c:14891 +#: config/s390/s390.c:14975 #, gcc-internal-format, gfc-internal-format msgid "hardware decimal floating point instructions not available on %s" msgstr "" -#: config/s390/s390.c:14895 +#: config/s390/s390.c:14979 #, gcc-internal-format msgid "" "hardware decimal floating point instructions not available in ESA/390 mode" msgstr "" -#: config/s390/s390.c:14907 +#: config/s390/s390.c:14991 #, gcc-internal-format -msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float" +msgid "%<-mhard-dfp%> can%'t be used in conjunction with %<-msoft-float%>" msgstr "" -#: config/s390/s390.c:14915 +#: config/s390/s390.c:15000 #, gcc-internal-format msgid "" -"-mbackchain -mpacked-stack -mhard-float are not supported in combination" +"%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in " +"combination" msgstr "" -#: config/s390/s390.c:14921 +#: config/s390/s390.c:15006 #, gcc-internal-format msgid "stack size must be greater than the stack guard value" msgstr "" -#: config/s390/s390.c:14923 +#: config/s390/s390.c:15008 #, gcc-internal-format msgid "stack size must not be greater than 64k" msgstr "" -#: config/s390/s390.c:14926 +#: config/s390/s390.c:15011 #, gcc-internal-format -msgid "-mstack-guard implies use of -mstack-size" +msgid "%<-mstack-guard%> implies use of %<-mstack-size%>" msgstr "" -#: config/s390/s390.c:15003 +#: config/s390/s390.c:15100 #, gcc-internal-format -msgid "-mfentry is supported only for 64-bit CPUs" +msgid "%<-mfentry%> is supported only for 64-bit CPUs" msgstr "" #. argument is not a plain number -#: config/s390/s390.c:15039 +#: config/s390/s390.c:15136 #, gcc-internal-format msgid "arguments to %qs should be non-negative integers" msgstr "" -#: config/s390/s390.c:15046 +#: config/s390/s390.c:15143 #, gcc-internal-format msgid "argument to %qs is too large (max. %d)" msgstr "" -#: config/s390/s390.c:15076 +#: config/s390/s390.c:15173 #, gcc-internal-format -msgid "-mno-pic-data-is-text-relative cannot be used without -fpic/-fPIC" +msgid "" +"%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>" msgstr "" #. Value is not allowed for the target attribute. -#: config/s390/s390.c:15242 +#: config/s390/s390.c:15340 #, gcc-internal-format msgid "value %qs is not supported by attribute %" msgstr "" #: config/sh/sh.c:936 #, gcc-internal-format -msgid "ignoring -fschedule-insns because of exception handling bug" +msgid "ignoring %<-fschedule-insns%> because of exception handling bug" msgstr "" #: config/sh/sh.c:953 #, gcc-internal-format msgid "" -"unwind tables currently require either a frame pointer or -maccumulate-" -"outgoing-args for correctness" +"unwind tables currently require either a frame pointer or %<-maccumulate-" +"outgoing-args%> for correctness" msgstr "" #: config/sh/sh.c:7416 #, gcc-internal-format -msgid "__builtin_saveregs not supported by this subtarget" +msgid "%<__builtin_saveregs%> not supported by this subtarget" msgstr "" #: config/sh/sh.c:8368 @@ -34858,32 +35041,27 @@ msgstr "" #. The kernel loader cannot handle the relaxation relocations, so it cannot load kernel modules (which are ET_REL) or RTP executables (which are linked with --emit-relocs). No relaxation relocations appear in shared libraries, so relaxation is OK for RTP PIC. #: config/sh/vxworks.h:43 #, gcc-internal-format -msgid "-mrelax is only supported for RTP PIC" +msgid "%<-mrelax%> is only supported for RTP PIC" msgstr "" -#: config/sparc/sparc.c:1787 +#: config/sparc/sparc.c:1770 #, gcc-internal-format, gfc-internal-format msgid "%s is not supported by this configuration" msgstr "" -#: config/sparc/sparc.c:1794 +#: config/sparc/sparc.c:1777 #, gcc-internal-format -msgid "-mlong-double-64 not allowed with -m64" -msgstr "" - -#: config/sparc/sparc.c:1814 -#, gcc-internal-format, gfc-internal-format -msgid "bad value (%s) for -mcmodel= switch" +msgid "%<-mlong-double-64%> not allowed with %<-m64%>" msgstr "" -#: config/sparc/sparc.c:1819 +#: config/sparc/sparc.c:1785 #, gcc-internal-format -msgid "-mcmodel= is not supported on 32-bit systems" +msgid "%<-fcall-saved-REG%> is not supported for out registers" msgstr "" -#: config/sparc/sparc.c:1826 +#: config/sparc/sparc.c:1909 #, gcc-internal-format -msgid "-fcall-saved-REG is not supported for out registers" +msgid "%<-mcmodel=%> is not supported in 32-bit mode" msgstr "" #: config/spu/spu-c.c:133 @@ -34902,13 +35080,13 @@ msgid "parameter list does not match a valid signature for %s()" msgstr "" #: config/spu/spu.c:262 -#, gcc-internal-format, gfc-internal-format -msgid "bad value (%s) for -march= switch" +#, gcc-internal-format +msgid "bad value (%s) for %<-march=%> switch" msgstr "" #: config/spu/spu.c:273 -#, gcc-internal-format, gfc-internal-format -msgid "bad value (%s) for -mtune= switch" +#, gcc-internal-format +msgid "bad value (%s) for %<-mtune=%> switch" msgstr "" #: config/spu/spu.c:5200 config/spu/spu.c:5203 @@ -35086,9 +35264,9 @@ msgstr "" msgid "too much stack space to prepare: %d" msgstr "" -#: config/visium/visium.c:745 +#: config/visium/visium.c:731 #, gcc-internal-format -msgid "an interrupt handler cannot be compiled with -muser-mode" +msgid "an interrupt handler cannot be compiled with %<-muser-mode%>" msgstr "" #: config/vms/vms-c.c:44 @@ -35172,8 +35350,8 @@ msgid "boolean registers required for the floating-point option" msgstr "" #: config/xtensa/xtensa.c:2259 -#, gcc-internal-format, gfc-internal-format -msgid "-f%s is not supported with CONST16 instructions" +#, gcc-internal-format +msgid "%<-f%s%> is not supported with CONST16 instructions" msgstr "" #: config/xtensa/xtensa.c:2266 @@ -35193,7 +35371,7 @@ msgstr "" #: ada/gcc-interface/misc.c:259 #, gcc-internal-format -msgid "-fexcess-precision=standard for Ada" +msgid "%<-fexcess-precision=standard%> for Ada" msgstr "" #: ada/gcc-interface/misc.c:278 @@ -35217,55 +35395,55 @@ msgstr "" msgid "subprogram %q+F not marked Inline" msgstr "" -#: ada/gcc-interface/utils.c:3953 +#: ada/gcc-interface/utils.c:3960 #, gcc-internal-format msgid "invalid element type for attribute %qs" msgstr "" -#: ada/gcc-interface/utils.c:3977 +#: ada/gcc-interface/utils.c:3984 #, gcc-internal-format msgid "number of components of vector not a power of two" msgstr "" -#: ada/gcc-interface/utils.c:6125 ada/gcc-interface/utils.c:6302 -#: ada/gcc-interface/utils.c:6409 +#: ada/gcc-interface/utils.c:6145 ada/gcc-interface/utils.c:6322 +#: ada/gcc-interface/utils.c:6429 #, gcc-internal-format msgid "%qs attribute ignored" msgstr "" -#: ada/gcc-interface/utils.c:6194 +#: ada/gcc-interface/utils.c:6214 #, gcc-internal-format, gfc-internal-format msgid "nonnull argument has invalid operand number (argument %lu)" msgstr "" -#: ada/gcc-interface/utils.c:6216 +#: ada/gcc-interface/utils.c:6236 #, gcc-internal-format, gfc-internal-format msgid "" "nonnull argument with out-of-range operand number (argument %lu, operand %lu)" msgstr "" -#: ada/gcc-interface/utils.c:6225 +#: ada/gcc-interface/utils.c:6245 #, gcc-internal-format, gfc-internal-format msgid "" "nonnull argument references non-pointer operand (argument %lu, operand %lu)" msgstr "" -#: ada/gcc-interface/utils.c:6246 +#: ada/gcc-interface/utils.c:6266 #, gcc-internal-format msgid "%qs attribute requires prototypes with named arguments" msgstr "" -#: ada/gcc-interface/utils.c:6255 +#: ada/gcc-interface/utils.c:6275 #, gcc-internal-format msgid "%qs attribute only applies to variadic functions" msgstr "" -#: ada/gcc-interface/utils.c:6369 +#: ada/gcc-interface/utils.c:6389 #, gcc-internal-format msgid "%qE attribute has no effect" msgstr "" -#: ada/gcc-interface/utils.c:6493 +#: ada/gcc-interface/utils.c:6513 #, gcc-internal-format msgid "attribute %qs applies to array types only" msgstr "" @@ -35275,8 +35453,8 @@ msgstr "" msgid "could not read the BRIG file" msgstr "" -#: c/c-convert.c:101 c/c-typeck.c:2176 c/c-typeck.c:12555 cp/typeck.c:2030 -#: cp/typeck.c:8123 cp/typeck.c:8893 +#: c/c-convert.c:101 c/c-typeck.c:2176 c/c-typeck.c:12553 cp/typeck.c:2030 +#: cp/typeck.c:8137 cp/typeck.c:8907 #, gcc-internal-format msgid "void value not ignored as it ought to be" msgstr "" @@ -35336,7 +35514,7 @@ msgstr "" msgid "type of array %q+D completed incompatibly with implicit initialization" msgstr "" -#: c/c-decl.c:1589 c/c-decl.c:6893 c/c-decl.c:7766 c/c-decl.c:8573 +#: c/c-decl.c:1589 c/c-decl.c:6898 c/c-decl.c:7771 c/c-decl.c:8579 #, gcc-internal-format msgid "originally defined here" msgstr "" @@ -35779,7 +35957,7 @@ msgstr "" #. C99 6.7.5.2p4 #. A function definition isn't function prototype scope C99 6.2.1p4. #. C99 6.7.5.2p4 -#: c/c-decl.c:4715 c/c-decl.c:7339 +#: c/c-decl.c:4715 c/c-decl.c:7344 #, gcc-internal-format msgid "%<[*]%> not allowed in other than function prototype scope" msgstr "" @@ -35809,7 +35987,7 @@ msgstr "" #. of VLAs themselves count as VLAs, it does not make #. sense to permit them to be initialized given that #. ordinary VLAs may not be initialized. -#: c/c-decl.c:4900 c/c-decl.c:4915 c/c-typeck.c:7975 +#: c/c-decl.c:4900 c/c-decl.c:4915 c/c-typeck.c:7973 #, gcc-internal-format msgid "variable-sized object may not be initialized" msgstr "" @@ -35834,242 +36012,242 @@ msgstr "" msgid "%qD should be initialized" msgstr "" -#: c/c-decl.c:5123 +#: c/c-decl.c:5128 #, gcc-internal-format msgid "initializer fails to determine size of %q+D" msgstr "" -#: c/c-decl.c:5128 +#: c/c-decl.c:5133 #, gcc-internal-format msgid "array size missing in %q+D" msgstr "" -#: c/c-decl.c:5132 +#: c/c-decl.c:5137 #, gcc-internal-format msgid "zero or negative size array %q+D" msgstr "" -#: c/c-decl.c:5211 +#: c/c-decl.c:5215 #, gcc-internal-format msgid "storage size of %q+D isn%'t constant" msgstr "" -#: c/c-decl.c:5261 +#: c/c-decl.c:5265 #, gcc-internal-format msgid "ignoring asm-specifier for non-static local variable %q+D" msgstr "" -#: c/c-decl.c:5291 +#: c/c-decl.c:5295 #, gcc-internal-format msgid "cannot put object with volatile field into register" msgstr "" -#: c/c-decl.c:5377 +#: c/c-decl.c:5381 #, gcc-internal-format msgid "uninitialized const %qD is invalid in C++" msgstr "" -#: c/c-decl.c:5392 cp/decl.c:7360 +#: c/c-decl.c:5396 cp/decl.c:7373 #, gcc-internal-format msgid "%q+D in declare target directive does not have mappable type" msgstr "" -#: c/c-decl.c:5456 +#: c/c-decl.c:5460 #, gcc-internal-format msgid "ISO C forbids forward parameter declarations" msgstr "" -#: c/c-decl.c:5562 +#: c/c-decl.c:5566 #, gcc-internal-format msgid "defining a type in a compound literal is invalid in C++" msgstr "" -#: c/c-decl.c:5616 c/c-decl.c:5631 +#: c/c-decl.c:5620 c/c-decl.c:5635 #, gcc-internal-format msgid "bit-field %qs width not an integer constant" msgstr "" -#: c/c-decl.c:5626 +#: c/c-decl.c:5630 #, gcc-internal-format msgid "bit-field %qs width not an integer constant expression" msgstr "" -#: c/c-decl.c:5637 +#: c/c-decl.c:5641 #, gcc-internal-format msgid "negative width in bit-field %qs" msgstr "" -#: c/c-decl.c:5642 +#: c/c-decl.c:5646 #, gcc-internal-format msgid "zero width for bit-field %qs" msgstr "" -#: c/c-decl.c:5652 +#: c/c-decl.c:5656 #, gcc-internal-format msgid "bit-field %qs has invalid type" msgstr "" -#: c/c-decl.c:5658 +#: c/c-decl.c:5662 #, gcc-internal-format msgid "cannot declare bit-field %qs with % type" msgstr "" -#: c/c-decl.c:5669 +#: c/c-decl.c:5673 #, gcc-internal-format msgid "type of bit-field %qs is a GCC extension" msgstr "" -#: c/c-decl.c:5675 +#: c/c-decl.c:5679 #, gcc-internal-format msgid "width of %qs exceeds its type" msgstr "" -#: c/c-decl.c:5688 +#: c/c-decl.c:5692 #, gcc-internal-format msgid "%qs is narrower than values of its type" msgstr "" -#: c/c-decl.c:5703 +#: c/c-decl.c:5707 #, gcc-internal-format msgid "ISO C90 forbids array %qE whose size can%'t be evaluated" msgstr "" -#: c/c-decl.c:5706 +#: c/c-decl.c:5710 #, gcc-internal-format msgid "ISO C90 forbids array whose size can%'t be evaluated" msgstr "" -#: c/c-decl.c:5713 +#: c/c-decl.c:5717 #, gcc-internal-format msgid "ISO C90 forbids variable length array %qE" msgstr "" -#: c/c-decl.c:5715 +#: c/c-decl.c:5719 #, gcc-internal-format msgid "ISO C90 forbids variable length array" msgstr "" -#: c/c-decl.c:5924 c/c-decl.c:6298 c/c-decl.c:6308 +#: c/c-decl.c:5928 c/c-decl.c:6302 c/c-decl.c:6312 #, gcc-internal-format msgid "variably modified %qE at file scope" msgstr "" -#: c/c-decl.c:5926 +#: c/c-decl.c:5930 #, gcc-internal-format msgid "variably modified field at file scope" msgstr "" -#: c/c-decl.c:5946 +#: c/c-decl.c:5950 #, gcc-internal-format msgid "type defaults to % in declaration of %qE" msgstr "" -#: c/c-decl.c:5950 +#: c/c-decl.c:5954 #, gcc-internal-format msgid "type defaults to % in type name" msgstr "" -#: c/c-decl.c:5982 +#: c/c-decl.c:5986 #, gcc-internal-format msgid "duplicate %" msgstr "" -#: c/c-decl.c:5984 +#: c/c-decl.c:5988 #, gcc-internal-format msgid "duplicate %" msgstr "" -#: c/c-decl.c:5986 +#: c/c-decl.c:5990 #, gcc-internal-format msgid "duplicate %" msgstr "" -#: c/c-decl.c:5988 +#: c/c-decl.c:5992 #, gcc-internal-format msgid "duplicate %<_Atomic%>" msgstr "" -#: c/c-decl.c:5991 +#: c/c-decl.c:5995 #, gcc-internal-format, gfc-internal-format msgid "conflicting named address spaces (%s vs %s)" msgstr "" -#: c/c-decl.c:6014 c/c-parser.c:2847 +#: c/c-decl.c:6018 c/c-parser.c:2849 #, gcc-internal-format msgid "%<_Atomic%>-qualified array type" msgstr "" -#: c/c-decl.c:6028 +#: c/c-decl.c:6032 #, gcc-internal-format msgid "function definition declared %" msgstr "" -#: c/c-decl.c:6030 +#: c/c-decl.c:6034 #, gcc-internal-format msgid "function definition declared %" msgstr "" -#: c/c-decl.c:6032 +#: c/c-decl.c:6036 #, gcc-internal-format msgid "function definition declared %" msgstr "" -#: c/c-decl.c:6034 +#: c/c-decl.c:6038 #, gcc-internal-format msgid "function definition declared %qs" msgstr "" -#: c/c-decl.c:6052 +#: c/c-decl.c:6056 #, gcc-internal-format msgid "storage class specified for structure field %qE" msgstr "" -#: c/c-decl.c:6055 +#: c/c-decl.c:6059 #, gcc-internal-format msgid "storage class specified for structure field" msgstr "" -#: c/c-decl.c:6059 +#: c/c-decl.c:6063 #, gcc-internal-format msgid "storage class specified for parameter %qE" msgstr "" -#: c/c-decl.c:6062 +#: c/c-decl.c:6066 #, gcc-internal-format msgid "storage class specified for unnamed parameter" msgstr "" -#: c/c-decl.c:6065 cp/decl.c:11109 +#: c/c-decl.c:6069 cp/decl.c:11140 #, gcc-internal-format msgid "storage class specified for typename" msgstr "" -#: c/c-decl.c:6082 +#: c/c-decl.c:6086 #, gcc-internal-format msgid "%qE initialized and declared %" msgstr "" -#: c/c-decl.c:6086 +#: c/c-decl.c:6090 #, gcc-internal-format msgid "%qE has both % and initializer" msgstr "" -#: c/c-decl.c:6091 +#: c/c-decl.c:6095 #, gcc-internal-format msgid "file-scope declaration of %qE specifies %" msgstr "" -#: c/c-decl.c:6095 +#: c/c-decl.c:6099 #, gcc-internal-format msgid "file-scope declaration of %qE specifies %" msgstr "" -#: c/c-decl.c:6100 +#: c/c-decl.c:6104 #, gcc-internal-format msgid "nested function %qE declared %" msgstr "" -#: c/c-decl.c:6103 +#: c/c-decl.c:6107 #, gcc-internal-format msgid "function-scope %qE implicitly auto and declared %qs" msgstr "" @@ -36077,709 +36255,719 @@ msgstr "" #. Only the innermost declarator (making a parameter be of #. array type which is converted to pointer type) #. may have static or type qualifiers. -#: c/c-decl.c:6150 c/c-decl.c:6519 +#: c/c-decl.c:6154 c/c-decl.c:6523 #, gcc-internal-format msgid "static or type qualifiers in non-parameter array declarator" msgstr "" -#: c/c-decl.c:6198 +#: c/c-decl.c:6202 #, gcc-internal-format msgid "declaration of %qE as array of voids" msgstr "" -#: c/c-decl.c:6200 +#: c/c-decl.c:6204 #, gcc-internal-format msgid "declaration of type name as array of voids" msgstr "" -#: c/c-decl.c:6207 +#: c/c-decl.c:6211 #, gcc-internal-format msgid "declaration of %qE as array of functions" msgstr "" -#: c/c-decl.c:6210 +#: c/c-decl.c:6214 #, gcc-internal-format msgid "declaration of type name as array of functions" msgstr "" -#: c/c-decl.c:6218 c/c-decl.c:8277 +#: c/c-decl.c:6222 c/c-decl.c:8282 #, gcc-internal-format msgid "invalid use of structure with flexible array member" msgstr "" -#: c/c-decl.c:6244 +#: c/c-decl.c:6248 #, gcc-internal-format msgid "size of array %qE has non-integer type" msgstr "" -#: c/c-decl.c:6248 +#: c/c-decl.c:6252 #, gcc-internal-format msgid "size of unnamed array has non-integer type" msgstr "" -#: c/c-decl.c:6255 +#: c/c-decl.c:6259 #, gcc-internal-format msgid "size of array %qE has incomplete type" msgstr "" -#: c/c-decl.c:6258 +#: c/c-decl.c:6262 #, gcc-internal-format msgid "size of unnamed array has incomplete type" msgstr "" -#: c/c-decl.c:6269 +#: c/c-decl.c:6273 #, gcc-internal-format msgid "ISO C forbids zero-size array %qE" msgstr "" -#: c/c-decl.c:6272 +#: c/c-decl.c:6276 #, gcc-internal-format msgid "ISO C forbids zero-size array" msgstr "" -#: c/c-decl.c:6281 +#: c/c-decl.c:6285 #, gcc-internal-format msgid "size of array %qE is negative" msgstr "" -#: c/c-decl.c:6283 +#: c/c-decl.c:6287 #, gcc-internal-format msgid "size of unnamed array is negative" msgstr "" -#: c/c-decl.c:6407 c/c-decl.c:7063 +#: c/c-decl.c:6372 +#, gcc-internal-format +msgid "size of array %qE is too large" +msgstr "" + +#: c/c-decl.c:6375 +#, gcc-internal-format +msgid "size of unnamed array is too large" +msgstr "" + +#: c/c-decl.c:6411 c/c-decl.c:7068 #, gcc-internal-format msgid "ISO C90 does not support flexible array members" msgstr "" #. C99 6.7.5.2p4 -#: c/c-decl.c:6429 +#: c/c-decl.c:6433 #, gcc-internal-format msgid "%<[*]%> not in a declaration" msgstr "" -#: c/c-decl.c:6442 +#: c/c-decl.c:6446 #, gcc-internal-format msgid "array type has incomplete element type %qT" msgstr "" -#: c/c-decl.c:6448 +#: c/c-decl.c:6452 #, gcc-internal-format msgid "" "declaration of %qE as multidimensional array must have bounds for all " "dimensions except the first" msgstr "" -#: c/c-decl.c:6452 +#: c/c-decl.c:6456 #, gcc-internal-format msgid "" "declaration of multidimensional array must have bounds for all dimensions " "except the first" msgstr "" -#: c/c-decl.c:6555 +#: c/c-decl.c:6559 #, gcc-internal-format msgid "%qE declared as function returning a function" msgstr "" -#: c/c-decl.c:6558 +#: c/c-decl.c:6562 #, gcc-internal-format msgid "type name declared as function returning a function" msgstr "" -#: c/c-decl.c:6565 +#: c/c-decl.c:6569 #, gcc-internal-format msgid "%qE declared as function returning an array" msgstr "" -#: c/c-decl.c:6568 +#: c/c-decl.c:6572 #, gcc-internal-format msgid "type name declared as function returning an array" msgstr "" -#: c/c-decl.c:6609 +#: c/c-decl.c:6613 #, gcc-internal-format msgid "function definition has qualified void return type" msgstr "" -#: c/c-decl.c:6612 cp/decl.c:11396 +#: c/c-decl.c:6617 cp/decl.c:11427 #, gcc-internal-format msgid "type qualifiers ignored on function return type" msgstr "" -#: c/c-decl.c:6650 c/c-decl.c:6859 c/c-decl.c:6913 c/c-decl.c:6997 -#: c/c-decl.c:7118 c/c-parser.c:2849 +#: c/c-decl.c:6655 c/c-decl.c:6864 c/c-decl.c:6918 c/c-decl.c:7002 +#: c/c-decl.c:7123 c/c-parser.c:2851 #, gcc-internal-format msgid "%<_Atomic%>-qualified function type" msgstr "" -#: c/c-decl.c:6656 c/c-decl.c:6865 c/c-decl.c:7002 c/c-decl.c:7123 +#: c/c-decl.c:6661 c/c-decl.c:6870 c/c-decl.c:7007 c/c-decl.c:7128 #, gcc-internal-format msgid "ISO C forbids qualified function types" msgstr "" -#: c/c-decl.c:6750 +#: c/c-decl.c:6755 #, gcc-internal-format msgid "%qs combined with % qualifier for %qE" msgstr "" -#: c/c-decl.c:6754 +#: c/c-decl.c:6759 #, gcc-internal-format msgid "%qs combined with % qualifier for %qE" msgstr "" -#: c/c-decl.c:6760 +#: c/c-decl.c:6765 #, gcc-internal-format msgid "%qs specified for auto variable %qE" msgstr "" -#: c/c-decl.c:6776 +#: c/c-decl.c:6781 #, gcc-internal-format msgid "%qs specified for parameter %qE" msgstr "" -#: c/c-decl.c:6779 +#: c/c-decl.c:6784 #, gcc-internal-format msgid "%qs specified for unnamed parameter" msgstr "" -#: c/c-decl.c:6785 +#: c/c-decl.c:6790 #, gcc-internal-format msgid "%qs specified for structure field %qE" msgstr "" -#: c/c-decl.c:6788 +#: c/c-decl.c:6793 #, gcc-internal-format msgid "%qs specified for structure field" msgstr "" -#: c/c-decl.c:6803 +#: c/c-decl.c:6808 #, gcc-internal-format msgid "bit-field %qE has atomic type" msgstr "" -#: c/c-decl.c:6805 +#: c/c-decl.c:6810 #, gcc-internal-format msgid "bit-field has atomic type" msgstr "" -#: c/c-decl.c:6814 +#: c/c-decl.c:6819 #, gcc-internal-format msgid "alignment specified for typedef %qE" msgstr "" -#: c/c-decl.c:6816 +#: c/c-decl.c:6821 #, gcc-internal-format msgid "alignment specified for % object %qE" msgstr "" -#: c/c-decl.c:6821 +#: c/c-decl.c:6826 #, gcc-internal-format msgid "alignment specified for parameter %qE" msgstr "" -#: c/c-decl.c:6823 +#: c/c-decl.c:6828 #, gcc-internal-format msgid "alignment specified for unnamed parameter" msgstr "" -#: c/c-decl.c:6828 +#: c/c-decl.c:6833 #, gcc-internal-format msgid "alignment specified for bit-field %qE" msgstr "" -#: c/c-decl.c:6830 +#: c/c-decl.c:6835 #, gcc-internal-format msgid "alignment specified for unnamed bit-field" msgstr "" -#: c/c-decl.c:6833 +#: c/c-decl.c:6838 #, gcc-internal-format msgid "alignment specified for function %qE" msgstr "" -#: c/c-decl.c:6840 +#: c/c-decl.c:6845 #, gcc-internal-format msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE" msgstr "" -#: c/c-decl.c:6843 +#: c/c-decl.c:6848 #, gcc-internal-format msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field" msgstr "" -#: c/c-decl.c:6874 +#: c/c-decl.c:6879 #, gcc-internal-format msgid "typedef %q+D declared %" msgstr "" -#: c/c-decl.c:6876 +#: c/c-decl.c:6881 #, gcc-internal-format msgid "typedef %q+D declared %<_Noreturn%>" msgstr "" -#: c/c-decl.c:6919 +#: c/c-decl.c:6924 #, gcc-internal-format msgid "ISO C forbids const or volatile function types" msgstr "" #. C99 6.7.2.1p8 -#: c/c-decl.c:6930 +#: c/c-decl.c:6935 #, gcc-internal-format msgid "a member of a structure or union cannot have a variably modified type" msgstr "" -#: c/c-decl.c:6947 cp/decl.c:10119 +#: c/c-decl.c:6952 cp/decl.c:10150 #, gcc-internal-format msgid "variable or field %qE declared void" msgstr "" -#: c/c-decl.c:6987 +#: c/c-decl.c:6992 #, gcc-internal-format msgid "attributes in parameter array declarator ignored" msgstr "" -#: c/c-decl.c:7029 +#: c/c-decl.c:7034 #, gcc-internal-format msgid "parameter %q+D declared %" msgstr "" -#: c/c-decl.c:7031 +#: c/c-decl.c:7036 #, gcc-internal-format msgid "parameter %q+D declared %<_Noreturn%>" msgstr "" -#: c/c-decl.c:7044 +#: c/c-decl.c:7049 #, gcc-internal-format msgid "field %qE declared as a function" msgstr "" -#: c/c-decl.c:7051 +#: c/c-decl.c:7056 #, gcc-internal-format msgid "field %qE has incomplete type" msgstr "" -#: c/c-decl.c:7053 +#: c/c-decl.c:7058 #, gcc-internal-format msgid "unnamed field has incomplete type" msgstr "" -#: c/c-decl.c:7089 c/c-decl.c:7100 c/c-decl.c:7103 +#: c/c-decl.c:7094 c/c-decl.c:7105 c/c-decl.c:7108 #, gcc-internal-format msgid "invalid storage class for function %qE" msgstr "" -#: c/c-decl.c:7160 +#: c/c-decl.c:7165 #, gcc-internal-format msgid "cannot inline function %" msgstr "" -#: c/c-decl.c:7162 +#: c/c-decl.c:7167 #, gcc-internal-format msgid "% declared %<_Noreturn%>" msgstr "" -#: c/c-decl.c:7173 +#: c/c-decl.c:7178 #, gcc-internal-format msgid "ISO C99 does not support %<_Noreturn%>" msgstr "" -#: c/c-decl.c:7176 +#: c/c-decl.c:7181 #, gcc-internal-format msgid "ISO C90 does not support %<_Noreturn%>" msgstr "" -#: c/c-decl.c:7205 +#: c/c-decl.c:7210 #, gcc-internal-format msgid "variable previously declared % redeclared %" msgstr "" -#: c/c-decl.c:7215 +#: c/c-decl.c:7220 #, gcc-internal-format msgid "variable %q+D declared %" msgstr "" -#: c/c-decl.c:7217 +#: c/c-decl.c:7222 #, gcc-internal-format msgid "variable %q+D declared %<_Noreturn%>" msgstr "" -#: c/c-decl.c:7252 +#: c/c-decl.c:7257 #, gcc-internal-format msgid "non-nested function with variably modified type" msgstr "" -#: c/c-decl.c:7254 +#: c/c-decl.c:7259 #, gcc-internal-format msgid "object with variably modified type must have no linkage" msgstr "" -#: c/c-decl.c:7345 c/c-decl.c:9014 +#: c/c-decl.c:7350 c/c-decl.c:9020 #, gcc-internal-format msgid "function declaration isn%'t a prototype" msgstr "" -#: c/c-decl.c:7355 +#: c/c-decl.c:7360 #, gcc-internal-format msgid "parameter names (without types) in function declaration" msgstr "" -#: c/c-decl.c:7393 +#: c/c-decl.c:7398 #, gcc-internal-format msgid "parameter %u (%q+D) has incomplete type" msgstr "" -#: c/c-decl.c:7397 +#: c/c-decl.c:7402 #, gcc-internal-format, gfc-internal-format msgid "parameter %u has incomplete type" msgstr "" -#: c/c-decl.c:7408 +#: c/c-decl.c:7413 #, gcc-internal-format msgid "parameter %u (%q+D) has void type" msgstr "" -#: c/c-decl.c:7412 +#: c/c-decl.c:7417 #, gcc-internal-format, gfc-internal-format msgid "parameter %u has void type" msgstr "" -#: c/c-decl.c:7486 +#: c/c-decl.c:7491 #, gcc-internal-format msgid "% as only parameter may not be qualified" msgstr "" -#: c/c-decl.c:7490 c/c-decl.c:7526 +#: c/c-decl.c:7495 c/c-decl.c:7531 #, gcc-internal-format msgid "% must be the only parameter" msgstr "" -#: c/c-decl.c:7520 +#: c/c-decl.c:7525 #, gcc-internal-format msgid "parameter %q+D has just a forward declaration" msgstr "" -#: c/c-decl.c:7566 +#: c/c-decl.c:7571 #, gcc-internal-format msgid "" "%<%s %E%> declared inside parameter list will not be visible outside of this " "definition or declaration" msgstr "" -#: c/c-decl.c:7572 +#: c/c-decl.c:7577 #, gcc-internal-format, gfc-internal-format msgid "" "anonymous %s declared inside parameter list will not be visible outside of " "this definition or declaration" msgstr "" -#: c/c-decl.c:7674 +#: c/c-decl.c:7679 #, gcc-internal-format msgid "enum type defined here" msgstr "" -#: c/c-decl.c:7680 +#: c/c-decl.c:7685 #, gcc-internal-format msgid "struct defined here" msgstr "" -#: c/c-decl.c:7686 +#: c/c-decl.c:7691 #, gcc-internal-format msgid "union defined here" msgstr "" -#: c/c-decl.c:7762 +#: c/c-decl.c:7767 #, gcc-internal-format msgid "redefinition of %" msgstr "" -#: c/c-decl.c:7764 +#: c/c-decl.c:7769 #, gcc-internal-format msgid "redefinition of %" msgstr "" -#: c/c-decl.c:7773 +#: c/c-decl.c:7778 #, gcc-internal-format msgid "nested redefinition of %" msgstr "" -#: c/c-decl.c:7775 +#: c/c-decl.c:7780 #, gcc-internal-format msgid "nested redefinition of %" msgstr "" -#: c/c-decl.c:7805 c/c-decl.c:8592 +#: c/c-decl.c:7810 c/c-decl.c:8598 #, gcc-internal-format msgid "defining type in %qs expression is invalid in C++" msgstr "" -#: c/c-decl.c:7872 cp/decl.c:4817 +#: c/c-decl.c:7877 cp/decl.c:4820 #, gcc-internal-format msgid "declaration does not declare anything" msgstr "" -#: c/c-decl.c:7877 +#: c/c-decl.c:7882 #, gcc-internal-format msgid "ISO C99 doesn%'t support unnamed structs/unions" msgstr "" -#: c/c-decl.c:7880 +#: c/c-decl.c:7885 #, gcc-internal-format msgid "ISO C90 doesn%'t support unnamed structs/unions" msgstr "" -#: c/c-decl.c:7973 c/c-decl.c:7991 c/c-decl.c:8052 +#: c/c-decl.c:7978 c/c-decl.c:7996 c/c-decl.c:8057 #, gcc-internal-format msgid "duplicate member %q+D" msgstr "" -#: c/c-decl.c:8078 +#: c/c-decl.c:8083 #, gcc-internal-format msgid "empty struct has size 0 in C, size 1 in C++" msgstr "" -#: c/c-decl.c:8081 +#: c/c-decl.c:8086 #, gcc-internal-format msgid "empty union has size 0 in C, size 1 in C++" msgstr "" -#: c/c-decl.c:8186 +#: c/c-decl.c:8191 #, gcc-internal-format msgid "union has no named members" msgstr "" -#: c/c-decl.c:8188 +#: c/c-decl.c:8193 #, gcc-internal-format msgid "union has no members" msgstr "" -#: c/c-decl.c:8193 +#: c/c-decl.c:8198 #, gcc-internal-format msgid "struct has no named members" msgstr "" -#: c/c-decl.c:8195 +#: c/c-decl.c:8200 #, gcc-internal-format msgid "struct has no members" msgstr "" -#: c/c-decl.c:8256 cp/decl.c:12284 +#: c/c-decl.c:8261 cp/decl.c:12315 #, gcc-internal-format msgid "flexible array member in union" msgstr "" -#: c/c-decl.c:8262 +#: c/c-decl.c:8267 #, gcc-internal-format msgid "flexible array member not at end of struct" msgstr "" -#: c/c-decl.c:8268 +#: c/c-decl.c:8273 #, gcc-internal-format msgid "flexible array member in a struct with no named members" msgstr "" -#: c/c-decl.c:8299 +#: c/c-decl.c:8304 #, gcc-internal-format msgid "type %qT is too large" msgstr "" -#: c/c-decl.c:8422 +#: c/c-decl.c:8409 #, gcc-internal-format msgid "union cannot be made transparent" msgstr "" -#: c/c-decl.c:8564 +#: c/c-decl.c:8570 #, gcc-internal-format msgid "nested redefinition of %" msgstr "" #. This enum is a named one that has been declared already. -#: c/c-decl.c:8571 +#: c/c-decl.c:8577 #, gcc-internal-format msgid "redeclaration of %" msgstr "" -#: c/c-decl.c:8650 cp/decl.c:14654 +#: c/c-decl.c:8656 cp/decl.c:14686 #, gcc-internal-format msgid "specified mode too small for enumeral values" msgstr "" -#: c/c-decl.c:8665 +#: c/c-decl.c:8671 #, gcc-internal-format msgid "enumeration values exceed range of largest integer" msgstr "" -#: c/c-decl.c:8779 c/c-decl.c:8795 +#: c/c-decl.c:8785 c/c-decl.c:8801 #, gcc-internal-format msgid "enumerator value for %qE is not an integer constant" msgstr "" -#: c/c-decl.c:8790 +#: c/c-decl.c:8796 #, gcc-internal-format msgid "enumerator value for %qE is not an integer constant expression" msgstr "" -#: c/c-decl.c:8814 +#: c/c-decl.c:8820 #, gcc-internal-format msgid "overflow in enumeration values" msgstr "" -#: c/c-decl.c:8822 +#: c/c-decl.c:8828 #, gcc-internal-format msgid "ISO C restricts enumerator values to range of %" msgstr "" -#: c/c-decl.c:8907 cp/decl.c:5114 cp/decl.c:15183 +#: c/c-decl.c:8917 cp/decl.c:5117 cp/decl.c:15215 #, gcc-internal-format msgid "inline function %qD given attribute noinline" msgstr "" -#: c/c-decl.c:8925 +#: c/c-decl.c:8935 #, gcc-internal-format msgid "return type is an incomplete type" msgstr "" -#: c/c-decl.c:8936 +#: c/c-decl.c:8946 #, gcc-internal-format msgid "return type defaults to %" msgstr "" -#: c/c-decl.c:8964 +#: c/c-decl.c:8970 #, gcc-internal-format msgid "%q+D defined as variadic function without prototype" msgstr "" -#: c/c-decl.c:9023 +#: c/c-decl.c:9029 #, gcc-internal-format msgid "no previous prototype for %qD" msgstr "" -#: c/c-decl.c:9032 +#: c/c-decl.c:9038 #, gcc-internal-format msgid "%qD was used with no prototype before its definition" msgstr "" -#: c/c-decl.c:9040 cp/decl.c:15318 +#: c/c-decl.c:9046 cp/decl.c:15350 #, gcc-internal-format msgid "no previous declaration for %qD" msgstr "" -#: c/c-decl.c:9050 +#: c/c-decl.c:9056 #, gcc-internal-format msgid "%qD was used with no declaration before its definition" msgstr "" -#: c/c-decl.c:9069 +#: c/c-decl.c:9075 #, gcc-internal-format msgid "return type of %qD is not %" msgstr "" -#: c/c-decl.c:9071 +#: c/c-decl.c:9077 #, gcc-internal-format msgid "%<_Atomic%>-qualified return type of %qD" msgstr "" -#: c/c-decl.c:9078 +#: c/c-decl.c:9084 #, gcc-internal-format msgid "%qD is normally a non-static function" msgstr "" -#: c/c-decl.c:9115 +#: c/c-decl.c:9121 #, gcc-internal-format msgid "old-style parameter declarations in prototyped function definition" msgstr "" -#: c/c-decl.c:9130 +#: c/c-decl.c:9136 #, gcc-internal-format msgid "traditional C rejects ISO C style function definitions" msgstr "" -#: c/c-decl.c:9146 +#: c/c-decl.c:9152 #, gcc-internal-format msgid "parameter name omitted" msgstr "" -#: c/c-decl.c:9183 +#: c/c-decl.c:9189 #, gcc-internal-format msgid "old-style function definition" msgstr "" -#: c/c-decl.c:9192 +#: c/c-decl.c:9198 #, gcc-internal-format msgid "parameter name missing from parameter list" msgstr "" -#: c/c-decl.c:9208 +#: c/c-decl.c:9214 #, gcc-internal-format msgid "%qD declared as a non-parameter" msgstr "" -#: c/c-decl.c:9216 +#: c/c-decl.c:9222 #, gcc-internal-format msgid "multiple parameters named %qD" msgstr "" -#: c/c-decl.c:9225 +#: c/c-decl.c:9231 #, gcc-internal-format msgid "parameter %qD declared with void type" msgstr "" -#: c/c-decl.c:9254 c/c-decl.c:9259 +#: c/c-decl.c:9260 c/c-decl.c:9265 #, gcc-internal-format msgid "type of %qD defaults to %" msgstr "" -#: c/c-decl.c:9279 +#: c/c-decl.c:9285 #, gcc-internal-format msgid "parameter %qD has incomplete type" msgstr "" -#: c/c-decl.c:9286 +#: c/c-decl.c:9292 #, gcc-internal-format msgid "declaration for parameter %qD but no such parameter" msgstr "" -#: c/c-decl.c:9339 +#: c/c-decl.c:9345 #, gcc-internal-format msgid "number of arguments doesn%'t match built-in prototype" msgstr "" -#: c/c-decl.c:9350 +#: c/c-decl.c:9356 #, gcc-internal-format msgid "number of arguments doesn%'t match prototype" msgstr "" -#: c/c-decl.c:9353 c/c-decl.c:9400 c/c-decl.c:9414 +#: c/c-decl.c:9359 c/c-decl.c:9406 c/c-decl.c:9420 #, gcc-internal-format msgid "prototype declaration" msgstr "" -#: c/c-decl.c:9392 +#: c/c-decl.c:9398 #, gcc-internal-format msgid "promoted argument %qD doesn%'t match built-in prototype" msgstr "" -#: c/c-decl.c:9397 +#: c/c-decl.c:9403 #, gcc-internal-format msgid "promoted argument %qD doesn%'t match prototype" msgstr "" -#: c/c-decl.c:9407 +#: c/c-decl.c:9413 #, gcc-internal-format msgid "argument %qD doesn%'t match built-in prototype" msgstr "" -#: c/c-decl.c:9412 +#: c/c-decl.c:9418 #, gcc-internal-format msgid "argument %qD doesn%'t match prototype" msgstr "" -#: c/c-decl.c:9664 cp/decl.c:16142 +#: c/c-decl.c:9669 cp/decl.c:16176 #, gcc-internal-format msgid "no return statement in function returning non-void" msgstr "" -#: c/c-decl.c:9684 cp/decl.c:16174 +#: c/c-decl.c:9688 cp/decl.c:16208 #, gcc-internal-format msgid "parameter %qD set but not used" msgstr "" @@ -36787,258 +36975,259 @@ msgstr "" #. If we get here, declarations have been used in a for loop without #. the C99 for loop scope. This doesn't make much sense, so don't #. allow it. -#: c/c-decl.c:9780 +#: c/c-decl.c:9784 #, gcc-internal-format msgid "% loop initial declarations are only allowed in C99 or C11 mode" msgstr "" -#: c/c-decl.c:9785 +#: c/c-decl.c:9789 #, gcc-internal-format msgid "" -"use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code" +"use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to " +"compile your code" msgstr "" -#: c/c-decl.c:9792 +#: c/c-decl.c:9796 #, gcc-internal-format msgid "ISO C90 does not support % loop initial declarations" msgstr "" -#: c/c-decl.c:9824 +#: c/c-decl.c:9828 #, gcc-internal-format msgid "declaration of static variable %qD in % loop initial declaration" msgstr "" -#: c/c-decl.c:9828 +#: c/c-decl.c:9832 #, gcc-internal-format msgid "" "declaration of % variable %qD in % loop initial declaration" msgstr "" -#: c/c-decl.c:9835 +#: c/c-decl.c:9839 #, gcc-internal-format msgid "% declared in % loop initial declaration" msgstr "" -#: c/c-decl.c:9840 +#: c/c-decl.c:9844 #, gcc-internal-format msgid "% declared in % loop initial declaration" msgstr "" -#: c/c-decl.c:9844 +#: c/c-decl.c:9848 #, gcc-internal-format msgid "% declared in % loop initial declaration" msgstr "" -#: c/c-decl.c:9848 +#: c/c-decl.c:9852 #, gcc-internal-format msgid "declaration of non-variable %qD in % loop initial declaration" msgstr "" -#: c/c-decl.c:10098 +#: c/c-decl.c:10102 #, gcc-internal-format msgid "incompatible address space qualifiers %qs and %qs" msgstr "" -#: c/c-decl.c:10156 c/c-decl.c:10163 +#: c/c-decl.c:10160 c/c-decl.c:10167 #, gcc-internal-format msgid "duplicate %qE declaration specifier" msgstr "" -#: c/c-decl.c:10190 c/c-decl.c:10574 c/c-decl.c:10964 +#: c/c-decl.c:10194 c/c-decl.c:10578 c/c-decl.c:10968 #, gcc-internal-format msgid "two or more data types in declaration specifiers" msgstr "" -#: c/c-decl.c:10202 cp/parser.c:29051 +#: c/c-decl.c:10206 cp/parser.c:29183 #, gcc-internal-format msgid "% is too long for GCC" msgstr "" -#: c/c-decl.c:10215 +#: c/c-decl.c:10219 #, gcc-internal-format msgid "ISO C90 does not support %" msgstr "" -#: c/c-decl.c:10444 c/c-parser.c:9087 +#: c/c-decl.c:10448 c/c-parser.c:9089 #, gcc-internal-format msgid "ISO C90 does not support complex types" msgstr "" -#: c/c-decl.c:10490 +#: c/c-decl.c:10494 #, gcc-internal-format msgid "ISO C does not support saturating types" msgstr "" -#: c/c-decl.c:10561 c/c-decl.c:11121 +#: c/c-decl.c:10565 c/c-decl.c:11125 #, gcc-internal-format msgid "duplicate %qE" msgstr "" -#: c/c-decl.c:10617 +#: c/c-decl.c:10621 #, gcc-internal-format msgid "ISO C does not support %<__int%d%> types" msgstr "" -#: c/c-decl.c:10639 +#: c/c-decl.c:10643 #, gcc-internal-format msgid "%<__int%d%> is not supported on this target" msgstr "" -#: c/c-decl.c:10682 +#: c/c-decl.c:10686 #, gcc-internal-format msgid "ISO C90 does not support boolean types" msgstr "" -#: c/c-decl.c:10801 +#: c/c-decl.c:10805 #, gcc-internal-format msgid "ISO C does not support the %<_Float%d%s%> type" msgstr "" -#: c/c-decl.c:10851 +#: c/c-decl.c:10855 #, gcc-internal-format msgid "%<_Float%d%s%> is not supported on this target" msgstr "" -#: c/c-decl.c:10922 +#: c/c-decl.c:10926 #, gcc-internal-format msgid "ISO C does not support decimal floating point" msgstr "" -#: c/c-decl.c:10945 c/c-decl.c:11214 c/c-parser.c:8078 +#: c/c-decl.c:10949 c/c-decl.c:11218 c/c-parser.c:8080 #, gcc-internal-format msgid "fixed-point types not supported for this target" msgstr "" -#: c/c-decl.c:10947 +#: c/c-decl.c:10951 #, gcc-internal-format msgid "ISO C does not support fixed-point types" msgstr "" -#: c/c-decl.c:10982 +#: c/c-decl.c:10986 #, gcc-internal-format msgid "C++ lookup of %qD would return a field, not a type" msgstr "" -#: c/c-decl.c:10995 +#: c/c-decl.c:10999 #, gcc-internal-format msgid "%qE fails to be a typedef or built in type" msgstr "" -#: c/c-decl.c:11043 +#: c/c-decl.c:11047 #, gcc-internal-format msgid "%qE is not at beginning of declaration" msgstr "" -#: c/c-decl.c:11064 +#: c/c-decl.c:11068 #, gcc-internal-format msgid "%qE used with %" msgstr "" -#: c/c-decl.c:11066 +#: c/c-decl.c:11070 #, gcc-internal-format msgid "%qE used with %" msgstr "" -#: c/c-decl.c:11068 +#: c/c-decl.c:11072 #, gcc-internal-format msgid "%qE used with %" msgstr "" -#: c/c-decl.c:11082 c/c-parser.c:7478 +#: c/c-decl.c:11086 c/c-parser.c:7480 #, gcc-internal-format msgid "ISO C99 does not support %qE" msgstr "" -#: c/c-decl.c:11085 c/c-parser.c:7481 +#: c/c-decl.c:11089 c/c-parser.c:7483 #, gcc-internal-format msgid "ISO C90 does not support %qE" msgstr "" -#: c/c-decl.c:11097 +#: c/c-decl.c:11101 #, gcc-internal-format msgid "%<__thread%> before %" msgstr "" -#: c/c-decl.c:11106 +#: c/c-decl.c:11110 #, gcc-internal-format msgid "%<__thread%> before %" msgstr "" -#: c/c-decl.c:11119 +#: c/c-decl.c:11123 #, gcc-internal-format msgid "duplicate %<_Thread_local%> or %<__thread%>" msgstr "" -#: c/c-decl.c:11127 +#: c/c-decl.c:11131 #, gcc-internal-format msgid "multiple storage classes in declaration specifiers" msgstr "" -#: c/c-decl.c:11135 +#: c/c-decl.c:11139 #, gcc-internal-format msgid "%qs used with %qE" msgstr "" -#: c/c-decl.c:11211 +#: c/c-decl.c:11215 #, gcc-internal-format msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>" msgstr "" -#: c/c-decl.c:11226 +#: c/c-decl.c:11230 #, gcc-internal-format msgid "ISO C does not support plain % meaning %" msgstr "" -#: c/c-decl.c:11277 c/c-decl.c:11293 c/c-decl.c:11319 +#: c/c-decl.c:11281 c/c-decl.c:11297 c/c-decl.c:11323 #, gcc-internal-format msgid "ISO C does not support complex integer types" msgstr "" -#: c/c-decl.c:11715 cp/semantics.c:5435 +#: c/c-decl.c:11721 cp/semantics.c:5483 #, gcc-internal-format msgid "" "%<#pragma omp declare reduction%> combiner refers to variable %qD which is " "not % nor %" msgstr "" -#: c/c-decl.c:11719 cp/semantics.c:5439 +#: c/c-decl.c:11725 cp/semantics.c:5487 #, gcc-internal-format msgid "" "%<#pragma omp declare reduction%> initializer refers to variable %qD which " "is not % nor %" msgstr "" -#: c/c-fold.c:385 c/c-typeck.c:11840 cp/typeck.c:4794 +#: c/c-fold.c:385 c/c-typeck.c:11838 cp/typeck.c:4805 #, gcc-internal-format msgid "left shift of negative value" msgstr "" -#: c/c-fold.c:395 c/c-typeck.c:11849 cp/typeck.c:4802 +#: c/c-fold.c:395 c/c-typeck.c:11847 cp/typeck.c:4813 #, gcc-internal-format msgid "left shift count is negative" msgstr "" -#: c/c-fold.c:396 c/c-typeck.c:11779 cp/typeck.c:4747 +#: c/c-fold.c:396 c/c-typeck.c:11777 cp/typeck.c:4758 #, gcc-internal-format msgid "right shift count is negative" msgstr "" -#: c/c-fold.c:404 c/c-typeck.c:11868 cp/typeck.c:4810 +#: c/c-fold.c:404 c/c-typeck.c:11866 cp/typeck.c:4821 #, gcc-internal-format msgid "left shift count >= width of type" msgstr "" -#: c/c-fold.c:405 c/c-typeck.c:11803 cp/typeck.c:4755 +#: c/c-fold.c:405 c/c-typeck.c:11801 cp/typeck.c:4766 #, gcc-internal-format msgid "right shift count >= width of type" msgstr "" -#: c/c-fold.c:412 c/c-typeck.c:11860 +#: c/c-fold.c:412 c/c-typeck.c:11858 #, gcc-internal-format msgid "left shift count >= width of vector element" msgstr "" -#: c/c-fold.c:413 c/c-typeck.c:11790 +#: c/c-fold.c:413 c/c-typeck.c:11788 #, gcc-internal-format msgid "right shift count >= width of vector element" msgstr "" @@ -37058,7 +37247,7 @@ msgstr "" msgid "to match this %qs" msgstr "" -#: c/c-parser.c:1217 cp/parser.c:29277 +#: c/c-parser.c:1217 cp/parser.c:29409 #, gcc-internal-format msgid "expected end of line" msgstr "" @@ -37068,7 +37257,7 @@ msgstr "" msgid "ISO C forbids an empty translation unit" msgstr "" -#: c/c-parser.c:1629 c/c-parser.c:10325 +#: c/c-parser.c:1629 c/c-parser.c:10331 #, gcc-internal-format msgid "ISO C does not allow extra %<;%> outside of a function" msgstr "" @@ -37088,18 +37277,18 @@ msgstr "" msgid "unknown type name %qE; use % keyword to refer to the type" msgstr "" -#: c/c-parser.c:1834 c/c-parser.c:4087 +#: c/c-parser.c:1834 c/c-parser.c:4089 #, gcc-internal-format msgid "unknown type name %qE; did you mean %qs?" msgstr "" -#: c/c-parser.c:1838 c/c-parser.c:2676 c/c-parser.c:4091 +#: c/c-parser.c:1838 c/c-parser.c:2678 c/c-parser.c:4093 #, gcc-internal-format msgid "unknown type name %qE" msgstr "" -#: c/c-parser.c:1859 c/c-parser.c:11558 c/c-parser.c:17315 c/c-parser.c:17804 -#: c/c-parser.c:18286 cp/parser.c:37835 cp/parser.c:40987 +#: c/c-parser.c:1859 c/c-parser.c:11564 c/c-parser.c:17329 c/c-parser.c:17818 +#: c/c-parser.c:18300 cp/parser.c:37974 cp/parser.c:41126 #, gcc-internal-format msgid "expected declaration specifiers" msgstr "" @@ -37109,12 +37298,12 @@ msgstr "" msgid "%<__auto_type%> in empty declaration" msgstr "" -#: c/c-parser.c:1899 c/c-parser.c:3369 +#: c/c-parser.c:1899 c/c-parser.c:3371 #, gcc-internal-format msgid "expected %<;%>, identifier or %<(%>" msgstr "" -#: c/c-parser.c:1917 cp/parser.c:30960 cp/parser.c:31034 +#: c/c-parser.c:1917 cp/parser.c:31092 cp/parser.c:31166 #, gcc-internal-format msgid "prefix attributes are ignored for methods" msgstr "" @@ -37129,8 +37318,8 @@ msgstr "" msgid "unexpected attribute" msgstr "" -#: c/c-parser.c:1983 c/c-parser.c:5262 c/c-parser.c:5579 cp/parser.c:11261 -#: cp/parser.c:11468 +#: c/c-parser.c:1983 c/c-parser.c:5264 c/c-parser.c:5581 cp/parser.c:11322 +#: cp/parser.c:11529 #, gcc-internal-format msgid "% attribute not followed by %<;%>" msgstr "" @@ -37159,17 +37348,17 @@ msgstr "" msgid "%<__auto_type%> used with a bit-field initializer" msgstr "" -#: c/c-parser.c:2149 c/c-parser.c:2239 +#: c/c-parser.c:2149 c/c-parser.c:2241 #, gcc-internal-format msgid "%<__auto_type%> requires an initialized data declaration" msgstr "" -#: c/c-parser.c:2202 +#: c/c-parser.c:2204 #, gcc-internal-format msgid "%<__auto_type%> may only be used with a single declarator" msgstr "" -#: c/c-parser.c:2231 cp/parser.c:13423 cp/parser.c:13582 +#: c/c-parser.c:2233 cp/parser.c:13484 cp/parser.c:13643 #, gcc-internal-format msgid "expected %<,%> or %<;%>" msgstr "" @@ -37177,264 +37366,264 @@ msgstr "" #. This can appear in many cases looking nothing like a #. function definition, so we don't give a more specific #. error suggesting there was one. -#: c/c-parser.c:2245 c/c-parser.c:2286 +#: c/c-parser.c:2247 c/c-parser.c:2288 #, gcc-internal-format msgid "expected %<=%>, %<,%>, %<;%>, % or %<__attribute__%>" msgstr "" -#: c/c-parser.c:2253 +#: c/c-parser.c:2255 #, gcc-internal-format msgid "ISO C forbids nested functions" msgstr "" -#: c/c-parser.c:2434 +#: c/c-parser.c:2436 #, gcc-internal-format msgid "ISO C99 does not support %<_Static_assert%>" msgstr "" -#: c/c-parser.c:2437 +#: c/c-parser.c:2439 #, gcc-internal-format msgid "ISO C90 does not support %<_Static_assert%>" msgstr "" -#: c/c-parser.c:2461 c/c-parser.c:4187 c/c-parser.c:11616 cp/parser.c:40610 +#: c/c-parser.c:2463 c/c-parser.c:4189 c/c-parser.c:11622 cp/parser.c:40749 #, gcc-internal-format msgid "expected string literal" msgstr "" -#: c/c-parser.c:2471 +#: c/c-parser.c:2473 #, gcc-internal-format msgid "ISO C11 does not support omitting the string in %<_Static_assert%>" msgstr "" -#: c/c-parser.c:2477 +#: c/c-parser.c:2479 #, gcc-internal-format msgid "expression in static assertion is not an integer" msgstr "" -#: c/c-parser.c:2486 +#: c/c-parser.c:2488 #, gcc-internal-format msgid "expression in static assertion is not an integer constant expression" msgstr "" -#: c/c-parser.c:2491 +#: c/c-parser.c:2493 #, gcc-internal-format msgid "expression in static assertion is not constant" msgstr "" -#: c/c-parser.c:2498 +#: c/c-parser.c:2500 #, gcc-internal-format msgid "static assertion failed: %E" msgstr "" -#: c/c-parser.c:2500 cp/semantics.c:9264 +#: c/c-parser.c:2502 cp/semantics.c:9313 #, gcc-internal-format msgid "static assertion failed" msgstr "" -#: c/c-parser.c:2818 +#: c/c-parser.c:2820 #, gcc-internal-format msgid "%<_Atomic%> in Objective-C" msgstr "" -#: c/c-parser.c:2821 +#: c/c-parser.c:2823 #, gcc-internal-format msgid "ISO C99 does not support the %<_Atomic%> qualifier" msgstr "" -#: c/c-parser.c:2824 +#: c/c-parser.c:2826 #, gcc-internal-format msgid "ISO C90 does not support the %<_Atomic%> qualifier" msgstr "" -#: c/c-parser.c:2851 +#: c/c-parser.c:2853 #, gcc-internal-format msgid "%<_Atomic%> applied to a qualified type" msgstr "" -#: c/c-parser.c:2881 +#: c/c-parser.c:2883 #, gcc-internal-format -msgid "%<__GIMPLE%> only valid with -fgimple" +msgid "%<__GIMPLE%> only valid with %<-fgimple%>" msgstr "" -#: c/c-parser.c:2979 +#: c/c-parser.c:2981 #, gcc-internal-format msgid "empty enum is invalid" msgstr "" -#: c/c-parser.c:2983 c/c-parser.c:3917 c/c-parser.c:4724 c/c-parser.c:5019 -#: c/c-parser.c:6548 c/c-parser.c:6636 c/c-parser.c:7342 c/c-parser.c:7644 -#: c/c-parser.c:7653 c/c-parser.c:8139 c/c-parser.c:8344 c/c-parser.c:8370 -#: c/c-parser.c:9198 c/c-parser.c:9618 c/c-parser.c:9655 c/c-parser.c:9908 -#: c/c-parser.c:9958 c/c-parser.c:10118 c/c-parser.c:10148 c/c-parser.c:10156 -#: c/c-parser.c:10185 c/c-parser.c:10198 c/c-parser.c:10504 c/c-parser.c:10628 -#: c/c-parser.c:11073 c/c-parser.c:11108 c/c-parser.c:11161 c/c-parser.c:11214 -#: c/c-parser.c:11230 c/c-parser.c:11276 c/c-parser.c:11933 c/c-parser.c:12044 -#: c/c-parser.c:14187 c/c-parser.c:14297 c/c-parser.c:14570 c/c-parser.c:16521 -#: c/c-parser.c:19630 c/gimple-parser.c:1167 c/gimple-parser.c:1205 -#: cp/parser.c:8590 cp/parser.c:29280 cp/parser.c:31816 cp/parser.c:31846 -#: cp/parser.c:31916 cp/parser.c:34272 cp/parser.c:34394 cp/parser.c:40326 +#: c/c-parser.c:2985 c/c-parser.c:3919 c/c-parser.c:4726 c/c-parser.c:5021 +#: c/c-parser.c:6550 c/c-parser.c:6638 c/c-parser.c:7344 c/c-parser.c:7646 +#: c/c-parser.c:7655 c/c-parser.c:8141 c/c-parser.c:8346 c/c-parser.c:8372 +#: c/c-parser.c:9200 c/c-parser.c:9624 c/c-parser.c:9661 c/c-parser.c:9914 +#: c/c-parser.c:9964 c/c-parser.c:10124 c/c-parser.c:10154 c/c-parser.c:10162 +#: c/c-parser.c:10191 c/c-parser.c:10204 c/c-parser.c:10510 c/c-parser.c:10634 +#: c/c-parser.c:11079 c/c-parser.c:11114 c/c-parser.c:11167 c/c-parser.c:11220 +#: c/c-parser.c:11236 c/c-parser.c:11282 c/c-parser.c:11939 c/c-parser.c:12050 +#: c/c-parser.c:14201 c/c-parser.c:14311 c/c-parser.c:14584 c/c-parser.c:16535 +#: c/c-parser.c:19644 c/gimple-parser.c:1478 c/gimple-parser.c:1516 +#: cp/parser.c:8600 cp/parser.c:29412 cp/parser.c:31948 cp/parser.c:31978 +#: cp/parser.c:32048 cp/parser.c:34411 cp/parser.c:34533 cp/parser.c:40465 #, gcc-internal-format msgid "expected identifier" msgstr "" -#: c/c-parser.c:3021 cp/parser.c:18970 +#: c/c-parser.c:3023 cp/parser.c:19041 #, gcc-internal-format msgid "comma at end of enumerator list" msgstr "" -#: c/c-parser.c:3027 +#: c/c-parser.c:3029 #, gcc-internal-format msgid "expected %<,%> or %<}%>" msgstr "" -#: c/c-parser.c:3058 +#: c/c-parser.c:3060 #, gcc-internal-format msgid "ISO C forbids forward references to % types" msgstr "" -#: c/c-parser.c:3175 +#: c/c-parser.c:3177 #, gcc-internal-format msgid "expected class name" msgstr "" -#: c/c-parser.c:3197 +#: c/c-parser.c:3199 #, gcc-internal-format msgid "extra semicolon in struct or union specified" msgstr "" -#: c/c-parser.c:3226 +#: c/c-parser.c:3228 #, gcc-internal-format msgid "no semicolon at end of struct or union" msgstr "" -#: c/c-parser.c:3331 c/c-parser.c:4519 +#: c/c-parser.c:3333 c/c-parser.c:4521 #, gcc-internal-format msgid "expected specifier-qualifier-list" msgstr "" -#: c/c-parser.c:3342 +#: c/c-parser.c:3344 #, gcc-internal-format msgid "ISO C forbids member declarations with no members" msgstr "" -#: c/c-parser.c:3432 +#: c/c-parser.c:3434 #, gcc-internal-format msgid "expected %<,%>, %<;%> or %<}%>" msgstr "" -#: c/c-parser.c:3439 +#: c/c-parser.c:3441 #, gcc-internal-format msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>" msgstr "" -#: c/c-parser.c:3493 +#: c/c-parser.c:3495 #, gcc-internal-format msgid "% applied to a bit-field" msgstr "" -#: c/c-parser.c:3530 +#: c/c-parser.c:3532 #, gcc-internal-format msgid "ISO C99 does not support %<_Alignas%>" msgstr "" -#: c/c-parser.c:3533 +#: c/c-parser.c:3535 #, gcc-internal-format msgid "ISO C90 does not support %<_Alignas%>" msgstr "" -#: c/c-parser.c:3770 +#: c/c-parser.c:3772 #, gcc-internal-format msgid "expected identifier or %<(%>" msgstr "" -#: c/c-parser.c:3983 +#: c/c-parser.c:3985 #, gcc-internal-format msgid "ISO C requires a named argument before %<...%>" msgstr "" -#: c/c-parser.c:4098 +#: c/c-parser.c:4100 #, gcc-internal-format msgid "expected declaration specifiers or %<...%>" msgstr "" -#: c/c-parser.c:4181 +#: c/c-parser.c:4183 #, gcc-internal-format msgid "wide string literal in %" msgstr "" -#: c/c-parser.c:4629 +#: c/c-parser.c:4631 #, gcc-internal-format msgid "ISO C forbids empty initializer braces" msgstr "" -#: c/c-parser.c:4688 +#: c/c-parser.c:4690 #, gcc-internal-format msgid "obsolete use of designated initializer with %<:%>" msgstr "" -#: c/c-parser.c:4833 +#: c/c-parser.c:4835 #, gcc-internal-format msgid "ISO C forbids specifying range of elements to initialize" msgstr "" -#: c/c-parser.c:4845 +#: c/c-parser.c:4847 #, gcc-internal-format msgid "ISO C90 forbids specifying subobject to initialize" msgstr "" -#: c/c-parser.c:4853 +#: c/c-parser.c:4855 #, gcc-internal-format msgid "obsolete use of designated initializer without %<=%>" msgstr "" -#: c/c-parser.c:5034 +#: c/c-parser.c:5036 #, gcc-internal-format msgid "ISO C forbids label declarations" msgstr "" -#: c/c-parser.c:5040 c/c-parser.c:5122 c/gimple-parser.c:162 +#: c/c-parser.c:5042 c/c-parser.c:5124 c/gimple-parser.c:319 #, gcc-internal-format msgid "expected declaration or statement" msgstr "" -#: c/c-parser.c:5073 c/c-parser.c:5101 +#: c/c-parser.c:5075 c/c-parser.c:5103 #, gcc-internal-format msgid "ISO C90 forbids mixed declarations and code" msgstr "" -#: c/c-parser.c:5130 +#: c/c-parser.c:5132 #, gcc-internal-format msgid "expected %<}%> before %" msgstr "" -#: c/c-parser.c:5135 cp/parser.c:11587 +#: c/c-parser.c:5137 cp/parser.c:11648 #, gcc-internal-format msgid "% without a previous %" msgstr "" -#: c/c-parser.c:5152 +#: c/c-parser.c:5154 #, gcc-internal-format msgid "label at end of compound statement" msgstr "" -#: c/c-parser.c:5214 +#: c/c-parser.c:5216 #, gcc-internal-format msgid "expected %<:%> or %<...%>" msgstr "" -#: c/c-parser.c:5266 c/c-parser.c:5583 +#: c/c-parser.c:5268 c/c-parser.c:5585 #, gcc-internal-format msgid "only attribute % can be applied to a null statement" msgstr "" -#: c/c-parser.c:5272 +#: c/c-parser.c:5274 #, gcc-internal-format msgid "" "a label can only be part of a statement and a declaration is not a statement" msgstr "" -#: c/c-parser.c:5499 +#: c/c-parser.c:5501 #, gcc-internal-format msgid "expected identifier or %<*%>" msgstr "" @@ -37443,1366 +37632,1366 @@ msgstr "" #. c_parser_skip_until_found stops at a closing nesting #. delimiter without consuming it, but here we need to consume #. it to proceed further. -#: c/c-parser.c:5600 c/gimple-parser.c:1560 cp/parser.c:11211 +#: c/c-parser.c:5602 c/gimple-parser.c:1901 cp/parser.c:11272 #, gcc-internal-format msgid "expected statement" msgstr "" -#: c/c-parser.c:5707 cp/parser.c:12954 +#: c/c-parser.c:5709 cp/parser.c:13015 #, gcc-internal-format msgid "suggest braces around empty body in an % statement" msgstr "" -#: c/c-parser.c:5749 cp/parser.c:12957 +#: c/c-parser.c:5751 cp/parser.c:13018 #, gcc-internal-format msgid "suggest braces around empty body in an % statement" msgstr "" -#: c/c-parser.c:5883 cp/parser.c:11857 +#: c/c-parser.c:5885 cp/parser.c:11918 #, gcc-internal-format msgid "suggest explicit braces to avoid ambiguous %" msgstr "" -#: c/c-parser.c:6034 +#: c/c-parser.c:6036 #, gcc-internal-format msgid "suggest braces around empty body in % statement" msgstr "" -#: c/c-parser.c:6167 c/c-parser.c:6197 +#: c/c-parser.c:6169 c/c-parser.c:6199 #, gcc-internal-format msgid "multiple iterating variables in fast enumeration" msgstr "" -#: c/c-parser.c:6219 +#: c/c-parser.c:6221 #, gcc-internal-format msgid "invalid iterating variable in fast enumeration" msgstr "" -#: c/c-parser.c:6240 cp/parser.c:12122 +#: c/c-parser.c:6242 cp/parser.c:12183 #, gcc-internal-format msgid "missing loop condition in loop with % pragma" msgstr "" -#: c/c-parser.c:6246 cp/parser.c:12128 +#: c/c-parser.c:6248 cp/parser.c:12189 #, gcc-internal-format msgid "missing loop condition in loop with % pragma" msgstr "" -#: c/c-parser.c:6280 +#: c/c-parser.c:6282 #, gcc-internal-format msgid "missing collection in fast enumeration" msgstr "" -#: c/c-parser.c:6384 c/c-parser.c:6395 c/c-parser.c:6406 +#: c/c-parser.c:6386 c/c-parser.c:6397 c/c-parser.c:6408 #, gcc-internal-format msgid "duplicate asm qualifier %qE" msgstr "" -#: c/c-parser.c:6385 c/c-parser.c:6396 c/c-parser.c:6407 cp/parser.c:19764 -#: cp/parser.c:19775 cp/parser.c:19786 +#: c/c-parser.c:6387 c/c-parser.c:6398 c/c-parser.c:6409 cp/parser.c:19837 +#: cp/parser.c:19853 cp/parser.c:19866 #, gcc-internal-format msgid "first seen here" msgstr "" -#: c/c-parser.c:6416 +#: c/c-parser.c:6418 #, gcc-internal-format msgid "%qE is not an asm qualifier" msgstr "" -#: c/c-parser.c:6459 +#: c/c-parser.c:6461 #, gcc-internal-format msgid "expected %<:%> or %<)%>" msgstr "" -#: c/c-parser.c:6774 +#: c/c-parser.c:6776 #, gcc-internal-format msgid "ISO C forbids omitting the middle term of a ?: expression" msgstr "" #. Location of the binary operator. #. Quiet warning. -#: c/c-parser.c:6982 cp/typeck.c:4581 +#: c/c-parser.c:6984 cp/typeck.c:4592 #, gcc-internal-format msgid "" "division % does not compute the number of array " "elements" msgstr "" -#: c/c-parser.c:6988 cp/typeck.c:4586 +#: c/c-parser.c:6990 cp/typeck.c:4597 #, gcc-internal-format msgid "first % operand was declared here" msgstr "" -#: c/c-parser.c:7206 +#: c/c-parser.c:7208 #, gcc-internal-format msgid "alignment specified for type name in cast" msgstr "" -#: c/c-parser.c:7305 +#: c/c-parser.c:7307 #, gcc-internal-format msgid "traditional C rejects the unary plus operator" msgstr "" -#: c/c-parser.c:7436 +#: c/c-parser.c:7438 #, gcc-internal-format msgid "alignment specified for type name in %" msgstr "" -#: c/c-parser.c:7452 +#: c/c-parser.c:7454 #, gcc-internal-format msgid "% applied to a bit-field" msgstr "" -#: c/c-parser.c:7521 +#: c/c-parser.c:7523 #, gcc-internal-format msgid "alignment specified for type name in %qE" msgstr "" -#: c/c-parser.c:7544 +#: c/c-parser.c:7546 #, gcc-internal-format msgid "ISO C does not allow %<%E (expression)%>" msgstr "" -#: c/c-parser.c:7692 +#: c/c-parser.c:7694 #, gcc-internal-format msgid "cannot take address of %qs" msgstr "" -#: c/c-parser.c:7775 +#: c/c-parser.c:7777 #, gcc-internal-format msgid "ISO C99 does not support %<_Generic%>" msgstr "" -#: c/c-parser.c:7778 +#: c/c-parser.c:7780 #, gcc-internal-format msgid "ISO C90 does not support %<_Generic%>" msgstr "" -#: c/c-parser.c:7846 +#: c/c-parser.c:7848 #, gcc-internal-format msgid "%<_Generic%> association has function type" msgstr "" -#: c/c-parser.c:7849 +#: c/c-parser.c:7851 #, gcc-internal-format msgid "%<_Generic%> association has incomplete type" msgstr "" -#: c/c-parser.c:7853 +#: c/c-parser.c:7855 #, gcc-internal-format msgid "%<_Generic%> association has variable length type" msgstr "" -#: c/c-parser.c:7877 +#: c/c-parser.c:7879 #, gcc-internal-format msgid "duplicate % case in %<_Generic%>" msgstr "" -#: c/c-parser.c:7878 +#: c/c-parser.c:7880 #, gcc-internal-format msgid "original % is here" msgstr "" -#: c/c-parser.c:7886 +#: c/c-parser.c:7888 #, gcc-internal-format msgid "%<_Generic%> specifies two compatible types" msgstr "" -#: c/c-parser.c:7887 +#: c/c-parser.c:7889 #, gcc-internal-format msgid "compatible type is here" msgstr "" -#: c/c-parser.c:7910 +#: c/c-parser.c:7912 #, gcc-internal-format msgid "%<_Generic%> selector matches multiple associations" msgstr "" -#: c/c-parser.c:7912 +#: c/c-parser.c:7914 #, gcc-internal-format msgid "other match is here" msgstr "" -#: c/c-parser.c:7931 +#: c/c-parser.c:7933 #, gcc-internal-format msgid "" "%<_Generic%> selector of type %qT is not compatible with any association" msgstr "" -#: c/c-parser.c:7952 +#: c/c-parser.c:7954 #, gcc-internal-format msgid "argument %u of %<__builtin_tgmath%> is not a function pointer" msgstr "" -#: c/c-parser.c:7960 +#: c/c-parser.c:7962 #, gcc-internal-format msgid "argument %u of %<__builtin_tgmath%> is unprototyped" msgstr "" -#: c/c-parser.c:7966 +#: c/c-parser.c:7968 #, gcc-internal-format msgid "argument %u of %<__builtin_tgmath%> has variable arguments" msgstr "" -#: c/c-parser.c:7982 +#: c/c-parser.c:7984 #, gcc-internal-format msgid "argument %u of %<__builtin_tgmath%> has no arguments" msgstr "" -#: c/c-parser.c:8153 c/c-parser.c:9240 c/c-parser.c:9262 c/gimple-parser.c:1087 -#: c/gimple-parser.c:1093 c/gimple-parser.c:1577 +#: c/c-parser.c:8155 c/c-parser.c:9242 c/c-parser.c:9264 c/gimple-parser.c:1398 +#: c/gimple-parser.c:1404 c/gimple-parser.c:1918 #, gcc-internal-format msgid "expected expression" msgstr "" -#: c/c-parser.c:8174 +#: c/c-parser.c:8176 #, gcc-internal-format msgid "braced-group within expression allowed only inside a function" msgstr "" -#: c/c-parser.c:8188 +#: c/c-parser.c:8190 #, gcc-internal-format msgid "ISO C forbids braced-groups within expressions" msgstr "" -#: c/c-parser.c:8215 +#: c/c-parser.c:8217 #, gcc-internal-format msgid "ISO C does not support %<__FUNCTION__%> predefined identifier" msgstr "" -#: c/c-parser.c:8224 +#: c/c-parser.c:8226 #, gcc-internal-format msgid "ISO C does not support %<__PRETTY_FUNCTION__%> predefined identifier" msgstr "" -#: c/c-parser.c:8233 +#: c/c-parser.c:8235 #, gcc-internal-format msgid "ISO C90 does not support %<__func__%> predefined identifier" msgstr "" -#: c/c-parser.c:8397 +#: c/c-parser.c:8399 #, gcc-internal-format msgid "wrong number of arguments to %<__builtin_choose_expr%>" msgstr "" -#: c/c-parser.c:8413 +#: c/c-parser.c:8415 #, gcc-internal-format msgid "first argument to %<__builtin_choose_expr%> not a constant" msgstr "" -#: c/c-parser.c:8483 c/c-parser.c:8500 c/c-parser.c:8507 +#: c/c-parser.c:8485 c/c-parser.c:8502 c/c-parser.c:8509 #, gcc-internal-format msgid "too few arguments to %<__builtin_tgmath%>" msgstr "" -#: c/c-parser.c:8528 +#: c/c-parser.c:8530 #, gcc-internal-format msgid "argument %u of %<__builtin_tgmath%> has wrong number of arguments" msgstr "" -#: c/c-parser.c:8572 c/c-parser.c:8582 +#: c/c-parser.c:8574 c/c-parser.c:8584 #, gcc-internal-format msgid "" "invalid type-generic return type for argument %u of %<__builtin_tgmath%>" msgstr "" -#: c/c-parser.c:8604 c/c-parser.c:8614 +#: c/c-parser.c:8606 c/c-parser.c:8616 #, gcc-internal-format msgid "" "invalid type-generic type for argument %u of argument %u of " "%<__builtin_tgmath%>" msgstr "" -#: c/c-parser.c:8647 +#: c/c-parser.c:8649 #, gcc-internal-format msgid "function arguments of %<__builtin_tgmath%> all have the same type" msgstr "" -#: c/c-parser.c:8666 +#: c/c-parser.c:8668 #, gcc-internal-format msgid "function arguments of %<__builtin_tgmath%> lack type-generic parameter" msgstr "" -#: c/c-parser.c:8714 +#: c/c-parser.c:8716 #, gcc-internal-format msgid "" "duplicate type-generic parameter type for function argument %u of " "%<__builtin_tgmath%>" msgstr "" -#: c/c-parser.c:8737 +#: c/c-parser.c:8739 #, gcc-internal-format msgid "bad return type for function argument %u of %<__builtin_tgmath%>" msgstr "" -#: c/c-parser.c:8754 +#: c/c-parser.c:8756 #, gcc-internal-format msgid "" "bad type for argument %u of function argument %u of %<__builtin_tgmath%>" msgstr "" -#: c/c-parser.c:8792 +#: c/c-parser.c:8794 #, gcc-internal-format, gfc-internal-format msgid "invalid type of argument %u of type-generic function" msgstr "" -#: c/c-parser.c:8803 +#: c/c-parser.c:8805 #, gcc-internal-format, gfc-internal-format msgid "" "decimal floating-point argument %u to complex-only type-generic function" msgstr "" -#: c/c-parser.c:8811 +#: c/c-parser.c:8813 #, gcc-internal-format, gfc-internal-format msgid "decimal floating-point argument %u to binary-only type-generic function" msgstr "" -#: c/c-parser.c:8819 c/c-parser.c:8849 +#: c/c-parser.c:8821 c/c-parser.c:8851 #, gcc-internal-format msgid "" "both complex and decimal floating-point arguments to type-generic function" msgstr "" -#: c/c-parser.c:8827 c/c-parser.c:8869 +#: c/c-parser.c:8829 c/c-parser.c:8871 #, gcc-internal-format msgid "" "both binary and decimal floating-point arguments to type-generic function" msgstr "" -#: c/c-parser.c:8841 +#: c/c-parser.c:8843 #, gcc-internal-format, gfc-internal-format msgid "complex argument %u to decimal-only type-generic function" msgstr "" -#: c/c-parser.c:8861 +#: c/c-parser.c:8863 #, gcc-internal-format, gfc-internal-format msgid "binary argument %u to decimal-only type-generic function" msgstr "" -#: c/c-parser.c:8967 +#: c/c-parser.c:8969 #, gcc-internal-format msgid "no matching function for type-generic call" msgstr "" -#: c/c-parser.c:9008 +#: c/c-parser.c:9010 #, gcc-internal-format msgid "wrong number of arguments to %<__builtin_call_with_static_chain%>" msgstr "" -#: c/c-parser.c:9021 +#: c/c-parser.c:9023 #, gcc-internal-format msgid "" "first argument to %<__builtin_call_with_static_chain%> must be a call " "expression" msgstr "" -#: c/c-parser.c:9025 +#: c/c-parser.c:9027 #, gcc-internal-format msgid "" "second argument to %<__builtin_call_with_static_chain%> must be a pointer " "type" msgstr "" -#: c/c-parser.c:9051 +#: c/c-parser.c:9053 #, gcc-internal-format msgid "wrong number of arguments to %<__builtin_complex%>" msgstr "" -#: c/c-parser.c:9073 +#: c/c-parser.c:9075 #, gcc-internal-format msgid "%<__builtin_complex%> operand not of real binary floating-point type" msgstr "" -#: c/c-parser.c:9082 +#: c/c-parser.c:9084 #, gcc-internal-format msgid "%<__builtin_complex%> operands of different types" msgstr "" -#: c/c-parser.c:9127 cp/parser.c:7032 +#: c/c-parser.c:9129 cp/parser.c:7042 #, gcc-internal-format msgid "wrong number of arguments to %<__builtin_shuffle%>" msgstr "" -#: c/c-parser.c:9300 +#: c/c-parser.c:9302 #, gcc-internal-format msgid "compound literal has variable size" msgstr "" -#: c/c-parser.c:9311 +#: c/c-parser.c:9313 #, gcc-internal-format msgid "compound literal qualified by address-space qualifier" msgstr "" -#: c/c-parser.c:9315 +#: c/c-parser.c:9317 #, gcc-internal-format msgid "ISO C90 forbids compound literals" msgstr "" -#: c/c-parser.c:9328 +#: c/c-parser.c:9330 #, gcc-internal-format msgid "%<_Alignas%> specifiers cannot reduce alignment of compound literal" msgstr "" -#: c/c-parser.c:9398 +#: c/c-parser.c:9404 #, gcc-internal-format msgid "" "using integer absolute value function %qD when argument is of floating point " "type %qT" msgstr "" -#: c/c-parser.c:9403 +#: c/c-parser.c:9409 #, gcc-internal-format msgid "" "using integer absolute value function %qD when argument is of complex type " "%qT" msgstr "" -#: c/c-parser.c:9411 +#: c/c-parser.c:9417 #, gcc-internal-format msgid "taking the absolute value of unsigned type %qT has no effect" msgstr "" -#: c/c-parser.c:9422 +#: c/c-parser.c:9428 #, gcc-internal-format msgid "" "using floating point absolute value function %qD when argument is of integer " "type %qT" msgstr "" -#: c/c-parser.c:9426 +#: c/c-parser.c:9432 #, gcc-internal-format msgid "" "using floating point absolute value function %qD when argument is of decimal " "floating point type %qT" msgstr "" -#: c/c-parser.c:9431 +#: c/c-parser.c:9437 #, gcc-internal-format msgid "" "using floating point absolute value function %qD when argument is of complex " "type %qT" msgstr "" -#: c/c-parser.c:9444 +#: c/c-parser.c:9450 #, gcc-internal-format msgid "" "using complex absolute value function %qD when argument is of integer type " "%qT" msgstr "" -#: c/c-parser.c:9448 +#: c/c-parser.c:9454 #, gcc-internal-format msgid "" "using complex absolute value function %qD when argument is of floating point " "type %qT" msgstr "" -#: c/c-parser.c:9465 +#: c/c-parser.c:9471 #, gcc-internal-format msgid "" "using decimal floating point absolute value function %qD when argument is of " "integer type %qT" msgstr "" -#: c/c-parser.c:9470 +#: c/c-parser.c:9476 #, gcc-internal-format msgid "" "using decimal floating point absolute value function %qD when argument is of " "floating point type %qT" msgstr "" -#: c/c-parser.c:9475 +#: c/c-parser.c:9481 #, gcc-internal-format msgid "" "using decimal floating point absolute value function %qD when argument is of " "complex type %qT" msgstr "" -#: c/c-parser.c:9501 +#: c/c-parser.c:9507 #, gcc-internal-format msgid "" "absolute value function %qD given an argument of type %qT but has parameter " "of type %qT which may cause truncation of value" msgstr "" -#: c/c-parser.c:9929 +#: c/c-parser.c:9935 #, gcc-internal-format msgid "expected identifier or %<)%>" msgstr "" -#: c/c-parser.c:10025 +#: c/c-parser.c:10031 #, gcc-internal-format msgid "extra semicolon" msgstr "" -#: c/c-parser.c:10273 +#: c/c-parser.c:10279 #, gcc-internal-format msgid "extra semicolon in method definition specified" msgstr "" -#: c/c-parser.c:10405 +#: c/c-parser.c:10411 #, gcc-internal-format msgid "method attributes must be specified at the end only" msgstr "" -#: c/c-parser.c:10425 +#: c/c-parser.c:10431 #, gcc-internal-format msgid "expected %<;%> or %<{%> after method attribute definition" msgstr "" -#: c/c-parser.c:10547 +#: c/c-parser.c:10553 #, gcc-internal-format msgid "objective-c method declaration is expected" msgstr "" -#: c/c-parser.c:10985 +#: c/c-parser.c:10991 #, gcc-internal-format msgid "no type or storage class may be specified here," msgstr "" -#: c/c-parser.c:11077 c/c-parser.c:11134 cp/parser.c:31876 +#: c/c-parser.c:11083 c/c-parser.c:11140 cp/parser.c:32008 #, gcc-internal-format msgid "unknown property attribute" msgstr "" -#: c/c-parser.c:11098 cp/parser.c:31836 +#: c/c-parser.c:11104 cp/parser.c:31968 #, gcc-internal-format msgid "missing %<=%> (after % attribute)" msgstr "" -#: c/c-parser.c:11101 cp/parser.c:31839 +#: c/c-parser.c:11107 cp/parser.c:31971 #, gcc-internal-format msgid "missing %<=%> (after % attribute)" msgstr "" -#: c/c-parser.c:11115 cp/parser.c:31854 +#: c/c-parser.c:11121 cp/parser.c:31986 #, gcc-internal-format msgid "the % attribute may only be specified once" msgstr "" -#: c/c-parser.c:11120 cp/parser.c:31860 +#: c/c-parser.c:11126 cp/parser.c:31992 #, gcc-internal-format msgid "setter name must terminate with %<:%>" msgstr "" -#: c/c-parser.c:11127 cp/parser.c:31868 +#: c/c-parser.c:11133 cp/parser.c:32000 #, gcc-internal-format msgid "the % attribute may only be specified once" msgstr "" -#: c/c-parser.c:11321 cp/parser.c:40650 +#: c/c-parser.c:11327 cp/parser.c:40789 #, gcc-internal-format msgid "" "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a " "non-negative integral constant less than %u" msgstr "" -#: c/c-parser.c:11365 c/c-parser.c:17801 c/c-parser.c:18065 c/c-parser.c:18124 -#: c/c-parser.c:18208 cp/parser.c:37832 cp/parser.c:38131 cp/parser.c:38219 -#: cp/parser.c:38290 cp/parser.c:40697 cp/parser.c:40712 cp/parser.c:40727 -#: cp/parser.c:40743 cp/parser.c:40759 cp/parser.c:40775 cp/parser.c:40802 -#: cp/parser.c:40815 cp/parser.c:40838 cp/parser.c:40851 +#: c/c-parser.c:11371 c/c-parser.c:17815 c/c-parser.c:18079 c/c-parser.c:18138 +#: c/c-parser.c:18222 cp/parser.c:37971 cp/parser.c:38270 cp/parser.c:38358 +#: cp/parser.c:38429 cp/parser.c:40836 cp/parser.c:40851 cp/parser.c:40866 +#: cp/parser.c:40882 cp/parser.c:40898 cp/parser.c:40914 cp/parser.c:40941 +#: cp/parser.c:40954 cp/parser.c:40977 cp/parser.c:40990 #, gcc-internal-format msgid "%<#pragma %s%> may only be used in compound statements" msgstr "" -#: c/c-parser.c:11388 cp/parser.c:40828 +#: c/c-parser.c:11394 cp/parser.c:40967 #, gcc-internal-format msgid "%<#pragma acc routine%> must be at file scope" msgstr "" -#: c/c-parser.c:11475 cp/parser.c:40912 +#: c/c-parser.c:11481 cp/parser.c:41051 #, gcc-internal-format msgid "" "%<#pragma omp section%> may only be used in %<#pragma omp sections%> " "construct" msgstr "" -#: c/c-parser.c:11503 c/c-parser.c:11527 cp/parser.c:40941 cp/parser.c:40974 +#: c/c-parser.c:11509 c/c-parser.c:11533 cp/parser.c:41080 cp/parser.c:41113 #, gcc-internal-format msgid "for, while or do statement expected" msgstr "" -#: c/c-parser.c:11540 cp/parser.c:40687 +#: c/c-parser.c:11546 cp/parser.c:40826 #, gcc-internal-format msgid "%<#pragma GCC pch_preprocess%> must be first" msgstr "" -#: c/c-parser.c:11862 c/c-parser.c:19279 c/c-parser.c:19287 cp/parser.c:32270 -#: cp/parser.c:39798 cp/parser.c:39806 +#: c/c-parser.c:11868 c/c-parser.c:19293 c/c-parser.c:19301 cp/parser.c:32402 +#: cp/parser.c:39937 cp/parser.c:39945 #, gcc-internal-format msgid "too many %qs clauses" msgstr "" -#: c/c-parser.c:11891 +#: c/c-parser.c:11897 #, gcc-internal-format msgid "expression must be integral" msgstr "" -#: c/c-parser.c:12113 c/c-parser.c:12125 +#: c/c-parser.c:12119 c/c-parser.c:12131 #, gcc-internal-format msgid "expected %<)%> or %<,%>" msgstr "" -#: c/c-parser.c:12260 c/c-parser.c:19572 +#: c/c-parser.c:12266 c/c-parser.c:19586 #, gcc-internal-format msgid "%qD is not a variable" msgstr "" -#: c/c-parser.c:12264 cp/semantics.c:7186 +#: c/c-parser.c:12270 cp/semantics.c:7235 #, gcc-internal-format msgid "%qD is not a pointer variable" msgstr "" -#: c/c-parser.c:12306 cp/parser.c:32909 +#: c/c-parser.c:12312 cp/parser.c:33048 #, gcc-internal-format msgid "collapse argument needs positive constant integer expression" msgstr "" -#: c/c-parser.c:12383 cp/parser.c:32973 +#: c/c-parser.c:12389 cp/parser.c:33112 #, gcc-internal-format msgid "expected % or %" msgstr "" -#: c/c-parser.c:12385 cp/parser.c:32975 +#: c/c-parser.c:12391 cp/parser.c:33114 #, gcc-internal-format msgid "expected % or %" msgstr "" -#: c/c-parser.c:12505 cp/parser.c:33086 +#: c/c-parser.c:12511 cp/parser.c:33225 #, gcc-internal-format msgid "expected %, %, % or %" msgstr "" -#: c/c-parser.c:12525 c/c-parser.c:18117 c/c-parser.c:18201 cp/parser.c:33104 -#: cp/parser.c:38123 cp/parser.c:38211 +#: c/c-parser.c:12531 c/c-parser.c:18131 c/c-parser.c:18215 cp/parser.c:33243 +#: cp/parser.c:38262 cp/parser.c:38350 #, gcc-internal-format msgid "expected %" msgstr "" -#: c/c-parser.c:12578 cp/parser.c:33159 +#: c/c-parser.c:12584 cp/parser.c:33298 #, gcc-internal-format msgid "too many % clauses with %qs modifier" msgstr "" -#: c/c-parser.c:12585 cp/parser.c:33166 +#: c/c-parser.c:12591 cp/parser.c:33305 #, gcc-internal-format msgid "too many % clauses" msgstr "" -#: c/c-parser.c:12587 cp/parser.c:33168 +#: c/c-parser.c:12593 cp/parser.c:33307 #, gcc-internal-format msgid "too many % clauses without modifier" msgstr "" -#: c/c-parser.c:12593 cp/parser.c:33174 +#: c/c-parser.c:12599 cp/parser.c:33313 #, gcc-internal-format msgid "" "if any % clause has modifier, then all % clauses have to use " "modifier" msgstr "" -#: c/c-parser.c:12698 c/c-parser.c:12744 c/c-parser.c:12790 c/c-parser.c:12836 -#: c/c-parser.c:13243 c/c-parser.c:13325 c/c-parser.c:13776 c/c-parser.c:13904 -#: c/c-parser.c:13949 c/c-parser.c:14625 +#: c/c-parser.c:12704 c/c-parser.c:12750 c/c-parser.c:12796 c/c-parser.c:12842 +#: c/c-parser.c:13249 c/c-parser.c:13331 c/c-parser.c:13790 c/c-parser.c:13918 +#: c/c-parser.c:13963 c/c-parser.c:14639 #, gcc-internal-format msgid "expected integer expression" msgstr "" -#: c/c-parser.c:12709 +#: c/c-parser.c:12715 #, gcc-internal-format msgid "% value must be positive" msgstr "" -#: c/c-parser.c:12755 +#: c/c-parser.c:12761 #, gcc-internal-format msgid "% value must be positive" msgstr "" -#: c/c-parser.c:12801 cp/semantics.c:7381 +#: c/c-parser.c:12807 cp/semantics.c:7430 #, gcc-internal-format msgid "% value must be positive" msgstr "" -#: c/c-parser.c:12848 cp/semantics.c:7411 +#: c/c-parser.c:12854 cp/semantics.c:7460 #, gcc-internal-format msgid "% value must be non-negative" msgstr "" -#: c/c-parser.c:12884 +#: c/c-parser.c:12890 #, gcc-internal-format msgid "expected constant integer expression" msgstr "" -#: c/c-parser.c:12923 cp/parser.c:33399 +#: c/c-parser.c:12929 cp/parser.c:33538 #, gcc-internal-format msgid "" "expected %, %, %, %, %, % " "or %" msgstr "" -#: c/c-parser.c:12984 cp/parser.c:33464 +#: c/c-parser.c:12990 cp/parser.c:33603 #, gcc-internal-format msgid "expected %, % or %" msgstr "" -#: c/c-parser.c:13050 cp/parser.c:33533 +#: c/c-parser.c:13056 cp/parser.c:33672 #, gcc-internal-format msgid "too many % clauses with %qs category" msgstr "" -#: c/c-parser.c:13053 cp/parser.c:33536 +#: c/c-parser.c:13059 cp/parser.c:33675 #, gcc-internal-format msgid "too many % clauses with unspecified category" msgstr "" -#: c/c-parser.c:13117 cp/semantics.c:6576 +#: c/c-parser.c:13123 cp/semantics.c:6625 #, gcc-internal-format msgid "%qs expression must be integral" msgstr "" -#: c/c-parser.c:13129 c/c-parser.c:13252 cp/semantics.c:6608 +#: c/c-parser.c:13135 c/c-parser.c:13258 cp/semantics.c:6657 #, gcc-internal-format msgid "%qs value must be positive" msgstr "" -#: c/c-parser.c:13191 cp/parser.c:32687 +#: c/c-parser.c:13197 cp/parser.c:32820 #, gcc-internal-format msgid "too many % arguments" msgstr "" -#: c/c-parser.c:13225 cp/parser.c:32720 +#: c/c-parser.c:13231 cp/parser.c:32853 #, gcc-internal-format msgid "unexpected argument" msgstr "" -#: c/c-parser.c:13392 cp/semantics.c:7520 +#: c/c-parser.c:13398 cp/semantics.c:7569 #, gcc-internal-format msgid "% argument needs positive integral constant" msgstr "" -#: c/c-parser.c:13458 cp/parser.c:33590 +#: c/c-parser.c:13472 cp/parser.c:33729 #, gcc-internal-format msgid "ordered argument needs positive constant integer expression" msgstr "" -#: c/c-parser.c:13531 cp/parser.c:33654 +#: c/c-parser.c:13545 cp/parser.c:33793 #, gcc-internal-format msgid "% modifier on % clause not supported yet" msgstr "" -#: c/c-parser.c:13587 c/c-parser.c:18855 cp/parser.c:39466 +#: c/c-parser.c:13601 c/c-parser.c:18869 cp/parser.c:39605 #, gcc-internal-format msgid "" "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or " "identifier" msgstr "" -#: c/c-parser.c:13700 cp/parser.c:33845 +#: c/c-parser.c:13714 cp/parser.c:33984 #, gcc-internal-format msgid "both % and % modifiers specified" msgstr "" -#: c/c-parser.c:13754 cp/parser.c:33861 +#: c/c-parser.c:13768 cp/parser.c:34000 #, gcc-internal-format msgid "schedule % does not take a % parameter" msgstr "" -#: c/c-parser.c:13758 cp/parser.c:33864 +#: c/c-parser.c:13772 cp/parser.c:34003 #, gcc-internal-format msgid "schedule % does not take a % parameter" msgstr "" -#: c/c-parser.c:13770 cp/semantics.c:6643 +#: c/c-parser.c:13784 cp/semantics.c:6692 #, gcc-internal-format msgid "chunk size value must be positive" msgstr "" -#: c/c-parser.c:13793 cp/parser.c:33884 +#: c/c-parser.c:13807 cp/parser.c:34023 #, gcc-internal-format msgid "invalid schedule kind" msgstr "" -#: c/c-parser.c:13914 +#: c/c-parser.c:13928 #, gcc-internal-format msgid "% value must be positive" msgstr "" -#: c/c-parser.c:13959 cp/semantics.c:6737 +#: c/c-parser.c:13973 cp/semantics.c:6786 #, gcc-internal-format msgid "% value must be positive" msgstr "" -#: c/c-parser.c:14004 cp/semantics.c:6856 +#: c/c-parser.c:14018 cp/semantics.c:6905 #, gcc-internal-format msgid "" "% clause alignment expression must be positive constant integer " "expression" msgstr "" -#: c/c-parser.c:14067 +#: c/c-parser.c:14081 #, gcc-internal-format msgid "% clause step expression must be integral" msgstr "" -#: c/c-parser.c:14117 +#: c/c-parser.c:14131 #, gcc-internal-format msgid "" "% clause expression must be positive constant integer expression" msgstr "" -#: c/c-parser.c:14156 +#: c/c-parser.c:14170 #, gcc-internal-format msgid "" "% clause expression must be positive constant integer expression" msgstr "" -#: c/c-parser.c:14424 cp/parser.c:34526 +#: c/c-parser.c:14438 cp/parser.c:34665 #, gcc-internal-format msgid "% modifier incompatible with %qs" msgstr "" -#: c/c-parser.c:14471 cp/parser.c:34574 cp/parser.c:34801 +#: c/c-parser.c:14485 cp/parser.c:34713 cp/parser.c:34940 #, gcc-internal-format msgid "invalid depend kind" msgstr "" -#: c/c-parser.c:14558 cp/parser.c:34649 +#: c/c-parser.c:14572 cp/parser.c:34788 #, gcc-internal-format msgid "invalid map kind" msgstr "" -#: c/c-parser.c:14656 cp/parser.c:34748 +#: c/c-parser.c:14670 cp/parser.c:34887 #, gcc-internal-format msgid "invalid dist_schedule kind" msgstr "" -#: c/c-parser.c:14728 +#: c/c-parser.c:14742 #, gcc-internal-format msgid "invalid proc_bind kind" msgstr "" -#: c/c-parser.c:14940 cp/parser.c:35020 +#: c/c-parser.c:14954 cp/parser.c:35159 #, gcc-internal-format msgid "expected %<#pragma acc%> clause" msgstr "" -#: c/c-parser.c:14951 c/c-parser.c:15244 cp/parser.c:35031 cp/parser.c:35360 +#: c/c-parser.c:14965 c/c-parser.c:15258 cp/parser.c:35170 cp/parser.c:35499 #, gcc-internal-format msgid "%qs is not valid for %qs" msgstr "" -#: c/c-parser.c:15113 cp/parser.c:35227 +#: c/c-parser.c:15127 cp/parser.c:35366 #, gcc-internal-format msgid "%qs must be the first clause of %qs" msgstr "" -#: c/c-parser.c:15233 cp/parser.c:35349 +#: c/c-parser.c:15247 cp/parser.c:35488 #, gcc-internal-format msgid "expected %<#pragma omp%> clause" msgstr "" -#: c/c-parser.c:15363 cp/parser.c:38632 +#: c/c-parser.c:15377 cp/parser.c:38771 #, gcc-internal-format msgid "no valid clauses specified in %<#pragma acc declare%>" msgstr "" -#: c/c-parser.c:15373 cp/parser.c:38642 +#: c/c-parser.c:15387 cp/parser.c:38781 #, gcc-internal-format msgid "array section in %<#pragma acc declare%>" msgstr "" -#: c/c-parser.c:15393 cp/parser.c:38662 +#: c/c-parser.c:15407 cp/parser.c:38801 #, gcc-internal-format msgid "%qD must be a global variable in %<#pragma acc declare link%>" msgstr "" -#: c/c-parser.c:15404 cp/parser.c:38673 +#: c/c-parser.c:15418 cp/parser.c:38812 #, gcc-internal-format msgid "invalid OpenACC clause at file scope" msgstr "" -#: c/c-parser.c:15411 cp/parser.c:38680 +#: c/c-parser.c:15425 cp/parser.c:38819 #, gcc-internal-format msgid "invalid use of % variable %qD in %<#pragma acc declare%>" msgstr "" -#: c/c-parser.c:15419 cp/parser.c:38688 +#: c/c-parser.c:15433 cp/parser.c:38827 #, gcc-internal-format msgid "invalid use of % variable %qD in %<#pragma acc declare%>" msgstr "" -#: c/c-parser.c:15431 cp/parser.c:38700 +#: c/c-parser.c:15445 cp/parser.c:38839 #, gcc-internal-format msgid "variable %qD used more than once with %<#pragma acc declare%>" msgstr "" -#: c/c-parser.c:15522 cp/parser.c:38785 +#: c/c-parser.c:15536 cp/parser.c:38924 #, gcc-internal-format msgid "expected % after %<#pragma acc %s%>" msgstr "" -#: c/c-parser.c:15538 cp/parser.c:38802 +#: c/c-parser.c:15552 cp/parser.c:38941 #, gcc-internal-format msgid "%<#pragma acc %s data%> has no data movement clause" msgstr "" -#: c/c-parser.c:15756 cp/parser.c:2968 +#: c/c-parser.c:15770 cp/parser.c:2968 #, gcc-internal-format msgid "%qE has not been declared" msgstr "" -#: c/c-parser.c:15760 +#: c/c-parser.c:15774 #, gcc-internal-format msgid "expected function name" msgstr "" -#: c/c-parser.c:15775 cp/parser.c:40038 +#: c/c-parser.c:15789 cp/parser.c:40177 #, gcc-internal-format msgid "%qD does not refer to a function" msgstr "" -#: c/c-parser.c:15795 c/c-parser.c:15843 cp/parser.c:1383 +#: c/c-parser.c:15809 c/c-parser.c:15857 cp/parser.c:1383 #, gcc-internal-format msgid "" "%<#pragma acc routine%> not immediately followed by function declaration or " "definition" msgstr "" -#: c/c-parser.c:15835 cp/parser.c:40092 cp/parser.c:40134 +#: c/c-parser.c:15849 cp/parser.c:40231 cp/parser.c:40273 #, gcc-internal-format msgid "" "%<#pragma acc routine%> not immediately followed by a single function " "declaration or definition" msgstr "" -#: c/c-parser.c:15852 cp/parser.c:40148 +#: c/c-parser.c:15866 cp/parser.c:40287 #, gcc-internal-format msgid "%<#pragma acc routine%> already applied to %qD" msgstr "" -#: c/c-parser.c:15861 cp/parser.c:40157 +#: c/c-parser.c:15875 cp/parser.c:40296 #, gcc-internal-format msgid "%<#pragma acc routine%> must be applied before use" msgstr "" -#: c/c-parser.c:15862 cp/parser.c:40158 +#: c/c-parser.c:15876 cp/parser.c:40297 #, gcc-internal-format msgid "%<#pragma acc routine%> must be applied before definition" msgstr "" -#: c/c-parser.c:15905 cp/parser.c:38973 +#: c/c-parser.c:15919 cp/parser.c:39112 #, gcc-internal-format msgid "" "%<#pragma acc update%> must contain at least one % or % or " "% clause" msgstr "" -#: c/c-parser.c:16057 cp/parser.c:35526 +#: c/c-parser.c:16071 cp/parser.c:35665 #, gcc-internal-format msgid "" "expected %, %, %, %, %, %, %, % or % clause" msgstr "" -#: c/c-parser.c:16066 cp/parser.c:35535 +#: c/c-parser.c:16080 cp/parser.c:35674 #, gcc-internal-format msgid "too many atomic clauses" msgstr "" -#: c/c-parser.c:16073 cp/parser.c:35542 +#: c/c-parser.c:16087 cp/parser.c:35681 #, gcc-internal-format msgid "too many memory order clauses" msgstr "" -#: c/c-parser.c:16128 cp/parser.c:35597 +#: c/c-parser.c:16142 cp/parser.c:35736 #, gcc-internal-format msgid "" "%<#pragma omp atomic read%> incompatible with % or % " "clauses" msgstr "" -#: c/c-parser.c:16137 cp/parser.c:35606 +#: c/c-parser.c:16151 cp/parser.c:35745 #, gcc-internal-format msgid "" "%<#pragma omp atomic write%> incompatible with % or % " "clauses" msgstr "" -#: c/c-parser.c:16146 cp/parser.c:35615 +#: c/c-parser.c:16160 cp/parser.c:35754 #, gcc-internal-format msgid "" "%<#pragma omp atomic update%> incompatible with % or % " "clauses" msgstr "" -#: c/c-parser.c:16412 cp/parser.c:35820 cp/parser.c:35846 +#: c/c-parser.c:16426 cp/parser.c:35959 cp/parser.c:35985 #, gcc-internal-format msgid "invalid form of %<#pragma omp atomic%>" msgstr "" -#: c/c-parser.c:16416 cp/parser.c:35877 cp/parser.c:35893 +#: c/c-parser.c:16430 cp/parser.c:36016 cp/parser.c:36032 #, gcc-internal-format msgid "invalid operator for %<#pragma omp atomic%>" msgstr "" -#: c/c-parser.c:16465 cp/semantics.c:8902 cp/semantics.c:8912 +#: c/c-parser.c:16479 cp/semantics.c:8951 cp/semantics.c:8961 #, gcc-internal-format msgid "" "%<#pragma omp atomic capture%> uses two different expressions for memory" msgstr "" -#: c/c-parser.c:16534 c/c-parser.c:16691 +#: c/c-parser.c:16548 c/c-parser.c:16705 #, gcc-internal-format msgid "expected %<(%> or end of line" msgstr "" -#: c/c-parser.c:16574 cp/semantics.c:8973 +#: c/c-parser.c:16588 cp/semantics.c:9022 #, gcc-internal-format msgid "% expression is not lvalue expression" msgstr "" -#: c/c-parser.c:16631 cp/parser.c:36078 +#: c/c-parser.c:16645 cp/parser.c:36217 #, gcc-internal-format msgid "expected %, %, % or %" msgstr "" -#: c/c-parser.c:16643 cp/parser.c:36094 +#: c/c-parser.c:16657 cp/parser.c:36233 #, gcc-internal-format msgid "expected %, % or % clause" msgstr "" -#: c/c-parser.c:16679 cp/parser.c:36127 +#: c/c-parser.c:16693 cp/parser.c:36266 #, gcc-internal-format msgid "expected %, % or %" msgstr "" -#: c/c-parser.c:16686 cp/parser.c:36134 +#: c/c-parser.c:16700 cp/parser.c:36273 #, gcc-internal-format msgid "% list specified together with memory order clause" msgstr "" -#: c/c-parser.c:16735 cp/parser.c:36734 +#: c/c-parser.c:16749 cp/parser.c:36873 #, gcc-internal-format msgid "% clause parameter is less than %" msgstr "" -#: c/c-parser.c:16746 cp/parser.c:36745 +#: c/c-parser.c:16760 cp/parser.c:36884 #, gcc-internal-format msgid "" "% clause may not be specified together with % clause with " "a parameter" msgstr "" -#: c/c-parser.c:16764 cp/parser.c:36773 +#: c/c-parser.c:16778 cp/parser.c:36912 #, gcc-internal-format msgid "for statement expected" msgstr "" -#: c/c-parser.c:16834 cp/semantics.c:8507 cp/semantics.c:8598 +#: c/c-parser.c:16848 cp/semantics.c:8556 cp/semantics.c:8647 #, gcc-internal-format msgid "expected iteration declaration or initialization" msgstr "" -#: c/c-parser.c:16926 +#: c/c-parser.c:16940 #, gcc-internal-format msgid "not enough perfectly nested loops" msgstr "" -#: c/c-parser.c:16982 cp/parser.c:37084 +#: c/c-parser.c:16996 cp/parser.c:37223 #, gcc-internal-format msgid "collapsed loops not perfectly nested" msgstr "" -#: c/c-parser.c:17029 cp/parser.c:36882 cp/parser.c:36924 cp/pt.c:16615 +#: c/c-parser.c:17043 cp/parser.c:37021 cp/parser.c:37063 cp/pt.c:16686 #, gcc-internal-format msgid "iteration variable %qD should not be firstprivate" msgstr "" -#: c/c-parser.c:17122 cp/parser.c:37159 +#: c/c-parser.c:17136 cp/parser.c:37298 #, gcc-internal-format msgid "% clause with parameter may not be specified on %qs construct" msgstr "" -#: c/c-parser.c:17334 cp/parser.c:37375 +#: c/c-parser.c:17348 cp/parser.c:37514 #, gcc-internal-format msgid "" "%<#pragma omp ordered%> with % clause may only be used in compound " "statements" msgstr "" -#: c/c-parser.c:17542 cp/parser.c:37574 +#: c/c-parser.c:17556 cp/parser.c:37713 #, gcc-internal-format msgid "expected % after %qs" msgstr "" -#: c/c-parser.c:17792 cp/parser.c:37823 +#: c/c-parser.c:17806 cp/parser.c:37962 #, gcc-internal-format msgid "expected %" msgstr "" -#: c/c-parser.c:18016 cp/parser.c:38063 +#: c/c-parser.c:18030 cp/parser.c:38202 #, gcc-internal-format msgid "" "%<#pragma omp target data%> with map-type other than %, %, " "% or % on % clause" msgstr "" -#: c/c-parser.c:18031 cp/parser.c:38078 +#: c/c-parser.c:18045 cp/parser.c:38217 #, gcc-internal-format msgid "" "%<#pragma omp target data%> must contain at least one % or " "% clause" msgstr "" -#: c/c-parser.c:18078 cp/parser.c:38303 +#: c/c-parser.c:18092 cp/parser.c:38442 #, gcc-internal-format msgid "" "%<#pragma omp target update%> must contain at least one % or % " "clauses" msgstr "" -#: c/c-parser.c:18150 cp/parser.c:38158 +#: c/c-parser.c:18164 cp/parser.c:38297 #, gcc-internal-format msgid "" "%<#pragma omp target enter data%> with map-type other than % or % on % clause" msgstr "" -#: c/c-parser.c:18162 cp/parser.c:38170 +#: c/c-parser.c:18176 cp/parser.c:38309 #, gcc-internal-format msgid "" "%<#pragma omp target enter data%> must contain at least one % clause" msgstr "" -#: c/c-parser.c:18236 cp/parser.c:38247 +#: c/c-parser.c:18250 cp/parser.c:38386 #, gcc-internal-format msgid "" "%<#pragma omp target exit data%> with map-type other than %, % or % on % clause" msgstr "" -#: c/c-parser.c:18249 cp/parser.c:38260 +#: c/c-parser.c:18263 cp/parser.c:38399 #, gcc-internal-format msgid "" "%<#pragma omp target exit data%> must contain at least one % clause" msgstr "" -#: c/c-parser.c:18468 cp/parser.c:38517 +#: c/c-parser.c:18482 cp/parser.c:38656 #, gcc-internal-format msgid "" "%<#pragma omp target%> with map-type other than %, %, % " "or % on % clause" msgstr "" -#: c/c-parser.c:18518 +#: c/c-parser.c:18532 #, gcc-internal-format msgid "" "%<#pragma omp declare simd%> must be followed by function declaration or " "definition or another %<#pragma omp declare simd%>" msgstr "" -#: c/c-parser.c:18568 c/c-parser.c:18595 +#: c/c-parser.c:18582 c/c-parser.c:18609 #, gcc-internal-format msgid "" "%<#pragma omp declare simd%> must be followed by function declaration or " "definition" msgstr "" -#: c/c-parser.c:18617 +#: c/c-parser.c:18631 #, gcc-internal-format msgid "" "%<#pragma omp declare simd%> not immediately followed by a function " "declaration or definition" msgstr "" -#: c/c-parser.c:18625 cp/parser.c:39094 +#: c/c-parser.c:18639 cp/parser.c:39233 #, gcc-internal-format msgid "" "%<#pragma omp declare simd%> not immediately followed by a single function " "declaration or definition" msgstr "" -#: c/c-parser.c:18704 cp/parser.c:39164 +#: c/c-parser.c:18718 cp/parser.c:39303 #, gcc-internal-format msgid "" "%<#pragma omp declare target%> with clauses in between %<#pragma omp declare " "target%> without clauses and %<#pragma omp end declare target%>" msgstr "" -#: c/c-parser.c:18723 cp/parser.c:39183 +#: c/c-parser.c:18737 cp/parser.c:39322 #, gcc-internal-format msgid "%qD specified both in declare target % and % clauses" msgstr "" -#: c/c-parser.c:18764 cp/parser.c:39230 +#: c/c-parser.c:18778 cp/parser.c:39369 #, gcc-internal-format msgid "expected %" msgstr "" -#: c/c-parser.c:18771 cp/parser.c:39237 +#: c/c-parser.c:18785 cp/parser.c:39376 #, gcc-internal-format msgid "expected %" msgstr "" -#: c/c-parser.c:18777 cp/parser.c:39244 +#: c/c-parser.c:18791 cp/parser.c:39383 #, gcc-internal-format msgid "" "%<#pragma omp end declare target%> without corresponding %<#pragma omp " "declare target%>" msgstr "" -#: c/c-parser.c:18805 +#: c/c-parser.c:18819 #, gcc-internal-format msgid "%<#pragma omp declare reduction%> not at file or block scope" msgstr "" -#: c/c-parser.c:18882 +#: c/c-parser.c:18896 #, gcc-internal-format msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>" msgstr "" -#: c/c-parser.c:18886 +#: c/c-parser.c:18900 #, gcc-internal-format msgid "function or array type in %<#pragma omp declare reduction%>" msgstr "" -#: c/c-parser.c:18889 +#: c/c-parser.c:18903 #, gcc-internal-format msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>" msgstr "" -#: c/c-parser.c:18892 +#: c/c-parser.c:18906 #, gcc-internal-format msgid "" "const, volatile or restrict qualified type in %<#pragma omp declare reduction" "%>" msgstr "" -#: c/c-parser.c:18900 +#: c/c-parser.c:18914 #, gcc-internal-format msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT" msgstr "" -#: c/c-parser.c:18909 +#: c/c-parser.c:18923 #, gcc-internal-format msgid "previous %<#pragma omp declare reduction%>" msgstr "" -#: c/c-parser.c:19026 +#: c/c-parser.c:19040 #, gcc-internal-format msgid "expected % or function-name" msgstr "" -#: c/c-parser.c:19037 +#: c/c-parser.c:19051 #, gcc-internal-format msgid "expected function-name %<(%>" msgstr "" -#: c/c-parser.c:19056 +#: c/c-parser.c:19070 #, gcc-internal-format msgid "one of the initializer call arguments should be %<&omp_priv%>" msgstr "" -#: c/c-parser.c:19177 cp/parser.c:39691 +#: c/c-parser.c:19191 cp/parser.c:39830 #, gcc-internal-format msgid "expected % or % or %" msgstr "" -#: c/c-parser.c:19241 cp/parser.c:39754 +#: c/c-parser.c:19255 cp/parser.c:39893 #, gcc-internal-format msgid "expected %, % or %" msgstr "" -#: c/c-parser.c:19261 cp/parser.c:39780 +#: c/c-parser.c:19275 cp/parser.c:39919 #, gcc-internal-format msgid "" "expected %, %, %, % or % clause" msgstr "" -#: c/c-parser.c:19270 cp/parser.c:39789 +#: c/c-parser.c:19284 cp/parser.c:39928 #, gcc-internal-format msgid "%qs clause on % directive not supported yet" msgstr "" -#: c/c-parser.c:19282 cp/parser.c:39801 +#: c/c-parser.c:19296 cp/parser.c:39940 #, gcc-internal-format msgid "" "%qs clause used lexically after first target construct or offloading API" msgstr "" -#: c/c-parser.c:19294 cp/parser.c:39813 +#: c/c-parser.c:19308 cp/parser.c:39952 #, gcc-internal-format msgid "" "more than one % clause in a single compilation " "unit" msgstr "" -#: c/c-parser.c:19303 cp/parser.c:39822 +#: c/c-parser.c:19317 cp/parser.c:39961 #, gcc-internal-format msgid "" "% clause used lexically after first % " "construct without memory order clause" msgstr "" -#: c/c-parser.c:19317 cp/parser.c:39836 +#: c/c-parser.c:19331 cp/parser.c:39975 #, gcc-internal-format msgid "% requires at least one clause" msgstr "" -#: c/c-parser.c:19336 +#: c/c-parser.c:19350 #, gcc-internal-format msgid "zero sized type %qT in % clause" msgstr "" -#: c/c-parser.c:19342 +#: c/c-parser.c:19356 #, gcc-internal-format msgid "variable sized type %qT in % clause" msgstr "" -#: c/c-parser.c:19574 cp/semantics.c:7968 +#: c/c-parser.c:19588 cp/semantics.c:8017 #, gcc-internal-format msgid "%qE declared % after first use" msgstr "" -#: c/c-parser.c:19576 cp/semantics.c:7970 +#: c/c-parser.c:19590 cp/semantics.c:8019 #, gcc-internal-format msgid "automatic variable %qE cannot be %" msgstr "" -#: c/c-parser.c:19580 cp/semantics.c:7972 +#: c/c-parser.c:19594 cp/semantics.c:8021 #, gcc-internal-format msgid "% %qE has incomplete type" msgstr "" -#: c/c-parser.c:19780 cp/parser.c:40541 +#: c/c-parser.c:19794 cp/parser.c:40680 #, gcc-internal-format msgid "%<__transaction_cancel%> without transactional memory support enabled" msgstr "" -#: c/c-parser.c:19786 cp/parser.c:40547 +#: c/c-parser.c:19800 cp/parser.c:40686 #, gcc-internal-format msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>" msgstr "" -#: c/c-parser.c:19795 cp/parser.c:40556 +#: c/c-parser.c:19809 cp/parser.c:40695 #, gcc-internal-format msgid "" "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>" msgstr "" -#: c/c-parser.c:19797 cp/parser.c:40559 +#: c/c-parser.c:19811 cp/parser.c:40698 #, gcc-internal-format msgid " or a % function" msgstr "" -#: c/c-parser.c:19803 cp/parser.c:40565 +#: c/c-parser.c:19817 cp/parser.c:40704 #, gcc-internal-format msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>" msgstr "" -#: c/c-parser.c:19884 +#: c/c-parser.c:19898 #, gcc-internal-format msgid "no closing brace" msgstr "" @@ -38812,7 +39001,7 @@ msgstr "" msgid "%qD has an incomplete type %qT" msgstr "" -#: c/c-typeck.c:238 c/c-typeck.c:10393 c/c-typeck.c:10435 cp/call.c:4246 +#: c/c-typeck.c:238 c/c-typeck.c:10391 c/c-typeck.c:10433 cp/call.c:4319 #, gcc-internal-format msgid "invalid use of void expression" msgstr "" @@ -38888,12 +39077,12 @@ msgstr "" msgid "converting an array compound literal to a pointer is ill-formed in C++" msgstr "" -#: c/c-typeck.c:2423 c/c-typeck.c:8986 +#: c/c-typeck.c:2423 c/c-typeck.c:8984 #, gcc-internal-format msgid "%qT has no member named %qE; did you mean %qE?" msgstr "" -#: c/c-typeck.c:2427 c/c-typeck.c:8990 +#: c/c-typeck.c:2427 c/c-typeck.c:8988 #, gcc-internal-format msgid "%qT has no member named %qE" msgstr "" @@ -38933,7 +39122,7 @@ msgstr "" msgid "subscripted value is neither array nor pointer nor vector" msgstr "" -#: c/c-typeck.c:2628 cp/typeck.c:3412 cp/typeck.c:3501 +#: c/c-typeck.c:2628 cp/typeck.c:3419 cp/typeck.c:3508 #, gcc-internal-format msgid "array subscript is not an integer" msgstr "" @@ -39069,2334 +39258,2375 @@ msgstr "" msgid "too many arguments to built-in function %qE expecting %d" msgstr "" -#: c/c-typeck.c:3587 +#: c/c-typeck.c:3585 #, gcc-internal-format msgid "implicit conversion from %qT to %qT when passing argument to function" msgstr "" -#: c/c-typeck.c:3655 +#: c/c-typeck.c:3653 #, gcc-internal-format msgid "too few arguments to built-in function %qE expecting %u" msgstr "" -#: c/c-typeck.c:3830 c/c-typeck.c:3858 cp/typeck.c:4867 cp/typeck.c:5128 +#: c/c-typeck.c:3828 c/c-typeck.c:3856 cp/typeck.c:4878 cp/typeck.c:5139 #, gcc-internal-format msgid "comparison with string literal results in unspecified behavior" msgstr "" -#: c/c-typeck.c:3838 c/c-typeck.c:3849 cp/typeck.c:4893 cp/typeck.c:4916 +#: c/c-typeck.c:3836 c/c-typeck.c:3847 cp/typeck.c:4904 cp/typeck.c:4927 #, gcc-internal-format msgid "comparison between pointer and zero character constant" msgstr "" -#: c/c-typeck.c:3841 c/c-typeck.c:3852 cp/typeck.c:4896 cp/typeck.c:4919 +#: c/c-typeck.c:3839 c/c-typeck.c:3850 cp/typeck.c:4907 cp/typeck.c:4930 #, gcc-internal-format msgid "did you mean to dereference the pointer?" msgstr "" -#: c/c-typeck.c:3872 +#: c/c-typeck.c:3870 #, gcc-internal-format msgid "comparison between %qT and %qT" msgstr "" -#: c/c-typeck.c:3922 +#: c/c-typeck.c:3920 #, gcc-internal-format msgid "pointer of type % used in subtraction" msgstr "" -#: c/c-typeck.c:3925 +#: c/c-typeck.c:3923 #, gcc-internal-format msgid "pointer to a function used in subtraction" msgstr "" -#: c/c-typeck.c:3960 +#: c/c-typeck.c:3958 #, gcc-internal-format msgid "arithmetic on pointer to an incomplete type" msgstr "" -#: c/c-typeck.c:3965 cp/typeck.c:5695 +#: c/c-typeck.c:3963 cp/typeck.c:5706 #, gcc-internal-format msgid "arithmetic on pointer to an empty aggregate" msgstr "" -#: c/c-typeck.c:4398 +#: c/c-typeck.c:4396 #, gcc-internal-format msgid "%<~%> on a boolean expression" msgstr "" -#: c/c-typeck.c:4402 +#: c/c-typeck.c:4400 #, gcc-internal-format msgid "did you mean to use logical not?" msgstr "" -#: c/c-typeck.c:4412 +#: c/c-typeck.c:4410 #, gcc-internal-format msgid "ISO C does not support %<~%> for complex conjugation" msgstr "" -#: c/c-typeck.c:4436 +#: c/c-typeck.c:4434 #, gcc-internal-format msgid "wrong type argument to absu" msgstr "" -#: c/c-typeck.c:4461 +#: c/c-typeck.c:4459 #, gcc-internal-format msgid "wrong type argument to unary exclamation mark" msgstr "" -#: c/c-typeck.c:4519 +#: c/c-typeck.c:4517 #, gcc-internal-format msgid "increment of enumeration value is invalid in C++" msgstr "" -#: c/c-typeck.c:4522 +#: c/c-typeck.c:4520 #, gcc-internal-format msgid "decrement of enumeration value is invalid in C++" msgstr "" -#: c/c-typeck.c:4529 +#: c/c-typeck.c:4527 #, gcc-internal-format msgid "increment of a boolean expression" msgstr "" -#: c/c-typeck.c:4532 +#: c/c-typeck.c:4530 #, gcc-internal-format msgid "decrement of a boolean expression" msgstr "" -#: c/c-typeck.c:4548 +#: c/c-typeck.c:4546 #, gcc-internal-format msgid "ISO C does not support %<++%> and %<--%> on complex types" msgstr "" -#: c/c-typeck.c:4573 c/c-typeck.c:4607 +#: c/c-typeck.c:4571 c/c-typeck.c:4605 #, gcc-internal-format msgid "wrong type argument to increment" msgstr "" -#: c/c-typeck.c:4575 c/c-typeck.c:4610 +#: c/c-typeck.c:4573 c/c-typeck.c:4608 #, gcc-internal-format msgid "wrong type argument to decrement" msgstr "" -#: c/c-typeck.c:4595 +#: c/c-typeck.c:4593 #, gcc-internal-format msgid "increment of pointer to an incomplete type %qT" msgstr "" -#: c/c-typeck.c:4599 +#: c/c-typeck.c:4597 #, gcc-internal-format msgid "decrement of pointer to an incomplete type %qT" msgstr "" -#: c/c-typeck.c:4703 +#: c/c-typeck.c:4701 #, gcc-internal-format msgid "taking address of expression of type %" msgstr "" -#: c/c-typeck.c:4762 +#: c/c-typeck.c:4760 #, gcc-internal-format msgid "cannot take address of bit-field %qD" msgstr "" -#: c/c-typeck.c:4775 +#: c/c-typeck.c:4773 #, gcc-internal-format msgid "cannot take address of scalar with reverse storage order" msgstr "" -#: c/c-typeck.c:4783 +#: c/c-typeck.c:4781 #, gcc-internal-format msgid "address of array with reverse scalar storage order requested" msgstr "" -#: c/c-typeck.c:4968 +#: c/c-typeck.c:4966 #, gcc-internal-format msgid "global register variable %qD used in nested function" msgstr "" -#: c/c-typeck.c:4971 +#: c/c-typeck.c:4969 #, gcc-internal-format msgid "register variable %qD used in nested function" msgstr "" -#: c/c-typeck.c:4976 +#: c/c-typeck.c:4974 #, gcc-internal-format msgid "address of global register variable %qD requested" msgstr "" -#: c/c-typeck.c:4978 +#: c/c-typeck.c:4976 #, gcc-internal-format msgid "address of register variable %qD requested" msgstr "" -#: c/c-typeck.c:5117 +#: c/c-typeck.c:5115 #, gcc-internal-format msgid "non-lvalue array in conditional expression" msgstr "" -#: c/c-typeck.c:5199 +#: c/c-typeck.c:5197 #, gcc-internal-format msgid "" "implicit conversion from %qT to %qT to match other result of conditional" msgstr "" -#: c/c-typeck.c:5258 c/c-typeck.c:5264 +#: c/c-typeck.c:5256 c/c-typeck.c:5262 #, gcc-internal-format msgid "" "operand of ?: changes signedness from %qT to %qT due to unsignedness of " "other operand" msgstr "" -#: c/c-typeck.c:5281 +#: c/c-typeck.c:5279 #, gcc-internal-format msgid "ISO C forbids conditional expr with only one void side" msgstr "" -#: c/c-typeck.c:5298 +#: c/c-typeck.c:5296 #, gcc-internal-format msgid "pointers to disjoint address spaces used in conditional expression" msgstr "" -#: c/c-typeck.c:5309 c/c-typeck.c:5326 +#: c/c-typeck.c:5307 c/c-typeck.c:5324 #, gcc-internal-format msgid "pointer to array loses qualifier in conditional expression" msgstr "" -#: c/c-typeck.c:5314 c/c-typeck.c:5331 +#: c/c-typeck.c:5312 c/c-typeck.c:5329 #, gcc-internal-format msgid "ISO C forbids conditional expr between % and function pointer" msgstr "" -#: c/c-typeck.c:5344 +#: c/c-typeck.c:5342 #, gcc-internal-format msgid "" "pointer type mismatch between %qT and %qT of %qD and %qD in conditional " "expression" msgstr "" -#: c/c-typeck.c:5349 +#: c/c-typeck.c:5347 #, gcc-internal-format msgid "pointer type mismatch in conditional expression" msgstr "" -#: c/c-typeck.c:5358 c/c-typeck.c:5369 +#: c/c-typeck.c:5356 c/c-typeck.c:5367 #, gcc-internal-format msgid "pointer/integer type mismatch in conditional expression" msgstr "" -#: c/c-typeck.c:5507 +#: c/c-typeck.c:5505 #, gcc-internal-format msgid "left-hand operand of comma expression has no effect" msgstr "" -#: c/c-typeck.c:5525 c/c-typeck.c:11036 +#: c/c-typeck.c:5523 c/c-typeck.c:11034 #, gcc-internal-format msgid "right-hand operand of comma expression has no effect" msgstr "" -#: c/c-typeck.c:5594 +#: c/c-typeck.c:5592 msgid "cast adds %q#v qualifier to function type" msgstr "" -#: c/c-typeck.c:5600 +#: c/c-typeck.c:5598 msgid "cast discards %qv qualifier from pointer target type" msgstr "" -#: c/c-typeck.c:5635 +#: c/c-typeck.c:5633 #, gcc-internal-format msgid "" "to be safe all intermediate pointers in cast from %qT to %qT must be % qualified" msgstr "" -#: c/c-typeck.c:5725 +#: c/c-typeck.c:5723 #, gcc-internal-format msgid "cast specifies array type" msgstr "" -#: c/c-typeck.c:5731 +#: c/c-typeck.c:5729 #, gcc-internal-format msgid "cast specifies function type" msgstr "" -#: c/c-typeck.c:5746 +#: c/c-typeck.c:5744 #, gcc-internal-format msgid "ISO C forbids casting nonscalar to the same type" msgstr "" -#: c/c-typeck.c:5766 +#: c/c-typeck.c:5764 #, gcc-internal-format msgid "ISO C forbids casts to union type" msgstr "" -#: c/c-typeck.c:5776 +#: c/c-typeck.c:5774 #, gcc-internal-format msgid "cast to union type from type not present in union" msgstr "" -#: c/c-typeck.c:5811 +#: c/c-typeck.c:5809 #, gcc-internal-format, gfc-internal-format msgid "" "cast to %s address space pointer from disjoint generic address space pointer" msgstr "" -#: c/c-typeck.c:5816 +#: c/c-typeck.c:5814 #, gcc-internal-format, gfc-internal-format msgid "" "cast to generic address space pointer from disjoint %s address space pointer" msgstr "" -#: c/c-typeck.c:5821 +#: c/c-typeck.c:5819 #, gcc-internal-format, gfc-internal-format msgid "cast to %s address space pointer from disjoint %s address space pointer" msgstr "" -#: c/c-typeck.c:5841 +#: c/c-typeck.c:5839 #, gcc-internal-format msgid "cast increases required alignment of target type" msgstr "" -#: c/c-typeck.c:5852 +#: c/c-typeck.c:5850 #, gcc-internal-format msgid "cast from pointer to integer of different size" msgstr "" -#: c/c-typeck.c:5857 +#: c/c-typeck.c:5855 #, gcc-internal-format msgid "cast from function call of type %qT to non-matching type %qT" msgstr "" -#: c/c-typeck.c:5866 cp/typeck.c:7957 +#: c/c-typeck.c:5864 cp/typeck.c:7971 #, gcc-internal-format msgid "cast to pointer from integer of different size" msgstr "" -#: c/c-typeck.c:5880 +#: c/c-typeck.c:5878 #, gcc-internal-format msgid "ISO C forbids conversion of function pointer to object pointer type" msgstr "" -#: c/c-typeck.c:5889 +#: c/c-typeck.c:5887 #, gcc-internal-format msgid "ISO C forbids conversion of object pointer to function pointer type" msgstr "" -#: c/c-typeck.c:5899 +#: c/c-typeck.c:5897 #, gcc-internal-format msgid "cast between incompatible function types from %qT to %qT" msgstr "" -#: c/c-typeck.c:5986 +#: c/c-typeck.c:5984 #, gcc-internal-format msgid "defining a type in a cast is invalid in C++" msgstr "" -#: c/c-typeck.c:6027 +#: c/c-typeck.c:6025 #, gcc-internal-format msgid "assignment to expression with array type" msgstr "" -#: c/c-typeck.c:6153 +#: c/c-typeck.c:6151 #, gcc-internal-format msgid "enum conversion in assignment is invalid in C++" msgstr "" -#: c/c-typeck.c:6357 c/c-typeck.c:6379 c/c-typeck.c:6405 +#: c/c-typeck.c:6355 c/c-typeck.c:6377 c/c-typeck.c:6403 #, gcc-internal-format msgid "(near initialization for %qs)" msgstr "" -#: c/c-typeck.c:6420 +#: c/c-typeck.c:6418 #, gcc-internal-format msgid "array initialized from parenthesized string constant" msgstr "" -#: c/c-typeck.c:6463 c/c-typeck.c:6709 +#: c/c-typeck.c:6461 c/c-typeck.c:6707 #, gcc-internal-format msgid "expected %qT but argument is of type %qT" msgstr "" -#: c/c-typeck.c:6497 +#: c/c-typeck.c:6495 #, gcc-internal-format msgid "" "%qD argument %d type is %qT where %qT is expected in a call to built-in " "function declared without prototype" msgstr "" -#: c/c-typeck.c:6500 +#: c/c-typeck.c:6498 #, gcc-internal-format msgid "" "%qD argument %d promotes to %qT where %qT is expected in a call to built-in " "function declared without prototype" msgstr "" -#: c/c-typeck.c:6505 +#: c/c-typeck.c:6503 #, gcc-internal-format msgid "built-in %qD declared here" msgstr "" -#: c/c-typeck.c:6704 +#: c/c-typeck.c:6702 #, gcc-internal-format msgid "enum conversion when passing argument %d of %qE is invalid in C++" msgstr "" -#: c/c-typeck.c:6713 +#: c/c-typeck.c:6711 #, gcc-internal-format msgid "enum conversion from %qT to %qT in assignment is invalid in C++" msgstr "" -#: c/c-typeck.c:6717 +#: c/c-typeck.c:6715 #, gcc-internal-format msgid "enum conversion from %qT to %qT in initialization is invalid in C++" msgstr "" -#: c/c-typeck.c:6722 +#: c/c-typeck.c:6720 #, gcc-internal-format msgid "enum conversion from %qT to %qT in return is invalid in C++" msgstr "" -#: c/c-typeck.c:6903 c/c-typeck.c:7222 +#: c/c-typeck.c:6901 c/c-typeck.c:7220 msgid "" "passing argument %d of %qE makes %q#v qualified function pointer from " "unqualified" msgstr "" -#: c/c-typeck.c:6906 c/c-typeck.c:7225 +#: c/c-typeck.c:6904 c/c-typeck.c:7223 msgid "assignment makes %q#v qualified function pointer from unqualified" msgstr "" -#: c/c-typeck.c:6909 c/c-typeck.c:7227 +#: c/c-typeck.c:6907 c/c-typeck.c:7225 msgid "initialization makes %q#v qualified function pointer from unqualified" msgstr "" -#: c/c-typeck.c:6912 c/c-typeck.c:7229 +#: c/c-typeck.c:6910 c/c-typeck.c:7227 msgid "return makes %q#v qualified function pointer from unqualified" msgstr "" -#: c/c-typeck.c:6920 c/c-typeck.c:7117 c/c-typeck.c:7160 +#: c/c-typeck.c:6918 c/c-typeck.c:7115 c/c-typeck.c:7158 msgid "" "passing argument %d of %qE discards %qv qualifier from pointer target type" msgstr "" -#: c/c-typeck.c:6922 c/c-typeck.c:7119 c/c-typeck.c:7162 +#: c/c-typeck.c:6920 c/c-typeck.c:7117 c/c-typeck.c:7160 msgid "assignment discards %qv qualifier from pointer target type" msgstr "" -#: c/c-typeck.c:6924 c/c-typeck.c:7121 c/c-typeck.c:7164 +#: c/c-typeck.c:6922 c/c-typeck.c:7119 c/c-typeck.c:7162 msgid "initialization discards %qv qualifier from pointer target type" msgstr "" -#: c/c-typeck.c:6926 c/c-typeck.c:7123 c/c-typeck.c:7166 +#: c/c-typeck.c:6924 c/c-typeck.c:7121 c/c-typeck.c:7164 msgid "return discards %qv qualifier from pointer target type" msgstr "" -#: c/c-typeck.c:6935 +#: c/c-typeck.c:6933 #, gcc-internal-format msgid "ISO C prohibits argument conversion to union type" msgstr "" -#: c/c-typeck.c:7003 +#: c/c-typeck.c:7001 #, gcc-internal-format msgid "request for implicit conversion from %qT to %qT not permitted in C++" msgstr "" -#: c/c-typeck.c:7016 +#: c/c-typeck.c:7014 #, gcc-internal-format msgid "passing argument %d of %qE from pointer to non-enclosed address space" msgstr "" -#: c/c-typeck.c:7026 +#: c/c-typeck.c:7024 #, gcc-internal-format msgid "assignment from pointer to non-enclosed address space" msgstr "" -#: c/c-typeck.c:7036 +#: c/c-typeck.c:7034 #, gcc-internal-format msgid "initialization from pointer to non-enclosed address space" msgstr "" -#: c/c-typeck.c:7046 +#: c/c-typeck.c:7044 #, gcc-internal-format msgid "return from pointer to non-enclosed address space" msgstr "" -#: c/c-typeck.c:7069 +#: c/c-typeck.c:7067 #, gcc-internal-format msgid "argument %d of %qE might be a candidate for a format attribute" msgstr "" -#: c/c-typeck.c:7075 +#: c/c-typeck.c:7073 #, gcc-internal-format msgid "assignment left-hand side might be a candidate for a format attribute" msgstr "" -#: c/c-typeck.c:7080 +#: c/c-typeck.c:7078 #, gcc-internal-format msgid "" "initialization left-hand side might be a candidate for a format attribute" msgstr "" -#: c/c-typeck.c:7085 cp/typeck.c:9046 +#: c/c-typeck.c:7083 cp/typeck.c:9060 #, gcc-internal-format msgid "return type might be a candidate for a format attribute" msgstr "" -#: c/c-typeck.c:7134 +#: c/c-typeck.c:7132 #, gcc-internal-format msgid "" "ISO C forbids passing argument %d of %qE between function pointer and %" msgstr "" -#: c/c-typeck.c:7137 +#: c/c-typeck.c:7135 #, gcc-internal-format msgid "ISO C forbids assignment between function pointer and %" msgstr "" -#: c/c-typeck.c:7139 +#: c/c-typeck.c:7137 #, gcc-internal-format msgid "ISO C forbids initialization between function pointer and %" msgstr "" -#: c/c-typeck.c:7141 +#: c/c-typeck.c:7139 #, gcc-internal-format msgid "ISO C forbids return between function pointer and %" msgstr "" -#: c/c-typeck.c:7185 +#: c/c-typeck.c:7183 #, gcc-internal-format msgid "pointer targets in passing argument %d of %qE differ in signedness" msgstr "" -#: c/c-typeck.c:7193 +#: c/c-typeck.c:7191 #, gcc-internal-format msgid "pointer targets in assignment from %qT to %qT differ in signedness" msgstr "" -#: c/c-typeck.c:7198 +#: c/c-typeck.c:7196 #, gcc-internal-format msgid "pointer targets in initialization of %qT from %qT differ in signedness" msgstr "" -#: c/c-typeck.c:7203 +#: c/c-typeck.c:7201 #, gcc-internal-format msgid "" "pointer targets in returning %qT from a function with return type %qT differ " "in signedness" msgstr "" -#: c/c-typeck.c:7245 +#: c/c-typeck.c:7243 #, gcc-internal-format msgid "passing argument %d of %qE from incompatible pointer type" msgstr "" -#: c/c-typeck.c:7253 +#: c/c-typeck.c:7251 #, gcc-internal-format msgid "assignment to %qT from pointer to %qD with incompatible type %qT" msgstr "" -#: c/c-typeck.c:7258 +#: c/c-typeck.c:7256 #, gcc-internal-format msgid "assignment to %qT from incompatible pointer type %qT" msgstr "" -#: c/c-typeck.c:7264 +#: c/c-typeck.c:7262 #, gcc-internal-format msgid "initialization of %qT from pointer to %qD with incompatible type %qT" msgstr "" -#: c/c-typeck.c:7269 +#: c/c-typeck.c:7267 #, gcc-internal-format msgid "initialization of %qT from incompatible pointer type %qT" msgstr "" -#: c/c-typeck.c:7276 +#: c/c-typeck.c:7274 #, gcc-internal-format msgid "" "returning pointer to %qD of type %qT from a function with incompatible type " "%qT" msgstr "" -#: c/c-typeck.c:7281 +#: c/c-typeck.c:7279 #, gcc-internal-format msgid "returning %qT from a function with incompatible return type %qT" msgstr "" -#: c/c-typeck.c:7320 +#: c/c-typeck.c:7318 #, gcc-internal-format msgid "passing argument %d of %qE makes pointer from integer without a cast" msgstr "" -#: c/c-typeck.c:7327 +#: c/c-typeck.c:7325 #, gcc-internal-format msgid "assignment to %qT from %qT makes pointer from integer without a cast" msgstr "" -#: c/c-typeck.c:7332 +#: c/c-typeck.c:7330 #, gcc-internal-format msgid "" "initialization of %qT from %qT makes pointer from integer without a cast" msgstr "" -#: c/c-typeck.c:7336 +#: c/c-typeck.c:7334 #, gcc-internal-format msgid "" "returning %qT from a function with return type %qT makes pointer from " "integer without a cast" msgstr "" -#: c/c-typeck.c:7356 +#: c/c-typeck.c:7354 #, gcc-internal-format msgid "passing argument %d of %qE makes integer from pointer without a cast" msgstr "" -#: c/c-typeck.c:7363 +#: c/c-typeck.c:7361 #, gcc-internal-format msgid "assignment to %qT from %qT makes integer from pointer without a cast" msgstr "" -#: c/c-typeck.c:7368 +#: c/c-typeck.c:7366 #, gcc-internal-format msgid "" "initialization of %qT from %qT makes integer from pointer without a cast" msgstr "" -#: c/c-typeck.c:7372 +#: c/c-typeck.c:7370 #, gcc-internal-format msgid "" "returning %qT from a function with return type %qT makes integer from " "pointer without a cast" msgstr "" -#: c/c-typeck.c:7399 +#: c/c-typeck.c:7397 #, gcc-internal-format msgid "incompatible type for argument %d of %qE" msgstr "" -#: c/c-typeck.c:7410 +#: c/c-typeck.c:7408 #, gcc-internal-format msgid "incompatible types when assigning to type %qT from type %qT" msgstr "" -#: c/c-typeck.c:7420 +#: c/c-typeck.c:7418 #, gcc-internal-format msgid "incompatible types when initializing type %qT using type %qT" msgstr "" -#: c/c-typeck.c:7430 +#: c/c-typeck.c:7428 #, gcc-internal-format msgid "incompatible types when returning type %qT but %qT was expected" msgstr "" -#: c/c-typeck.c:7498 +#: c/c-typeck.c:7496 #, gcc-internal-format msgid "traditional C rejects automatic aggregate initialization" msgstr "" -#: c/c-typeck.c:7735 c/c-typeck.c:8629 cp/typeck2.c:1090 +#: c/c-typeck.c:7733 c/c-typeck.c:8627 cp/typeck2.c:1093 #, gcc-internal-format msgid "initialization of a flexible array member" msgstr "" -#: c/c-typeck.c:7751 cp/typeck2.c:1126 +#: c/c-typeck.c:7749 cp/typeck2.c:1128 #, gcc-internal-format msgid "" "cannot initialize array of %qT from a string literal with type array of %qT" msgstr "" -#: c/c-typeck.c:7791 +#: c/c-typeck.c:7789 #, gcc-internal-format msgid "array of inappropriate type initialized from string constant" msgstr "" -#: c/c-typeck.c:7859 cp/typeck.c:2066 +#: c/c-typeck.c:7857 cp/typeck.c:2066 #, gcc-internal-format msgid "invalid use of non-lvalue array" msgstr "" -#: c/c-typeck.c:7878 c/c-typeck.c:7902 c/c-typeck.c:7905 c/c-typeck.c:7913 -#: c/c-typeck.c:7953 c/c-typeck.c:9476 c/c-typeck.c:9526 +#: c/c-typeck.c:7876 c/c-typeck.c:7900 c/c-typeck.c:7903 c/c-typeck.c:7911 +#: c/c-typeck.c:7951 c/c-typeck.c:9474 c/c-typeck.c:9524 #, gcc-internal-format msgid "initializer element is not constant" msgstr "" -#: c/c-typeck.c:7887 +#: c/c-typeck.c:7885 #, gcc-internal-format msgid "array initialized from non-constant array expression" msgstr "" -#: c/c-typeck.c:7918 c/c-typeck.c:7966 c/c-typeck.c:9536 +#: c/c-typeck.c:7916 c/c-typeck.c:7964 c/c-typeck.c:9534 #, gcc-internal-format msgid "initializer element is not a constant expression" msgstr "" -#: c/c-typeck.c:7960 c/c-typeck.c:9531 +#: c/c-typeck.c:7958 c/c-typeck.c:9529 #, gcc-internal-format msgid "initializer element is not computable at load time" msgstr "" -#: c/c-typeck.c:7979 +#: c/c-typeck.c:7977 #, gcc-internal-format msgid "invalid initializer" msgstr "" -#: c/c-typeck.c:8257 cp/decl.c:6425 +#: c/c-typeck.c:8255 cp/decl.c:6440 #, gcc-internal-format msgid "opaque vector types cannot be initialized" msgstr "" -#: c/c-typeck.c:8477 +#: c/c-typeck.c:8475 #, gcc-internal-format msgid "extra brace group at end of initializer" msgstr "" -#: c/c-typeck.c:8560 +#: c/c-typeck.c:8558 #, gcc-internal-format msgid "braces around scalar initializer" msgstr "" -#: c/c-typeck.c:8626 c/c-typeck.c:10012 cp/typeck2.c:1135 cp/typeck2.c:1366 +#: c/c-typeck.c:8624 c/c-typeck.c:10010 cp/typeck2.c:1137 cp/typeck2.c:1368 #, gcc-internal-format msgid "initialization of flexible array member in a nested context" msgstr "" -#: c/c-typeck.c:8663 +#: c/c-typeck.c:8661 #, gcc-internal-format msgid "missing braces around initializer" msgstr "" -#: c/c-typeck.c:8686 +#: c/c-typeck.c:8684 #, gcc-internal-format msgid "missing initializer for field %qD of %qT" msgstr "" -#: c/c-typeck.c:8710 +#: c/c-typeck.c:8708 #, gcc-internal-format msgid "empty scalar initializer" msgstr "" -#: c/c-typeck.c:8715 +#: c/c-typeck.c:8713 #, gcc-internal-format msgid "extra elements in scalar initializer" msgstr "" -#: c/c-typeck.c:8828 c/c-typeck.c:8910 +#: c/c-typeck.c:8826 c/c-typeck.c:8908 #, gcc-internal-format msgid "array index in non-array initializer" msgstr "" -#: c/c-typeck.c:8833 c/c-typeck.c:8972 +#: c/c-typeck.c:8831 c/c-typeck.c:8970 #, gcc-internal-format msgid "field name not in record or union initializer" msgstr "" -#: c/c-typeck.c:8883 +#: c/c-typeck.c:8881 #, gcc-internal-format msgid "array index in initializer not of integer type" msgstr "" -#: c/c-typeck.c:8892 c/c-typeck.c:8901 +#: c/c-typeck.c:8890 c/c-typeck.c:8899 #, gcc-internal-format msgid "array index in initializer is not an integer constant expression" msgstr "" -#: c/c-typeck.c:8906 c/c-typeck.c:8908 +#: c/c-typeck.c:8904 c/c-typeck.c:8906 #, gcc-internal-format msgid "nonconstant array index in initializer" msgstr "" -#: c/c-typeck.c:8912 c/c-typeck.c:8915 +#: c/c-typeck.c:8910 c/c-typeck.c:8913 #, gcc-internal-format msgid "array index in initializer exceeds array bounds" msgstr "" -#: c/c-typeck.c:8934 +#: c/c-typeck.c:8932 #, gcc-internal-format msgid "empty index range in initializer" msgstr "" -#: c/c-typeck.c:8943 +#: c/c-typeck.c:8941 #, gcc-internal-format msgid "array index range in initializer exceeds array bounds" msgstr "" -#: c/c-typeck.c:9045 c/c-typeck.c:9075 c/c-typeck.c:9619 +#: c/c-typeck.c:9043 c/c-typeck.c:9073 c/c-typeck.c:9617 #, gcc-internal-format msgid "initialized field with side-effects overwritten" msgstr "" -#: c/c-typeck.c:9049 c/c-typeck.c:9079 c/c-typeck.c:9622 +#: c/c-typeck.c:9047 c/c-typeck.c:9077 c/c-typeck.c:9620 #, gcc-internal-format msgid "initialized field overwritten" msgstr "" -#: c/c-typeck.c:9553 +#: c/c-typeck.c:9551 #, gcc-internal-format msgid "enum conversion in initialization is invalid in C++" msgstr "" -#: c/c-typeck.c:9893 +#: c/c-typeck.c:9891 #, gcc-internal-format msgid "excess elements in char array initializer" msgstr "" -#: c/c-typeck.c:9900 c/c-typeck.c:9971 +#: c/c-typeck.c:9898 c/c-typeck.c:9969 #, gcc-internal-format msgid "excess elements in struct initializer" msgstr "" -#: c/c-typeck.c:9915 +#: c/c-typeck.c:9913 #, gcc-internal-format msgid "" "positional initialization of field in % declared with " "% attribute" msgstr "" -#: c/c-typeck.c:9986 cp/typeck2.c:1094 +#: c/c-typeck.c:9984 cp/typeck2.c:1097 #, gcc-internal-format msgid "non-static initialization of a flexible array member" msgstr "" -#: c/c-typeck.c:10084 +#: c/c-typeck.c:10082 #, gcc-internal-format msgid "excess elements in union initializer" msgstr "" -#: c/c-typeck.c:10106 +#: c/c-typeck.c:10104 #, gcc-internal-format msgid "traditional C rejects initialization of unions" msgstr "" -#: c/c-typeck.c:10174 +#: c/c-typeck.c:10172 #, gcc-internal-format msgid "excess elements in array initializer" msgstr "" -#: c/c-typeck.c:10208 +#: c/c-typeck.c:10206 #, gcc-internal-format msgid "excess elements in vector initializer" msgstr "" -#: c/c-typeck.c:10240 +#: c/c-typeck.c:10238 #, gcc-internal-format msgid "excess elements in scalar initializer" msgstr "" -#: c/c-typeck.c:10486 +#: c/c-typeck.c:10484 #, gcc-internal-format msgid "ISO C forbids %" msgstr "" -#: c/c-typeck.c:10513 c/gimple-parser.c:1713 cp/typeck.c:9464 +#: c/c-typeck.c:10511 c/gimple-parser.c:2029 cp/typeck.c:9494 #, gcc-internal-format msgid "function declared % has a % statement" msgstr "" -#: c/c-typeck.c:10539 c/c-typeck.c:10543 +#: c/c-typeck.c:10537 c/c-typeck.c:10541 #, gcc-internal-format msgid "% with no value, in function returning non-void" msgstr "" -#: c/c-typeck.c:10557 c/gimple-parser.c:1723 +#: c/c-typeck.c:10555 c/gimple-parser.c:2039 #, gcc-internal-format msgid "% with a value, in function returning void" msgstr "" -#: c/c-typeck.c:10560 +#: c/c-typeck.c:10558 #, gcc-internal-format msgid "ISO C forbids % with expression, in function returning void" msgstr "" -#: c/c-typeck.c:10636 +#: c/c-typeck.c:10634 #, gcc-internal-format msgid "function returns address of label" msgstr "" -#: c/c-typeck.c:10727 cp/semantics.c:1192 +#: c/c-typeck.c:10725 cp/semantics.c:1191 #, gcc-internal-format msgid "switch quantity not an integer" msgstr "" -#: c/c-typeck.c:10752 +#: c/c-typeck.c:10750 #, gcc-internal-format msgid "% switch expression not converted to % in ISO C" msgstr "" -#: c/c-typeck.c:10790 c/c-typeck.c:10798 +#: c/c-typeck.c:10788 c/c-typeck.c:10796 #, gcc-internal-format msgid "case label is not an integer constant expression" msgstr "" -#: c/c-typeck.c:10804 cp/parser.c:11382 +#: c/c-typeck.c:10802 cp/parser.c:11443 #, gcc-internal-format msgid "case label not within a switch statement" msgstr "" -#: c/c-typeck.c:10806 +#: c/c-typeck.c:10804 #, gcc-internal-format msgid "% label not within a switch statement" msgstr "" -#: c/c-typeck.c:10978 cp/parser.c:12794 +#: c/c-typeck.c:10976 cp/parser.c:12855 #, gcc-internal-format msgid "break statement not within loop or switch" msgstr "" -#: c/c-typeck.c:10980 cp/parser.c:12817 +#: c/c-typeck.c:10978 cp/parser.c:12878 #, gcc-internal-format msgid "continue statement not within a loop" msgstr "" -#: c/c-typeck.c:10985 cp/parser.c:12807 +#: c/c-typeck.c:10983 cp/parser.c:12868 #, gcc-internal-format msgid "break statement used with OpenMP for loop" msgstr "" -#: c/c-typeck.c:10990 +#: c/c-typeck.c:10988 #, gcc-internal-format msgid "break statement within %<#pragma simd%> loop body" msgstr "" -#: c/c-typeck.c:10992 +#: c/c-typeck.c:10990 #, gcc-internal-format msgid "continue statement within %<#pragma simd%> loop body" msgstr "" -#: c/c-typeck.c:11018 cp/cp-gimplify.c:473 +#: c/c-typeck.c:11016 cp/cp-gimplify.c:473 #, gcc-internal-format msgid "statement with no effect" msgstr "" -#: c/c-typeck.c:11062 +#: c/c-typeck.c:11060 #, gcc-internal-format msgid "expression statement has incomplete type" msgstr "" -#: c/c-typeck.c:11890 c/c-typeck.c:12058 cp/typeck.c:5142 +#: c/c-typeck.c:11888 c/c-typeck.c:12056 cp/typeck.c:5153 #, gcc-internal-format msgid "comparing vectors with different element types" msgstr "" -#: c/c-typeck.c:11898 c/c-typeck.c:12066 cp/typeck.c:5155 +#: c/c-typeck.c:11896 c/c-typeck.c:12064 cp/typeck.c:5166 #, gcc-internal-format msgid "comparing vectors with different number of elements" msgstr "" -#: c/c-typeck.c:11923 c/c-typeck.c:12091 cp/typeck.c:5183 +#: c/c-typeck.c:11921 c/c-typeck.c:12089 cp/typeck.c:5194 #, gcc-internal-format msgid "could not find an integer type of the same size as %qT" msgstr "" -#: c/c-typeck.c:11937 cp/typeck.c:4858 +#: c/c-typeck.c:11935 cp/typeck.c:4869 #, gcc-internal-format msgid "comparing floating point with == or != is unsafe" msgstr "" -#: c/c-typeck.c:11955 c/c-typeck.c:11976 +#: c/c-typeck.c:11953 c/c-typeck.c:11974 #, gcc-internal-format msgid "" "the comparison will always evaluate as % for the address of %qD will " "never be NULL" msgstr "" -#: c/c-typeck.c:11961 c/c-typeck.c:11982 +#: c/c-typeck.c:11959 c/c-typeck.c:11980 #, gcc-internal-format msgid "" "the comparison will always evaluate as % for the address of %qD will " "never be NULL" msgstr "" -#: c/c-typeck.c:12003 c/c-typeck.c:12132 +#: c/c-typeck.c:12001 c/c-typeck.c:12130 #, gcc-internal-format msgid "comparison of pointers to disjoint address spaces" msgstr "" -#: c/c-typeck.c:12010 c/c-typeck.c:12016 +#: c/c-typeck.c:12008 c/c-typeck.c:12014 #, gcc-internal-format msgid "ISO C forbids comparison of % with function pointer" msgstr "" -#: c/c-typeck.c:12023 c/c-typeck.c:12142 +#: c/c-typeck.c:12021 c/c-typeck.c:12140 #, gcc-internal-format msgid "comparison of distinct pointer types lacks a cast" msgstr "" -#: c/c-typeck.c:12035 c/c-typeck.c:12040 c/c-typeck.c:12168 c/c-typeck.c:12173 +#: c/c-typeck.c:12033 c/c-typeck.c:12038 c/c-typeck.c:12166 c/c-typeck.c:12171 #, gcc-internal-format msgid "comparison between pointer and integer" msgstr "" -#: c/c-typeck.c:12120 +#: c/c-typeck.c:12118 #, gcc-internal-format msgid "comparison of complete and incomplete pointers" msgstr "" -#: c/c-typeck.c:12122 +#: c/c-typeck.c:12120 #, gcc-internal-format msgid "ISO C forbids ordered comparisons of pointers to functions" msgstr "" -#: c/c-typeck.c:12127 +#: c/c-typeck.c:12125 #, gcc-internal-format msgid "ordered comparison of pointer with null pointer" msgstr "" -#: c/c-typeck.c:12150 c/c-typeck.c:12153 c/c-typeck.c:12160 c/c-typeck.c:12163 -#: cp/typeck.c:5206 cp/typeck.c:5213 +#: c/c-typeck.c:12148 c/c-typeck.c:12151 c/c-typeck.c:12158 c/c-typeck.c:12161 +#: cp/typeck.c:5217 cp/typeck.c:5224 #, gcc-internal-format msgid "ordered comparison of pointer with integer zero" msgstr "" -#: c/c-typeck.c:12228 +#: c/c-typeck.c:12226 #, gcc-internal-format msgid "" "implicit conversion from %qT to %qT to match other operand of binary " "expression" msgstr "" -#: c/c-typeck.c:12543 +#: c/c-typeck.c:12541 #, gcc-internal-format msgid "used array that cannot be converted to pointer where scalar is required" msgstr "" -#: c/c-typeck.c:12547 +#: c/c-typeck.c:12545 #, gcc-internal-format msgid "used struct type value where scalar is required" msgstr "" -#: c/c-typeck.c:12551 +#: c/c-typeck.c:12549 #, gcc-internal-format msgid "used union type value where scalar is required" msgstr "" -#: c/c-typeck.c:12567 +#: c/c-typeck.c:12565 #, gcc-internal-format msgid "used vector type where scalar is required" msgstr "" -#: c/c-typeck.c:12757 cp/semantics.c:9049 +#: c/c-typeck.c:12755 cp/semantics.c:9098 #, gcc-internal-format msgid "" "%<#pragma omp cancel%> must specify one of %, %, % or % clauses" msgstr "" -#: c/c-typeck.c:12768 c/c-typeck.c:12778 cp/semantics.c:9060 -#: cp/semantics.c:9070 +#: c/c-typeck.c:12766 c/c-typeck.c:12776 cp/semantics.c:9109 +#: cp/semantics.c:9119 #, gcc-internal-format msgid "expected % % clause modifier" msgstr "" -#: c/c-typeck.c:12813 cp/semantics.c:9106 +#: c/c-typeck.c:12811 cp/semantics.c:9155 #, gcc-internal-format msgid "" "%<#pragma omp cancellation point%> must specify one of %, %, % or % clauses" msgstr "" -#: c/c-typeck.c:12857 c/c-typeck.c:14333 c/c-typeck.c:14397 c/c-typeck.c:14459 +#: c/c-typeck.c:12855 c/c-typeck.c:14331 c/c-typeck.c:14395 c/c-typeck.c:14457 #, gcc-internal-format msgid "%<_Atomic%> %qE in %qs clause" msgstr "" -#: c/c-typeck.c:12870 c/c-typeck.c:14265 c/c-typeck.c:14383 cp/semantics.c:4609 -#: cp/semantics.c:6964 cp/semantics.c:7091 +#: c/c-typeck.c:12868 c/c-typeck.c:14263 c/c-typeck.c:14381 cp/semantics.c:4657 +#: cp/semantics.c:7013 cp/semantics.c:7140 #, gcc-internal-format msgid "bit-field %qE in %qs clause" msgstr "" -#: c/c-typeck.c:12879 c/c-typeck.c:14407 cp/semantics.c:4619 -#: cp/semantics.c:7109 +#: c/c-typeck.c:12877 c/c-typeck.c:14405 cp/semantics.c:4667 +#: cp/semantics.c:7158 #, gcc-internal-format msgid "%qE is a member of a union" msgstr "" -#: c/c-typeck.c:12889 cp/semantics.c:4633 cp/semantics.c:7135 +#: c/c-typeck.c:12887 cp/semantics.c:4681 cp/semantics.c:7184 #, gcc-internal-format msgid "%qD is not a variable in %qs clause" msgstr "" -#: c/c-typeck.c:12893 c/c-typeck.c:14424 cp/semantics.c:4637 -#: cp/semantics.c:7139 +#: c/c-typeck.c:12891 c/c-typeck.c:14422 cp/semantics.c:4685 +#: cp/semantics.c:7188 #, gcc-internal-format msgid "%qE is not a variable in %qs clause" msgstr "" -#: c/c-typeck.c:12900 +#: c/c-typeck.c:12898 #, gcc-internal-format msgid "%<_Atomic%> %qD in %qs clause" msgstr "" -#: c/c-typeck.c:12909 c/c-typeck.c:14431 c/c-typeck.c:14541 cp/semantics.c:4655 -#: cp/semantics.c:7146 cp/semantics.c:7317 +#: c/c-typeck.c:12907 c/c-typeck.c:14429 c/c-typeck.c:14539 cp/semantics.c:4703 +#: cp/semantics.c:7195 cp/semantics.c:7366 #, gcc-internal-format msgid "%qD is threadprivate variable in %qs clause" msgstr "" -#: c/c-typeck.c:12945 cp/semantics.c:4689 +#: c/c-typeck.c:12943 cp/semantics.c:4737 #, gcc-internal-format msgid "low bound %qE of array section does not have integral type" msgstr "" -#: c/c-typeck.c:12952 cp/semantics.c:4696 +#: c/c-typeck.c:12950 cp/semantics.c:4744 #, gcc-internal-format msgid "length %qE of array section does not have integral type" msgstr "" -#: c/c-typeck.c:12981 c/c-typeck.c:13047 c/c-typeck.c:13319 cp/semantics.c:4734 -#: cp/semantics.c:4800 +#: c/c-typeck.c:12979 c/c-typeck.c:13045 c/c-typeck.c:13317 cp/semantics.c:4782 +#: cp/semantics.c:4848 #, gcc-internal-format msgid "zero length array section in %qs clause" msgstr "" -#: c/c-typeck.c:13000 cp/semantics.c:4753 +#: c/c-typeck.c:12998 cp/semantics.c:4801 #, gcc-internal-format msgid "for unknown bound array type length expression must be specified" msgstr "" -#: c/c-typeck.c:13008 cp/semantics.c:4761 +#: c/c-typeck.c:13006 cp/semantics.c:4809 #, gcc-internal-format msgid "negative low bound in array section in %qs clause" msgstr "" -#: c/c-typeck.c:13017 c/c-typeck.c:13133 cp/semantics.c:4770 -#: cp/semantics.c:4886 +#: c/c-typeck.c:13015 c/c-typeck.c:13131 cp/semantics.c:4818 +#: cp/semantics.c:4934 #, gcc-internal-format msgid "negative length in array section in %qs clause" msgstr "" -#: c/c-typeck.c:13034 cp/semantics.c:4787 +#: c/c-typeck.c:13032 cp/semantics.c:4835 #, gcc-internal-format msgid "low bound %qE above array section size in %qs clause" msgstr "" -#: c/c-typeck.c:13075 cp/semantics.c:4828 +#: c/c-typeck.c:13073 cp/semantics.c:4876 #, gcc-internal-format msgid "length %qE above array section size in %qs clause" msgstr "" -#: c/c-typeck.c:13090 cp/semantics.c:4843 +#: c/c-typeck.c:13088 cp/semantics.c:4891 #, gcc-internal-format msgid "high bound %qE above array section size in %qs clause" msgstr "" -#: c/c-typeck.c:13125 cp/semantics.c:4878 +#: c/c-typeck.c:13123 cp/semantics.c:4926 #, gcc-internal-format msgid "for pointer type length expression must be specified" msgstr "" -#: c/c-typeck.c:13143 c/c-typeck.c:13258 cp/semantics.c:4896 -#: cp/semantics.c:5014 +#: c/c-typeck.c:13141 c/c-typeck.c:13256 cp/semantics.c:4944 +#: cp/semantics.c:5062 #, gcc-internal-format msgid "array section is not contiguous in %qs clause" msgstr "" -#: c/c-typeck.c:13151 cp/semantics.c:4904 +#: c/c-typeck.c:13149 cp/semantics.c:4952 #, gcc-internal-format msgid "%qE does not have pointer or array type" msgstr "" -#: c/c-typeck.c:13536 cp/semantics.c:5955 +#: c/c-typeck.c:13534 cp/semantics.c:6004 #, gcc-internal-format msgid "iterator %qD has neither integral nor pointer type" msgstr "" -#: c/c-typeck.c:13543 +#: c/c-typeck.c:13541 #, gcc-internal-format msgid "iterator %qD has %<_Atomic%> qualified type" msgstr "" -#: c/c-typeck.c:13549 cp/semantics.c:5962 +#: c/c-typeck.c:13547 cp/semantics.c:6011 #, gcc-internal-format msgid "iterator %qD has const qualified type" msgstr "" -#: c/c-typeck.c:13562 cp/semantics.c:5978 +#: c/c-typeck.c:13560 cp/semantics.c:6027 #, gcc-internal-format msgid "iterator step with non-integral type" msgstr "" -#: c/c-typeck.c:13582 cp/semantics.c:6011 +#: c/c-typeck.c:13580 cp/semantics.c:6060 #, gcc-internal-format msgid "iterator %qD has zero step" msgstr "" -#: c/c-typeck.c:13609 +#: c/c-typeck.c:13607 #, gcc-internal-format msgid "type of iterator %qD refers to outer iterator %qD" msgstr "" -#: c/c-typeck.c:13616 cp/semantics.c:6045 +#: c/c-typeck.c:13614 cp/semantics.c:6094 #, gcc-internal-format msgid "begin expression refers to outer iterator %qD" msgstr "" -#: c/c-typeck.c:13622 cp/semantics.c:6051 +#: c/c-typeck.c:13620 cp/semantics.c:6100 #, gcc-internal-format msgid "end expression refers to outer iterator %qD" msgstr "" -#: c/c-typeck.c:13628 cp/semantics.c:6057 +#: c/c-typeck.c:13626 cp/semantics.c:6106 #, gcc-internal-format msgid "step expression refers to outer iterator %qD" msgstr "" -#: c/c-typeck.c:13740 c/c-typeck.c:13750 +#: c/c-typeck.c:13738 c/c-typeck.c:13748 #, gcc-internal-format msgid "%qD in % clause is a zero size array" msgstr "" -#: c/c-typeck.c:13768 +#: c/c-typeck.c:13766 #, gcc-internal-format msgid "%<_Atomic%> %qE in % clause" msgstr "" -#: c/c-typeck.c:13780 +#: c/c-typeck.c:13778 #, gcc-internal-format msgid "zero sized type %qT in %qs clause" msgstr "" -#: c/c-typeck.c:13788 +#: c/c-typeck.c:13786 #, gcc-internal-format msgid "variable sized type %qT in %qs clause" msgstr "" -#: c/c-typeck.c:13838 +#: c/c-typeck.c:13836 #, gcc-internal-format msgid "%qE has invalid type for %" msgstr "" -#: c/c-typeck.c:13847 cp/semantics.c:5848 +#: c/c-typeck.c:13845 cp/semantics.c:5896 #, gcc-internal-format msgid "user defined reduction not found for %qE" msgstr "" -#: c/c-typeck.c:13935 +#: c/c-typeck.c:13933 #, gcc-internal-format msgid "variable length element type in array % clause" msgstr "" -#: c/c-typeck.c:13953 c/c-typeck.c:14599 cp/semantics.c:7663 +#: c/c-typeck.c:13951 c/c-typeck.c:14597 cp/semantics.c:7712 #, gcc-internal-format msgid "% clause must not be used together with %" msgstr "" -#: c/c-typeck.c:13965 cp/semantics.c:7706 +#: c/c-typeck.c:13963 cp/semantics.c:7755 #, gcc-internal-format msgid "%qE must be % for %" msgstr "" -#: c/c-typeck.c:13979 cp/semantics.c:6179 +#: c/c-typeck.c:13977 cp/semantics.c:6228 #, gcc-internal-format msgid "" "modifier should not be specified in % clause on % or % " "constructs" msgstr "" -#: c/c-typeck.c:13987 +#: c/c-typeck.c:13985 #, gcc-internal-format msgid "" "linear clause applied to non-integral non-pointer variable with type %qT" msgstr "" -#: c/c-typeck.c:13995 +#: c/c-typeck.c:13993 #, gcc-internal-format msgid "%<_Atomic%> %qD in % clause" msgstr "" -#: c/c-typeck.c:14014 cp/semantics.c:6253 +#: c/c-typeck.c:14012 cp/semantics.c:6302 #, gcc-internal-format msgid "% clause step %qE is neither constant nor a parameter" msgstr "" -#: c/c-typeck.c:14044 c/c-typeck.c:14534 cp/semantics.c:6340 -#: cp/semantics.c:7310 +#: c/c-typeck.c:14042 c/c-typeck.c:14532 cp/semantics.c:6389 +#: cp/semantics.c:7359 #, gcc-internal-format msgid "%qE is not a variable in clause %qs" msgstr "" -#: c/c-typeck.c:14054 cp/semantics.c:6350 +#: c/c-typeck.c:14052 cp/semantics.c:6399 #, gcc-internal-format msgid "%qD appears more than once in reduction clauses" msgstr "" -#: c/c-typeck.c:14066 c/c-typeck.c:14098 c/c-typeck.c:14129 +#: c/c-typeck.c:14064 c/c-typeck.c:14096 c/c-typeck.c:14127 #, gcc-internal-format msgid "%qE appears more than once in data clauses" msgstr "" -#: c/c-typeck.c:14074 c/c-typeck.c:14105 c/c-typeck.c:14354 c/c-typeck.c:14470 -#: c/c-typeck.c:14477 c/c-typeck.c:14493 c/c-typeck.c:14504 cp/semantics.c:6362 -#: cp/semantics.c:6370 cp/semantics.c:6428 cp/semantics.c:6435 -#: cp/semantics.c:6479 cp/semantics.c:7053 cp/semantics.c:7196 -#: cp/semantics.c:7203 cp/semantics.c:7219 cp/semantics.c:7230 +#: c/c-typeck.c:14072 c/c-typeck.c:14103 c/c-typeck.c:14352 c/c-typeck.c:14468 +#: c/c-typeck.c:14475 c/c-typeck.c:14491 c/c-typeck.c:14502 cp/semantics.c:6411 +#: cp/semantics.c:6419 cp/semantics.c:6477 cp/semantics.c:6484 +#: cp/semantics.c:6528 cp/semantics.c:7102 cp/semantics.c:7245 +#: cp/semantics.c:7252 cp/semantics.c:7268 cp/semantics.c:7279 #, gcc-internal-format msgid "%qD appears more than once in data clauses" msgstr "" -#: c/c-typeck.c:14077 c/c-typeck.c:14108 c/c-typeck.c:14480 c/c-typeck.c:14507 -#: cp/semantics.c:6373 cp/semantics.c:6438 cp/semantics.c:7206 -#: cp/semantics.c:7233 +#: c/c-typeck.c:14075 c/c-typeck.c:14106 c/c-typeck.c:14478 c/c-typeck.c:14505 +#: cp/semantics.c:6422 cp/semantics.c:6487 cp/semantics.c:7255 +#: cp/semantics.c:7282 #, gcc-internal-format msgid "%qD appears both in data and map clauses" msgstr "" -#: c/c-typeck.c:14091 cp/semantics.c:6420 +#: c/c-typeck.c:14089 cp/semantics.c:6469 #, gcc-internal-format msgid "%qE is not a variable in clause %" msgstr "" -#: c/c-typeck.c:14122 cp/semantics.c:6471 +#: c/c-typeck.c:14120 cp/semantics.c:6520 #, gcc-internal-format msgid "%qE is not a variable in clause %" msgstr "" -#: c/c-typeck.c:14141 cp/semantics.c:6808 +#: c/c-typeck.c:14139 cp/semantics.c:6857 #, gcc-internal-format msgid "%qE is not a variable in % clause" msgstr "" -#: c/c-typeck.c:14148 +#: c/c-typeck.c:14146 #, gcc-internal-format msgid "%qE in % clause is neither a pointer nor an array" msgstr "" -#: c/c-typeck.c:14155 +#: c/c-typeck.c:14153 #, gcc-internal-format msgid "%<_Atomic%> %qD in % clause" msgstr "" -#: c/c-typeck.c:14162 +#: c/c-typeck.c:14160 #, gcc-internal-format msgid "%qE appears more than once in % clauses" msgstr "" -#: c/c-typeck.c:14175 cp/semantics.c:6879 +#: c/c-typeck.c:14173 cp/semantics.c:6928 #, gcc-internal-format msgid "%qE is not a variable in % clause" msgstr "" -#: c/c-typeck.c:14181 +#: c/c-typeck.c:14179 #, gcc-internal-format msgid "%qE appears more than once in % clauses" msgstr "" -#: c/c-typeck.c:14246 cp/semantics.c:6930 +#: c/c-typeck.c:14244 cp/semantics.c:6979 #, gcc-internal-format msgid "% clause with % dependence type on array section" msgstr "" -#: c/c-typeck.c:14257 cp/semantics.c:6955 +#: c/c-typeck.c:14255 cp/semantics.c:7004 #, gcc-internal-format msgid "%qE is not lvalue expression nor array section in % clause" msgstr "" -#: c/c-typeck.c:14273 cp/semantics.c:6974 +#: c/c-typeck.c:14271 cp/semantics.c:7023 #, gcc-internal-format msgid "" "%qE does not have % type in % clause with % " "dependence type" msgstr "" -#: c/c-typeck.c:14282 cp/semantics.c:6985 +#: c/c-typeck.c:14280 cp/semantics.c:7034 #, gcc-internal-format msgid "" "%qE should not have % type in % clause with " "dependence type other than %" msgstr "" -#: c/c-typeck.c:14325 cp/semantics.c:7029 +#: c/c-typeck.c:14323 cp/semantics.c:7078 #, gcc-internal-format msgid "array section does not have mappable type in %qs clause" msgstr "" -#: c/c-typeck.c:14350 c/c-typeck.c:14490 cp/semantics.c:7049 -#: cp/semantics.c:7216 +#: c/c-typeck.c:14348 c/c-typeck.c:14488 cp/semantics.c:7098 +#: cp/semantics.c:7265 #, gcc-internal-format msgid "%qD appears more than once in motion clauses" msgstr "" -#: c/c-typeck.c:14358 c/c-typeck.c:14496 cp/semantics.c:7057 -#: cp/semantics.c:7222 +#: c/c-typeck.c:14356 c/c-typeck.c:14494 cp/semantics.c:7106 +#: cp/semantics.c:7271 #, gcc-internal-format msgid "%qD appears more than once in map clauses" msgstr "" -#: c/c-typeck.c:14390 cp/semantics.c:7098 +#: c/c-typeck.c:14388 cp/semantics.c:7147 #, gcc-internal-format msgid "%qE does not have a mappable type in %qs clause" msgstr "" -#: c/c-typeck.c:14450 c/c-typeck.c:14548 cp/semantics.c:7176 -#: cp/semantics.c:7324 +#: c/c-typeck.c:14448 c/c-typeck.c:14546 cp/semantics.c:7225 +#: cp/semantics.c:7373 #, gcc-internal-format msgid "%qD does not have a mappable type in %qs clause" msgstr "" -#: c/c-typeck.c:14529 cp/semantics.c:7304 +#: c/c-typeck.c:14527 cp/semantics.c:7353 #, gcc-internal-format msgid "%qE is neither a variable nor a function name in clause %qs" msgstr "" -#: c/c-typeck.c:14557 cp/semantics.c:7333 +#: c/c-typeck.c:14555 cp/semantics.c:7382 #, gcc-internal-format msgid "%qE appears more than once on the same % directive" msgstr "" -#: c/c-typeck.c:14571 cp/semantics.c:7349 +#: c/c-typeck.c:14569 cp/semantics.c:7398 #, gcc-internal-format msgid "%qD is not an argument in % clause" msgstr "" -#: c/c-typeck.c:14574 cp/semantics.c:7352 +#: c/c-typeck.c:14572 cp/semantics.c:7401 #, gcc-internal-format msgid "%qE is not an argument in % clause" msgstr "" -#: c/c-typeck.c:14589 +#: c/c-typeck.c:14587 #, gcc-internal-format msgid "%qs variable is neither a pointer nor an array" msgstr "" -#: c/c-typeck.c:14677 cp/semantics.c:7542 +#: c/c-typeck.c:14675 cp/semantics.c:7591 #, gcc-internal-format msgid "% clause is incompatible with %" msgstr "" -#: c/c-typeck.c:14723 cp/semantics.c:7757 +#: c/c-typeck.c:14721 cp/semantics.c:7806 #, gcc-internal-format msgid "%qE is predetermined %qs for %qs" msgstr "" -#: c/c-typeck.c:14733 +#: c/c-typeck.c:14731 #, gcc-internal-format msgid "" "% qualified %qE may appear only in % or % " "clauses" msgstr "" -#: c/c-typeck.c:14752 cp/semantics.c:7626 +#: c/c-typeck.c:14750 cp/semantics.c:7675 #, gcc-internal-format msgid "% clause value is bigger than % clause value" msgstr "" -#: c/c-typeck.c:14764 cp/semantics.c:7639 +#: c/c-typeck.c:14762 cp/semantics.c:7688 #, gcc-internal-format msgid "" "% schedule modifier specified together with % clause" msgstr "" -#: c/c-typeck.c:14782 cp/semantics.c:7606 +#: c/c-typeck.c:14780 cp/semantics.c:7655 #, gcc-internal-format msgid "" "% clause step is a parameter %qD not specified in % clause" msgstr "" -#: c/c-typeck.c:14797 cp/semantics.c:7652 +#: c/c-typeck.c:14795 cp/semantics.c:7701 #, gcc-internal-format msgid "% clause must not be used together with % clause" msgstr "" -#: c/c-typeck.c:14963 +#: c/c-typeck.c:14961 #, gcc-internal-format msgid "cannot use % with reverse storage order" msgstr "" -#: c/c-typeck.c:14968 +#: c/c-typeck.c:14966 #, gcc-internal-format msgid "second argument to % is of incomplete type %qT" msgstr "" -#: c/c-typeck.c:14974 +#: c/c-typeck.c:14972 #, gcc-internal-format msgid "C++ requires promoted type, not enum type, in %" msgstr "" -#: c/gimple-parser.c:543 +#: c/gimple-parser.c:249 +#, gcc-internal-format +msgid "edge not found" +msgstr "" + +#: c/gimple-parser.c:382 c/gimple-parser.c:388 +#, gcc-internal-format +msgid "expected block index" +msgstr "" + +#: c/gimple-parser.c:396 +#, gcc-internal-format +msgid "invalid block index" +msgstr "" + +#: c/gimple-parser.c:406 +#, gcc-internal-format +msgid "expected block specifier" +msgstr "" + +#: c/gimple-parser.c:424 +#, gcc-internal-format +msgid "expected loop number" +msgstr "" + +#: c/gimple-parser.c:435 +#, gcc-internal-format +msgid "unknown block specifier" +msgstr "" + +#: c/gimple-parser.c:449 c/gimple-parser.c:533 +#, gcc-internal-format +msgid "stmts without block" +msgstr "" + +#: c/gimple-parser.c:485 +#, gcc-internal-format +msgid "duplicate loop header" +msgstr "" + +#: c/gimple-parser.c:692 +#, gcc-internal-format +msgid "invalid source block specification" +msgstr "" + +#: c/gimple-parser.c:854 #, gcc-internal-format msgid "%<&&%> not valid in GIMPLE" msgstr "" -#: c/gimple-parser.c:546 +#: c/gimple-parser.c:857 #, gcc-internal-format msgid "%<||%> not valid in GIMPLE" msgstr "" -#: c/gimple-parser.c:602 +#: c/gimple-parser.c:913 #, gcc-internal-format msgid "expected pointer as argument of unary %<*%>" msgstr "" -#: c/gimple-parser.c:628 +#: c/gimple-parser.c:939 #, gcc-internal-format msgid "% not valid in GIMPLE" msgstr "" -#: c/gimple-parser.c:706 +#: c/gimple-parser.c:1017 #, gcc-internal-format msgid "SSA name undeclared" msgstr "" -#: c/gimple-parser.c:728 +#: c/gimple-parser.c:1039 #, gcc-internal-format msgid "base variable or SSA name undeclared" msgstr "" -#: c/gimple-parser.c:735 +#: c/gimple-parser.c:1046 #, gcc-internal-format msgid "invalid base %qE for SSA name" msgstr "" -#: c/gimple-parser.c:766 +#: c/gimple-parser.c:1077 #, gcc-internal-format msgid "expecting internal function name" msgstr "" -#: c/gimple-parser.c:779 +#: c/gimple-parser.c:1090 #, gcc-internal-format msgid "unknown internal function %qE" msgstr "" -#: c/gimple-parser.c:903 +#: c/gimple-parser.c:1214 #, gcc-internal-format msgid "invalid type of %<__MEM%> operand" msgstr "" -#: c/gimple-parser.c:952 c/gimple-parser.c:982 c/gimple-parser.c:1020 -#: c/gimple-parser.c:1028 +#: c/gimple-parser.c:1263 c/gimple-parser.c:1293 c/gimple-parser.c:1331 +#: c/gimple-parser.c:1339 #, gcc-internal-format msgid "invalid _Literal" msgstr "" -#: c/gimple-parser.c:961 +#: c/gimple-parser.c:1272 #, gcc-internal-format msgid "invalid type for _Literal with constructor" msgstr "" -#: c/gimple-parser.c:1063 +#: c/gimple-parser.c:1374 #, gcc-internal-format msgid "anonymous SSA name cannot have default definition" msgstr "" -#: c/gimple-parser.c:1312 +#: c/gimple-parser.c:1623 #, gcc-internal-format msgid "expected pass name" msgstr "" -#: c/gimple-parser.c:1324 +#: c/gimple-parser.c:1642 #, gcc-internal-format msgid "invalid operation" msgstr "" -#: c/gimple-parser.c:1489 c/gimple-parser.c:1518 +#: c/gimple-parser.c:1825 c/gimple-parser.c:1860 #, gcc-internal-format msgid "expected goto expression" msgstr "" -#: c/gimple-parser.c:1497 +#: c/gimple-parser.c:1833 #, gcc-internal-format msgid "expected else statement" msgstr "" -#: c/gimple-parser.c:1647 -#, gcc-internal-format -msgid "expected semicolon" -msgstr "" - -#: c/gimple-parser.c:1657 +#: c/gimple-parser.c:1974 #, gcc-internal-format -msgid "expected case label or goto statement" +msgid "expected case label" msgstr "" #. A bad conversion for 'this' must be discarding cv-quals. -#: cp/call.c:3484 +#: cp/call.c:3549 #, gcc-internal-format msgid " passing %qT as % argument discards qualifiers" msgstr "" -#: cp/call.c:3488 +#: cp/call.c:3553 msgid " no known conversion for implicit % parameter from %qH to %qI" msgstr "" -#: cp/call.c:3495 +#: cp/call.c:3560 #, gcc-internal-format, gfc-internal-format msgid " conversion of argument %d would be ill-formed:" msgstr "" #. Conversion of conversion function return value failed. -#: cp/call.c:3502 +#: cp/call.c:3567 msgid " no known conversion from %qH to %qI" msgstr "" -#: cp/call.c:3508 +#: cp/call.c:3573 msgid " no known conversion for argument %d from %qH to %qI" msgstr "" -#: cp/call.c:3520 cp/pt.c:6449 +#: cp/call.c:3585 cp/pt.c:6479 #, gcc-internal-format, gfc-internal-format msgid " candidate expects %d argument, %d provided" msgid_plural " candidate expects %d arguments, %d provided" msgstr[0] "" msgstr[1] "" -#: cp/call.c:3548 +#: cp/call.c:3613 #, gcc-internal-format msgid "%s%<%D(%T, %T, %T)%> " msgstr "" -#: cp/call.c:3553 +#: cp/call.c:3618 #, gcc-internal-format msgid "%s%<%D(%T, %T)%> " msgstr "" -#: cp/call.c:3557 +#: cp/call.c:3622 #, gcc-internal-format msgid "%s%<%D(%T)%> " msgstr "" -#: cp/call.c:3561 +#: cp/call.c:3626 #, gcc-internal-format msgid "%s%qT " msgstr "" -#: cp/call.c:3563 +#: cp/call.c:3628 #, gcc-internal-format msgid "%s%#qD " msgstr "" -#: cp/call.c:3565 +#: cp/call.c:3630 #, gcc-internal-format msgid "%s%#qD " msgstr "" -#: cp/call.c:3567 +#: cp/call.c:3632 #, gcc-internal-format msgid "%s%#qD" msgstr "" -#: cp/call.c:3571 +#: cp/call.c:3636 #, gcc-internal-format msgid " inherited here" msgstr "" -#: cp/call.c:3591 +#: cp/call.c:3656 #, gcc-internal-format msgid "" " return type %qT of explicit conversion function cannot be converted to %qT " "with a qualification conversion" msgstr "" -#: cp/call.c:3597 +#: cp/call.c:3662 #, gcc-internal-format msgid "" " conversion from return type %qT of template conversion function " "specialization to %qT is not an exact match" msgstr "" -#: cp/call.c:3608 +#: cp/call.c:3673 #, gcc-internal-format msgid "" " substitution of deduced template arguments resulted in errors seen above" msgstr "" #. Re-run template unification with diagnostics. -#: cp/call.c:3613 +#: cp/call.c:3678 #, gcc-internal-format msgid " template argument deduction/substitution failed:" msgstr "" -#: cp/call.c:3627 +#: cp/call.c:3692 #, gcc-internal-format msgid "" " a constructor taking a single argument of its own class type is invalid" msgstr "" -#: cp/call.c:3638 +#: cp/call.c:3703 #, gcc-internal-format msgid "" " an inherited constructor is not a candidate for initialization from an " "expression of the same or derived type" msgstr "" -#: cp/call.c:4016 +#: cp/call.c:4089 msgid "conversion from %qH to %qI is ambiguous" msgstr "" -#: cp/call.c:4170 +#: cp/call.c:4243 msgid "" "initializing %qH with %qI in converted constant expression does not bind " "directly" msgstr "" -#: cp/call.c:4191 +#: cp/call.c:4264 msgid "conversion from %qH to %qI in a converted constant expression" msgstr "" -#: cp/call.c:4220 cp/call.c:11043 +#: cp/call.c:4293 cp/call.c:11199 msgid "could not convert %qE from %qH to %qI" msgstr "" -#: cp/call.c:4338 +#: cp/call.c:4411 #, gcc-internal-format msgid "no matching function for call to %<%D(%A)%>" msgstr "" -#: cp/call.c:4341 +#: cp/call.c:4414 #, gcc-internal-format msgid "call of overloaded %<%D(%A)%> is ambiguous" msgstr "" #. It's no good looking for an overloaded operator() on a #. pointer-to-member-function. -#: cp/call.c:4576 +#: cp/call.c:4649 #, gcc-internal-format msgid "" "pointer-to-member function %qE cannot be called without an object; consider " "using %<.*%> or %<->*%>" msgstr "" -#: cp/call.c:4648 +#: cp/call.c:4721 #, gcc-internal-format msgid "no match for call to %<(%T) (%A)%>" msgstr "" -#: cp/call.c:4662 +#: cp/call.c:4735 #, gcc-internal-format msgid "call of %<(%T) (%A)%> is ambiguous" msgstr "" -#: cp/call.c:4714 +#: cp/call.c:4787 #, gcc-internal-format msgid "ambiguous overload for " msgstr "" -#: cp/call.c:4715 +#: cp/call.c:4788 #, gcc-internal-format msgid "no match for " msgstr "" -#: cp/call.c:4718 +#: cp/call.c:4791 #, gcc-internal-format msgid " (operand types are %qT, %qT, and %qT)" msgstr "" -#: cp/call.c:4720 +#: cp/call.c:4793 #, gcc-internal-format msgid " (operand types are %qT and %qT)" msgstr "" -#: cp/call.c:4722 +#: cp/call.c:4795 #, gcc-internal-format msgid " (operand type is %qT)" msgstr "" -#: cp/call.c:4739 +#: cp/call.c:4812 #, gcc-internal-format msgid "ternary %" msgstr "" -#: cp/call.c:4743 +#: cp/call.c:4816 #, gcc-internal-format msgid "ternary % in %<%E ? %E : %E%>" msgstr "" -#: cp/call.c:4752 cp/call.c:4786 cp/call.c:4796 +#: cp/call.c:4825 cp/call.c:4859 cp/call.c:4869 #, gcc-internal-format msgid "%" msgstr "" -#: cp/call.c:4755 +#: cp/call.c:4828 #, gcc-internal-format msgid "% in %<%E%s%>" msgstr "" -#: cp/call.c:4762 +#: cp/call.c:4835 #, gcc-internal-format msgid "%" msgstr "" -#: cp/call.c:4765 +#: cp/call.c:4838 #, gcc-internal-format msgid "% in %<%E[%E]%>" msgstr "" -#: cp/call.c:4773 +#: cp/call.c:4846 #, gcc-internal-format msgid "%qs" msgstr "" -#: cp/call.c:4776 +#: cp/call.c:4849 #, gcc-internal-format msgid "%qs in %<%s %E%>" msgstr "" -#: cp/call.c:4790 +#: cp/call.c:4863 #, gcc-internal-format msgid "% in %<%E %s %E%>" msgstr "" -#: cp/call.c:4799 +#: cp/call.c:4872 #, gcc-internal-format msgid "% in %<%s%E%>" msgstr "" -#: cp/call.c:4909 +#: cp/call.c:4982 #, gcc-internal-format msgid "ISO C++ forbids omitting the middle term of a ?: expression" msgstr "" -#: cp/call.c:4971 +#: cp/call.c:5044 #, gcc-internal-format msgid "" "inferred scalar type %qT is not an integer or floating point type of the " "same size as %qT" msgstr "" -#: cp/call.c:4988 cp/call.c:4995 +#: cp/call.c:5061 cp/call.c:5068 msgid "conversion of scalar %qH to vector %qI involves truncation" msgstr "" -#: cp/call.c:5048 +#: cp/call.c:5121 #, gcc-internal-format msgid "incompatible vector types in conditional expression: %qT, %qT and %qT" msgstr "" -#: cp/call.c:5128 +#: cp/call.c:5201 #, gcc-internal-format msgid "" "second operand to the conditional operator is of type %, but the " "third operand is neither a throw-expression nor of type %" msgstr "" -#: cp/call.c:5133 +#: cp/call.c:5206 #, gcc-internal-format msgid "" "third operand to the conditional operator is of type %, but the " "second operand is neither a throw-expression nor of type %" msgstr "" -#: cp/call.c:5182 cp/call.c:5298 cp/call.c:5445 +#: cp/call.c:5255 cp/call.c:5371 cp/call.c:5518 #, gcc-internal-format msgid "operands to ?: have different types %qT and %qT" msgstr "" -#: cp/call.c:5185 +#: cp/call.c:5258 #, gcc-internal-format msgid " and each type can be converted to the other" msgstr "" -#: cp/call.c:5374 +#: cp/call.c:5447 msgid "" "implicit conversion from %qH to %qI to match other result of conditional" msgstr "" -#: cp/call.c:5390 +#: cp/call.c:5463 #, gcc-internal-format msgid "enumeral mismatch in conditional expression: %qT vs %qT" msgstr "" -#: cp/call.c:5402 +#: cp/call.c:5475 #, gcc-internal-format msgid "enumeral and non-enumeral type in conditional expression" msgstr "" -#: cp/call.c:5905 +#: cp/call.c:5978 #, gcc-internal-format msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead" msgstr "" -#: cp/call.c:5907 +#: cp/call.c:5980 #, gcc-internal-format msgid "no %<%D(int)%> declared for postfix %qs" msgstr "" -#: cp/call.c:6031 +#: cp/call.c:6104 #, gcc-internal-format msgid "comparison between %q#T and %q#T" msgstr "" -#: cp/call.c:6404 +#: cp/call.c:6477 #, gcc-internal-format msgid "" "exception cleanup for this placement new selects non-placement operator " "delete" msgstr "" -#: cp/call.c:6407 +#: cp/call.c:6480 #, gcc-internal-format msgid "" "%qD is a usual (non-placement) deallocation function in C++14 (or with -" "fsized-deallocation)" msgstr "" -#: cp/call.c:6446 +#: cp/call.c:6519 #, gcc-internal-format msgid "%qD is a usual (non-placement) deallocation function" msgstr "" -#: cp/call.c:6606 +#: cp/call.c:6679 #, gcc-internal-format msgid "no corresponding deallocation function for %qD" msgstr "" -#: cp/call.c:6612 +#: cp/call.c:6685 #, gcc-internal-format msgid "no suitable % for %qT" msgstr "" -#: cp/call.c:6630 +#: cp/call.c:6703 #, gcc-internal-format msgid "%q#D is private within this context" msgstr "" -#: cp/call.c:6632 cp/decl.c:7406 +#: cp/call.c:6705 cp/decl.c:7419 #, gcc-internal-format msgid "declared private here" msgstr "" -#: cp/call.c:6637 +#: cp/call.c:6710 #, gcc-internal-format msgid "%q#D is protected within this context" msgstr "" -#: cp/call.c:6639 cp/decl.c:7407 +#: cp/call.c:6712 cp/decl.c:7420 #, gcc-internal-format msgid "declared protected here" msgstr "" -#: cp/call.c:6644 +#: cp/call.c:6717 #, gcc-internal-format msgid "%q#D is inaccessible within this context" msgstr "" -#: cp/call.c:6739 +#: cp/call.c:6827 #, gcc-internal-format msgid "passing NULL to non-pointer argument %P of %qD" msgstr "" -#: cp/call.c:6742 cp/call.c:6761 cp/typeck.c:4031 +#: cp/call.c:6830 cp/call.c:6849 cp/typeck.c:4038 #, gcc-internal-format msgid " declared here" msgstr "" -#: cp/call.c:6746 +#: cp/call.c:6834 #, gcc-internal-format msgid "converting to non-pointer type %qT from NULL" msgstr "" -#: cp/call.c:6758 +#: cp/call.c:6846 #, gcc-internal-format msgid "converting % to pointer type for argument %P of %qD" msgstr "" -#: cp/call.c:6765 +#: cp/call.c:6853 #, gcc-internal-format msgid "converting % to pointer type %qT" msgstr "" -#: cp/call.c:6833 +#: cp/call.c:6920 #, gcc-internal-format msgid " initializing argument %P of %qD" msgstr "" -#: cp/call.c:6878 +#: cp/call.c:6965 #, gcc-internal-format msgid "too many braces around initializer for %qT" msgstr "" -#: cp/call.c:6889 +#: cp/call.c:6976 msgid "converting to %qH from %qI requires direct-initialization" msgstr "" -#: cp/call.c:6898 +#: cp/call.c:6985 msgid "invalid user-defined conversion from %qH to %qI" msgstr "" -#: cp/call.c:6938 cp/cvt.c:226 +#: cp/call.c:7025 cp/cvt.c:226 msgid "invalid conversion from %qH to %qI" msgstr "" -#: cp/call.c:6980 cp/call.c:6987 +#: cp/call.c:7067 cp/call.c:7074 #, gcc-internal-format msgid "" "converting to %qT from initializer list would use explicit constructor %qD" msgstr "" -#: cp/call.c:6983 +#: cp/call.c:7070 #, gcc-internal-format msgid "in C++11 and above a default constructor can be explicit" msgstr "" -#: cp/call.c:7224 +#: cp/call.c:7323 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI" msgstr "" -#: cp/call.c:7228 +#: cp/call.c:7327 msgid "" "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI" msgstr "" -#: cp/call.c:7231 +#: cp/call.c:7330 msgid "binding reference of type %qH to %qI discards qualifiers" msgstr "" -#: cp/call.c:7266 +#: cp/call.c:7365 #, gcc-internal-format msgid "cannot bind bitfield %qE to %qT" msgstr "" -#: cp/call.c:7269 cp/call.c:7286 +#: cp/call.c:7368 cp/call.c:7385 #, gcc-internal-format msgid "cannot bind packed field %qE to %qT" msgstr "" -#: cp/call.c:7272 +#: cp/call.c:7371 #, gcc-internal-format msgid "cannot bind rvalue %qE to %qT" msgstr "" -#: cp/call.c:7384 +#: cp/call.c:7483 msgid "implicit conversion from %qH to %qI when passing argument to function" msgstr "" -#: cp/call.c:7401 cp/cvt.c:1925 +#: cp/call.c:7500 cp/cvt.c:1925 #, gcc-internal-format msgid "" -"scoped enum %qT passed through ... as %qT before -fabi-version=6, %qT after" +"scoped enum %qT passed through ... as %qT before %<-fabi-version=6%>, %qT " +"after" msgstr "" -#: cp/call.c:7438 +#: cp/call.c:7537 #, gcc-internal-format msgid "" "passing objects of non-trivially-copyable type %q#T through %<...%> is " "conditionally supported" msgstr "" -#: cp/call.c:7474 +#: cp/call.c:7573 #, gcc-internal-format msgid "cannot receive reference type %qT through %<...%>" msgstr "" -#: cp/call.c:7484 +#: cp/call.c:7583 #, gcc-internal-format msgid "" "receiving objects of non-trivially-copyable type %q#T through %<...%> is " "conditionally-supported" msgstr "" -#: cp/call.c:7552 +#: cp/call.c:7651 #, gcc-internal-format msgid "recursive evaluation of default argument for %q#D" msgstr "" -#: cp/call.c:7561 +#: cp/call.c:7660 #, gcc-internal-format msgid "" "call to %qD uses the default argument for parameter %P, which is not yet " "defined" msgstr "" -#: cp/call.c:7665 +#: cp/call.c:7764 #, gcc-internal-format msgid "argument of function call might be a candidate for a format attribute" msgstr "" -#: cp/call.c:7724 +#: cp/call.c:7823 #, gcc-internal-format msgid "use of multiversioned function without a default" msgstr "" -#: cp/call.c:8117 +#: cp/call.c:8216 #, gcc-internal-format msgid "passing %qT as % argument discards qualifiers" msgstr "" -#: cp/call.c:8120 cp/call.c:8236 cp/call.c:10517 +#: cp/call.c:8219 cp/call.c:8335 cp/call.c:10666 #, gcc-internal-format msgid " in call to %qD" msgstr "" -#: cp/call.c:8150 +#: cp/call.c:8249 #, gcc-internal-format msgid "%qT is not an accessible base of %qT" msgstr "" -#: cp/call.c:8232 +#: cp/call.c:8331 #, gcc-internal-format msgid "deducing %qT as %qT" msgstr "" -#: cp/call.c:8238 +#: cp/call.c:8337 #, gcc-internal-format -msgid " (you can disable this with -fno-deduce-init-list)" +msgid " (you can disable this with %<-fno-deduce-init-list%>)" msgstr "" -#: cp/call.c:8349 +#: cp/call.c:8449 #, gcc-internal-format msgid "passing arguments to ellipsis of inherited constructor %qD" msgstr "" -#: cp/call.c:8480 +#: cp/call.c:8580 #, gcc-internal-format msgid "" "assignment from temporary initializer_list does not extend the lifetime of " "the underlying array" msgstr "" -#: cp/call.c:8837 +#: cp/call.c:8937 #, gcc-internal-format msgid "%qD writing to an object of type %#qT with no trivial copy-assignment" msgstr "" -#: cp/call.c:8840 +#: cp/call.c:8940 #, gcc-internal-format msgid "%qD writing to an object of non-trivial type %#qT%s" msgstr "" -#: cp/call.c:8845 +#: cp/call.c:8945 #, gcc-internal-format msgid "%qD writing to an object of type %#qT with %qs member %qD" msgstr "" -#: cp/call.c:8850 +#: cp/call.c:8950 #, gcc-internal-format msgid "" "%qD writing to an object of type %#qT containing a pointer to data member%s" msgstr "" -#: cp/call.c:8865 +#: cp/call.c:8965 #, gcc-internal-format msgid "; use assignment or value-initialization instead" msgstr "" -#: cp/call.c:8867 +#: cp/call.c:8967 #, gcc-internal-format msgid "; use assignment instead" msgstr "" -#: cp/call.c:8869 +#: cp/call.c:8969 #, gcc-internal-format msgid "; use value-initialization instead" msgstr "" -#: cp/call.c:8872 +#: cp/call.c:8972 #, gcc-internal-format msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s" msgstr "" -#: cp/call.c:8875 +#: cp/call.c:8975 #, gcc-internal-format msgid "%qD clearing an object of non-trivial type %#qT%s" msgstr "" -#: cp/call.c:8877 +#: cp/call.c:8977 #, gcc-internal-format msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s" msgstr "" -#: cp/call.c:8898 +#: cp/call.c:8998 #, gcc-internal-format msgid "; use copy-assignment or copy-initialization instead" msgstr "" -#: cp/call.c:8900 +#: cp/call.c:9000 #, gcc-internal-format msgid "; use copy-assignment instead" msgstr "" -#: cp/call.c:8902 +#: cp/call.c:9002 #, gcc-internal-format msgid "; use copy-initialization instead" msgstr "" -#: cp/call.c:8905 +#: cp/call.c:9005 #, gcc-internal-format msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s" msgstr "" -#: cp/call.c:8908 +#: cp/call.c:9008 #, gcc-internal-format msgid "%qD writing to an object of non-trivially copyable type %#qT%s" msgstr "" -#: cp/call.c:8911 +#: cp/call.c:9011 #, gcc-internal-format msgid "%qD writing to an object with a deleted copy constructor" msgstr "" -#: cp/call.c:8922 +#: cp/call.c:9022 #, gcc-internal-format msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT" msgstr "" -#: cp/call.c:8934 +#: cp/call.c:9034 #, gcc-internal-format msgid "" "%qD copying an object of type %#qT with %qs member %qD from an array of " "%#qT; use assignment or copy-initialization instead" msgstr "" -#: cp/call.c:8951 +#: cp/call.c:9051 #, gcc-internal-format msgid "" "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes " "unchanged" msgstr "" -#: cp/call.c:8954 +#: cp/call.c:9054 #, gcc-internal-format msgid "" "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged" msgstr "" -#: cp/call.c:8964 +#: cp/call.c:9064 #, gcc-internal-format msgid "" "%qD moving an object of non-trivially copyable type %#qT; use % and " "% instead" msgstr "" -#: cp/call.c:8967 +#: cp/call.c:9067 #, gcc-internal-format msgid "" "%qD moving an object of type %#qT with deleted copy constructor; use % " "and % instead" msgstr "" -#: cp/call.c:8970 +#: cp/call.c:9070 #, gcc-internal-format msgid "%qD moving an object of type %#qT with deleted destructor" msgstr "" -#: cp/call.c:8979 +#: cp/call.c:9079 #, gcc-internal-format msgid "" "%qD moving an object of non-trivial type %#qT and size %E into a region of " "size %E" msgstr "" -#: cp/call.c:9001 +#: cp/call.c:9101 #, gcc-internal-format msgid "%#qT declared here" msgstr "" -#: cp/call.c:9097 +#: cp/call.c:9197 #, gcc-internal-format msgid "constructor delegates to itself" msgstr "" -#: cp/call.c:9371 cp/typeck.c:8981 +#: cp/call.c:9471 cp/typeck.c:8995 msgid "cannot convert %qH to %qI" msgstr "" -#: cp/call.c:9393 +#: cp/call.c:9493 #, gcc-internal-format msgid "no matching function for call to %<%T::operator %T(%A)%#V%>" msgstr "" -#: cp/call.c:9422 +#: cp/call.c:9522 #, gcc-internal-format msgid "no matching function for call to %<%T::%s%E(%A)%#V%>" msgstr "" -#: cp/call.c:9469 +#: cp/call.c:9569 #, gcc-internal-format msgid "call to non-function %qD" msgstr "" -#: cp/call.c:9510 cp/pt.c:15148 cp/typeck.c:3013 +#: cp/call.c:9610 cp/pt.c:15205 cp/typeck.c:3020 #, gcc-internal-format msgid "cannot call constructor %<%T::%D%> directly" msgstr "" -#: cp/call.c:9512 +#: cp/call.c:9612 #, gcc-internal-format msgid "for a function-style cast, remove the redundant %<::%D%>" msgstr "" -#: cp/call.c:9670 +#: cp/call.c:9770 #, gcc-internal-format msgid "no matching function for call to %<%s(%A)%>" msgstr "" -#: cp/call.c:9673 +#: cp/call.c:9773 #, gcc-internal-format msgid "call of overloaded %<%s(%A)%> is ambiguous" msgstr "" -#: cp/call.c:9694 +#: cp/call.c:9794 #, gcc-internal-format msgid "pure virtual %q#D called from non-static data member initializer" msgstr "" -#: cp/call.c:9699 +#: cp/call.c:9799 #, gcc-internal-format msgid "pure virtual %q#D called from constructor" msgstr "" -#: cp/call.c:9700 +#: cp/call.c:9800 #, gcc-internal-format msgid "pure virtual %q#D called from destructor" msgstr "" -#: cp/call.c:9723 +#: cp/call.c:9823 #, gcc-internal-format msgid "cannot call member function %qD without object" msgstr "" -#: cp/call.c:10515 +#: cp/call.c:10664 #, gcc-internal-format msgid "passing %qT chooses %qT over %qT" msgstr "" -#: cp/call.c:10576 +#: cp/call.c:10725 #, gcc-internal-format msgid "choosing %qD over %qD" msgstr "" -#: cp/call.c:10577 +#: cp/call.c:10726 msgid " for conversion from %qH to %qI" msgstr "" -#: cp/call.c:10580 +#: cp/call.c:10729 #, gcc-internal-format msgid " because conversion sequence for the argument is better" msgstr "" -#: cp/call.c:10805 +#: cp/call.c:10959 #, gcc-internal-format msgid "default argument mismatch in overload resolution" msgstr "" -#: cp/call.c:10809 +#: cp/call.c:10963 #, gcc-internal-format msgid " candidate 1: %q#F" msgstr "" -#: cp/call.c:10811 +#: cp/call.c:10965 #, gcc-internal-format msgid " candidate 2: %q#F" msgstr "" -#: cp/call.c:10857 +#: cp/call.c:11011 #, gcc-internal-format 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 "" -#: cp/call.c:11258 +#: cp/call.c:11414 #, gcc-internal-format msgid "a temporary bound to %qD only persists until the constructor exits" msgstr "" -#: cp/call.c:11381 +#: cp/call.c:11537 msgid "" "invalid initialization of non-const reference of type %qH from an rvalue of " "type %qI" msgstr "" -#: cp/call.c:11385 +#: cp/call.c:11541 msgid "" "invalid initialization of reference of type %qH from expression of type %qI" msgstr "" @@ -41454,486 +41684,487 @@ msgstr "" msgid "previous declaration %q#D" msgstr "" -#: cp/class.c:1177 +#: cp/class.c:1174 #, gcc-internal-format msgid "conflicting access specifications for method %q+D, ignored" msgstr "" -#: cp/class.c:1180 +#: cp/class.c:1177 #, gcc-internal-format msgid "conflicting access specifications for field %qE, ignored" msgstr "" -#: cp/class.c:1249 +#: cp/class.c:1246 #, gcc-internal-format msgid "%qD invalid in %q#T because of local method %q#D with same name" msgstr "" -#: cp/class.c:1253 +#: cp/class.c:1250 #, gcc-internal-format msgid "local method %q#D declared here" msgstr "" -#: cp/class.c:1259 +#: cp/class.c:1256 #, gcc-internal-format msgid "%qD invalid in %q#T because of local member %q#D with same name" msgstr "" -#: cp/class.c:1263 +#: cp/class.c:1260 #, gcc-internal-format msgid "local member %q#D declared here" msgstr "" -#: cp/class.c:1319 +#: cp/class.c:1316 #, gcc-internal-format msgid "%qD inherits the %E ABI tag that %qT (used in its return type) has" msgstr "" -#: cp/class.c:1322 cp/class.c:1329 cp/class.c:1336 cp/class.c:1348 +#: cp/class.c:1319 cp/class.c:1326 cp/class.c:1333 cp/class.c:1345 #: cp/cvt.c:1052 #, gcc-internal-format msgid "%qT declared here" msgstr "" -#: cp/class.c:1327 +#: cp/class.c:1324 #, gcc-internal-format msgid "%qD inherits the %E ABI tag that %qT (used in its type) has" msgstr "" -#: cp/class.c:1334 +#: cp/class.c:1331 #, gcc-internal-format msgid "%qT does not have the %E ABI tag that base %qT has" msgstr "" -#: cp/class.c:1342 +#: cp/class.c:1339 #, gcc-internal-format msgid "%qT does not have the %E ABI tag that %qT (used in the type of %qD) has" msgstr "" -#: cp/class.c:1645 +#: cp/class.c:1642 #, gcc-internal-format msgid "cannot derive from % base %qT in derived type %qT" msgstr "" -#: cp/class.c:2103 +#: cp/class.c:2100 #, gcc-internal-format msgid "all member functions in class %qT are private" msgstr "" -#: cp/class.c:2115 +#: cp/class.c:2112 #, gcc-internal-format msgid "%q#T only defines a private destructor and has no friends" msgstr "" -#: cp/class.c:2156 +#: cp/class.c:2153 #, gcc-internal-format msgid "%q#T only defines private constructors and has no friends" msgstr "" -#: cp/class.c:2160 +#: cp/class.c:2157 #, gcc-internal-format msgid "%q#D is public, but requires an existing %q#T object" msgstr "" -#: cp/class.c:2434 +#: cp/class.c:2431 #, gcc-internal-format msgid "no unique final overrider for %qD in %qT" msgstr "" -#: cp/class.c:2789 +#: cp/class.c:2786 #, gcc-internal-format msgid "%qD can be marked override" msgstr "" -#: cp/class.c:2801 +#: cp/class.c:2798 #, gcc-internal-format msgid "%q+#D marked %, but is not virtual" msgstr "" -#: cp/class.c:2803 +#: cp/class.c:2800 #, gcc-internal-format msgid "%q+#D marked %, but does not override" msgstr "" -#: cp/class.c:2865 +#: cp/class.c:2862 #, gcc-internal-format msgid "%qD was hidden" msgstr "" -#: cp/class.c:2867 +#: cp/class.c:2864 #, gcc-internal-format msgid " by %qD" msgstr "" -#: cp/class.c:2902 +#: cp/class.c:2899 #, gcc-internal-format msgid "" "%q#D invalid; an anonymous union may only have public non-static data members" msgstr "" -#: cp/class.c:2912 cp/parser.c:20403 +#: cp/class.c:2909 cp/parser.c:20491 #, gcc-internal-format msgid "this flexibility is deprecated and will be removed" msgstr "" -#: cp/class.c:3106 +#: cp/class.c:3103 #, gcc-internal-format msgid "the ellipsis in %qD is not inherited" msgstr "" -#: cp/class.c:3223 +#: cp/class.c:3220 #, gcc-internal-format msgid "bit-field %q#D with non-integral type %qT" msgstr "" -#: cp/class.c:3239 +#: cp/class.c:3236 #, gcc-internal-format msgid "bit-field %q+D width not an integer constant" msgstr "" -#: cp/class.c:3244 +#: cp/class.c:3241 #, gcc-internal-format msgid "negative width in bit-field %q+D" msgstr "" -#: cp/class.c:3249 +#: cp/class.c:3246 #, gcc-internal-format msgid "zero width for bit-field %q+D" msgstr "" -#: cp/class.c:3259 +#: cp/class.c:3256 #, gcc-internal-format msgid "width of %qD exceeds its type" msgstr "" -#: cp/class.c:3265 +#: cp/class.c:3262 #, gcc-internal-format msgid "%qD is too small to hold all values of %q#T" msgstr "" -#: cp/class.c:3326 +#: cp/class.c:3323 #, gcc-internal-format msgid "member %q+#D with constructor not allowed in union" msgstr "" -#: cp/class.c:3329 +#: cp/class.c:3326 #, gcc-internal-format msgid "member %q+#D with destructor not allowed in union" msgstr "" -#: cp/class.c:3331 +#: cp/class.c:3328 #, gcc-internal-format msgid "member %q+#D with copy assignment operator not allowed in union" msgstr "" -#: cp/class.c:3335 +#: cp/class.c:3332 #, gcc-internal-format -msgid "unrestricted unions only available with -std=c++11 or -std=gnu++11" +msgid "" +"unrestricted unions only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/class.c:3463 +#: cp/class.c:3460 #, gcc-internal-format msgid "in C++98 %q+D may not be static because it is a member of a union" msgstr "" -#: cp/class.c:3470 +#: cp/class.c:3467 #, gcc-internal-format msgid "non-static data member %q+D in a union may not have reference type %qT" msgstr "" -#: cp/class.c:3480 +#: cp/class.c:3477 #, gcc-internal-format msgid "field %q+D invalidly declared function type" msgstr "" -#: cp/class.c:3486 +#: cp/class.c:3483 #, gcc-internal-format msgid "field %q+D invalidly declared method type" msgstr "" -#: cp/class.c:3546 +#: cp/class.c:3543 #, gcc-internal-format msgid "ignoring packed attribute because of unpacked non-POD field %q#D" msgstr "" -#: cp/class.c:3600 +#: cp/class.c:3597 #, gcc-internal-format msgid "member %q+D cannot be declared both % and %" msgstr "" -#: cp/class.c:3606 +#: cp/class.c:3603 #, gcc-internal-format msgid "member %q+D cannot be declared as a % reference" msgstr "" -#: cp/class.c:3637 +#: cp/class.c:3634 #, gcc-internal-format msgid "multiple fields in union %qT initialized" msgstr "" -#: cp/class.c:3678 +#: cp/class.c:3675 #, gcc-internal-format msgid "field %q#D with same name as class" msgstr "" -#: cp/class.c:3701 +#: cp/class.c:3698 #, gcc-internal-format msgid "%q#T has pointer data members" msgstr "" -#: cp/class.c:3706 +#: cp/class.c:3703 #, gcc-internal-format msgid " but does not override %<%T(const %T&)%>" msgstr "" -#: cp/class.c:3708 +#: cp/class.c:3705 #, gcc-internal-format msgid " or %" msgstr "" -#: cp/class.c:3712 +#: cp/class.c:3709 #, gcc-internal-format msgid " but does not override %" msgstr "" -#: cp/class.c:4149 +#: cp/class.c:4146 #, gcc-internal-format -msgid "alignment of %qD increased in -fabi-version=9 (GCC 5.2)" +msgid "alignment of %qD increased in %<-fabi-version=9%> (GCC 5.2)" msgstr "" -#: cp/class.c:4152 +#: cp/class.c:4149 #, gcc-internal-format -msgid "alignment of %qD will increase in -fabi-version=9" +msgid "alignment of %qD will increase in %<-fabi-version=9%>" msgstr "" -#: cp/class.c:4444 +#: cp/class.c:4442 #, gcc-internal-format msgid "initializer specified for non-virtual method %q+D" msgstr "" -#: cp/class.c:4870 +#: cp/class.c:4868 #, gcc-internal-format msgid "method overrides both % and %qE methods" msgstr "" -#: cp/class.c:4891 +#: cp/class.c:4889 #, gcc-internal-format msgid "method declared %qE overriding %qE method" msgstr "" -#: cp/class.c:5458 cp/constexpr.c:252 +#: cp/class.c:5459 cp/constexpr.c:253 #, gcc-internal-format msgid "" "enclosing class of % non-static member function %q+#D is not a " "literal type" msgstr "" -#: cp/class.c:5484 +#: cp/class.c:5485 #, gcc-internal-format msgid "%q+T is not literal because:" msgstr "" -#: cp/class.c:5487 +#: cp/class.c:5488 #, gcc-internal-format msgid " %qT is a closure type, which is only literal in C++17 and later" msgstr "" -#: cp/class.c:5490 +#: cp/class.c:5491 #, gcc-internal-format msgid " %q+T has a non-trivial destructor" msgstr "" -#: cp/class.c:5497 +#: cp/class.c:5498 #, gcc-internal-format msgid "" " %q+T is not an aggregate, does not have a trivial default constructor, and " "has no % constructor that is not a copy or move constructor" msgstr "" -#: cp/class.c:5530 +#: cp/class.c:5531 #, gcc-internal-format msgid " base class %qT of %q+T is non-literal" msgstr "" -#: cp/class.c:5545 +#: cp/class.c:5546 #, gcc-internal-format msgid " non-static data member %qD has non-literal type" msgstr "" -#: cp/class.c:5552 +#: cp/class.c:5553 #, gcc-internal-format msgid " non-static data member %qD has volatile type" msgstr "" -#: cp/class.c:5673 +#: cp/class.c:5674 #, gcc-internal-format msgid "base class %q#T has accessible non-virtual destructor" msgstr "" -#: cp/class.c:5702 +#: cp/class.c:5703 #, gcc-internal-format msgid "non-static reference %q#D in class without a constructor" msgstr "" -#: cp/class.c:5708 +#: cp/class.c:5709 #, gcc-internal-format msgid "non-static const member %q#D in class without a constructor" msgstr "" -#: cp/class.c:6024 +#: cp/class.c:6025 #, gcc-internal-format msgid "direct base %qT inaccessible in %qT due to ambiguity" msgstr "" -#: cp/class.c:6036 +#: cp/class.c:6037 #, gcc-internal-format msgid "virtual base %qT inaccessible in %qT due to ambiguity" msgstr "" -#: cp/class.c:6281 +#: cp/class.c:6282 #, gcc-internal-format msgid "" "offset of %qD is not ABI-compliant and may change in a future version of GCC" msgstr "" -#: cp/class.c:6440 +#: cp/class.c:6441 #, gcc-internal-format msgid "size of type %qT is too large (%qE bytes)" msgstr "" -#: cp/class.c:6726 +#: cp/class.c:6727 #, gcc-internal-format msgid "invalid use of %q#T with a zero-size array in %q#D" msgstr "" -#: cp/class.c:6728 +#: cp/class.c:6729 #, gcc-internal-format msgid "invalid use of %q#T with a flexible array member in %q#T" msgstr "" -#: cp/class.c:6733 +#: cp/class.c:6734 #, gcc-internal-format msgid "array member %q#D declared here" msgstr "" -#: cp/class.c:6761 +#: cp/class.c:6762 #, gcc-internal-format msgid "zero-size array member %qD not at end of %q#T" msgstr "" -#: cp/class.c:6763 +#: cp/class.c:6764 #, gcc-internal-format msgid "zero-size array member %qD in an otherwise empty %q#T" msgstr "" -#: cp/class.c:6772 cp/class.c:6803 +#: cp/class.c:6773 cp/class.c:6804 #, gcc-internal-format msgid "in the definition of %q#T" msgstr "" -#: cp/class.c:6780 +#: cp/class.c:6781 #, gcc-internal-format msgid "flexible array member %qD not at end of %q#T" msgstr "" -#: cp/class.c:6782 +#: cp/class.c:6783 #, gcc-internal-format msgid "flexible array member %qD in an otherwise empty %q#T" msgstr "" -#: cp/class.c:6801 +#: cp/class.c:6802 #, gcc-internal-format msgid "next member %q#D declared here" msgstr "" -#: cp/class.c:6913 cp/parser.c:23991 +#: cp/class.c:6914 cp/parser.c:24107 #, gcc-internal-format msgid "redefinition of %q#T" msgstr "" -#: cp/class.c:7050 +#: cp/class.c:7051 #, gcc-internal-format msgid "%q#T has virtual functions and accessible non-virtual destructor" msgstr "" -#: cp/class.c:7078 +#: cp/class.c:7079 #, gcc-internal-format msgid "type transparent %q#T does not have any fields" msgstr "" -#: cp/class.c:7084 +#: cp/class.c:7085 #, gcc-internal-format msgid "type transparent class %qT has base classes" msgstr "" -#: cp/class.c:7088 +#: cp/class.c:7089 #, gcc-internal-format msgid "type transparent class %qT has virtual functions" msgstr "" -#: cp/class.c:7094 +#: cp/class.c:7095 #, gcc-internal-format msgid "" "type transparent %q#T cannot be made transparent because the type of the " "first field has a different ABI from the class overall" msgstr "" -#: cp/class.c:7238 +#: cp/class.c:7239 #, gcc-internal-format msgid "definition of %qD does not match %<#include %>" msgstr "" -#: cp/class.c:7249 +#: cp/class.c:7250 #, gcc-internal-format msgid "trying to finish struct, but kicked out due to previous parse errors" msgstr "" -#: cp/class.c:7756 +#: cp/class.c:7757 #, gcc-internal-format msgid "language string %<\"%E\"%> not recognized" msgstr "" -#: cp/class.c:7846 +#: cp/class.c:7847 #, gcc-internal-format msgid "cannot resolve overloaded function %qD based on conversion to type %qT" msgstr "" -#: cp/class.c:7991 +#: cp/class.c:7992 #, gcc-internal-format msgid "no matches converting function %qD to type %q#T" msgstr "" -#: cp/class.c:8018 +#: cp/class.c:8019 #, gcc-internal-format msgid "converting overloaded function %qD to type %q#T is ambiguous" msgstr "" -#: cp/class.c:8045 +#: cp/class.c:8046 #, gcc-internal-format msgid "assuming pointer to member %qD" msgstr "" -#: cp/class.c:8048 +#: cp/class.c:8049 #, gcc-internal-format msgid "(a pointer to member can only be formed with %<&%E%>)" msgstr "" -#: cp/class.c:8124 cp/class.c:8166 +#: cp/class.c:8125 cp/class.c:8167 #, gcc-internal-format msgid "not enough type information" msgstr "" -#: cp/class.c:8144 +#: cp/class.c:8145 #, gcc-internal-format msgid "cannot convert %qE from type %qT to type %qT" msgstr "" -#: cp/class.c:8412 +#: cp/class.c:8418 #, gcc-internal-format msgid "declaration of %q#D changes meaning of %qD" msgstr "" -#: cp/class.c:8415 +#: cp/class.c:8421 #, gcc-internal-format msgid "%qD declared here as %q#D" msgstr "" @@ -41953,405 +42184,412 @@ msgstr "" msgid "% variable %qD has variably-modified type %qT" msgstr "" -#: cp/constexpr.c:200 +#: cp/constexpr.c:201 #, gcc-internal-format msgid "inherited constructor %qD is not %" msgstr "" -#: cp/constexpr.c:213 +#: cp/constexpr.c:214 #, gcc-internal-format msgid "invalid type for parameter %d of % function %q+#D" msgstr "" -#: cp/constexpr.c:225 +#: cp/constexpr.c:226 #, gcc-internal-format msgid "lambdas are implicitly % only in C++17 and later" msgstr "" -#: cp/constexpr.c:236 +#: cp/constexpr.c:237 #, gcc-internal-format msgid "invalid return type %qT of % function %q+D" msgstr "" -#: cp/constexpr.c:263 +#: cp/constexpr.c:264 #, gcc-internal-format msgid "%q#T has virtual base classes" msgstr "" -#: cp/constexpr.c:524 +#: cp/constexpr.c:525 #, gcc-internal-format msgid "% constructor does not have empty body" msgstr "" -#: cp/constexpr.c:630 -#, gcc-internal-format -msgid "body of % constructor cannot be a function-try-block" -msgstr "" - -#: cp/constexpr.c:783 +#: cp/constexpr.c:784 #, gcc-internal-format msgid "" "% constructor for union %qT must initialize exactly one non-" "static data member" msgstr "" -#: cp/constexpr.c:836 +#: cp/constexpr.c:837 #, gcc-internal-format msgid "" "member %qD must be initialized by mem-initializer in % " "constructor" msgstr "" -#: cp/constexpr.c:877 +#: cp/constexpr.c:878 #, gcc-internal-format msgid "body of % function %qD not a return-statement" msgstr "" -#: cp/constexpr.c:938 +#: cp/constexpr.c:950 #, gcc-internal-format msgid "%qD is not usable as a % function because:" msgstr "" -#: cp/constexpr.c:1260 cp/constexpr.c:1823 +#: cp/constexpr.c:1297 cp/constexpr.c:1863 #, gcc-internal-format msgid "% call flows off the end of the function" msgstr "" -#: cp/constexpr.c:1265 cp/constexpr.c:1275 cp/constexpr.c:1935 +#: cp/constexpr.c:1302 cp/constexpr.c:1312 cp/constexpr.c:1976 #, gcc-internal-format msgid "%q+E is not a constant expression" msgstr "" -#: cp/constexpr.c:1475 cp/constexpr.c:5673 +#: cp/constexpr.c:1515 cp/constexpr.c:5861 #, gcc-internal-format msgid "call to internal function %qE" msgstr "" -#: cp/constexpr.c:1584 +#: cp/constexpr.c:1624 #, gcc-internal-format msgid "expression %qE does not designate a % function" msgstr "" -#: cp/constexpr.c:1603 cp/constexpr.c:5691 +#: cp/constexpr.c:1643 cp/constexpr.c:5879 #, gcc-internal-format msgid "call to non-% function %qD" msgstr "" -#: cp/constexpr.c:1675 +#: cp/constexpr.c:1715 #, gcc-internal-format msgid "%qD called in a constant expression before its definition is complete" msgstr "" -#: cp/constexpr.c:1682 +#: cp/constexpr.c:1722 #, gcc-internal-format msgid "%qD called in a constant expression" msgstr "" -#: cp/constexpr.c:1686 +#: cp/constexpr.c:1726 #, gcc-internal-format msgid "%qD used before its definition" msgstr "" -#: cp/constexpr.c:1729 +#: cp/constexpr.c:1769 #, gcc-internal-format msgid "call has circular dependency" msgstr "" -#: cp/constexpr.c:1740 +#: cp/constexpr.c:1780 #, gcc-internal-format msgid "" "% evaluation depth exceeds maximum of %d (use %<-fconstexpr-" "depth=%> to increase the maximum)" msgstr "" -#: cp/constexpr.c:1975 +#: cp/constexpr.c:2016 #, gcc-internal-format msgid "right operand of shift expression %q+E is negative" msgstr "" -#: cp/constexpr.c:1982 +#: cp/constexpr.c:2023 #, gcc-internal-format msgid "" "right operand of shift expression %q+E is >= than the precision of the left " "operand" msgstr "" -#: cp/constexpr.c:2005 +#: cp/constexpr.c:2046 #, gcc-internal-format msgid "left operand of shift expression %q+E is negative" msgstr "" -#: cp/constexpr.c:2024 +#: cp/constexpr.c:2065 #, gcc-internal-format msgid "shift expression %q+E overflows" msgstr "" -#: cp/constexpr.c:2182 +#: cp/constexpr.c:2223 #, gcc-internal-format msgid "arithmetic involving a null pointer in %qE" msgstr "" -#: cp/constexpr.c:2419 +#: cp/constexpr.c:2459 #, gcc-internal-format msgid "" "array subscript value %qE is outside the bounds of array %qD of type %qT" msgstr "" -#: cp/constexpr.c:2422 +#: cp/constexpr.c:2462 #, gcc-internal-format msgid "" "non-zero array subscript %qE is used with array %qD of type %qT with unknown " "bounds" msgstr "" -#: cp/constexpr.c:2427 +#: cp/constexpr.c:2467 #, gcc-internal-format msgid "array subscript value %qE is outside the bounds of array type %qT" msgstr "" -#: cp/constexpr.c:2430 +#: cp/constexpr.c:2470 #, gcc-internal-format msgid "" "non-zero array subscript %qE is used with array of type %qT with unknown " "bounds" msgstr "" -#: cp/constexpr.c:2595 +#: cp/constexpr.c:2635 #, gcc-internal-format msgid "accessing uninitialized array element" msgstr "" -#: cp/constexpr.c:2627 +#: cp/constexpr.c:2667 #, gcc-internal-format msgid "dereferencing a null pointer in %qE" msgstr "" -#: cp/constexpr.c:2644 cp/constexpr.c:2734 cp/constexpr.c:4278 -#: cp/constexpr.c:4355 cp/constexpr.c:5625 +#: cp/constexpr.c:2684 cp/constexpr.c:2774 cp/constexpr.c:4438 +#: cp/constexpr.c:4511 cp/constexpr.c:5813 #, gcc-internal-format msgid "%qE is not a constant expression" msgstr "" -#: cp/constexpr.c:2650 +#: cp/constexpr.c:2690 #, gcc-internal-format msgid "mutable %qD is not usable in a constant expression" msgstr "" -#: cp/constexpr.c:2675 +#: cp/constexpr.c:2715 #, gcc-internal-format msgid "" "accessing %qD member instead of initialized %qD member in constant expression" msgstr "" -#: cp/constexpr.c:2694 +#: cp/constexpr.c:2734 #, gcc-internal-format msgid "accessing uninitialized member %qD" msgstr "" -#: cp/constexpr.c:3446 cp/constexpr.c:4789 +#: cp/constexpr.c:3486 cp/constexpr.c:4970 #, gcc-internal-format msgid "dereferencing a null pointer" msgstr "" -#: cp/constexpr.c:3465 +#: cp/constexpr.c:3505 #, gcc-internal-format msgid "accessing value of %qE through a %qT glvalue in a constant expression" msgstr "" -#: cp/constexpr.c:3504 +#: cp/constexpr.c:3544 #, gcc-internal-format msgid "the value of %qD is not usable in a constant expression" msgstr "" -#: cp/constexpr.c:3511 +#: cp/constexpr.c:3551 #, gcc-internal-format msgid "%qD used in its own initializer" msgstr "" -#: cp/constexpr.c:3516 +#: cp/constexpr.c:3556 #, gcc-internal-format msgid "%q#D is not const" msgstr "" -#: cp/constexpr.c:3519 +#: cp/constexpr.c:3559 #, gcc-internal-format msgid "%q#D is volatile" msgstr "" -#: cp/constexpr.c:3524 cp/constexpr.c:3531 +#: cp/constexpr.c:3564 cp/constexpr.c:3571 #, gcc-internal-format msgid "%qD was not initialized with a constant expression" msgstr "" -#: cp/constexpr.c:3537 +#: cp/constexpr.c:3577 #, gcc-internal-format msgid "%qD was not declared %" msgstr "" -#: cp/constexpr.c:3540 +#: cp/constexpr.c:3580 #, gcc-internal-format msgid "%qD does not have integral or enumeration type" msgstr "" -#: cp/constexpr.c:3728 +#: cp/constexpr.c:3780 #, gcc-internal-format msgid "modification of %qE is not a constant expression" msgstr "" -#: cp/constexpr.c:4117 +#: cp/constexpr.c:3861 +#, gcc-internal-format +msgid "change of the active member of a union from %qD to %qD" +msgstr "" + +#: cp/constexpr.c:4253 #, gcc-internal-format msgid "" -"% loop iteration count exceeds limit of %d (use -fconstexpr-loop-" -"limit= to increase the limit)" +"% loop iteration count exceeds limit of %d (use %<-fconstexpr-" +"loop-limit=%> to increase the limit)" msgstr "" -#: cp/constexpr.c:4256 +#: cp/constexpr.c:4402 #, gcc-internal-format msgid "value %qE of type %qT is not a constant expression" msgstr "" -#: cp/constexpr.c:4402 cp/constexpr.c:6210 +#: cp/constexpr.c:4416 +#, gcc-internal-format +msgid "" +"% evaluation operation count exceeds limit of %wd (use -" +"fconstexpr-ops-limit= to increase the limit)" +msgstr "" + +#: cp/constexpr.c:4563 cp/constexpr.c:6405 #, gcc-internal-format msgid "temporary of non-literal type %qT in a constant expression" msgstr "" -#: cp/constexpr.c:4752 +#: cp/constexpr.c:4933 cp/constexpr.c:5993 #, gcc-internal-format msgid "a reinterpret_cast is not a constant expression" msgstr "" -#: cp/constexpr.c:4801 +#: cp/constexpr.c:4982 #, gcc-internal-format msgid "conversion of %qT null pointer to %qT is not a constant expression" msgstr "" -#: cp/constexpr.c:4816 +#: cp/constexpr.c:4997 #, gcc-internal-format msgid "%(%E)%> is not a constant expression" msgstr "" -#: cp/constexpr.c:4884 cp/constexpr.c:4902 cp/constexpr.c:6046 -#: cp/constexpr.c:6381 +#: cp/constexpr.c:5065 cp/constexpr.c:5083 cp/constexpr.c:6241 +#: cp/constexpr.c:6576 #, gcc-internal-format msgid "expression %qE is not a constant expression" msgstr "" -#: cp/constexpr.c:4998 +#: cp/constexpr.c:5183 #, gcc-internal-format msgid "statement is not a constant expression" msgstr "" -#: cp/constexpr.c:5001 +#: cp/constexpr.c:5186 #, gcc-internal-format msgid "unexpected expression %qE of kind %s" msgstr "" -#: cp/constexpr.c:5127 +#: cp/constexpr.c:5313 #, gcc-internal-format msgid "" "%qE is not a constant expression because it refers to mutable subobjects of " "%qT" msgstr "" -#: cp/constexpr.c:5136 +#: cp/constexpr.c:5322 #, gcc-internal-format msgid "" "%qE is not a constant expression because it refers to an incompletely " "initialized variable" msgstr "" -#: cp/constexpr.c:5150 +#: cp/constexpr.c:5336 #, gcc-internal-format msgid "" "conversion from pointer type %qT to arithmetic type %qT in a constant " "expression" msgstr "" -#: cp/constexpr.c:5571 +#: cp/constexpr.c:5759 #, gcc-internal-format msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT" msgstr "" -#: cp/constexpr.c:5775 +#: cp/constexpr.c:5963 #, gcc-internal-format msgid "lambda capture of %qE is not a constant expression" msgstr "" -#: cp/constexpr.c:5778 +#: cp/constexpr.c:5966 #, gcc-internal-format msgid "because it is used as a glvalue" msgstr "" -#: cp/constexpr.c:5817 +#: cp/constexpr.c:6012 #, gcc-internal-format msgid "reinterpret_cast from integer to pointer" msgstr "" -#: cp/constexpr.c:5850 +#: cp/constexpr.c:6045 #, gcc-internal-format msgid "" "address-of an object %qE with thread local or automatic storage is not a " "constant expression" msgstr "" -#: cp/constexpr.c:5883 +#: cp/constexpr.c:6078 #, gcc-internal-format msgid "use of % in a constant expression" msgstr "" -#: cp/constexpr.c:5994 +#: cp/constexpr.c:6189 #, gcc-internal-format msgid "lambda-expression is not a constant expression before C++17" msgstr "" -#: cp/constexpr.c:6054 +#: cp/constexpr.c:6249 #, gcc-internal-format msgid "virtual functions cannot be constexpr before C++2a" msgstr "" -#: cp/constexpr.c:6066 +#: cp/constexpr.c:6261 #, gcc-internal-format msgid "" "typeid-expression is not a constant expression because %qE is of polymorphic " "type" msgstr "" -#: cp/constexpr.c:6129 +#: cp/constexpr.c:6324 #, gcc-internal-format msgid "cast to non-integral type %qT in a constant expression" msgstr "" -#: cp/constexpr.c:6179 +#: cp/constexpr.c:6374 #, gcc-internal-format msgid "%qD declared % in % context" msgstr "" -#: cp/constexpr.c:6186 +#: cp/constexpr.c:6381 #, gcc-internal-format msgid "%qD declared % in % context" msgstr "" -#: cp/constexpr.c:6259 +#: cp/constexpr.c:6454 #, gcc-internal-format msgid "division by zero is not a constant expression" msgstr "" -#: cp/constexpr.c:6357 +#: cp/constexpr.c:6552 #, gcc-internal-format msgid "% is not a constant expression" msgstr "" -#: cp/constexpr.c:6389 +#: cp/constexpr.c:6584 #, gcc-internal-format msgid "non-constant array initialization" msgstr "" -#: cp/constexpr.c:6414 +#: cp/constexpr.c:6609 #, gcc-internal-format msgid "% is not a constant expression" msgstr "" -#: cp/constexpr.c:6425 +#: cp/constexpr.c:6620 #, gcc-internal-format, gfc-internal-format msgid "unexpected AST of kind %s" msgstr "" @@ -42418,7 +42656,7 @@ msgstr "" msgid "conversion from %qH to %qI discards qualifiers" msgstr "" -#: cp/cvt.c:497 cp/typeck.c:7502 +#: cp/cvt.c:497 cp/typeck.c:7516 #, gcc-internal-format msgid "casting %qT to %qT does not dereference pointer" msgstr "" @@ -42775,7 +43013,7 @@ msgstr "" #: cp/cvt.c:1825 #, gcc-internal-format -msgid "default type conversion can't deduce template argument for %qD" +msgid "default type conversion can%'t deduce template argument for %qD" msgstr "" #: cp/cvt.c:1840 @@ -42838,7 +43076,7 @@ msgstr "" msgid "redeclaration %qD differs in % from previous declaration" msgstr "" -#: cp/decl.c:1225 cp/decl.c:14081 +#: cp/decl.c:1225 cp/decl.c:14113 #, gcc-internal-format msgid "previous declaration %qD" msgstr "" @@ -42856,7 +43094,7 @@ msgstr "" #: cp/decl.c:1307 #, gcc-internal-format msgid "" -"friend declaration of %q#D specifies default arguments and isn't the only " +"friend declaration of %q#D specifies default arguments and isn%'t the only " "declaration" msgstr "" @@ -42965,7 +43203,7 @@ msgstr "" msgid "previous declaration as %q#D" msgstr "" -#: cp/decl.c:1775 cp/decl2.c:895 +#: cp/decl.c:1775 cp/decl2.c:905 #, gcc-internal-format msgid "%q#D previously defined here" msgstr "" @@ -43047,7 +43285,7 @@ msgstr "" #. Reject two definitions. #: cp/decl.c:2812 cp/decl.c:2841 cp/decl.c:2874 cp/decl.c:2891 cp/decl.c:2989 -#: cp/decl2.c:893 +#: cp/decl2.c:903 #, gcc-internal-format msgid "redefinition of %q#D" msgstr "" @@ -43171,7 +43409,7 @@ msgstr "" msgid " enters OpenMP structured block" msgstr "" -#: cp/decl.c:3407 cp/parser.c:12804 cp/parser.c:12825 +#: cp/decl.c:3407 cp/parser.c:12865 cp/parser.c:12886 #, gcc-internal-format msgid "invalid exit from OpenMP structured block" msgstr "" @@ -43181,1996 +43419,1994 @@ msgstr "" msgid "%qD is not a type" msgstr "" -#: cp/decl.c:3813 cp/parser.c:6479 +#: cp/decl.c:3813 cp/parser.c:6489 #, gcc-internal-format msgid "%qD used without template arguments" msgstr "" -#: cp/decl.c:3822 +#: cp/decl.c:3824 #, gcc-internal-format msgid "%q#T is not a class" msgstr "" -#: cp/decl.c:3850 cp/decl.c:3943 +#: cp/decl.c:3852 cp/decl.c:3945 #, gcc-internal-format msgid "no class template named %q#T in %q#T" msgstr "" -#: cp/decl.c:3851 +#: cp/decl.c:3853 #, gcc-internal-format msgid "no type named %q#T in %q#T" msgstr "" -#: cp/decl.c:3864 +#: cp/decl.c:3866 #, gcc-internal-format msgid "lookup of %qT in %qT is ambiguous" msgstr "" -#: cp/decl.c:3873 +#: cp/decl.c:3875 #, gcc-internal-format msgid "% names %q#T, which is not a class template" msgstr "" -#: cp/decl.c:3880 +#: cp/decl.c:3882 #, gcc-internal-format msgid "% names %q#T, which is not a type" msgstr "" -#: cp/decl.c:3952 +#: cp/decl.c:3954 #, gcc-internal-format msgid "template parameters do not match template %qD" msgstr "" -#: cp/decl.c:4268 -#, gcc-internal-format, gfc-internal-format -msgid "-faligned-new=%d is not a power of two" +#: cp/decl.c:4270 +#, gcc-internal-format +msgid "%<-faligned-new=%d%> is not a power of two" msgstr "" -#: cp/decl.c:4735 +#: cp/decl.c:4738 #, gcc-internal-format msgid "member %q+#D with constructor not allowed in anonymous aggregate" msgstr "" -#: cp/decl.c:4738 +#: cp/decl.c:4741 #, gcc-internal-format msgid "member %q+#D with destructor not allowed in anonymous aggregate" msgstr "" -#: cp/decl.c:4741 +#: cp/decl.c:4744 #, gcc-internal-format msgid "" "member %q+#D with copy assignment operator not allowed in anonymous aggregate" msgstr "" -#: cp/decl.c:4760 +#: cp/decl.c:4763 #, gcc-internal-format msgid "attribute ignored in declaration of %q#T" msgstr "" -#: cp/decl.c:4763 +#: cp/decl.c:4766 #, gcc-internal-format msgid "attribute for %q#T must follow the %qs keyword" msgstr "" -#: cp/decl.c:4786 +#: cp/decl.c:4789 #, gcc-internal-format msgid "multiple types in one declaration" msgstr "" -#: cp/decl.c:4791 +#: cp/decl.c:4794 #, gcc-internal-format msgid "redeclaration of C++ built-in type %qT" msgstr "" -#: cp/decl.c:4808 +#: cp/decl.c:4811 #, gcc-internal-format msgid "% can only be specified for variables or function declarations" msgstr "" -#: cp/decl.c:4840 +#: cp/decl.c:4843 #, gcc-internal-format msgid "missing type-name in typedef-declaration" msgstr "" -#: cp/decl.c:4848 +#: cp/decl.c:4851 #, gcc-internal-format msgid "ISO C++ prohibits anonymous structs" msgstr "" -#: cp/decl.c:4855 +#: cp/decl.c:4858 #, gcc-internal-format msgid "% can only be specified for functions" msgstr "" -#: cp/decl.c:4858 +#: cp/decl.c:4861 #, gcc-internal-format msgid "% can only be specified for functions" msgstr "" -#: cp/decl.c:4863 +#: cp/decl.c:4866 #, gcc-internal-format msgid "% can only be specified inside a class" msgstr "" -#: cp/decl.c:4866 +#: cp/decl.c:4869 #, gcc-internal-format msgid "% can only be specified for constructors" msgstr "" -#: cp/decl.c:4869 +#: cp/decl.c:4872 #, gcc-internal-format msgid "a storage class can only be specified for objects and functions" msgstr "" -#: cp/decl.c:4873 +#: cp/decl.c:4876 #, gcc-internal-format msgid "% can only be specified for objects and functions" msgstr "" -#: cp/decl.c:4877 +#: cp/decl.c:4880 #, gcc-internal-format msgid "% can only be specified for objects and functions" msgstr "" -#: cp/decl.c:4881 +#: cp/decl.c:4884 #, gcc-internal-format msgid "%<__restrict%> can only be specified for objects and functions" msgstr "" -#: cp/decl.c:4885 +#: cp/decl.c:4888 #, gcc-internal-format msgid "%<__thread%> can only be specified for objects and functions" msgstr "" -#: cp/decl.c:4889 +#: cp/decl.c:4892 #, gcc-internal-format msgid "% was ignored in this declaration" msgstr "" -#: cp/decl.c:4892 +#: cp/decl.c:4895 #, gcc-internal-format msgid "% cannot be used for type declarations" msgstr "" -#: cp/decl.c:4914 +#: cp/decl.c:4917 #, gcc-internal-format msgid "attribute ignored in explicit instantiation %q#T" msgstr "" -#: cp/decl.c:4917 +#: cp/decl.c:4920 #, gcc-internal-format msgid "no attribute can be applied to an explicit instantiation" msgstr "" -#: cp/decl.c:4989 +#: cp/decl.c:4992 #, gcc-internal-format msgid "ignoring attributes applied to class type %qT outside of definition" msgstr "" #. A template type parameter or other dependent type. -#: cp/decl.c:4993 +#: cp/decl.c:4996 #, gcc-internal-format msgid "" "ignoring attributes applied to dependent type %qT without an associated " "declaration" msgstr "" -#: cp/decl.c:5063 cp/decl2.c:824 +#: cp/decl.c:5066 cp/decl2.c:834 #, gcc-internal-format msgid "typedef %qD is initialized (use decltype instead)" msgstr "" -#: cp/decl.c:5071 +#: cp/decl.c:5074 #, gcc-internal-format msgid "declaration of %q#D has % and is initialized" msgstr "" -#: cp/decl.c:5101 +#: cp/decl.c:5104 #, gcc-internal-format msgid "definition of %q#D is marked %" msgstr "" -#: cp/decl.c:5125 +#: cp/decl.c:5128 #, gcc-internal-format msgid "%q+#D is not a static data member of %q#T" msgstr "" -#: cp/decl.c:5133 +#: cp/decl.c:5136 #, gcc-internal-format msgid "non-member-template declaration of %qD" msgstr "" -#: cp/decl.c:5134 +#: cp/decl.c:5137 #, gcc-internal-format msgid "does not match member template declaration here" msgstr "" -#: cp/decl.c:5146 +#: cp/decl.c:5149 #, gcc-internal-format msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>" msgstr "" -#: cp/decl.c:5158 +#: cp/decl.c:5161 #, gcc-internal-format msgid "duplicate initialization of %qD" msgstr "" -#: cp/decl.c:5208 +#: cp/decl.c:5211 #, gcc-internal-format msgid "declaration of %q#D outside of class is not definition" msgstr "" -#: cp/decl.c:5242 +#: cp/decl.c:5245 #, gcc-internal-format msgid "%qD declared % in % function" msgstr "" -#: cp/decl.c:5246 +#: cp/decl.c:5249 #, gcc-internal-format msgid "%qD declared % in % function" msgstr "" -#: cp/decl.c:5311 +#: cp/decl.c:5314 #, gcc-internal-format msgid "variable %q#D has initializer but incomplete type" msgstr "" -#: cp/decl.c:5317 cp/decl.c:6288 +#: cp/decl.c:5320 cp/decl.c:6303 #, gcc-internal-format msgid "elements of array %q#D have incomplete type" msgstr "" -#: cp/decl.c:5327 +#: cp/decl.c:5330 #, gcc-internal-format msgid "aggregate %q#D has incomplete type and cannot be defined" msgstr "" -#: cp/decl.c:5363 +#: cp/decl.c:5366 #, gcc-internal-format msgid "%qD declared as reference but not initialized" msgstr "" -#: cp/decl.c:5420 +#: cp/decl.c:5423 #, gcc-internal-format msgid "name used in a GNU-style designated initializer for an array" msgstr "" -#: cp/decl.c:5426 +#: cp/decl.c:5429 #, gcc-internal-format msgid "name %qD used in a GNU-style designated initializer for an array" msgstr "" -#: cp/decl.c:5445 +#: cp/decl.c:5448 #, gcc-internal-format msgid "non-trivial designated initializers not supported" msgstr "" -#: cp/decl.c:5448 +#: cp/decl.c:5451 #, gcc-internal-format msgid "C99 designator %qE is not an integral constant-expression" msgstr "" -#: cp/decl.c:5504 +#: cp/decl.c:5507 #, gcc-internal-format msgid "initializer fails to determine size of %qD" msgstr "" -#: cp/decl.c:5511 +#: cp/decl.c:5514 #, gcc-internal-format msgid "array size missing in %qD" msgstr "" -#: cp/decl.c:5523 +#: cp/decl.c:5526 #, gcc-internal-format msgid "zero-size array %qD" msgstr "" -#: cp/decl.c:5563 +#: cp/decl.c:5566 #, gcc-internal-format msgid "storage size of %qD isn%'t known" msgstr "" -#: cp/decl.c:5587 +#: cp/decl.c:5590 #, gcc-internal-format msgid "storage size of %qD isn%'t constant" msgstr "" -#: cp/decl.c:5637 +#: cp/decl.c:5641 #, gcc-internal-format msgid "" "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with " "multiple copies)" msgstr "" -#: cp/decl.c:5641 +#: cp/decl.c:5645 #, gcc-internal-format msgid "" "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind " "up with multiple copies)" msgstr "" -#: cp/decl.c:5647 +#: cp/decl.c:5651 #, gcc-internal-format msgid "you can work around this by removing the initializer" msgstr "" -#: cp/decl.c:5683 +#: cp/decl.c:5687 #, gcc-internal-format msgid "uninitialized const %qD" msgstr "" -#: cp/decl.c:5690 +#: cp/decl.c:5694 #, gcc-internal-format msgid "uninitialized variable %qD in % function" msgstr "" -#: cp/decl.c:5697 +#: cp/decl.c:5701 #, gcc-internal-format msgid "uninitialized variable %qD in % context" msgstr "" -#: cp/decl.c:5705 +#: cp/decl.c:5709 #, gcc-internal-format msgid "%q#T has no user-provided default constructor" msgstr "" -#: cp/decl.c:5709 +#: cp/decl.c:5713 #, gcc-internal-format msgid "" "constructor is not user-provided because it is explicitly defaulted in the " "class body" msgstr "" -#: cp/decl.c:5712 +#: cp/decl.c:5716 #, gcc-internal-format msgid "and the implicitly-defined constructor does not initialize %q#D" msgstr "" -#: cp/decl.c:5856 +#: cp/decl.c:5860 #, gcc-internal-format msgid "invalid type %qT as initializer for a vector of type %qT" msgstr "" -#: cp/decl.c:5897 +#: cp/decl.c:5901 #, gcc-internal-format msgid "initializer for %qT must be brace-enclosed" msgstr "" -#: cp/decl.c:5932 +#: cp/decl.c:5936 #, gcc-internal-format msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT" msgstr "" -#: cp/decl.c:5940 +#: cp/decl.c:5944 #, gcc-internal-format msgid "%qT has no non-static data member named %qD" msgstr "" -#: cp/decl.c:5960 +#: cp/decl.c:5964 #, gcc-internal-format msgid "invalid initializer for %q#D" msgstr "" -#: cp/decl.c:5990 +#: cp/decl.c:5994 #, gcc-internal-format msgid "C99 designator %qE outside aggregate initializer" msgstr "" -#: cp/decl.c:6029 cp/decl.c:6263 cp/typeck2.c:1379 cp/typeck2.c:1676 -#: cp/typeck2.c:1724 cp/typeck2.c:1771 +#: cp/decl.c:6033 cp/decl.c:6275 cp/typeck2.c:1381 cp/typeck2.c:1688 +#: cp/typeck2.c:1736 cp/typeck2.c:1783 #, gcc-internal-format msgid "too many initializers for %qT" msgstr "" -#: cp/decl.c:6068 +#: cp/decl.c:6070 #, gcc-internal-format msgid "braces around scalar initializer for type %qT" msgstr "" -#: cp/decl.c:6188 +#: cp/decl.c:6080 +#, gcc-internal-format +msgid "too many braces around scalar initializerfor type %qT" +msgstr "" + +#: cp/decl.c:6200 #, gcc-internal-format msgid "missing braces around initializer for %qT" msgstr "" -#: cp/decl.c:6290 +#: cp/decl.c:6305 #, gcc-internal-format msgid "elements of array %q#T have incomplete type" msgstr "" -#: cp/decl.c:6298 +#: cp/decl.c:6313 #, gcc-internal-format msgid "variable-sized compound literal" msgstr "" -#: cp/decl.c:6353 +#: cp/decl.c:6368 #, gcc-internal-format msgid "%q#D has incomplete type" msgstr "" -#: cp/decl.c:6374 +#: cp/decl.c:6389 #, gcc-internal-format msgid "scalar object %qD requires one element in initializer" msgstr "" -#: cp/decl.c:6419 +#: cp/decl.c:6434 #, gcc-internal-format msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>" msgstr "" -#: cp/decl.c:6526 +#: cp/decl.c:6541 #, gcc-internal-format msgid "array %qD initialized by parenthesized string literal %qE" msgstr "" -#: cp/decl.c:6562 +#: cp/decl.c:6576 #, gcc-internal-format msgid "initializer invalid for static member with constructor" msgstr "" -#: cp/decl.c:6564 +#: cp/decl.c:6578 #, gcc-internal-format msgid "non-constant in-class initialization invalid for static member %qD" msgstr "" -#: cp/decl.c:6567 +#: cp/decl.c:6581 #, gcc-internal-format msgid "" "non-constant in-class initialization invalid for non-inline static member %qD" msgstr "" -#: cp/decl.c:6572 +#: cp/decl.c:6586 #, gcc-internal-format msgid "(an out of class initialization is required)" msgstr "" -#: cp/decl.c:6751 +#: cp/decl.c:6764 #, gcc-internal-format msgid "reference %qD is initialized with itself" msgstr "" -#: cp/decl.c:6898 +#: cp/decl.c:6911 #, gcc-internal-format msgid "assignment (not initialization) in declaration" msgstr "" -#: cp/decl.c:6916 cp/decl.c:12844 +#: cp/decl.c:6929 cp/decl.c:12875 #, gcc-internal-format msgid "ISO C++17 does not allow % storage class specifier" msgstr "" -#: cp/decl.c:6920 cp/decl.c:12848 +#: cp/decl.c:6933 cp/decl.c:12879 #, gcc-internal-format msgid "% storage class specifier used" msgstr "" -#: cp/decl.c:6967 +#: cp/decl.c:6980 #, gcc-internal-format msgid "" "initializer for % has function type (did you forget the " "%<()%> ?)" msgstr "" -#: cp/decl.c:7063 +#: cp/decl.c:7076 #, gcc-internal-format msgid "variable concept has no initializer" msgstr "" -#: cp/decl.c:7116 +#: cp/decl.c:7129 #, gcc-internal-format msgid "shadowing previous type declaration of %q#D" msgstr "" -#: cp/decl.c:7308 +#: cp/decl.c:7321 #, gcc-internal-format msgid "function %q#D is initialized like a variable" msgstr "" -#: cp/decl.c:7392 +#: cp/decl.c:7405 #, gcc-internal-format msgid "" "cannot decompose class type %qT because it has an anonymous struct member" msgstr "" -#: cp/decl.c:7395 +#: cp/decl.c:7408 #, gcc-internal-format msgid "" "cannot decompose class type %qT because it has an anonymous union member" msgstr "" -#: cp/decl.c:7402 +#: cp/decl.c:7415 #, gcc-internal-format msgid "cannot decompose inaccessible member %qD of %qT" msgstr "" -#: cp/decl.c:7428 +#: cp/decl.c:7441 #, gcc-internal-format msgid "" "cannot decompose class type %qT: both it and its base class %qT have non-" "static data members" msgstr "" -#: cp/decl.c:7437 +#: cp/decl.c:7450 #, gcc-internal-format msgid "" "cannot decompose class type %qT: its base classes %qT and %qT have non-" "static data members" msgstr "" -#: cp/decl.c:7654 +#: cp/decl.c:7667 #, gcc-internal-format msgid "structured binding refers to incomplete type %qT" msgstr "" -#: cp/decl.c:7670 +#: cp/decl.c:7683 #, gcc-internal-format msgid "cannot decompose variable length array %qT" msgstr "" -#: cp/decl.c:7679 cp/decl.c:7764 +#: cp/decl.c:7692 cp/decl.c:7777 #, gcc-internal-format, gfc-internal-format msgid "%u name provided for structured binding" msgid_plural "%u names provided for structured binding" msgstr[0] "" msgstr[1] "" -#: cp/decl.c:7683 +#: cp/decl.c:7696 #, gcc-internal-format, gfc-internal-format msgid "only %u name provided for structured binding" msgid_plural "only %u names provided for structured binding" msgstr[0] "" msgstr[1] "" -#: cp/decl.c:7686 +#: cp/decl.c:7699 #, gcc-internal-format msgid "while %qT decomposes into %wu element" msgid_plural "while %qT decomposes into %wu elements" msgstr[0] "" msgstr[1] "" -#: cp/decl.c:7731 +#: cp/decl.c:7744 #, gcc-internal-format msgid "cannot decompose variable length vector %qT" msgstr "" -#: cp/decl.c:7757 +#: cp/decl.c:7770 #, gcc-internal-format msgid "%::value%> is not an integral constant expression" msgstr "" -#: cp/decl.c:7766 +#: cp/decl.c:7779 #, gcc-internal-format msgid "while %qT decomposes into %E elements" msgstr "" -#: cp/decl.c:7787 +#: cp/decl.c:7800 #, gcc-internal-format msgid "in initialization of structured binding variable %qD" msgstr "" -#: cp/decl.c:7813 +#: cp/decl.c:7826 #, gcc-internal-format msgid "cannot decompose union type %qT" msgstr "" -#: cp/decl.c:7818 +#: cp/decl.c:7831 #, gcc-internal-format msgid "cannot decompose non-array non-class type %qT" msgstr "" -#: cp/decl.c:7823 +#: cp/decl.c:7836 #, gcc-internal-format msgid "cannot decompose lambda closure type %qT" msgstr "" -#: cp/decl.c:7827 +#: cp/decl.c:7840 #, gcc-internal-format msgid "structured binding refers to incomplete class type %qT" msgstr "" -#: cp/decl.c:7836 +#: cp/decl.c:7849 #, gcc-internal-format msgid "cannot decompose class type %qT without non-static data members" msgstr "" -#: cp/decl.c:8276 +#: cp/decl.c:8289 #, gcc-internal-format msgid "" "non-local variable %qD declared %<__thread%> needs dynamic initialization" msgstr "" -#: cp/decl.c:8279 +#: cp/decl.c:8292 #, gcc-internal-format msgid "" "non-local variable %qD declared %<__thread%> has a non-trivial destructor" msgstr "" -#: cp/decl.c:8284 +#: cp/decl.c:8297 #, gcc-internal-format msgid "C++11 % allows dynamic initialization and destruction" msgstr "" -#: cp/decl.c:8513 +#: cp/decl.c:8526 #, gcc-internal-format msgid "initializer fails to determine size of %qT" msgstr "" -#: cp/decl.c:8517 +#: cp/decl.c:8530 #, gcc-internal-format msgid "array size missing in %qT" msgstr "" -#: cp/decl.c:8520 +#: cp/decl.c:8533 #, gcc-internal-format msgid "zero-size array %qT" msgstr "" -#: cp/decl.c:8536 +#: cp/decl.c:8549 #, gcc-internal-format msgid "destructor for alien class %qT cannot be a member" msgstr "" -#: cp/decl.c:8538 +#: cp/decl.c:8551 #, gcc-internal-format msgid "constructor for alien class %qT cannot be a member" msgstr "" -#: cp/decl.c:8564 +#: cp/decl.c:8577 #, gcc-internal-format msgid "%qD declared as a % variable" msgstr "" -#: cp/decl.c:8566 +#: cp/decl.c:8579 #, gcc-internal-format msgid "" "% and % function specifiers on %qD invalid in variable " "declaration" msgstr "" -#: cp/decl.c:8572 +#: cp/decl.c:8585 #, gcc-internal-format msgid "%qD declared as a % parameter" msgstr "" -#: cp/decl.c:8575 +#: cp/decl.c:8588 #, gcc-internal-format msgid "%qD declared as an % parameter" msgstr "" -#: cp/decl.c:8577 +#: cp/decl.c:8590 #, gcc-internal-format msgid "" "% and % function specifiers on %qD invalid in parameter " "declaration" msgstr "" -#: cp/decl.c:8583 +#: cp/decl.c:8596 #, gcc-internal-format msgid "%qD declared as a % type" msgstr "" -#: cp/decl.c:8586 +#: cp/decl.c:8599 #, gcc-internal-format msgid "%qD declared as an % type" msgstr "" -#: cp/decl.c:8588 +#: cp/decl.c:8601 #, gcc-internal-format msgid "" "% and % function specifiers on %qD invalid in type " "declaration" msgstr "" -#: cp/decl.c:8594 +#: cp/decl.c:8607 #, gcc-internal-format msgid "%qD declared as a % field" msgstr "" -#: cp/decl.c:8597 +#: cp/decl.c:8610 #, gcc-internal-format msgid "%qD declared as an % field" msgstr "" -#: cp/decl.c:8599 +#: cp/decl.c:8612 #, gcc-internal-format msgid "" "% and % function specifiers on %qD invalid in field " "declaration" msgstr "" -#: cp/decl.c:8606 +#: cp/decl.c:8619 #, gcc-internal-format msgid "%q+D declared as a friend" msgstr "" -#: cp/decl.c:8613 +#: cp/decl.c:8626 #, gcc-internal-format msgid "%q+D declared with an exception specification" msgstr "" -#: cp/decl.c:8645 +#: cp/decl.c:8658 #, gcc-internal-format msgid "definition of %qD is not in namespace enclosing %qT" msgstr "" -#: cp/decl.c:8685 +#: cp/decl.c:8698 #, gcc-internal-format msgid "static member function %q#D declared with type qualifiers" msgstr "" -#: cp/decl.c:8696 +#: cp/decl.c:8709 #, gcc-internal-format msgid "concept %q#D declared with function parameters" msgstr "" -#: cp/decl.c:8703 +#: cp/decl.c:8716 #, gcc-internal-format msgid "concept %q#D declared with a deduced return type" msgstr "" -#: cp/decl.c:8706 +#: cp/decl.c:8719 #, gcc-internal-format msgid "concept %q#D with non-% return type %qT" msgstr "" -#: cp/decl.c:8782 +#: cp/decl.c:8795 #, gcc-internal-format msgid "concept %qD has no definition" msgstr "" -#: cp/decl.c:8844 +#: cp/decl.c:8857 #, gcc-internal-format msgid "defining explicit specialization %qD in friend declaration" msgstr "" -#: cp/decl.c:8855 +#: cp/decl.c:8868 #, gcc-internal-format msgid "invalid use of template-id %qD in declaration of primary template" msgstr "" -#: cp/decl.c:8876 +#: cp/decl.c:8889 #, gcc-internal-format msgid "" "default arguments are not allowed in declaration of friend template " "specialization %qD" msgstr "" -#: cp/decl.c:8885 +#: cp/decl.c:8898 #, gcc-internal-format msgid "" "% is not allowed in declaration of friend template specialization " "%qD" msgstr "" -#: cp/decl.c:8902 +#: cp/decl.c:8915 #, gcc-internal-format msgid "" -"friend declaration of %qD specifies default arguments and isn't a definition" +"friend declaration of %qD specifies default arguments and isn%'t a definition" msgstr "" -#: cp/decl.c:8949 +#: cp/decl.c:8962 #, gcc-internal-format msgid "cannot declare %<::main%> to be a template" msgstr "" -#: cp/decl.c:8952 +#: cp/decl.c:8965 #, gcc-internal-format msgid "cannot declare %<::main%> to be inline" msgstr "" -#: cp/decl.c:8955 +#: cp/decl.c:8968 #, gcc-internal-format msgid "cannot declare %<::main%> to be %" msgstr "" -#: cp/decl.c:8957 +#: cp/decl.c:8970 #, gcc-internal-format msgid "cannot declare %<::main%> to be static" msgstr "" -#: cp/decl.c:9014 +#: cp/decl.c:9027 #, gcc-internal-format msgid "static member function %qD cannot have cv-qualifier" msgstr "" -#: cp/decl.c:9015 +#: cp/decl.c:9028 #, gcc-internal-format msgid "non-member function %qD cannot have cv-qualifier" msgstr "" -#: cp/decl.c:9023 +#: cp/decl.c:9036 #, gcc-internal-format msgid "static member function %qD cannot have ref-qualifier" msgstr "" -#: cp/decl.c:9024 +#: cp/decl.c:9037 #, gcc-internal-format msgid "non-member function %qD cannot have ref-qualifier" msgstr "" -#: cp/decl.c:9034 +#: cp/decl.c:9047 #, gcc-internal-format msgid "deduction guide %qD must be declared at namespace scope" msgstr "" -#: cp/decl.c:9040 +#: cp/decl.c:9053 #, gcc-internal-format msgid "deduction guide %qD must not have a function body" msgstr "" -#: cp/decl.c:9053 +#: cp/decl.c:9066 #, gcc-internal-format msgid "literal operator with C linkage" msgstr "" -#: cp/decl.c:9063 +#: cp/decl.c:9076 #, gcc-internal-format msgid "%qD has invalid argument list" msgstr "" -#: cp/decl.c:9071 +#: cp/decl.c:9084 #, gcc-internal-format msgid "integer suffix %qs shadowed by implementation" msgstr "" -#: cp/decl.c:9077 +#: cp/decl.c:9090 #, gcc-internal-format msgid "floating point suffix %qs shadowed by implementation" msgstr "" -#: cp/decl.c:9085 +#: cp/decl.c:9098 #, gcc-internal-format msgid "" "literal operator suffixes not preceded by %<_%> are reserved for future " "standardization" msgstr "" -#: cp/decl.c:9090 +#: cp/decl.c:9103 #, gcc-internal-format msgid "%qD must be a non-member function" msgstr "" -#: cp/decl.c:9171 +#: cp/decl.c:9184 #, gcc-internal-format msgid "%<::main%> must return %" msgstr "" -#: cp/decl.c:9211 +#: cp/decl.c:9224 #, gcc-internal-format msgid "definition of implicitly-declared %qD" msgstr "" -#: cp/decl.c:9216 +#: cp/decl.c:9229 #, gcc-internal-format msgid "definition of explicitly-defaulted %q+D" msgstr "" -#: cp/decl.c:9218 +#: cp/decl.c:9231 #, gcc-internal-format msgid "%q#D explicitly defaulted here" msgstr "" -#: cp/decl.c:9235 +#: cp/decl.c:9248 #, gcc-internal-format msgid "no %q#D member function declared in class %qT" msgstr "" -#: cp/decl.c:9425 +#: cp/decl.c:9438 #, gcc-internal-format msgid "cannot declare %<::main%> to be a global variable" msgstr "" -#: cp/decl.c:9434 +#: cp/decl.c:9447 #, gcc-internal-format msgid "a non-template variable cannot be %" msgstr "" -#: cp/decl.c:9441 +#: cp/decl.c:9454 #, gcc-internal-format msgid "concept must have type %" msgstr "" -#: cp/decl.c:9561 +#: cp/decl.c:9574 #, gcc-internal-format msgid "in-class initialization of static data member %q#D of incomplete type" msgstr "" -#: cp/decl.c:9565 +#: cp/decl.c:9578 #, gcc-internal-format msgid "" "% needed for in-class initialization of static data member %q#D " "of non-integral type" msgstr "" -#: cp/decl.c:9569 +#: cp/decl.c:9582 #, gcc-internal-format msgid "in-class initialization of static data member %q#D of non-literal type" msgstr "" -#: cp/decl.c:9580 +#: cp/decl.c:9593 #, gcc-internal-format msgid "" "invalid in-class initialization of static data member of non-integral type " "%qT" msgstr "" -#: cp/decl.c:9585 +#: cp/decl.c:9598 #, gcc-internal-format msgid "ISO C++ forbids in-class initialization of non-const static member %qD" msgstr "" -#: cp/decl.c:9590 +#: cp/decl.c:9603 #, gcc-internal-format msgid "" "ISO C++ forbids initialization of member constant %qD of non-integral type " "%qT" msgstr "" -#: cp/decl.c:9695 +#: cp/decl.c:9712 #, gcc-internal-format msgid "size of array %qD has non-integral type %qT" msgstr "" -#: cp/decl.c:9698 +#: cp/decl.c:9715 #, gcc-internal-format msgid "size of array has non-integral type %qT" msgstr "" -#: cp/decl.c:9729 cp/decl.c:9784 +#: cp/decl.c:9746 cp/decl.c:9815 #, gcc-internal-format msgid "size of array %qD is not an integral constant-expression" msgstr "" -#: cp/decl.c:9733 cp/decl.c:9787 +#: cp/decl.c:9750 cp/decl.c:9818 #, gcc-internal-format msgid "size of array is not an integral constant-expression" msgstr "" -#: cp/decl.c:9750 -#, gcc-internal-format -msgid "size of array %qD is negative" -msgstr "" - -#: cp/decl.c:9752 cp/init.c:3753 -#, gcc-internal-format -msgid "size of array is negative" -msgstr "" - -#: cp/decl.c:9767 +#: cp/decl.c:9798 #, gcc-internal-format msgid "ISO C++ forbids zero-size array %qD" msgstr "" -#: cp/decl.c:9770 +#: cp/decl.c:9801 #, gcc-internal-format msgid "ISO C++ forbids zero-size array" msgstr "" -#: cp/decl.c:9794 +#: cp/decl.c:9825 #, gcc-internal-format msgid "ISO C++ forbids variable length array %qD" msgstr "" -#: cp/decl.c:9797 +#: cp/decl.c:9828 #, gcc-internal-format msgid "ISO C++ forbids variable length array" msgstr "" -#: cp/decl.c:9803 +#: cp/decl.c:9834 #, gcc-internal-format msgid "variable length array %qD is used" msgstr "" -#: cp/decl.c:9806 +#: cp/decl.c:9837 #, gcc-internal-format msgid "variable length array is used" msgstr "" -#: cp/decl.c:9855 +#: cp/decl.c:9886 #, gcc-internal-format msgid "overflow in array dimension" msgstr "" -#: cp/decl.c:9915 +#: cp/decl.c:9946 #, gcc-internal-format msgid "%qD declared as array of %qT" msgstr "" -#: cp/decl.c:9917 cp/pt.c:14874 +#: cp/decl.c:9948 cp/pt.c:14914 #, gcc-internal-format msgid "creating array of %qT" msgstr "" -#: cp/decl.c:9927 +#: cp/decl.c:9958 #, gcc-internal-format msgid "declaration of %qD as array of void" msgstr "" -#: cp/decl.c:9929 +#: cp/decl.c:9960 #, gcc-internal-format msgid "creating array of void" msgstr "" -#: cp/decl.c:9934 +#: cp/decl.c:9965 #, gcc-internal-format msgid "declaration of %qD as array of functions" msgstr "" -#: cp/decl.c:9936 +#: cp/decl.c:9967 #, gcc-internal-format msgid "creating array of functions" msgstr "" -#: cp/decl.c:9941 +#: cp/decl.c:9972 #, gcc-internal-format msgid "declaration of %qD as array of references" msgstr "" -#: cp/decl.c:9943 +#: cp/decl.c:9974 #, gcc-internal-format msgid "creating array of references" msgstr "" -#: cp/decl.c:9948 +#: cp/decl.c:9979 #, gcc-internal-format msgid "declaration of %qD as array of function members" msgstr "" -#: cp/decl.c:9951 +#: cp/decl.c:9982 #, gcc-internal-format msgid "creating array of function members" msgstr "" -#: cp/decl.c:9965 +#: cp/decl.c:9996 #, gcc-internal-format msgid "" "declaration of %qD as multidimensional array must have bounds for all " "dimensions except the first" msgstr "" -#: cp/decl.c:9969 +#: cp/decl.c:10000 #, gcc-internal-format msgid "" "multidimensional array must have bounds for all dimensions except the first" msgstr "" -#: cp/decl.c:10039 +#: cp/decl.c:10070 #, gcc-internal-format msgid "return type specification for constructor invalid" msgstr "" -#: cp/decl.c:10042 +#: cp/decl.c:10073 #, gcc-internal-format msgid "qualifiers are not allowed on constructor declaration" msgstr "" -#: cp/decl.c:10052 +#: cp/decl.c:10083 #, gcc-internal-format msgid "return type specification for destructor invalid" msgstr "" -#: cp/decl.c:10055 +#: cp/decl.c:10086 #, gcc-internal-format msgid "qualifiers are not allowed on destructor declaration" msgstr "" -#: cp/decl.c:10067 +#: cp/decl.c:10098 #, gcc-internal-format msgid "return type specified for %" msgstr "" -#: cp/decl.c:10070 +#: cp/decl.c:10101 #, gcc-internal-format msgid "qualifiers are not allowed on declaration of %" msgstr "" -#: cp/decl.c:10078 +#: cp/decl.c:10109 #, gcc-internal-format msgid "return type specified for deduction guide" msgstr "" -#: cp/decl.c:10081 +#: cp/decl.c:10112 #, gcc-internal-format msgid "qualifiers are not allowed on declaration of deduction guide" msgstr "" -#: cp/decl.c:10085 +#: cp/decl.c:10116 #, gcc-internal-format msgid "template template parameter %qT in declaration of deduction guide" msgstr "" -#: cp/decl.c:10094 +#: cp/decl.c:10125 #, gcc-internal-format msgid "decl-specifier in declaration of deduction guide" msgstr "" -#: cp/decl.c:10115 +#: cp/decl.c:10146 #, gcc-internal-format msgid "unnamed variable or field declared void" msgstr "" -#: cp/decl.c:10122 +#: cp/decl.c:10153 #, gcc-internal-format msgid "variable or field declared void" msgstr "" -#: cp/decl.c:10137 +#: cp/decl.c:10168 #, gcc-internal-format msgid "% specifier invalid for variable %qD declared at block scope" msgstr "" -#: cp/decl.c:10142 +#: cp/decl.c:10173 #, gcc-internal-format -msgid "inline variables are only available with -std=c++17 or -std=gnu++17" +msgid "" +"inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>" msgstr "" -#: cp/decl.c:10400 +#: cp/decl.c:10431 #, gcc-internal-format msgid "invalid use of qualified-name %<::%D%>" msgstr "" -#: cp/decl.c:10403 cp/decl.c:10423 +#: cp/decl.c:10434 cp/decl.c:10454 #, gcc-internal-format msgid "invalid use of qualified-name %<%T::%D%>" msgstr "" -#: cp/decl.c:10406 +#: cp/decl.c:10437 #, gcc-internal-format msgid "invalid use of qualified-name %<%D::%D%>" msgstr "" -#: cp/decl.c:10415 +#: cp/decl.c:10446 #, gcc-internal-format msgid "%q#T is not a class or a namespace" msgstr "" -#: cp/decl.c:10437 cp/decl.c:10530 cp/decl.c:10539 cp/decl.c:12183 +#: cp/decl.c:10468 cp/decl.c:10561 cp/decl.c:10570 cp/decl.c:12214 #, gcc-internal-format msgid "declaration of %qD as non-function" msgstr "" -#: cp/decl.c:10443 +#: cp/decl.c:10474 #, gcc-internal-format msgid "declaration of %qD as non-member" msgstr "" -#: cp/decl.c:10471 +#: cp/decl.c:10502 #, gcc-internal-format msgid "declarator-id missing; using reserved word %qD" msgstr "" -#: cp/decl.c:10522 +#: cp/decl.c:10553 #, gcc-internal-format msgid "function definition does not declare parameters" msgstr "" -#: cp/decl.c:10547 +#: cp/decl.c:10578 #, gcc-internal-format msgid "declaration of %qD as %" msgstr "" -#: cp/decl.c:10552 +#: cp/decl.c:10583 #, gcc-internal-format msgid "declaration of %qD as parameter" msgstr "" -#: cp/decl.c:10587 +#: cp/decl.c:10618 #, gcc-internal-format msgid "% cannot appear in a typedef declaration" msgstr "" -#: cp/decl.c:10594 +#: cp/decl.c:10625 #, gcc-internal-format msgid "% cannot appear in a typedef declaration" msgstr "" -#: cp/decl.c:10602 +#: cp/decl.c:10633 #, gcc-internal-format msgid "two or more data types in declaration of %qs" msgstr "" -#: cp/decl.c:10608 +#: cp/decl.c:10639 #, gcc-internal-format msgid "conflicting specifiers in declaration of %qs" msgstr "" -#: cp/decl.c:10643 +#: cp/decl.c:10674 #, gcc-internal-format msgid "ISO C++ does not support plain % meaning %" msgstr "" -#: cp/decl.c:10692 cp/decl.c:10695 cp/decl.c:10698 +#: cp/decl.c:10723 cp/decl.c:10726 cp/decl.c:10729 #, gcc-internal-format msgid "ISO C++ forbids declaration of %qs with no type" msgstr "" -#: cp/decl.c:10714 +#: cp/decl.c:10745 #, gcc-internal-format msgid "%<__int%d%> is not supported by this target" msgstr "" -#: cp/decl.c:10720 +#: cp/decl.c:10751 #, gcc-internal-format msgid "ISO C++ does not support %<__int%d%> for %qs" msgstr "" -#: cp/decl.c:10774 +#: cp/decl.c:10805 #, gcc-internal-format msgid "% and % specified together" msgstr "" -#: cp/decl.c:10780 +#: cp/decl.c:10811 #, gcc-internal-format msgid "% and % specified together" msgstr "" -#: cp/decl.c:10788 cp/decl.c:10794 +#: cp/decl.c:10819 cp/decl.c:10825 #, gcc-internal-format msgid "%qs specified with %qT" msgstr "" -#: cp/decl.c:10799 +#: cp/decl.c:10830 #, gcc-internal-format msgid "%qs specified with %" msgstr "" -#: cp/decl.c:10801 +#: cp/decl.c:10832 #, gcc-internal-format msgid "%qs specified with %" msgstr "" -#: cp/decl.c:10867 +#: cp/decl.c:10898 #, gcc-internal-format msgid "complex invalid for %qs" msgstr "" -#: cp/decl.c:10906 +#: cp/decl.c:10937 #, gcc-internal-format msgid "" "template placeholder type %qT must be followed by a simple declarator-id" msgstr "" -#: cp/decl.c:10926 +#: cp/decl.c:10957 #, gcc-internal-format msgid "member %qD cannot be declared both % and %" msgstr "" -#: cp/decl.c:10935 +#: cp/decl.c:10966 #, gcc-internal-format msgid "" -"member %qD can be declared both % and % only in -std=c+" -"+2a or -std=gnu++2a" +"member %qD can be declared both % and % only in %<-" +"std=c++2a%> or %<-std=gnu++2a%>" msgstr "" -#: cp/decl.c:10948 +#: cp/decl.c:10979 #, gcc-internal-format msgid "typedef declaration invalid in parameter declaration" msgstr "" -#: cp/decl.c:10955 +#: cp/decl.c:10986 #, gcc-internal-format msgid "storage class specified for template parameter %qs" msgstr "" -#: cp/decl.c:10965 cp/decl.c:11107 +#: cp/decl.c:10996 cp/decl.c:11138 #, gcc-internal-format msgid "storage class specified for parameter %qs" msgstr "" -#: cp/decl.c:10972 +#: cp/decl.c:11003 #, gcc-internal-format msgid "a parameter cannot be declared %" msgstr "" -#: cp/decl.c:10978 +#: cp/decl.c:11009 #, gcc-internal-format msgid "a parameter cannot be declared %" msgstr "" -#: cp/decl.c:10988 +#: cp/decl.c:11019 #, gcc-internal-format msgid "% outside class declaration" msgstr "" -#: cp/decl.c:10998 +#: cp/decl.c:11029 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11001 +#: cp/decl.c:11032 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11003 +#: cp/decl.c:11034 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11007 +#: cp/decl.c:11038 #, gcc-internal-format msgid "structured binding declaration cannot be %qs" msgstr "" -#: cp/decl.c:11012 +#: cp/decl.c:11043 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11018 +#: cp/decl.c:11049 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11022 +#: cp/decl.c:11053 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11026 +#: cp/decl.c:11057 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11030 +#: cp/decl.c:11061 #, gcc-internal-format msgid "structured binding declaration cannot be %" msgstr "" -#: cp/decl.c:11034 +#: cp/decl.c:11065 #, gcc-internal-format msgid "structured binding declaration cannot be C++98 %" msgstr "" -#: cp/decl.c:11045 +#: cp/decl.c:11076 #, gcc-internal-format msgid "structured binding declaration cannot have type %qT" msgstr "" -#: cp/decl.c:11048 +#: cp/decl.c:11079 #, gcc-internal-format msgid "" "type must be cv-qualified % or reference to cv-qualified %" msgstr "" -#: cp/decl.c:11079 +#: cp/decl.c:11110 #, gcc-internal-format msgid "multiple storage classes in declaration of %qs" msgstr "" -#: cp/decl.c:11105 +#: cp/decl.c:11136 #, gcc-internal-format msgid "storage class specified for %qs" msgstr "" -#: cp/decl.c:11119 +#: cp/decl.c:11150 #, gcc-internal-format msgid "nested function %qs declared %" msgstr "" -#: cp/decl.c:11123 +#: cp/decl.c:11154 #, gcc-internal-format msgid "top-level declaration of %qs specifies %" msgstr "" -#: cp/decl.c:11131 +#: cp/decl.c:11162 #, gcc-internal-format msgid "function-scope %qs implicitly auto and declared %<__thread%>" msgstr "" -#: cp/decl.c:11145 +#: cp/decl.c:11176 #, gcc-internal-format msgid "storage class specifiers invalid in friend function declarations" msgstr "" -#: cp/decl.c:11227 +#: cp/decl.c:11258 #, gcc-internal-format msgid "unnecessary parentheses in declaration of %qs" msgstr "" -#: cp/decl.c:11276 +#: cp/decl.c:11307 #, gcc-internal-format msgid "requires-clause on return type" msgstr "" -#: cp/decl.c:11299 +#: cp/decl.c:11330 #, gcc-internal-format msgid "%qs function uses % type specifier without trailing return type" msgstr "" -#: cp/decl.c:11303 +#: cp/decl.c:11334 #, gcc-internal-format -msgid "deduced return type only available with -std=c++14 or -std=gnu++14" +msgid "" +"deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>" msgstr "" -#: cp/decl.c:11308 +#: cp/decl.c:11339 #, gcc-internal-format msgid "virtual function cannot have deduced return type" msgstr "" -#: cp/decl.c:11315 +#: cp/decl.c:11346 #, gcc-internal-format msgid "" "%qs function with trailing return type has %qT as its type rather than plain " "%" msgstr "" -#: cp/decl.c:11324 +#: cp/decl.c:11355 #, gcc-internal-format msgid "" "%qs function with trailing return type has % as its type " "rather than plain %" msgstr "" -#: cp/decl.c:11329 +#: cp/decl.c:11360 #, gcc-internal-format msgid "invalid use of %" msgstr "" -#: cp/decl.c:11340 +#: cp/decl.c:11371 #, gcc-internal-format msgid "deduced class type %qD in function return type" msgstr "" -#: cp/decl.c:11349 +#: cp/decl.c:11380 #, gcc-internal-format msgid "deduction guide for %qT must have trailing return type" msgstr "" -#: cp/decl.c:11362 +#: cp/decl.c:11393 #, gcc-internal-format msgid "" "trailing return type %qT of deduction guide is not a specialization of %qT" msgstr "" -#: cp/decl.c:11374 +#: cp/decl.c:11405 #, gcc-internal-format -msgid "trailing return type only available with -std=c++11 or -std=gnu++11" +msgid "" +"trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/decl.c:11377 +#: cp/decl.c:11408 #, gcc-internal-format msgid "" "%qs function with trailing return type not declared with % type " "specifier" msgstr "" -#: cp/decl.c:11407 +#: cp/decl.c:11438 #, gcc-internal-format msgid "%qs declared as function returning a function" msgstr "" -#: cp/decl.c:11413 +#: cp/decl.c:11444 #, gcc-internal-format msgid "%qs declared as function returning an array" msgstr "" -#: cp/decl.c:11442 +#: cp/decl.c:11473 #, gcc-internal-format msgid "destructor cannot be static member function" msgstr "" -#: cp/decl.c:11443 +#: cp/decl.c:11474 #, gcc-internal-format msgid "constructor cannot be static member function" msgstr "" -#: cp/decl.c:11447 +#: cp/decl.c:11478 #, gcc-internal-format msgid "destructors may not be cv-qualified" msgstr "" -#: cp/decl.c:11448 +#: cp/decl.c:11479 #, gcc-internal-format msgid "constructors may not be cv-qualified" msgstr "" -#: cp/decl.c:11456 +#: cp/decl.c:11487 #, gcc-internal-format msgid "destructors may not be ref-qualified" msgstr "" -#: cp/decl.c:11457 +#: cp/decl.c:11488 #, gcc-internal-format msgid "constructors may not be ref-qualified" msgstr "" -#: cp/decl.c:11475 +#: cp/decl.c:11506 #, gcc-internal-format msgid "constructors cannot be declared %" msgstr "" -#: cp/decl.c:11492 +#: cp/decl.c:11523 #, gcc-internal-format msgid "virtual functions cannot be friends" msgstr "" -#: cp/decl.c:11496 +#: cp/decl.c:11527 #, gcc-internal-format msgid "friend declaration not in class definition" msgstr "" -#: cp/decl.c:11499 +#: cp/decl.c:11530 #, gcc-internal-format msgid "can%'t define friend function %qs in a local class definition" msgstr "" -#: cp/decl.c:11512 +#: cp/decl.c:11543 #, gcc-internal-format msgid "a conversion function cannot have a trailing return type" msgstr "" -#: cp/decl.c:11538 +#: cp/decl.c:11569 #, gcc-internal-format msgid "destructors may not have parameters" msgstr "" -#: cp/decl.c:11578 +#: cp/decl.c:11609 #, gcc-internal-format msgid "cannot declare pointer to %q#T" msgstr "" -#: cp/decl.c:11591 cp/decl.c:11598 +#: cp/decl.c:11622 cp/decl.c:11629 #, gcc-internal-format msgid "cannot declare reference to %q#T" msgstr "" -#: cp/decl.c:11600 +#: cp/decl.c:11631 #, gcc-internal-format msgid "cannot declare pointer to %q#T member" msgstr "" -#: cp/decl.c:11629 +#: cp/decl.c:11660 #, gcc-internal-format msgid "cannot declare reference to qualified function type %qT" msgstr "" -#: cp/decl.c:11630 +#: cp/decl.c:11661 #, gcc-internal-format msgid "cannot declare pointer to qualified function type %qT" msgstr "" -#: cp/decl.c:11703 +#: cp/decl.c:11734 #, gcc-internal-format msgid "" "cannot declare reference to %q#T, which is not a typedef or a template type " "argument" msgstr "" -#: cp/decl.c:11773 +#: cp/decl.c:11804 #, gcc-internal-format msgid "template-id %qD used as a declarator" msgstr "" -#: cp/decl.c:11798 +#: cp/decl.c:11829 #, gcc-internal-format msgid "member functions are implicitly friends of their class" msgstr "" -#: cp/decl.c:11804 +#: cp/decl.c:11835 #, gcc-internal-format msgid "extra qualification %<%T::%> on member %qs" msgstr "" -#: cp/decl.c:11834 +#: cp/decl.c:11865 #, gcc-internal-format msgid "cannot define member function %<%T::%s%> within %qT" msgstr "" -#: cp/decl.c:11836 +#: cp/decl.c:11867 #, gcc-internal-format msgid "cannot declare member function %<%T::%s%> within %qT" msgstr "" -#: cp/decl.c:11844 +#: cp/decl.c:11875 #, gcc-internal-format msgid "cannot declare member %<%T::%s%> within %qT" msgstr "" -#: cp/decl.c:11884 +#: cp/decl.c:11915 #, gcc-internal-format msgid "non-parameter %qs cannot be a parameter pack" msgstr "" -#: cp/decl.c:11892 +#: cp/decl.c:11923 #, gcc-internal-format msgid "data member may not have variably modified type %qT" msgstr "" -#: cp/decl.c:11894 +#: cp/decl.c:11925 #, gcc-internal-format msgid "parameter may not have variably modified type %qT" msgstr "" -#: cp/decl.c:11905 +#: cp/decl.c:11936 #, gcc-internal-format msgid "% outside class declaration" msgstr "" -#: cp/decl.c:11908 +#: cp/decl.c:11939 #, gcc-internal-format msgid "% in friend declaration" msgstr "" -#: cp/decl.c:11911 +#: cp/decl.c:11942 #, gcc-internal-format msgid "" "only declarations of constructors and conversion operators can be %" msgstr "" -#: cp/decl.c:11921 +#: cp/decl.c:11952 #, gcc-internal-format msgid "non-member %qs cannot be declared %" msgstr "" -#: cp/decl.c:11928 +#: cp/decl.c:11959 #, gcc-internal-format msgid "non-object member %qs cannot be declared %" msgstr "" -#: cp/decl.c:11935 +#: cp/decl.c:11966 #, gcc-internal-format msgid "function %qs cannot be declared %" msgstr "" -#: cp/decl.c:11941 +#: cp/decl.c:11972 #, gcc-internal-format msgid "% %qs cannot be declared %" msgstr "" -#: cp/decl.c:11947 +#: cp/decl.c:11978 #, gcc-internal-format msgid "% %qs cannot be declared %" msgstr "" -#: cp/decl.c:11953 +#: cp/decl.c:11984 #, gcc-internal-format msgid "reference %qs cannot be declared %" msgstr "" -#: cp/decl.c:11989 +#: cp/decl.c:12020 #, gcc-internal-format msgid "% not allowed in alias declaration" msgstr "" -#: cp/decl.c:11992 +#: cp/decl.c:12023 #, gcc-internal-format msgid "typedef declared %" msgstr "" -#: cp/decl.c:11997 +#: cp/decl.c:12028 #, gcc-internal-format msgid "requires-clause on typedef" msgstr "" -#: cp/decl.c:12001 +#: cp/decl.c:12032 #, gcc-internal-format msgid "typedef name may not be a nested-name-specifier" msgstr "" -#: cp/decl.c:12025 +#: cp/decl.c:12056 #, gcc-internal-format msgid "ISO C++ forbids nested type %qD with same name as enclosing class" msgstr "" -#: cp/decl.c:12113 +#: cp/decl.c:12144 #, gcc-internal-format msgid "% specified for friend class declaration" msgstr "" -#: cp/decl.c:12121 +#: cp/decl.c:12152 #, gcc-internal-format msgid "template parameters cannot be friends" msgstr "" -#: cp/decl.c:12123 +#: cp/decl.c:12154 #, gcc-internal-format msgid "friend declaration requires class-key, i.e. %" msgstr "" -#: cp/decl.c:12127 +#: cp/decl.c:12158 #, gcc-internal-format msgid "friend declaration requires class-key, i.e. %" msgstr "" -#: cp/decl.c:12140 +#: cp/decl.c:12171 #, gcc-internal-format msgid "trying to make class %qT a friend of global scope" msgstr "" -#: cp/decl.c:12160 +#: cp/decl.c:12191 #, gcc-internal-format msgid "invalid qualifiers on non-member function type" msgstr "" -#: cp/decl.c:12164 +#: cp/decl.c:12195 #, gcc-internal-format msgid "requires-clause on type-id" msgstr "" -#: cp/decl.c:12174 +#: cp/decl.c:12205 #, gcc-internal-format msgid "abstract declarator %qT used as declaration" msgstr "" -#: cp/decl.c:12189 +#: cp/decl.c:12220 #, gcc-internal-format msgid "requires-clause on declaration of non-function type %qT" msgstr "" -#: cp/decl.c:12208 +#: cp/decl.c:12239 #, gcc-internal-format msgid "cannot use %<::%> in parameter declaration" msgstr "" -#: cp/decl.c:12214 +#: cp/decl.c:12245 #, gcc-internal-format msgid "% parameter not permitted in this context" msgstr "" -#: cp/decl.c:12216 +#: cp/decl.c:12247 #, gcc-internal-format msgid "parameter declared %" msgstr "" -#: cp/decl.c:12267 cp/parser.c:3287 +#: cp/decl.c:12298 cp/parser.c:3287 #, gcc-internal-format msgid "invalid use of template-name %qE without an argument list" msgstr "" -#: cp/decl.c:12271 +#: cp/decl.c:12302 #, gcc-internal-format msgid "non-static data member declared with placeholder %qT" msgstr "" -#: cp/decl.c:12295 +#: cp/decl.c:12326 #, gcc-internal-format msgid "ISO C++ forbids flexible array member %qs" msgstr "" -#: cp/decl.c:12298 +#: cp/decl.c:12329 #, gcc-internal-format msgid "ISO C++ forbids flexible array members" msgstr "" #. Something like struct S { int N::j; }; -#: cp/decl.c:12314 +#: cp/decl.c:12345 #, gcc-internal-format msgid "invalid use of %<::%>" msgstr "" -#: cp/decl.c:12335 +#: cp/decl.c:12366 #, gcc-internal-format msgid "declaration of function %qD in invalid context" msgstr "" -#: cp/decl.c:12345 +#: cp/decl.c:12376 #, gcc-internal-format msgid "function %qD declared % inside a union" msgstr "" -#: cp/decl.c:12355 +#: cp/decl.c:12386 #, gcc-internal-format msgid "%qD cannot be declared %, since it is always static" msgstr "" -#: cp/decl.c:12369 +#: cp/decl.c:12400 #, gcc-internal-format msgid "expected qualified name in friend declaration for destructor %qD" msgstr "" -#: cp/decl.c:12376 +#: cp/decl.c:12407 #, gcc-internal-format msgid "declaration of %qD as member of %qT" msgstr "" -#: cp/decl.c:12383 +#: cp/decl.c:12414 #, gcc-internal-format msgid "a destructor cannot be %" msgstr "" -#: cp/decl.c:12389 +#: cp/decl.c:12420 #, gcc-internal-format msgid "a destructor cannot be %" msgstr "" -#: cp/decl.c:12395 +#: cp/decl.c:12426 #, gcc-internal-format msgid "expected qualified name in friend declaration for constructor %qD" msgstr "" -#: cp/decl.c:12404 +#: cp/decl.c:12435 #, gcc-internal-format msgid "a constructor cannot be %" msgstr "" -#: cp/decl.c:12410 +#: cp/decl.c:12441 #, gcc-internal-format msgid "a concept cannot be a member function" msgstr "" -#: cp/decl.c:12419 +#: cp/decl.c:12450 #, gcc-internal-format msgid "specialization of variable template %qD declared as function" msgstr "" -#: cp/decl.c:12422 +#: cp/decl.c:12453 #, gcc-internal-format msgid "variable template declared here" msgstr "" -#: cp/decl.c:12480 +#: cp/decl.c:12511 #, gcc-internal-format msgid "field %qD has incomplete type %qT" msgstr "" -#: cp/decl.c:12485 +#: cp/decl.c:12516 #, gcc-internal-format msgid "name %qT has incomplete type" msgstr "" -#: cp/decl.c:12497 +#: cp/decl.c:12528 #, gcc-internal-format msgid "%qE is neither function nor member function; cannot be declared friend" msgstr "" -#: cp/decl.c:12500 +#: cp/decl.c:12531 #, gcc-internal-format msgid "" "unnamed field is neither function nor member function; cannot be declared " "friend" msgstr "" -#: cp/decl.c:12545 +#: cp/decl.c:12576 #, gcc-internal-format msgid "static data member %qE declared %" msgstr "" -#: cp/decl.c:12550 +#: cp/decl.c:12581 #, gcc-internal-format msgid "% static data member %qD must have an initializer" msgstr "" -#: cp/decl.c:12579 +#: cp/decl.c:12610 #, gcc-internal-format msgid "non-static data member %qE declared %" msgstr "" -#: cp/decl.c:12584 +#: cp/decl.c:12615 #, gcc-internal-format msgid "non-static data member %qE declared %" msgstr "" -#: cp/decl.c:12639 +#: cp/decl.c:12670 #, gcc-internal-format msgid "storage class % invalid for function %qs" msgstr "" -#: cp/decl.c:12641 +#: cp/decl.c:12672 #, gcc-internal-format msgid "storage class % invalid for function %qs" msgstr "" -#: cp/decl.c:12646 +#: cp/decl.c:12677 #, gcc-internal-format msgid "storage class %<__thread%> invalid for function %qs" msgstr "" -#: cp/decl.c:12650 +#: cp/decl.c:12681 #, gcc-internal-format msgid "storage class % invalid for function %qs" msgstr "" -#: cp/decl.c:12655 +#: cp/decl.c:12686 #, gcc-internal-format msgid "virt-specifiers in %qs not allowed outside a class definition" msgstr "" -#: cp/decl.c:12667 +#: cp/decl.c:12698 #, gcc-internal-format msgid "" "% specifier invalid for function %qs declared out of global scope" msgstr "" -#: cp/decl.c:12671 +#: cp/decl.c:12702 #, gcc-internal-format msgid "" "% specifier invalid for function %qs declared out of global scope" msgstr "" -#: cp/decl.c:12679 +#: cp/decl.c:12710 #, gcc-internal-format msgid "virtual non-class function %qs" msgstr "" -#: cp/decl.c:12686 +#: cp/decl.c:12717 #, gcc-internal-format msgid "%qs defined in a non-class scope" msgstr "" -#: cp/decl.c:12687 +#: cp/decl.c:12718 #, gcc-internal-format msgid "%qs declared in a non-class scope" msgstr "" -#: cp/decl.c:12721 +#: cp/decl.c:12752 #, gcc-internal-format msgid "cannot declare member function %qD to have static linkage" msgstr "" -#: cp/decl.c:12730 +#: cp/decl.c:12761 #, gcc-internal-format msgid "cannot declare static function inside another function" msgstr "" -#: cp/decl.c:12769 +#: cp/decl.c:12800 #, gcc-internal-format msgid "" "% may not be used when defining (as opposed to declaring) a static " "data member" msgstr "" -#: cp/decl.c:12776 +#: cp/decl.c:12807 #, gcc-internal-format msgid "static member %qD declared %" msgstr "" -#: cp/decl.c:12782 +#: cp/decl.c:12813 #, gcc-internal-format msgid "cannot explicitly declare member %q#D to have extern linkage" msgstr "" -#: cp/decl.c:12790 +#: cp/decl.c:12821 #, gcc-internal-format msgid "declaration of % variable %qD is not a definition" msgstr "" -#: cp/decl.c:12811 +#: cp/decl.c:12842 #, gcc-internal-format msgid "declaration of %q#D has no initializer" msgstr "" -#: cp/decl.c:12823 +#: cp/decl.c:12854 #, gcc-internal-format msgid "%qs initialized and declared %" msgstr "" -#: cp/decl.c:12828 +#: cp/decl.c:12859 #, gcc-internal-format msgid "%qs has both % and initializer" msgstr "" -#: cp/decl.c:12993 +#: cp/decl.c:13024 #, gcc-internal-format msgid "default argument %qE uses %qD" msgstr "" -#: cp/decl.c:12996 +#: cp/decl.c:13027 #, gcc-internal-format msgid "default argument %qE uses local variable %qD" msgstr "" -#: cp/decl.c:13080 +#: cp/decl.c:13111 #, gcc-internal-format msgid "invalid use of cv-qualified type %qT in parameter declaration" msgstr "" -#: cp/decl.c:13084 +#: cp/decl.c:13115 #, gcc-internal-format msgid "invalid use of type % in parameter declaration" msgstr "" -#: cp/decl.c:13107 +#: cp/decl.c:13138 #, gcc-internal-format msgid "parameter %qD invalidly declared method type" msgstr "" -#: cp/decl.c:13134 +#: cp/decl.c:13165 #, gcc-internal-format msgid "parameter %qD includes pointer to array of unknown bound %qT" msgstr "" -#: cp/decl.c:13136 +#: cp/decl.c:13167 #, gcc-internal-format msgid "parameter %qD includes reference to array of unknown bound %qT" msgstr "" @@ -45190,171 +45426,171 @@ msgstr "" #. or implicitly defined), there's no need to worry about their #. existence. Theoretically, they should never even be #. instantiated, but that's hard to forestall. -#: cp/decl.c:13389 +#: cp/decl.c:13421 #, gcc-internal-format msgid "invalid constructor; you probably meant %<%T (const %T&)%>" msgstr "" -#: cp/decl.c:13468 +#: cp/decl.c:13500 #, gcc-internal-format msgid "%qD may not be declared within a namespace" msgstr "" -#: cp/decl.c:13475 +#: cp/decl.c:13507 #, gcc-internal-format msgid "%qD may not be declared as static" msgstr "" -#: cp/decl.c:13502 +#: cp/decl.c:13534 #, gcc-internal-format msgid "%qD must be a nonstatic member function" msgstr "" -#: cp/decl.c:13508 +#: cp/decl.c:13540 #, gcc-internal-format msgid "" "%qD must be either a non-static member function or a non-member function" msgstr "" -#: cp/decl.c:13518 +#: cp/decl.c:13550 #, gcc-internal-format msgid "%qD must have an argument of class or enumerated type" msgstr "" #. 13.4.0.3 -#: cp/decl.c:13544 +#: cp/decl.c:13576 #, gcc-internal-format msgid "ISO C++ prohibits overloading operator ?:" msgstr "" #. Variadic. -#: cp/decl.c:13555 +#: cp/decl.c:13587 #, gcc-internal-format msgid "%qD must not have variable number of arguments" msgstr "" -#: cp/decl.c:13581 +#: cp/decl.c:13613 #, gcc-internal-format msgid "%qD must have either zero or one argument" msgstr "" -#: cp/decl.c:13582 +#: cp/decl.c:13614 #, gcc-internal-format msgid "%qD must have either one or two arguments" msgstr "" -#: cp/decl.c:13594 +#: cp/decl.c:13626 #, gcc-internal-format msgid "postfix %qD must have % as its argument" msgstr "" -#: cp/decl.c:13595 +#: cp/decl.c:13627 #, gcc-internal-format msgid "postfix %qD must have % as its second argument" msgstr "" -#: cp/decl.c:13606 +#: cp/decl.c:13638 #, gcc-internal-format msgid "%qD must have no arguments" msgstr "" -#: cp/decl.c:13607 cp/decl.c:13617 +#: cp/decl.c:13639 cp/decl.c:13649 #, gcc-internal-format msgid "%qD must have exactly one argument" msgstr "" -#: cp/decl.c:13618 +#: cp/decl.c:13650 #, gcc-internal-format msgid "%qD must have exactly two arguments" msgstr "" -#: cp/decl.c:13632 +#: cp/decl.c:13664 #, gcc-internal-format msgid "%qD cannot have default arguments" msgstr "" -#: cp/decl.c:13656 +#: cp/decl.c:13688 #, gcc-internal-format msgid "converting %qT to % will never use a type conversion operator" msgstr "" -#: cp/decl.c:13663 +#: cp/decl.c:13695 #, gcc-internal-format msgid "" "converting %qT to a reference to the same type will never use a type " "conversion operator" msgstr "" -#: cp/decl.c:13665 +#: cp/decl.c:13697 #, gcc-internal-format msgid "" "converting %qT to the same type will never use a type conversion operator" msgstr "" -#: cp/decl.c:13674 +#: cp/decl.c:13706 #, gcc-internal-format msgid "" "converting %qT to a reference to a base class %qT will never use a type " "conversion operator" msgstr "" -#: cp/decl.c:13676 +#: cp/decl.c:13708 #, gcc-internal-format msgid "" "converting %qT to a base class %qT will never use a type conversion operator" msgstr "" -#: cp/decl.c:13692 +#: cp/decl.c:13724 #, gcc-internal-format msgid "user-defined %qD always evaluates both arguments" msgstr "" -#: cp/decl.c:13711 +#: cp/decl.c:13743 #, gcc-internal-format msgid "prefix %qD should return %qT" msgstr "" -#: cp/decl.c:13718 +#: cp/decl.c:13750 #, gcc-internal-format msgid "postfix %qD should return %qT" msgstr "" -#: cp/decl.c:13730 +#: cp/decl.c:13762 #, gcc-internal-format msgid "%qD should return by value" msgstr "" -#: cp/decl.c:13785 +#: cp/decl.c:13817 #, gcc-internal-format msgid "using template type parameter %qT after %qs" msgstr "" -#: cp/decl.c:13808 +#: cp/decl.c:13840 #, gcc-internal-format msgid "using alias template specialization %qT after %qs" msgstr "" -#: cp/decl.c:13811 +#: cp/decl.c:13843 #, gcc-internal-format msgid "using typedef-name %qD after %qs" msgstr "" -#: cp/decl.c:13813 +#: cp/decl.c:13845 #, gcc-internal-format msgid "%qD has a previous declaration here" msgstr "" -#: cp/decl.c:13821 +#: cp/decl.c:13853 #, gcc-internal-format msgid "%qT referred to as %qs" msgstr "" -#: cp/decl.c:13822 cp/decl.c:13829 +#: cp/decl.c:13854 cp/decl.c:13861 #, gcc-internal-format msgid "%qT has a previous declaration here" msgstr "" -#: cp/decl.c:13828 +#: cp/decl.c:13860 #, gcc-internal-format msgid "%qT referred to as enum" msgstr "" @@ -45366,94 +45602,94 @@ msgstr "" #. void f(class C); // No template header here #. #. then the required template argument is missing. -#: cp/decl.c:13843 +#: cp/decl.c:13875 #, gcc-internal-format msgid "template argument required for %<%s %T%>" msgstr "" -#: cp/decl.c:13897 cp/name-lookup.c:4568 +#: cp/decl.c:13929 cp/name-lookup.c:4570 #, gcc-internal-format msgid "%qD has the same name as the class in which it is declared" msgstr "" -#: cp/decl.c:13927 cp/friend.c:302 cp/parser.c:3112 cp/parser.c:6538 -#: cp/pt.c:9234 +#: cp/decl.c:13959 cp/friend.c:302 cp/parser.c:3112 cp/parser.c:6548 +#: cp/pt.c:9266 #, gcc-internal-format msgid "%qT is not a template" msgstr "" -#: cp/decl.c:13932 +#: cp/decl.c:13964 #, gcc-internal-format msgid "perhaps you want to explicitly add %<%T::%>" msgstr "" -#: cp/decl.c:13941 cp/name-lookup.c:3995 cp/name-lookup.c:4002 -#: cp/name-lookup.c:4855 cp/parser.c:6489 cp/parser.c:27088 +#: cp/decl.c:13973 cp/name-lookup.c:3997 cp/name-lookup.c:4004 +#: cp/name-lookup.c:4857 cp/parser.c:6499 cp/parser.c:27217 #, gcc-internal-format msgid "reference to %qD is ambiguous" msgstr "" -#: cp/decl.c:14044 +#: cp/decl.c:14076 #, gcc-internal-format msgid "use of enum %q#D without previous declaration" msgstr "" -#: cp/decl.c:14080 +#: cp/decl.c:14112 #, gcc-internal-format msgid "redeclaration of %qT as a non-template" msgstr "" -#: cp/decl.c:14220 +#: cp/decl.c:14252 #, gcc-internal-format msgid "derived union %qT invalid" msgstr "" -#: cp/decl.c:14227 +#: cp/decl.c:14259 #, gcc-internal-format msgid "%qT defined with multiple direct bases" msgstr "" -#: cp/decl.c:14238 +#: cp/decl.c:14270 #, gcc-internal-format msgid "%qT defined with direct virtual base" msgstr "" -#: cp/decl.c:14263 +#: cp/decl.c:14295 #, gcc-internal-format msgid "base type %qT fails to be a struct or class type" msgstr "" -#: cp/decl.c:14293 +#: cp/decl.c:14325 #, gcc-internal-format msgid "recursive type %qT undefined" msgstr "" -#: cp/decl.c:14295 +#: cp/decl.c:14327 #, gcc-internal-format msgid "duplicate base type %qT invalid" msgstr "" -#: cp/decl.c:14440 +#: cp/decl.c:14472 #, gcc-internal-format msgid "scoped/unscoped mismatch in enum %q#T" msgstr "" -#: cp/decl.c:14443 cp/decl.c:14451 cp/decl.c:14461 cp/parser.c:18870 +#: cp/decl.c:14475 cp/decl.c:14483 cp/decl.c:14493 cp/parser.c:18941 #, gcc-internal-format msgid "previous definition here" msgstr "" -#: cp/decl.c:14448 +#: cp/decl.c:14480 #, gcc-internal-format msgid "underlying type mismatch in enum %q#T" msgstr "" -#: cp/decl.c:14458 +#: cp/decl.c:14490 #, gcc-internal-format msgid "different underlying type in enum %q#T" msgstr "" -#: cp/decl.c:14531 +#: cp/decl.c:14563 #, gcc-internal-format msgid "underlying type %qT of %qT must be an integral type" msgstr "" @@ -45462,78 +45698,78 @@ msgstr "" #. #. IF no integral type can represent all the enumerator values, the #. enumeration is ill-formed. -#: cp/decl.c:14678 +#: cp/decl.c:14710 #, gcc-internal-format msgid "no integral type can represent all of the enumerator values for %qT" msgstr "" -#: cp/decl.c:14850 +#: cp/decl.c:14882 #, gcc-internal-format msgid "" "enumerator value for %qD must have integral or unscoped enumeration type" msgstr "" -#: cp/decl.c:14860 +#: cp/decl.c:14892 #, gcc-internal-format msgid "enumerator value for %qD is not an integer constant" msgstr "" -#: cp/decl.c:14909 +#: cp/decl.c:14941 #, gcc-internal-format msgid "incremented enumerator value is too large for %" msgstr "" -#: cp/decl.c:14910 +#: cp/decl.c:14942 #, gcc-internal-format msgid "incremented enumerator value is too large for %" msgstr "" -#: cp/decl.c:14921 +#: cp/decl.c:14953 #, gcc-internal-format msgid "overflow in enumeration values at %qD" msgstr "" -#: cp/decl.c:14941 +#: cp/decl.c:14973 #, gcc-internal-format msgid "enumerator value %qE is outside the range of underlying type %qT" msgstr "" -#: cp/decl.c:15052 +#: cp/decl.c:15084 #, gcc-internal-format msgid "return type %q#T is incomplete" msgstr "" -#: cp/decl.c:15227 cp/typeck.c:9637 +#: cp/decl.c:15259 cp/typeck.c:9667 #, gcc-internal-format msgid "% should return a reference to %<*this%>" msgstr "" -#: cp/decl.c:15572 +#: cp/decl.c:15606 #, gcc-internal-format msgid "invalid function declaration" msgstr "" -#: cp/decl.c:16041 +#: cp/decl.c:16075 #, gcc-internal-format msgid "no return statements in function returning %qT" msgstr "" -#: cp/decl.c:16043 cp/typeck.c:9517 +#: cp/decl.c:16077 cp/typeck.c:9547 #, gcc-internal-format msgid "only plain % return type can be deduced to %" msgstr "" -#: cp/decl.c:16263 +#: cp/decl.c:16297 #, gcc-internal-format msgid "invalid member function declaration" msgstr "" -#: cp/decl.c:16277 +#: cp/decl.c:16311 #, gcc-internal-format msgid "%qD is already defined in class %qT" msgstr "" -#: cp/decl.c:16650 +#: cp/decl.c:16684 #, gcc-internal-format msgid "use of %qD before deduction of %" msgstr "" @@ -45575,7 +45811,7 @@ msgstr "" msgid "deleting %qT is undefined" msgstr "" -#: cp/decl2.c:566 cp/pt.c:5505 +#: cp/decl2.c:566 cp/pt.c:5535 #, gcc-internal-format msgid "template declaration of %q#D" msgstr "" @@ -45589,7 +45825,7 @@ msgstr "" #. [temp.mem] #. #. A destructor shall not be a member template. -#: cp/decl2.c:621 cp/pt.c:5464 +#: cp/decl2.c:621 cp/pt.c:5494 #, gcc-internal-format msgid "destructor %qD declared as member template" msgstr "" @@ -45614,122 +45850,122 @@ msgstr "" msgid "%#qT defined here" msgstr "" -#: cp/decl2.c:760 +#: cp/decl2.c:765 #, gcc-internal-format msgid "local class %q#T shall not have static data member %q#D" msgstr "" -#: cp/decl2.c:769 +#: cp/decl2.c:774 #, gcc-internal-format msgid "static data member %qD in unnamed class" msgstr "" -#: cp/decl2.c:771 +#: cp/decl2.c:776 #, gcc-internal-format msgid "unnamed class defined here" msgstr "" -#: cp/decl2.c:836 +#: cp/decl2.c:846 #, gcc-internal-format msgid "explicit template argument list not allowed" msgstr "" -#: cp/decl2.c:878 +#: cp/decl2.c:888 #, gcc-internal-format msgid "%qD is already defined in %qT" msgstr "" -#: cp/decl2.c:914 cp/decl2.c:922 +#: cp/decl2.c:924 cp/decl2.c:932 #, gcc-internal-format msgid "invalid initializer for member function %qD" msgstr "" -#: cp/decl2.c:931 +#: cp/decl2.c:941 #, gcc-internal-format msgid "initializer specified for friend function %qD" msgstr "" -#: cp/decl2.c:934 +#: cp/decl2.c:944 #, gcc-internal-format msgid "initializer specified for static member function %qD" msgstr "" -#: cp/decl2.c:978 +#: cp/decl2.c:988 #, gcc-internal-format msgid "% specifiers are not permitted on non-static data members" msgstr "" -#: cp/decl2.c:1035 +#: cp/decl2.c:1045 #, gcc-internal-format msgid "bit-field %qD with non-integral type %qT" msgstr "" -#: cp/decl2.c:1043 +#: cp/decl2.c:1053 #, gcc-internal-format msgid "cannot declare %qD to be a bit-field type" msgstr "" -#: cp/decl2.c:1054 +#: cp/decl2.c:1064 #, gcc-internal-format msgid "cannot declare bit-field %qD with function type" msgstr "" -#: cp/decl2.c:1060 +#: cp/decl2.c:1070 #, gcc-internal-format msgid "cannot declare bit-field %qD with % type" msgstr "" -#: cp/decl2.c:1067 +#: cp/decl2.c:1077 #, gcc-internal-format msgid "%qD is already defined in the class %qT" msgstr "" -#: cp/decl2.c:1075 +#: cp/decl2.c:1085 #, gcc-internal-format msgid "static member %qD cannot be a bit-field" msgstr "" -#: cp/decl2.c:1089 +#: cp/decl2.c:1099 #, gcc-internal-format msgid "width of bit-field %qD has non-integral type %qT" msgstr "" -#: cp/decl2.c:1490 +#: cp/decl2.c:1500 #, gcc-internal-format msgid "%q+D static data member inside of declare target directive" msgstr "" -#: cp/decl2.c:1557 +#: cp/decl2.c:1567 #, gcc-internal-format msgid "anonymous struct not inside named type" msgstr "" -#: cp/decl2.c:1573 +#: cp/decl2.c:1583 #, gcc-internal-format msgid "%q#D invalid; an anonymous union can only have non-static data members" msgstr "" -#: cp/decl2.c:1580 +#: cp/decl2.c:1590 #, gcc-internal-format msgid "private member %q#D in anonymous union" msgstr "" -#: cp/decl2.c:1583 +#: cp/decl2.c:1593 #, gcc-internal-format msgid "protected member %q#D in anonymous union" msgstr "" -#: cp/decl2.c:1648 +#: cp/decl2.c:1658 #, gcc-internal-format msgid "namespace-scope anonymous aggregates must be static" msgstr "" -#: cp/decl2.c:1657 +#: cp/decl2.c:1667 #, gcc-internal-format msgid "anonymous union with no members" msgstr "" -#: cp/decl2.c:1694 +#: cp/decl2.c:1704 #, gcc-internal-format msgid "% must return type %qT" msgstr "" @@ -45738,86 +45974,86 @@ msgstr "" #. #. The first parameter shall not have an associated default #. argument. -#: cp/decl2.c:1706 +#: cp/decl2.c:1716 #, gcc-internal-format msgid "the first parameter of % cannot have a default argument" msgstr "" -#: cp/decl2.c:1722 +#: cp/decl2.c:1732 #, gcc-internal-format msgid "% takes type % (%qT) as first parameter" msgstr "" -#: cp/decl2.c:1752 +#: cp/decl2.c:1762 #, gcc-internal-format msgid "% must return type %qT" msgstr "" #. A destroying operator delete shall be a class member function named #. operator delete. -#: cp/decl2.c:1766 +#: cp/decl2.c:1776 #, gcc-internal-format msgid "destroying operator delete must be a member function" msgstr "" -#: cp/decl2.c:1769 +#: cp/decl2.c:1779 #, gcc-internal-format msgid "operator delete[] cannot be a destroying delete" msgstr "" -#: cp/decl2.c:1771 +#: cp/decl2.c:1781 #, gcc-internal-format msgid "destroying operator delete must be a usual deallocation function" msgstr "" -#: cp/decl2.c:1781 +#: cp/decl2.c:1791 #, gcc-internal-format msgid "% takes type %qT as first parameter" msgstr "" -#: cp/decl2.c:2725 +#: cp/decl2.c:2735 #, gcc-internal-format msgid "%qT has a field %qD whose type has no linkage" msgstr "" -#: cp/decl2.c:2729 +#: cp/decl2.c:2739 #, gcc-internal-format msgid "" "%qT has a field %qD whose type depends on the type %qT which has no linkage" msgstr "" -#: cp/decl2.c:2734 +#: cp/decl2.c:2744 #, gcc-internal-format msgid "%qT has a field %qD whose type uses the anonymous namespace" msgstr "" -#: cp/decl2.c:2742 +#: cp/decl2.c:2752 #, gcc-internal-format msgid "%qT declared with greater visibility than the type of its field %qD" msgstr "" -#: cp/decl2.c:2760 +#: cp/decl2.c:2770 #, gcc-internal-format msgid "%qT has a base %qT whose type has no linkage" msgstr "" -#: cp/decl2.c:2764 +#: cp/decl2.c:2774 #, gcc-internal-format msgid "" "%qT has a base %qT whose type depends on the type %qT which has no linkage" msgstr "" -#: cp/decl2.c:2769 +#: cp/decl2.c:2779 #, gcc-internal-format msgid "%qT has a base %qT whose type uses the anonymous namespace" msgstr "" -#: cp/decl2.c:2776 +#: cp/decl2.c:2786 #, gcc-internal-format msgid "%qT declared with greater visibility than its base %qT" msgstr "" -#: cp/decl2.c:4376 +#: cp/decl2.c:4402 #, gcc-internal-format msgid "%q#D, declared using unnamed type, is used but never defined" msgstr "" @@ -45826,96 +46062,97 @@ msgstr "" #. no linkage can only be used to declare extern "C" #. entities. Since it's not always an error in the #. ISO C++ 90 Standard, we only issue a warning. -#: cp/decl2.c:4385 +#: cp/decl2.c:4411 #, gcc-internal-format msgid "unnamed type with no linkage used to declare variable %q#D with linkage" msgstr "" -#: cp/decl2.c:4389 +#: cp/decl2.c:4415 #, gcc-internal-format msgid "unnamed type with no linkage used to declare function %q#D with linkage" msgstr "" -#: cp/decl2.c:4393 +#: cp/decl2.c:4419 #, gcc-internal-format msgid "" "%q#D does not refer to the unqualified type, so it is not used for linkage" msgstr "" -#: cp/decl2.c:4401 +#: cp/decl2.c:4427 #, gcc-internal-format msgid "%q#D, declared using local type %qT, is used but never defined" msgstr "" -#: cp/decl2.c:4405 +#: cp/decl2.c:4431 #, gcc-internal-format msgid "type %qT with no linkage used to declare variable %q#D with linkage" msgstr "" -#: cp/decl2.c:4408 +#: cp/decl2.c:4434 #, gcc-internal-format msgid "type %qT with no linkage used to declare function %q#D with linkage" msgstr "" -#: cp/decl2.c:4596 +#: cp/decl2.c:4622 #, gcc-internal-format msgid "mangling of %q#D as %qE conflicts with a previous mangle" msgstr "" -#: cp/decl2.c:4599 +#: cp/decl2.c:4625 #, gcc-internal-format msgid "previous mangling %q#D" msgstr "" -#: cp/decl2.c:4601 +#: cp/decl2.c:4627 #, gcc-internal-format msgid "" -"a later -fabi-version= (or =0) avoids this error with a change in mangling" +"a later %<-fabi-version=%> (or =0) avoids this error with a change in " +"mangling" msgstr "" -#: cp/decl2.c:4673 cp/decl2.c:4676 +#: cp/decl2.c:4699 cp/decl2.c:4702 #, gcc-internal-format msgid "the program should also define %qD" msgstr "" -#: cp/decl2.c:5023 +#: cp/decl2.c:5043 #, gcc-internal-format msgid "inline function %qD used but never defined" msgstr "" -#: cp/decl2.c:5225 +#: cp/decl2.c:5244 #, gcc-internal-format msgid "default argument missing for parameter %P of %q#D" msgstr "" -#: cp/decl2.c:5230 +#: cp/decl2.c:5249 #, gcc-internal-format msgid "...following parameter %P which has a default argument" msgstr "" -#: cp/decl2.c:5330 +#: cp/decl2.c:5349 #, gcc-internal-format msgid "implicitly-declared %qD is deprecated" msgstr "" -#: cp/decl2.c:5334 +#: cp/decl2.c:5353 #, gcc-internal-format msgid "because %qT has user-provided %qD" msgstr "" #. We mark a lambda conversion op as deleted if we can't #. generate it properly; see maybe_add_lambda_conv_op. -#: cp/decl2.c:5398 +#: cp/decl2.c:5417 #, gcc-internal-format msgid "converting lambda that uses %<...%> to function pointer" msgstr "" -#: cp/decl2.c:5401 +#: cp/decl2.c:5420 #, gcc-internal-format msgid "use of deleted function %qD" msgstr "" -#: cp/decl2.c:5452 +#: cp/decl2.c:5471 #, gcc-internal-format msgid "use of built-in parameter pack %qD outside of a template" msgstr "" @@ -45938,122 +46175,132 @@ msgstr "" #: cp/error.c:4150 #, gcc-internal-format msgid "" -"extended initializer lists only available with -std=c++11 or -std=gnu++11" +"extended initializer lists only available with %<-std=c++11%> or %<-std=gnu+" +"+11%>" msgstr "" #: cp/error.c:4155 #, gcc-internal-format msgid "" -"explicit conversion operators only available with -std=c++11 or -std=gnu++11" +"explicit conversion operators only available with %<-std=c++11%> or %<-" +"std=gnu++11%>" msgstr "" #: cp/error.c:4160 #, gcc-internal-format -msgid "variadic templates only available with -std=c++11 or -std=gnu++11" +msgid "" +"variadic templates only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" #: cp/error.c:4165 #, gcc-internal-format -msgid "lambda expressions only available with -std=c++11 or -std=gnu++11" +msgid "" +"lambda expressions only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" #: cp/error.c:4170 #, gcc-internal-format -msgid "C++11 auto only available with -std=c++11 or -std=gnu++11" +msgid "C++11 auto only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/error.c:4174 +#: cp/error.c:4175 #, gcc-internal-format -msgid "scoped enums only available with -std=c++11 or -std=gnu++11" +msgid "scoped enums only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/error.c:4178 +#: cp/error.c:4180 #, gcc-internal-format msgid "" -"defaulted and deleted functions only available with -std=c++11 or -std=gnu+" -"+11" +"defaulted and deleted functions only available with %<-std=c++11%> or %<-" +"std=gnu++11%>" msgstr "" -#: cp/error.c:4183 +#: cp/error.c:4185 #, gcc-internal-format -msgid "inline namespaces only available with -std=c++11 or -std=gnu++11" +msgid "" +"inline namespaces only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/error.c:4188 +#: cp/error.c:4190 #, gcc-internal-format msgid "" -"override controls (override/final) only available with -std=c++11 or -std=gnu" -"++11" +"override controls (override/final) only available with %<-std=c++11%> or %<-" +"std=gnu++11%>" msgstr "" -#: cp/error.c:4193 +#: cp/error.c:4195 #, gcc-internal-format msgid "" -"non-static data member initializers only available with -std=c++11 or -" -"std=gnu++11" +"non-static data member initializers only available with %<-std=c++11%> or %<-" +"std=gnu++11%>" msgstr "" -#: cp/error.c:4198 +#: cp/error.c:4200 #, gcc-internal-format -msgid "user-defined literals only available with -std=c++11 or -std=gnu++11" +msgid "" +"user-defined literals only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/error.c:4203 +#: cp/error.c:4205 #, gcc-internal-format -msgid "delegating constructors only available with -std=c++11 or -std=gnu++11" +msgid "" +"delegating constructors only available with %<-std=c++11%> or %<-std=gnu+" +"+11%>" msgstr "" -#: cp/error.c:4208 +#: cp/error.c:4210 #, gcc-internal-format -msgid "inheriting constructors only available with -std=c++11 or -std=gnu++11" +msgid "" +"inheriting constructors only available with %<-std=c++11%> or %<-std=gnu+" +"+11%>" msgstr "" -#: cp/error.c:4213 +#: cp/error.c:4215 #, gcc-internal-format -msgid "c++11 attributes only available with -std=c++11 or -std=gnu++11" +msgid "c++11 attributes only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/error.c:4218 +#: cp/error.c:4220 #, gcc-internal-format -msgid "ref-qualifiers only available with -std=c++11 or -std=gnu++11" +msgid "ref-qualifiers only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" -#: cp/error.c:4268 +#: cp/error.c:4270 #, gcc-internal-format msgid "incomplete type %qT used in nested name specifier" msgstr "" -#: cp/error.c:4272 +#: cp/error.c:4274 #, gcc-internal-format msgid "reference to %<%T::%D%> is ambiguous" msgstr "" -#: cp/error.c:4286 +#: cp/error.c:4288 #, gcc-internal-format msgid "%qD is not a member of %qT; did you mean %qs?" msgstr "" -#: cp/error.c:4290 cp/typeck.c:2419 +#: cp/error.c:4292 cp/typeck.c:2419 #, gcc-internal-format msgid "%qD is not a member of %qT" msgstr "" -#: cp/error.c:4312 +#: cp/error.c:4314 #, gcc-internal-format msgid "%qD is not a member of %qD; did you mean %qs?" msgstr "" -#: cp/error.c:4316 cp/typeck.c:2997 +#: cp/error.c:4318 cp/typeck.c:3004 #, gcc-internal-format msgid "%qD is not a member of %qD" msgstr "" -#: cp/error.c:4327 +#: cp/error.c:4329 #, gcc-internal-format msgid "%<::%D%> has not been declared; did you mean %qs?" msgstr "" -#: cp/error.c:4331 +#: cp/error.c:4333 #, gcc-internal-format msgid "%<::%D%> has not been declared" msgstr "" @@ -46065,7 +46312,7 @@ msgstr "" #: cp/except.c:418 #, gcc-internal-format -msgid "exception handling disabled, use -fexceptions to enable" +msgid "exception handling disabled, use %<-fexceptions%> to enable" msgstr "" #: cp/except.c:644 @@ -46214,441 +46461,436 @@ msgstr "" msgid "value-initialization of incomplete type %qT" msgstr "" -#: cp/init.c:463 +#: cp/init.c:472 #, gcc-internal-format msgid "cannot value-initialize array of unknown bound %qT" msgstr "" -#: cp/init.c:502 +#: cp/init.c:511 #, gcc-internal-format msgid "value-initialization of function type %qT" msgstr "" -#: cp/init.c:508 +#: cp/init.c:517 #, gcc-internal-format msgid "value-initialization of reference type %qT" msgstr "" -#: cp/init.c:566 +#: cp/init.c:575 #, gcc-internal-format msgid "recursive instantiation of default member initializer for %qD" msgstr "" -#: cp/init.c:627 +#: cp/init.c:636 #, gcc-internal-format msgid "" "default member initializer for %qD required before the end of its enclosing " "class" msgstr "" -#: cp/init.c:687 +#: cp/init.c:696 #, gcc-internal-format msgid "initializer for flexible array member %q#D" msgstr "" -#: cp/init.c:745 +#: cp/init.c:754 #, gcc-internal-format msgid "" "initializing %qD from %qE does not extend the lifetime of the underlying " "array" msgstr "" -#: cp/init.c:771 +#: cp/init.c:780 #, gcc-internal-format msgid "%qD should be initialized in the member initialization list" msgstr "" -#: cp/init.c:792 +#: cp/init.c:801 #, gcc-internal-format msgid "%qD is initialized with itself" msgstr "" -#: cp/init.c:903 +#: cp/init.c:912 #, gcc-internal-format msgid "invalid initializer for array member %q#D" msgstr "" -#: cp/init.c:918 cp/init.c:944 cp/init.c:2485 cp/method.c:1383 +#: cp/init.c:927 cp/init.c:953 cp/init.c:2494 cp/method.c:1390 #, gcc-internal-format msgid "uninitialized const member in %q#T" msgstr "" -#: cp/init.c:920 cp/init.c:938 cp/init.c:946 cp/init.c:2470 cp/init.c:2498 -#: cp/method.c:1386 cp/method.c:1397 +#: cp/init.c:929 cp/init.c:947 cp/init.c:955 cp/init.c:2479 cp/init.c:2507 +#: cp/method.c:1393 cp/method.c:1404 #, gcc-internal-format msgid "%q#D should be initialized" msgstr "" -#: cp/init.c:936 cp/init.c:2457 cp/method.c:1394 +#: cp/init.c:945 cp/init.c:2466 cp/method.c:1401 #, gcc-internal-format msgid "uninitialized reference member in %q#T" msgstr "" -#: cp/init.c:1118 +#: cp/init.c:1127 #, gcc-internal-format msgid "%qD will be initialized after" msgstr "" -#: cp/init.c:1121 +#: cp/init.c:1130 #, gcc-internal-format msgid "base %qT will be initialized after" msgstr "" -#: cp/init.c:1125 +#: cp/init.c:1134 #, gcc-internal-format msgid " %q#D" msgstr "" -#: cp/init.c:1127 +#: cp/init.c:1136 #, gcc-internal-format msgid " base %qT" msgstr "" -#: cp/init.c:1129 +#: cp/init.c:1138 #, gcc-internal-format msgid " when initialized here" msgstr "" -#: cp/init.c:1146 +#: cp/init.c:1155 #, gcc-internal-format msgid "multiple initializations given for %qD" msgstr "" -#: cp/init.c:1150 +#: cp/init.c:1159 #, gcc-internal-format msgid "multiple initializations given for base %qT" msgstr "" -#: cp/init.c:1235 +#: cp/init.c:1244 #, gcc-internal-format msgid "initializations for multiple members of %qT" msgstr "" -#: cp/init.c:1332 +#: cp/init.c:1341 #, gcc-internal-format msgid "" "base class %q#T should be explicitly initialized in the copy constructor" msgstr "" -#: cp/init.c:1559 cp/init.c:1578 +#: cp/init.c:1568 cp/init.c:1587 #, gcc-internal-format msgid "class %qT does not have any field named %qD" msgstr "" -#: cp/init.c:1565 +#: cp/init.c:1574 #, gcc-internal-format msgid "" "%q#D is a static data member; it can only be initialized at its definition" msgstr "" -#: cp/init.c:1572 +#: cp/init.c:1581 #, gcc-internal-format msgid "%q#D is not a non-static data member of %qT" msgstr "" -#: cp/init.c:1611 +#: cp/init.c:1620 #, gcc-internal-format msgid "unnamed initializer for %qT, which has no base classes" msgstr "" -#: cp/init.c:1619 +#: cp/init.c:1628 #, gcc-internal-format msgid "unnamed initializer for %qT, which uses multiple inheritance" msgstr "" -#: cp/init.c:1666 +#: cp/init.c:1675 #, gcc-internal-format msgid "%qD is both a direct base and an indirect virtual base" msgstr "" -#: cp/init.c:1674 +#: cp/init.c:1683 #, gcc-internal-format msgid "type %qT is not a direct or virtual base of %qT" msgstr "" -#: cp/init.c:1677 +#: cp/init.c:1686 #, gcc-internal-format msgid "type %qT is not a direct base of %qT" msgstr "" -#: cp/init.c:1789 cp/init.c:4491 cp/typeck2.c:1241 +#: cp/init.c:1798 cp/init.c:4515 cp/typeck2.c:1243 #, gcc-internal-format msgid "array must be initialized with a brace-enclosed initializer" msgstr "" -#: cp/init.c:2099 cp/semantics.c:3299 +#: cp/init.c:2108 cp/semantics.c:3348 #, gcc-internal-format msgid "%qT is not a class type" msgstr "" -#: cp/init.c:2155 +#: cp/init.c:2164 #, gcc-internal-format msgid "incomplete type %qT does not have member %qD" msgstr "" -#: cp/init.c:2169 +#: cp/init.c:2178 #, gcc-internal-format msgid "invalid pointer to bit-field %qD" msgstr "" -#: cp/init.c:2255 cp/typeck.c:1896 +#: cp/init.c:2264 cp/typeck.c:1896 #, gcc-internal-format msgid "invalid use of non-static member function %qD" msgstr "" -#: cp/init.c:2262 cp/semantics.c:1849 +#: cp/init.c:2271 cp/semantics.c:1856 #, gcc-internal-format msgid "invalid use of non-static data member %qD" msgstr "" -#: cp/init.c:2454 +#: cp/init.c:2463 #, gcc-internal-format msgid "" "uninitialized reference member in %q#T using % without new-initializer" msgstr "" -#: cp/init.c:2462 +#: cp/init.c:2471 #, gcc-internal-format msgid "" "uninitialized reference member in base %q#T of %q#T using % without " "new-initializer" msgstr "" -#: cp/init.c:2466 +#: cp/init.c:2475 #, gcc-internal-format msgid "uninitialized reference member in base %q#T of %q#T" msgstr "" -#: cp/init.c:2482 +#: cp/init.c:2491 #, gcc-internal-format msgid "" "uninitialized const member in %q#T using % without new-initializer" msgstr "" -#: cp/init.c:2490 +#: cp/init.c:2499 #, gcc-internal-format msgid "" "uninitialized const member in base %q#T of %q#T using % without new-" "initializer" msgstr "" -#: cp/init.c:2494 +#: cp/init.c:2503 #, gcc-internal-format msgid "uninitialized const member in base %q#T of %q#T" msgstr "" -#: cp/init.c:2791 +#: cp/init.c:2800 #, gcc-internal-format msgid "" "placement new constructing an object of type %<%T [%wu]%> and size %qwu in a " "region of type %qT and size %qwi" msgstr "" -#: cp/init.c:2802 +#: cp/init.c:2811 #, gcc-internal-format msgid "" "placement new constructing an array of objects of type %qT and size %qwu in " "a region of type %qT and size %qwi" msgstr "" -#: cp/init.c:2813 +#: cp/init.c:2822 #, gcc-internal-format msgid "" "placement new constructing an object of type %qT and size %qwu in a region " "of type %qT and size %qwi" msgstr "" -#: cp/init.c:2960 +#: cp/init.c:2969 #, gcc-internal-format msgid "integer overflow in array size" msgstr "" -#: cp/init.c:2970 +#: cp/init.c:2979 #, gcc-internal-format msgid "array size in new-expression must be constant" msgstr "" -#: cp/init.c:2984 +#: cp/init.c:2993 #, gcc-internal-format msgid "variably modified type not allowed in new-expression" msgstr "" -#: cp/init.c:3000 +#: cp/init.c:3009 #, gcc-internal-format msgid "" "non-constant array new length must be specified directly, not by typedef" msgstr "" -#: cp/init.c:3002 +#: cp/init.c:3011 #, gcc-internal-format msgid "" "non-constant array new length must be specified without parentheses around " "the type-id" msgstr "" -#: cp/init.c:3012 +#: cp/init.c:3021 #, gcc-internal-format msgid "invalid type % for new" msgstr "" -#: cp/init.c:3018 +#: cp/init.c:3027 #, gcc-internal-format msgid "" "% of initializer_list does not extend the lifetime of the underlying " "array" msgstr "" -#: cp/init.c:3060 +#: cp/init.c:3069 #, gcc-internal-format msgid "uninitialized const in % of %q#T" msgstr "" -#: cp/init.c:3186 +#: cp/init.c:3213 #, gcc-internal-format msgid "no suitable %qD found in class %qT" msgstr "" -#: cp/init.c:3193 cp/search.c:1026 +#: cp/init.c:3220 cp/search.c:1036 #, gcc-internal-format msgid "request for member %qD is ambiguous" msgstr "" -#: cp/init.c:3267 +#: cp/init.c:3294 #, gcc-internal-format msgid "% of type %qT with extended alignment %d" msgstr "" -#: cp/init.c:3270 +#: cp/init.c:3297 #, gcc-internal-format msgid "uses %qD, which does not have an alignment parameter" msgstr "" -#: cp/init.c:3273 +#: cp/init.c:3300 #, gcc-internal-format msgid "use %<-faligned-new%> to enable C++17 over-aligned new support" msgstr "" -#: cp/init.c:3456 +#: cp/init.c:3483 #, gcc-internal-format msgid "parenthesized initializer in array new" msgstr "" -#: cp/init.c:3735 +#: cp/init.c:3762 #, gcc-internal-format msgid "size in array new must have integral type" msgstr "" -#: cp/init.c:3767 +#: cp/init.c:3791 #, gcc-internal-format msgid "new cannot be applied to a reference type" msgstr "" -#: cp/init.c:3776 +#: cp/init.c:3800 #, gcc-internal-format msgid "new cannot be applied to a function type" msgstr "" -#: cp/init.c:3847 +#: cp/init.c:3871 #, gcc-internal-format msgid "possible problem detected in invocation of delete [] operator:" msgstr "" -#: cp/init.c:3851 +#: cp/init.c:3875 #, gcc-internal-format msgid "" "neither the destructor nor the class-specific operator delete [] will be " "called, even if they are declared when the class is defined" msgstr "" -#: cp/init.c:4400 +#: cp/init.c:4424 #, gcc-internal-format msgid "initializer ends prematurely" msgstr "" -#: cp/init.c:4705 +#: cp/init.c:4729 #, gcc-internal-format msgid "unknown array size in delete" msgstr "" -#: cp/init.c:4734 +#: cp/init.c:4758 #, gcc-internal-format msgid "possible problem detected in invocation of delete operator:" msgstr "" -#: cp/init.c:4739 +#: cp/init.c:4763 #, gcc-internal-format msgid "" "neither the destructor nor the class-specific operator delete will be " "called, even if they are declared when the class is defined" msgstr "" -#: cp/init.c:4754 +#: cp/init.c:4778 #, gcc-internal-format msgid "" "deleting object of abstract class type %qT which has non-virtual destructor " "will cause undefined behavior" msgstr "" -#: cp/init.c:4759 +#: cp/init.c:4783 #, gcc-internal-format msgid "" "deleting object of polymorphic class type %qT which has non-virtual " "destructor might cause undefined behavior" msgstr "" -#: cp/init.c:5055 +#: cp/init.c:5079 #, gcc-internal-format msgid "type to vector delete is neither pointer or array type" msgstr "" -#: cp/lambda.c:546 +#: cp/lambda.c:534 #, gcc-internal-format msgid "array of runtime bound cannot be captured by copy, only by reference" msgstr "" -#: cp/lambda.c:561 +#: cp/lambda.c:549 #, gcc-internal-format msgid "" "capture of variably-modified type %qT that is not an N3639 array of runtime " "bound" msgstr "" -#: cp/lambda.c:565 +#: cp/lambda.c:553 #, gcc-internal-format msgid "because the array element type %qT has variable size" msgstr "" -#: cp/lambda.c:589 +#: cp/lambda.c:577 #, gcc-internal-format msgid "cannot capture %qE by reference" msgstr "" -#: cp/lambda.c:599 +#: cp/lambda.c:587 #, gcc-internal-format msgid "capture by copy of incomplete type %qT" msgstr "" -#: cp/lambda.c:623 -#, gcc-internal-format -msgid "already captured %qD in lambda expression" -msgstr "" - -#: cp/lambda.c:652 +#: cp/lambda.c:627 #, gcc-internal-format msgid "trying to capture %qD in instantiation of generic lambda" msgstr "" -#: cp/lambda.c:731 +#: cp/lambda.c:704 #, gcc-internal-format msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20" msgstr "" -#: cp/lambda.c:733 +#: cp/lambda.c:706 #, gcc-internal-format msgid "add explicit % or %<*this%> capture" msgstr "" -#: cp/lambda.c:846 +#: cp/lambda.c:820 #, gcc-internal-format msgid "% was not captured for this lambda function" msgstr "" @@ -46727,72 +46969,73 @@ msgstr "" msgid "mangling unknown fixed point type" msgstr "" -#: cp/mangle.c:3230 +#: cp/mangle.c:3231 #, gcc-internal-format msgid "" "use of built-in trait %qE in function signature; use library traits instead" msgstr "" -#: cp/mangle.c:3235 +#: cp/mangle.c:3236 #, gcc-internal-format, gfc-internal-format msgid "mangling %C" msgstr "" -#: cp/mangle.c:3312 +#: cp/mangle.c:3313 #, gcc-internal-format msgid "omitted middle operand to % operand cannot be mangled" msgstr "" -#: cp/mangle.c:3399 +#: cp/mangle.c:3400 #, gcc-internal-format msgid "string literal in function template signature" msgstr "" -#: cp/mangle.c:3832 +#: cp/mangle.c:3833 #, gcc-internal-format msgid "" "mangled name for %qD will change in C++17 because the exception " "specification is part of a function type" msgstr "" -#: cp/mangle.c:3878 +#: cp/mangle.c:3879 #, gcc-internal-format msgid "" "the mangled name of %qD changed between %<%s=%d%> (%qD) and %<%s=%d%> (%qD)" msgstr "" -#: cp/mangle.c:3884 +#: cp/mangle.c:3885 #, gcc-internal-format msgid "" "the mangled name of %qD changes between %<%s=%d%> (%qD) and %<%s=%d%> (%qD)" msgstr "" -#: cp/mangle.c:4156 +#: cp/mangle.c:4157 #, gcc-internal-format msgid "" -"the mangled name of a thunk for %qD changes between -fabi-version=%d and -" -"fabi-version=%d" +"the mangled name of a thunk for %qD changes between %<-fabi-version=%d%> and " +"%<-fabi-version=%d%>" msgstr "" -#: cp/mangle.c:4161 +#: cp/mangle.c:4162 #, gcc-internal-format msgid "" -"the mangled name of %qD changes between -fabi-version=%d and -fabi-version=%d" +"the mangled name of %qD changes between %<-fabi-version=%d%> and %<-fabi-" +"version=%d%>" msgstr "" -#: cp/mangle.c:4166 +#: cp/mangle.c:4167 #, gcc-internal-format msgid "" "the mangled name of the initialization guard variable for %qD changes " -"between -fabi-version=%d and -fabi-version=%d" +"between %<-fabi-version=%d%> and %<-fabi-version=%d%>" msgstr "" -#: cp/method.c:831 cp/method.c:1339 +#: cp/method.c:831 cp/method.c:1343 #, gcc-internal-format msgid "non-static const member %q#D, can%'t use default assignment operator" msgstr "" -#: cp/method.c:837 cp/method.c:1345 +#: cp/method.c:837 cp/method.c:1349 #, gcc-internal-format msgid "" "non-static reference member %q#D, can%'t use default assignment operator" @@ -46803,114 +47046,114 @@ msgstr "" msgid "synthesized method %qD first required here" msgstr "" -#: cp/method.c:1274 +#: cp/method.c:1278 #, gcc-internal-format msgid "union member %q+D with non-trivial %qD" msgstr "" -#: cp/method.c:1284 +#: cp/method.c:1288 #, gcc-internal-format msgid "defaulted constructor calls non-% %qD" msgstr "" -#: cp/method.c:1362 +#: cp/method.c:1366 #, gcc-internal-format msgid "initializer for %q#D is invalid" msgstr "" -#: cp/method.c:1414 +#: cp/method.c:1421 #, gcc-internal-format msgid "defaulted default constructor does not initialize %q#D" msgstr "" -#: cp/method.c:1425 +#: cp/method.c:1432 #, gcc-internal-format msgid "copying non-static data member %q#D of rvalue reference type" msgstr "" #. A trivial constructor doesn't have any NSDMI. -#: cp/method.c:1631 +#: cp/method.c:1638 #, gcc-internal-format msgid "" "defaulted default constructor does not initialize any non-static data member" msgstr "" -#: cp/method.c:1674 +#: cp/method.c:1681 #, gcc-internal-format msgid "" "defaulted move assignment for %qT calls a non-trivial move assignment " "operator for virtual base %qT" msgstr "" -#: cp/method.c:1796 +#: cp/method.c:1808 #, gcc-internal-format msgid "a lambda closure type has a deleted default constructor" msgstr "" -#: cp/method.c:1799 +#: cp/method.c:1811 #, gcc-internal-format msgid "a lambda closure type has a deleted copy assignment operator" msgstr "" -#: cp/method.c:1808 +#: cp/method.c:1820 #, gcc-internal-format msgid "" "%q#D is implicitly declared as deleted because %qT declares a move " "constructor or move assignment operator" msgstr "" -#: cp/method.c:1819 +#: cp/method.c:1831 #, gcc-internal-format msgid "%q#D inherits from multiple base subobjects" msgstr "" -#: cp/method.c:1844 +#: cp/method.c:1856 #, gcc-internal-format msgid "" "%q#D is implicitly deleted because the default definition would be ill-" "formed:" msgstr "" -#: cp/method.c:1853 +#: cp/method.c:1865 msgid "" "%q#F is implicitly deleted because its exception-specification does not " "match the implicit exception-specification %qX" msgstr "" -#: cp/method.c:2173 +#: cp/method.c:2185 #, gcc-internal-format msgid "defaulted declaration %q+D does not match the expected signature" msgstr "" -#: cp/method.c:2176 +#: cp/method.c:2188 #, gcc-internal-format msgid "expected signature: %qD" msgstr "" -#: cp/method.c:2214 +#: cp/method.c:2226 msgid "" "function %q+D defaulted on its redeclaration with an exception-specification " "that differs from the implicit exception-specification %qX" msgstr "" -#: cp/method.c:2236 +#: cp/method.c:2248 #, gcc-internal-format msgid "" "explicitly defaulted function %q+D cannot be declared as % " "because the implicit declaration is not %:" msgstr "" -#: cp/method.c:2281 +#: cp/method.c:2296 #, gcc-internal-format msgid "a template cannot be defaulted" msgstr "" -#: cp/method.c:2309 +#: cp/method.c:2324 #, gcc-internal-format msgid "%qD cannot be defaulted" msgstr "" -#: cp/method.c:2318 +#: cp/method.c:2333 #, gcc-internal-format msgid "defaulted function %q+D with default argument" msgstr "" @@ -46978,215 +47221,215 @@ msgstr "" msgid "%s %s %p %d\n" msgstr "" -#: cp/name-lookup.c:3935 +#: cp/name-lookup.c:3937 #, gcc-internal-format msgid "%qT is not a namespace or unscoped enum" msgstr "" #. 7.3.3/5 #. A using-declaration shall not name a template-id. -#: cp/name-lookup.c:3945 +#: cp/name-lookup.c:3947 #, gcc-internal-format msgid "a using-declaration cannot specify a template-id. Try %" msgstr "" -#: cp/name-lookup.c:3952 +#: cp/name-lookup.c:3954 #, gcc-internal-format msgid "namespace %qD not allowed in using-declaration" msgstr "" #. It's a nested name with template parameter dependent scope. #. This can only be using-declaration for class member. -#: cp/name-lookup.c:3960 +#: cp/name-lookup.c:3962 #, gcc-internal-format msgid "%qT is not a namespace" msgstr "" #. C++11 7.3.3/10. -#: cp/name-lookup.c:3973 +#: cp/name-lookup.c:3975 #, gcc-internal-format msgid "%qD is already declared in this scope" msgstr "" -#: cp/name-lookup.c:3990 +#: cp/name-lookup.c:3992 #, gcc-internal-format msgid "%qD not declared" msgstr "" -#: cp/name-lookup.c:4701 +#: cp/name-lookup.c:4703 #, gcc-internal-format msgid "using-declaration for non-member at class scope" msgstr "" -#: cp/name-lookup.c:4708 +#: cp/name-lookup.c:4710 #, gcc-internal-format msgid "%<%T::%D%> names destructor" msgstr "" -#: cp/name-lookup.c:4725 +#: cp/name-lookup.c:4727 #, gcc-internal-format msgid "%<%T::%D%> names constructor in %qT" msgstr "" -#: cp/name-lookup.c:4759 +#: cp/name-lookup.c:4761 #, gcc-internal-format msgid "cannot inherit constructors from indirect base %qT" msgstr "" -#: cp/name-lookup.c:4768 +#: cp/name-lookup.c:4770 #, gcc-internal-format msgid "no members matching %<%T::%D%> in %q#T" msgstr "" -#: cp/name-lookup.c:4835 +#: cp/name-lookup.c:4837 #, gcc-internal-format msgid "declaration of %qD not in a namespace surrounding %qD" msgstr "" -#: cp/name-lookup.c:4874 +#: cp/name-lookup.c:4876 #, gcc-internal-format msgid "explicit qualification in declaration of %qD" msgstr "" -#: cp/name-lookup.c:4926 +#: cp/name-lookup.c:4928 #, gcc-internal-format msgid "%qD has not been declared within %qD" msgstr "" -#: cp/name-lookup.c:4928 +#: cp/name-lookup.c:4930 #, gcc-internal-format msgid "only here as a %" msgstr "" -#: cp/name-lookup.c:4937 +#: cp/name-lookup.c:4939 #, gcc-internal-format msgid "%qD should have been declared inside %qD" msgstr "" -#: cp/name-lookup.c:4985 +#: cp/name-lookup.c:4987 #, gcc-internal-format msgid "%qD attribute requires a single NTBS argument" msgstr "" -#: cp/name-lookup.c:4992 +#: cp/name-lookup.c:4994 #, gcc-internal-format msgid "" "%qD attribute is meaningless since members of the anonymous namespace get " "local symbols" msgstr "" -#: cp/name-lookup.c:5002 +#: cp/name-lookup.c:5004 #, gcc-internal-format msgid "ignoring %qD attribute on anonymous namespace" msgstr "" -#: cp/name-lookup.c:5008 +#: cp/name-lookup.c:5010 #, gcc-internal-format msgid "ignoring %qD attribute on non-inline namespace" msgstr "" -#: cp/name-lookup.c:5027 cp/name-lookup.c:7277 +#: cp/name-lookup.c:5029 cp/name-lookup.c:7280 #, gcc-internal-format msgid "%qD attribute directive ignored" msgstr "" -#: cp/name-lookup.c:5319 +#: cp/name-lookup.c:5321 #, gcc-internal-format msgid "maximum limit of %d namespaces searched for %qE" msgstr "" -#: cp/name-lookup.c:5345 +#: cp/name-lookup.c:5347 #, gcc-internal-format msgid "%qE declared here" msgstr "" -#: cp/name-lookup.c:5371 +#: cp/name-lookup.c:5373 #, gcc-internal-format msgid "suggested alternative:" msgid_plural "suggested alternatives:" msgstr[0] "" msgstr[1] "" -#: cp/name-lookup.c:5377 +#: cp/name-lookup.c:5379 #, gcc-internal-format msgid " %qE" msgstr "" -#: cp/name-lookup.c:5853 +#: cp/name-lookup.c:5856 #, gcc-internal-format msgid "" "% is defined in header %qs; did you forget to %<#include %s%>?" msgstr "" -#: cp/name-lookup.c:5859 +#: cp/name-lookup.c:5862 #, gcc-internal-format msgid "% is only available from %s onwards" msgstr "" -#: cp/name-lookup.c:6122 +#: cp/name-lookup.c:6125 #, gcc-internal-format msgid "the macro %qs had not yet been defined" msgstr "" -#: cp/name-lookup.c:6125 +#: cp/name-lookup.c:6128 #, gcc-internal-format msgid "it was later defined here" msgstr "" -#: cp/name-lookup.c:6896 +#: cp/name-lookup.c:6899 #, gcc-internal-format msgid "" "declaration of % does not match %<#include " -"%>, isn't a template" +"%>, isn%'t a template" msgstr "" -#: cp/name-lookup.c:7271 +#: cp/name-lookup.c:7274 #, gcc-internal-format msgid "strong using directive no longer supported" msgstr "" -#: cp/name-lookup.c:7274 +#: cp/name-lookup.c:7277 #, gcc-internal-format msgid "you may use an inline namespace instead" msgstr "" -#: cp/name-lookup.c:7291 +#: cp/name-lookup.c:7294 #, gcc-internal-format msgid "attributes ignored on local using directive" msgstr "" -#: cp/name-lookup.c:7375 +#: cp/name-lookup.c:7378 #, gcc-internal-format msgid "namespace alias %qD not allowed here, assuming %qD" msgstr "" #. We only allow depth 255. -#: cp/name-lookup.c:7395 +#: cp/name-lookup.c:7398 #, gcc-internal-format, gfc-internal-format msgid "cannot nest more than %d namespaces" msgstr "" -#: cp/name-lookup.c:7430 +#: cp/name-lookup.c:7433 #, gcc-internal-format msgid "inline namespace must be specified at initial definition" msgstr "" -#: cp/name-lookup.c:7431 +#: cp/name-lookup.c:7434 #, gcc-internal-format msgid "%qD defined here" msgstr "" -#: cp/name-lookup.c:7504 +#: cp/name-lookup.c:7507 #, gcc-internal-format msgid "XXX entering pop_everything ()\n" msgstr "" -#: cp/name-lookup.c:7513 +#: cp/name-lookup.c:7516 #, gcc-internal-format msgid "XXX leaving pop_everything ()\n" msgstr "" -#: cp/optimize.c:615 +#: cp/optimize.c:617 #, gcc-internal-format msgid "making multiple clones of %qD" msgstr "" @@ -47201,7 +47444,7 @@ msgstr "" msgid "LEXER_DEBUGGING_ENABLED_P is not set to true" msgstr "" -#: cp/parser.c:1347 cp/parser.c:39075 +#: cp/parser.c:1347 cp/parser.c:39214 #, gcc-internal-format msgid "" "%<#pragma omp declare simd%> not immediately followed by function " @@ -47228,7 +47471,7 @@ msgstr "" msgid "request for member %qE in non-class type %qT" msgstr "" -#: cp/parser.c:2965 cp/parser.c:18807 +#: cp/parser.c:2965 cp/parser.c:18878 #, gcc-internal-format msgid "%<%T::%E%> has not been declared" msgstr "" @@ -47308,7 +47551,7 @@ msgstr "" msgid "ISO C++ forbids using a floating-point literal in a constant-expression" msgstr "" -#: cp/parser.c:3159 cp/pt.c:18262 +#: cp/parser.c:3159 cp/pt.c:18343 #, gcc-internal-format msgid "" "a cast to a type other than an integral or enumeration type cannot appear in " @@ -47383,8 +47626,8 @@ msgstr "" #: cp/parser.c:3290 #, gcc-internal-format msgid "" -"class template argument deduction is only available with -std=c++17 or -" -"std=gnu++17" +"class template argument deduction is only available with %<-std=c++17%> or " +"%<-std=gnu++17%>" msgstr "" #: cp/parser.c:3295 @@ -47410,22 +47653,25 @@ msgstr "" #: cp/parser.c:3324 #, gcc-internal-format -msgid "C++11 % only available with -std=c++11 or -std=gnu++11" +msgid "" +"C++11 % only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" #: cp/parser.c:3327 #, gcc-internal-format -msgid "C++11 % only available with -std=c++11 or -std=gnu++11" +msgid "" +"C++11 % only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" #: cp/parser.c:3332 #, gcc-internal-format -msgid "C++11 % only available with -std=c++11 or -std=gnu++11" +msgid "" +"C++11 % only available with %<-std=c++11%> or %<-std=gnu++11%>" msgstr "" #: cp/parser.c:3335 #, gcc-internal-format -msgid "% only available with -fconcepts" +msgid "% only available with %<-fconcepts%>" msgstr "" #: cp/parser.c:3361 @@ -47545,7 +47791,7 @@ msgstr "" #: cp/parser.c:4554 #, gcc-internal-format -msgid "use -fext-numeric-literals to enable more built-in suffixes" +msgid "use %<-fext-numeric-literals%> to enable more built-in suffixes" msgstr "" #: cp/parser.c:4640 @@ -47553,7 +47799,7 @@ msgstr "" msgid "unable to find string literal operator %qD with %qT, %qT arguments" msgstr "" -#: cp/parser.c:4691 cp/parser.c:13367 +#: cp/parser.c:4691 cp/parser.c:13428 #, gcc-internal-format msgid "expected declaration" msgstr "" @@ -47602,10 +47848,10 @@ msgstr "" #: cp/parser.c:5333 #, gcc-internal-format -msgid "fold-expressions only available with -std=c++17 or -std=gnu++17" +msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>" msgstr "" -#: cp/parser.c:5391 cp/parser.c:5568 cp/parser.c:5743 cp/semantics.c:3637 +#: cp/parser.c:5391 cp/parser.c:5568 cp/parser.c:5743 cp/semantics.c:3688 #, gcc-internal-format msgid "expected primary-expression" msgstr "" @@ -47630,1004 +47876,1035 @@ msgstr "" msgid "expected id-expression" msgstr "" -#: cp/parser.c:6032 +#: cp/parser.c:6033 #, gcc-internal-format msgid "scope %qT before %<~%> is not a class-name" msgstr "" -#: cp/parser.c:6061 cp/parser.c:7995 +#: cp/parser.c:6071 cp/parser.c:8005 #, gcc-internal-format -msgid "%<~auto%> only available with -std=c++14 or -std=gnu++14" +msgid "%<~auto%> only available with %<-std=c++14%> or %<-std=gnu++14%>" msgstr "" -#: cp/parser.c:6172 +#: cp/parser.c:6182 #, gcc-internal-format msgid "declaration of %<~%T%> as member of %qT" msgstr "" -#: cp/parser.c:6187 +#: cp/parser.c:6197 #, gcc-internal-format msgid "typedef-name %qD used as destructor declarator" msgstr "" -#: cp/parser.c:6224 cp/parser.c:20953 +#: cp/parser.c:6234 cp/parser.c:21041 #, gcc-internal-format msgid "expected unqualified-id" msgstr "" -#: cp/parser.c:6333 +#: cp/parser.c:6343 #, gcc-internal-format msgid "found %<:%> in nested-name-specifier, expected %<::%>" msgstr "" -#: cp/parser.c:6401 +#: cp/parser.c:6411 #, gcc-internal-format msgid "decltype evaluates to %qT, which is not a class or enumeration type" msgstr "" -#: cp/parser.c:6427 +#: cp/parser.c:6437 #, gcc-internal-format msgid "function template-id %qD in nested-name-specifier" msgstr "" -#: cp/parser.c:6435 +#: cp/parser.c:6445 #, gcc-internal-format msgid "variable template-id %qD in nested-name-specifier" msgstr "" -#: cp/parser.c:6539 cp/typeck.c:2696 cp/typeck.c:2699 cp/typeck.c:2716 +#: cp/parser.c:6549 cp/typeck.c:2703 cp/typeck.c:2706 cp/typeck.c:2723 #, gcc-internal-format msgid "%qD is not a template" msgstr "" -#: cp/parser.c:6617 +#: cp/parser.c:6627 #, gcc-internal-format msgid "expected nested-name-specifier" msgstr "" -#: cp/parser.c:6824 cp/parser.c:9210 +#: cp/parser.c:6834 cp/parser.c:9220 #, gcc-internal-format msgid "types may not be defined in casts" msgstr "" -#: cp/parser.c:6911 +#: cp/parser.c:6921 #, gcc-internal-format msgid "types may not be defined in a % expression" msgstr "" -#: cp/parser.c:7003 +#: cp/parser.c:7013 #, gcc-internal-format msgid "wrong number of arguments to %<__builtin_addressof%>" msgstr "" -#: cp/parser.c:7015 cp/pt.c:18874 +#: cp/parser.c:7025 cp/pt.c:18955 #, gcc-internal-format msgid "wrong number of arguments to %<__builtin_launder%>" msgstr "" -#: cp/parser.c:7135 +#: cp/parser.c:7145 #, gcc-internal-format msgid "ISO C++ forbids compound-literals" msgstr "" -#: cp/parser.c:7194 +#: cp/parser.c:7204 #, gcc-internal-format msgid "two consecutive %<[%> shall only introduce an attribute" msgstr "" -#: cp/parser.c:7731 cp/typeck.c:2584 +#: cp/parser.c:7741 cp/typeck.c:2591 #, gcc-internal-format msgid "invalid use of %qD" msgstr "" -#: cp/parser.c:7740 +#: cp/parser.c:7750 #, gcc-internal-format msgid "%<%D::%D%> is not a class member" msgstr "" -#: cp/parser.c:8047 +#: cp/parser.c:8057 #, gcc-internal-format msgid "non-scalar type" msgstr "" -#: cp/parser.c:8148 +#: cp/parser.c:8158 #, gcc-internal-format msgid "ISO C++ does not allow % with a non-type" msgstr "" -#: cp/parser.c:8252 +#: cp/parser.c:8262 #, gcc-internal-format msgid "types may not be defined in % expressions" msgstr "" -#: cp/parser.c:8663 +#: cp/parser.c:8673 #, gcc-internal-format msgid "types may not be defined in a new-expression" msgstr "" -#: cp/parser.c:8679 +#: cp/parser.c:8689 #, gcc-internal-format msgid "array bound forbidden after parenthesized type-id" msgstr "" -#: cp/parser.c:8681 +#: cp/parser.c:8691 #, gcc-internal-format msgid "try removing the parentheses around the type-id" msgstr "" -#: cp/parser.c:8713 +#: cp/parser.c:8723 #, gcc-internal-format msgid "" "initialization of new-expression for type % requires exactly one " "element" msgstr "" -#: cp/parser.c:8761 +#: cp/parser.c:8771 #, gcc-internal-format msgid "expected expression-list or type-id" msgstr "" -#: cp/parser.c:8790 +#: cp/parser.c:8800 #, gcc-internal-format msgid "types may not be defined in a new-type-id" msgstr "" -#: cp/parser.c:8919 +#: cp/parser.c:8929 #, gcc-internal-format msgid "expression in new-declarator must have integral or enumeration type" msgstr "" -#: cp/parser.c:9315 +#: cp/parser.c:9325 #, gcc-internal-format msgid "use of old-style cast to %q#T" msgstr "" -#: cp/parser.c:9463 +#: cp/parser.c:9473 #, gcc-internal-format msgid "%<>>%> operator is treated as two right angle brackets in C++11" msgstr "" -#: cp/parser.c:9466 +#: cp/parser.c:9476 #, gcc-internal-format msgid "suggest parentheses around %<>>%> expression" msgstr "" -#: cp/parser.c:9671 +#: cp/parser.c:9681 #, gcc-internal-format msgid "ISO C++ does not allow ?: with omitted middle operand" msgstr "" -#: cp/parser.c:10093 +#: cp/parser.c:10103 #, gcc-internal-format -msgid "types may not be defined within __builtin_offsetof" +msgid "types may not be defined within %<__builtin_offsetof%>" msgstr "" -#: cp/parser.c:10382 +#: cp/parser.c:10392 #, gcc-internal-format msgid "" -"lambda-expression in unevaluated context only available with -std=c++2a or -" -"std=gnu++2a" +"lambda-expression in unevaluated context only available with %<-std=c++2a%> " +"or %<-std=gnu++2a%>" msgstr "" -#: cp/parser.c:10392 +#: cp/parser.c:10402 #, gcc-internal-format msgid "" -"lambda-expression in template-argument only available with -std=c++2a or -" -"std=gnu++2a" +"lambda-expression in template-argument only available with %<-std=c++2a%> or " +"%<-std=gnu++2a%>" msgstr "" -#: cp/parser.c:10537 +#: cp/parser.c:10547 #, gcc-internal-format msgid "non-local lambda expression cannot have a capture-default" msgstr "" -#: cp/parser.c:10557 +#: cp/parser.c:10569 #, gcc-internal-format msgid "expected end of capture-list" msgstr "" -#: cp/parser.c:10572 +#: cp/parser.c:10584 #, gcc-internal-format msgid "" "explicit by-copy capture of % redundant with by-copy capture default" msgstr "" -#: cp/parser.c:10589 +#: cp/parser.c:10589 cp/parser.c:10610 cp/parser.c:10781 #, gcc-internal-format -msgid "%<*this%> capture only available with -std=c++17 or -std=gnu++17" +msgid "already captured %qD in lambda expression" msgstr "" -#: cp/parser.c:10606 +#: cp/parser.c:10604 #, gcc-internal-format -msgid "pack init-capture only available with -std=c++2a or -std=gnu++2a" +msgid "" +"%<*this%> capture only available with %<-std=c++17%> or %<-std=gnu++17%>" msgstr "" -#: cp/parser.c:10645 +#: cp/parser.c:10625 #, gcc-internal-format msgid "" -"lambda capture initializers only available with -std=c++14 or -std=gnu++14" +"pack init-capture only available with %<-std=c++2a%> or %<-std=gnu++2a%>" msgstr "" -#: cp/parser.c:10652 +#: cp/parser.c:10664 +#, gcc-internal-format +msgid "" +"lambda capture initializers only available with %<-std=c++14%> or %<-std=gnu+" +"+14%>" +msgstr "" + +#: cp/parser.c:10671 #, gcc-internal-format msgid "empty initializer for lambda init-capture" msgstr "" -#: cp/parser.c:10676 +#: cp/parser.c:10695 #, gcc-internal-format msgid "capture of non-variable %qE" msgstr "" -#: cp/parser.c:10680 cp/parser.c:10690 cp/semantics.c:3483 cp/semantics.c:3495 +#: cp/parser.c:10699 cp/parser.c:10709 cp/semantics.c:3534 cp/semantics.c:3546 #, gcc-internal-format msgid "%q#D declared here" msgstr "" -#: cp/parser.c:10686 +#: cp/parser.c:10705 #, gcc-internal-format msgid "capture of variable %qD with non-automatic storage duration" msgstr "" -#: cp/parser.c:10722 +#: cp/parser.c:10743 +#, gcc-internal-format +msgid "too many %<...%> in lambda capture" +msgstr "" + +#: cp/parser.c:10754 #, gcc-internal-format msgid "explicit by-copy capture of %qD redundant with by-copy capture default" msgstr "" -#: cp/parser.c:10727 +#: cp/parser.c:10759 #, gcc-internal-format msgid "" "explicit by-reference capture of %qD redundant with by-reference capture " "default" msgstr "" -#: cp/parser.c:10783 +#: cp/parser.c:10833 #, gcc-internal-format -msgid "lambda templates are only available with -std=c++14 or -std=gnu++14" +msgid "" +"lambda templates are only available with %<-std=c++14%> or %<-std=gnu++14%>" msgstr "" -#: cp/parser.c:10787 +#: cp/parser.c:10837 #, gcc-internal-format -msgid "lambda templates are only available with -std=c++2a or -std=gnu++2a" +msgid "" +"lambda templates are only available with %<-std=c++2a%> or %<-std=gnu++2a%>" msgstr "" -#: cp/parser.c:10821 +#: cp/parser.c:10871 #, gcc-internal-format msgid "default argument specified for lambda parameter" msgstr "" -#: cp/parser.c:10837 +#: cp/parser.c:10888 #, gcc-internal-format msgid "duplicate %" msgstr "" -#: cp/parser.c:10882 +#: cp/parser.c:10936 #, gcc-internal-format -msgid "% lambda only available with -std=c++17 or -std=gnu++17" +msgid "" +"% lambda only available with %<-std=c++17%> or %<-std=gnu++17%>" msgstr "" -#: cp/parser.c:11274 cp/parser.c:11475 +#: cp/parser.c:11335 cp/parser.c:11536 #, gcc-internal-format msgid "attributes at the beginning of statement are ignored" msgstr "" -#: cp/parser.c:11314 +#: cp/parser.c:11375 #, gcc-internal-format msgid "expected labeled-statement" msgstr "" -#: cp/parser.c:11363 +#: cp/parser.c:11424 #, gcc-internal-format msgid "case label %qE not within a switch statement" msgstr "" -#: cp/parser.c:11482 +#: cp/parser.c:11543 #, gcc-internal-format msgid "need % before %qE because %qT is a dependent scope" msgstr "" -#: cp/parser.c:11491 +#: cp/parser.c:11552 #, gcc-internal-format msgid "%<%T::%D%> names the constructor, not the type" msgstr "" -#: cp/parser.c:11539 +#: cp/parser.c:11600 #, gcc-internal-format msgid "compound-statement in % function" msgstr "" -#: cp/parser.c:11700 +#: cp/parser.c:11761 #, gcc-internal-format -msgid "% only available with -std=c++17 or -std=gnu++17" +msgid "% only available with %<-std=c++17%> or %<-std=gnu++17%>" msgstr "" -#: cp/parser.c:11727 +#: cp/parser.c:11788 #, gcc-internal-format msgid "" -"init-statement in selection statements only available with -std=c++17 or -" -"std=gnu++17" +"init-statement in selection statements only available with %<-std=c++17%> or " +"%<-std=gnu++17%>" msgstr "" -#: cp/parser.c:11897 cp/parser.c:29283 +#: cp/parser.c:11958 cp/parser.c:29415 #, gcc-internal-format msgid "expected selection-statement" msgstr "" -#: cp/parser.c:11934 +#: cp/parser.c:11995 #, gcc-internal-format msgid "condition declares an array" msgstr "" -#: cp/parser.c:11936 +#: cp/parser.c:11997 #, gcc-internal-format msgid "condition declares a function" msgstr "" -#: cp/parser.c:11976 +#: cp/parser.c:12037 #, gcc-internal-format msgid "types may not be defined in conditions" msgstr "" #. Anything else is an error. -#: cp/parser.c:12054 cp/parser.c:20281 cp/parser.c:22666 +#: cp/parser.c:12115 cp/parser.c:20369 cp/parser.c:22774 #, gcc-internal-format msgid "expected initializer" msgstr "" -#: cp/parser.c:12436 +#: cp/parser.c:12497 #, gcc-internal-format msgid "range-based % expression of type %qT has incomplete type" msgstr "" -#: cp/parser.c:12523 +#: cp/parser.c:12584 #, gcc-internal-format msgid "" "inconsistent begin/end types in range-based % statement: %qT and %qT" msgstr "" -#: cp/parser.c:12668 cp/parser.c:29286 +#: cp/parser.c:12729 cp/parser.c:29418 #, gcc-internal-format msgid "expected iteration-statement" msgstr "" -#: cp/parser.c:12714 +#: cp/parser.c:12775 #, gcc-internal-format msgid "" -"range-based % loops with initializer only available with -std=c++2a or " -"-std=gnu++2a" +"range-based % loops with initializer only available with %<-std=c++2a" +"%> or %<-std=gnu++2a%>" msgstr "" -#: cp/parser.c:12738 +#: cp/parser.c:12799 #, gcc-internal-format msgid "" -"range-based % loops only available with -std=c++11 or -std=gnu++11" +"range-based % loops only available with %<-std=c++11%> or %<-std=gnu+" +"+11%>" msgstr "" -#: cp/parser.c:12864 +#: cp/parser.c:12925 #, gcc-internal-format msgid "% in % function" msgstr "" #. Issue a warning about this use of a GNU extension. -#: cp/parser.c:12872 +#: cp/parser.c:12933 #, gcc-internal-format msgid "ISO C++ forbids computed gotos" msgstr "" -#: cp/parser.c:12885 cp/parser.c:29289 +#: cp/parser.c:12946 cp/parser.c:29421 #, gcc-internal-format msgid "expected jump-statement" msgstr "" -#: cp/parser.c:13198 cp/parser.c:24337 +#: cp/parser.c:13259 cp/parser.c:24453 #, gcc-internal-format msgid "extra %<;%>" msgstr "" -#: cp/parser.c:13290 +#: cp/parser.c:13351 #, gcc-internal-format msgid "%<__label__%> not at the beginning of a block" msgstr "" -#: cp/parser.c:13506 +#: cp/parser.c:13567 #, gcc-internal-format msgid "" "non-variable %qD in declaration with more than one declarator with " "placeholder type" msgstr "" -#: cp/parser.c:13526 +#: cp/parser.c:13587 #, gcc-internal-format msgid "inconsistent deduction for %qT: %qT and then %qT" msgstr "" -#: cp/parser.c:13547 +#: cp/parser.c:13608 #, gcc-internal-format msgid "mixing declarations and function-definitions is forbidden" msgstr "" -#: cp/parser.c:13571 +#: cp/parser.c:13632 #, gcc-internal-format msgid "types may not be defined in a for-range-declaration" msgstr "" -#: cp/parser.c:13626 +#: cp/parser.c:13687 #, gcc-internal-format msgid "initializer in range-based % loop" msgstr "" -#: cp/parser.c:13629 +#: cp/parser.c:13690 #, gcc-internal-format msgid "multiple declarations in range-based % loop" msgstr "" -#: cp/parser.c:13680 +#: cp/parser.c:13741 #, gcc-internal-format -msgid "structured bindings only available with -std=c++17 or -std=gnu++17" +msgid "" +"structured bindings only available with %<-std=c++17%> or %<-std=gnu++17%>" msgstr "" -#: cp/parser.c:13732 +#: cp/parser.c:13793 #, gcc-internal-format msgid "empty structured binding declaration" msgstr "" -#: cp/parser.c:13750 +#: cp/parser.c:13811 #, gcc-internal-format msgid "invalid initializer for structured binding declaration" msgstr "" -#: cp/parser.c:13917 +#: cp/parser.c:13978 #, gcc-internal-format msgid "% used outside of class" msgstr "" -#: cp/parser.c:13984 +#: cp/parser.c:14054 #, gcc-internal-format msgid "% changes meaning in C++11; please remove it" msgstr "" -#: cp/parser.c:14020 +#: cp/parser.c:14090 #, gcc-internal-format msgid "decl-specifier invalid in condition" msgstr "" -#: cp/parser.c:14026 +#: cp/parser.c:14096 #, gcc-internal-format msgid "%qD invalid in lambda" msgstr "" -#: cp/parser.c:14103 +#: cp/parser.c:14174 #, gcc-internal-format msgid "type-specifier invalid in lambda" msgstr "" -#: cp/parser.c:14122 +#: cp/parser.c:14193 #, gcc-internal-format msgid "class definition may not be declared a friend" msgstr "" -#: cp/parser.c:14195 cp/parser.c:24822 +#: cp/parser.c:14266 cp/parser.c:24938 #, gcc-internal-format msgid "templates may not be %" msgstr "" -#: cp/parser.c:14214 +#: cp/parser.c:14285 #, gcc-internal-format msgid "types may not be defined in explicit-specifier" msgstr "" -#: cp/parser.c:14218 +#: cp/parser.c:14289 #, gcc-internal-format -msgid "% only available with -std=c++2a or -std=gnu++2a" +msgid "" +"% only available with %<-std=c++2a%> or %<-std=gnu++2a%>" msgstr "" -#: cp/parser.c:14282 +#: cp/parser.c:14353 #, gcc-internal-format msgid "invalid linkage-specification" msgstr "" -#: cp/parser.c:14386 +#: cp/parser.c:14457 #, gcc-internal-format msgid "" -"static_assert without a message only available with -std=c++17 or -std=gnu+" -"+17" +"static_assert without a message only available with %<-std=c++17%> or %<-" +"std=gnu++17%>" msgstr "" -#: cp/parser.c:14588 +#: cp/parser.c:14659 #, gcc-internal-format msgid "types may not be defined in % expressions" msgstr "" -#: cp/parser.c:14742 +#: cp/parser.c:14813 #, gcc-internal-format msgid "types may not be defined in a conversion-type-id" msgstr "" -#: cp/parser.c:14770 +#: cp/parser.c:14841 #, gcc-internal-format msgid "invalid use of % in conversion operator" msgstr "" -#: cp/parser.c:14774 +#: cp/parser.c:14845 #, gcc-internal-format msgid "" "use of % in member template conversion operator can never be deduced" msgstr "" -#: cp/parser.c:14858 +#: cp/parser.c:14929 #, gcc-internal-format msgid "only constructors take member initializers" msgstr "" -#: cp/parser.c:14885 +#: cp/parser.c:14956 #, gcc-internal-format msgid "cannot expand initializer for member %qD" msgstr "" -#: cp/parser.c:14897 cp/pt.c:24834 +#: cp/parser.c:14968 cp/pt.c:24964 #, gcc-internal-format msgid "mem-initializer for %qD follows constructor delegation" msgstr "" -#: cp/parser.c:14909 cp/pt.c:24846 +#: cp/parser.c:14980 cp/pt.c:24976 #, gcc-internal-format msgid "constructor delegation follows mem-initializer for %qD" msgstr "" -#: cp/parser.c:14961 +#: cp/parser.c:15032 #, gcc-internal-format msgid "anachronistic old-style base class initializer" msgstr "" -#: cp/parser.c:15033 +#: cp/parser.c:15104 #, gcc-internal-format msgid "" "keyword % not allowed in this context (a qualified member " "initializer is implicitly a type)" msgstr "" -#: cp/parser.c:15417 +#: cp/parser.c:15488 #, gcc-internal-format msgid "unexpected keyword; remove space between quotes and suffix identifier" msgstr "" -#: cp/parser.c:15423 +#: cp/parser.c:15494 #, gcc-internal-format msgid "expected suffix identifier" msgstr "" -#: cp/parser.c:15432 +#: cp/parser.c:15503 #, gcc-internal-format msgid "expected empty string after % keyword" msgstr "" -#: cp/parser.c:15438 +#: cp/parser.c:15509 #, gcc-internal-format msgid "invalid encoding prefix in literal operator" msgstr "" -#: cp/parser.c:15474 +#: cp/parser.c:15545 #, gcc-internal-format msgid "expected operator" msgstr "" #. Warn that we do not support `export'. -#: cp/parser.c:15520 +#: cp/parser.c:15591 #, gcc-internal-format msgid "keyword % not implemented, and will be ignored" msgstr "" -#: cp/parser.c:15699 +#: cp/parser.c:15770 #, gcc-internal-format msgid "invalid constrained type parameter" msgstr "" -#: cp/parser.c:15707 +#: cp/parser.c:15778 #, gcc-internal-format msgid "cv-qualified type parameter" msgstr "" -#: cp/parser.c:15792 +#: cp/parser.c:15863 #, gcc-internal-format msgid "variadic constraint introduced without %<...%>" msgstr "" -#: cp/parser.c:15858 +#: cp/parser.c:15929 #, gcc-internal-format msgid "invalid use of % in default template argument" msgstr "" -#: cp/parser.c:16095 cp/parser.c:16181 cp/parser.c:22451 +#: cp/parser.c:16166 cp/parser.c:16252 cp/parser.c:22545 #, gcc-internal-format msgid "template parameter pack %qD cannot have a default argument" msgstr "" -#: cp/parser.c:16099 cp/parser.c:16185 +#: cp/parser.c:16170 cp/parser.c:16256 #, gcc-internal-format msgid "template parameter packs cannot have default arguments" msgstr "" -#: cp/parser.c:16251 +#: cp/parser.c:16322 #, gcc-internal-format msgid "expected template-id" msgstr "" -#: cp/parser.c:16313 +#: cp/parser.c:16384 #, gcc-internal-format msgid "%<<::%> cannot begin a template-argument list" msgstr "" -#: cp/parser.c:16317 +#: cp/parser.c:16388 #, gcc-internal-format msgid "" "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> " "and %<::%>" msgstr "" -#: cp/parser.c:16321 +#: cp/parser.c:16392 #, gcc-internal-format msgid "" "(if you use %<-fpermissive%> or %<-std=c++11%>, or %<-std=gnu++11%> G++ will " "accept your code)" msgstr "" -#: cp/parser.c:16351 +#: cp/parser.c:16422 #, gcc-internal-format msgid "invalid template-argument-list" msgstr "" -#: cp/parser.c:16352 +#: cp/parser.c:16423 #, gcc-internal-format msgid "" "function name as the left hand operand of %<<%> is ill-formed in C++2a; wrap " "the function name in %<()%>" msgstr "" -#: cp/parser.c:16359 +#: cp/parser.c:16430 #, gcc-internal-format msgid "expected %<(%> after template-argument-list" msgstr "" -#: cp/parser.c:16465 +#: cp/parser.c:16536 #, gcc-internal-format msgid "parse error in template argument list" msgstr "" #. The name does not name a template. -#: cp/parser.c:16533 cp/parser.c:16689 cp/parser.c:16898 +#: cp/parser.c:16604 cp/parser.c:16760 cp/parser.c:16969 #, gcc-internal-format msgid "expected template-name" msgstr "" #. Explain what went wrong. -#: cp/parser.c:16579 +#: cp/parser.c:16650 #, gcc-internal-format msgid "non-template %qD used as template" msgstr "" -#: cp/parser.c:16581 +#: cp/parser.c:16652 #, gcc-internal-format msgid "use %<%T::template %D%> to indicate that it is a template" msgstr "" -#: cp/parser.c:16750 +#: cp/parser.c:16821 #, gcc-internal-format msgid "expected parameter pack before %<...%>" msgstr "" -#: cp/parser.c:16859 cp/parser.c:16877 cp/parser.c:17052 +#: cp/parser.c:16930 cp/parser.c:16948 cp/parser.c:17123 #, gcc-internal-format msgid "expected template-argument" msgstr "" -#: cp/parser.c:17019 +#: cp/parser.c:17090 #, gcc-internal-format msgid "invalid non-type template argument" msgstr "" -#: cp/parser.c:17156 +#: cp/parser.c:17227 #, gcc-internal-format msgid "explicit instantiation shall not use % specifier" msgstr "" -#: cp/parser.c:17160 +#: cp/parser.c:17231 #, gcc-internal-format msgid "explicit instantiation shall not use % specifier" msgstr "" -#: cp/parser.c:17219 +#: cp/parser.c:17290 #, gcc-internal-format msgid "template specialization with C linkage" msgstr "" -#: cp/parser.c:17440 +#: cp/parser.c:17511 #, gcc-internal-format msgid "expected type specifier" msgstr "" -#: cp/parser.c:17627 +#: cp/parser.c:17698 #, gcc-internal-format msgid "" -"use of % in lambda parameter declaration only available with -std=c+" -"+14 or -std=gnu++14" +"use of % in lambda parameter declaration only available with %<-std=c+" +"+14%> or %<-std=gnu++14%>" msgstr "" -#: cp/parser.c:17633 +#: cp/parser.c:17704 #, gcc-internal-format msgid "" -"use of % in parameter declaration only available with -std=c++14 or -" -"std=gnu++14" +"use of % in parameter declaration only available with %<-std=c++14%> " +"or %<-std=gnu++14%>" msgstr "" -#: cp/parser.c:17638 +#: cp/parser.c:17709 #, gcc-internal-format -msgid "use of % in parameter declaration only available with -fconcepts" +msgid "" +"use of % in parameter declaration only available with %<-fconcepts%>" msgstr "" -#: cp/parser.c:17791 +#: cp/parser.c:17862 #, gcc-internal-format msgid "expected template-id for type" msgstr "" -#: cp/parser.c:17862 +#: cp/parser.c:17933 #, gcc-internal-format msgid "expected type-name" msgstr "" -#: cp/parser.c:18208 +#: cp/parser.c:18279 #, gcc-internal-format msgid "" "elaborated-type-specifier for a scoped enum must not use the %qD keyword" msgstr "" -#: cp/parser.c:18278 +#: cp/parser.c:18349 #, gcc-internal-format msgid "% must follow a nested-name-specifier" msgstr "" -#: cp/parser.c:18439 +#: cp/parser.c:18510 #, gcc-internal-format msgid "declaration %qD does not declare anything" msgstr "" -#: cp/parser.c:18527 +#: cp/parser.c:18598 #, gcc-internal-format msgid "attributes ignored on uninstantiated type" msgstr "" -#: cp/parser.c:18531 +#: cp/parser.c:18602 #, gcc-internal-format msgid "attributes ignored on template instantiation" msgstr "" -#: cp/parser.c:18536 +#: cp/parser.c:18607 #, gcc-internal-format msgid "" "attributes ignored on elaborated-type-specifier that is not a forward " "declaration" msgstr "" -#: cp/parser.c:18670 +#: cp/parser.c:18741 #, gcc-internal-format msgid "%qD is an enumeration template" msgstr "" -#: cp/parser.c:18681 +#: cp/parser.c:18752 #, gcc-internal-format msgid "%qD does not name an enumeration in %qT" msgstr "" -#: cp/parser.c:18696 +#: cp/parser.c:18767 #, gcc-internal-format msgid "unnamed scoped enum is not allowed" msgstr "" -#: cp/parser.c:18752 +#: cp/parser.c:18823 #, gcc-internal-format msgid "expected %<;%> or %<{%>" msgstr "" -#: cp/parser.c:18801 +#: cp/parser.c:18872 #, gcc-internal-format msgid "cannot add an enumerator list to a template instantiation" msgstr "" -#: cp/parser.c:18815 +#: cp/parser.c:18886 #, gcc-internal-format msgid "" "nested name specifier %qT for enum declaration does not name a class or " "namespace" msgstr "" -#: cp/parser.c:18827 cp/parser.c:23822 +#: cp/parser.c:18898 cp/parser.c:23935 #, gcc-internal-format msgid "declaration of %qD in namespace %qD which does not enclose %qD" msgstr "" -#: cp/parser.c:18832 cp/parser.c:23827 +#: cp/parser.c:18903 cp/parser.c:23940 #, gcc-internal-format msgid "declaration of %qD in %qD which does not enclose %qD" msgstr "" -#: cp/parser.c:18844 cp/parser.c:23841 +#: cp/parser.c:18915 cp/parser.c:23954 #, gcc-internal-format msgid "extra qualification not allowed" msgstr "" -#: cp/parser.c:18868 +#: cp/parser.c:18939 #, gcc-internal-format msgid "multiple definition of %q#T" msgstr "" -#: cp/parser.c:18881 +#: cp/parser.c:18952 #, gcc-internal-format msgid "ISO C++ forbids empty unnamed enum" msgstr "" -#: cp/parser.c:18901 +#: cp/parser.c:18972 #, gcc-internal-format msgid "opaque-enum-specifier without name" msgstr "" -#: cp/parser.c:18904 +#: cp/parser.c:18975 #, gcc-internal-format msgid "opaque-enum-specifier must use a simple identifier" msgstr "" -#: cp/parser.c:19095 +#: cp/parser.c:19166 #, gcc-internal-format msgid "%qD is not a namespace-name; did you mean %qs?" msgstr "" -#: cp/parser.c:19099 +#: cp/parser.c:19170 #, gcc-internal-format msgid "%qD is not a namespace-name" msgstr "" -#: cp/parser.c:19103 +#: cp/parser.c:19174 #, gcc-internal-format msgid "expected namespace-name" msgstr "" -#: cp/parser.c:19164 +#: cp/parser.c:19235 #, gcc-internal-format msgid "" -"nested inline namespace definitions only available with -std=c++2a or -" -"std=gnu++2a" +"nested inline namespace definitions only available with %<-std=c++2a%> or %<-" +"std=gnu++2a%>" msgstr "" -#: cp/parser.c:19175 +#: cp/parser.c:19246 #, gcc-internal-format msgid "standard attributes on namespaces must precede the namespace name" msgstr "" -#: cp/parser.c:19194 +#: cp/parser.c:19265 #, gcc-internal-format msgid "" -"nested namespace definitions only available with -std=c++17 or -std=gnu++17" +"nested namespace definitions only available with %<-std=c++17%> or %<-std=gnu" +"++17%>" msgstr "" -#: cp/parser.c:19204 +#: cp/parser.c:19275 #, gcc-internal-format msgid "nested namespace name required" msgstr "" -#: cp/parser.c:19209 +#: cp/parser.c:19280 #, gcc-internal-format msgid "namespace name required" msgstr "" -#: cp/parser.c:19213 +#: cp/parser.c:19284 #, gcc-internal-format msgid "a nested namespace definition cannot have attributes" msgstr "" -#: cp/parser.c:19216 +#: cp/parser.c:19287 #, gcc-internal-format msgid "a nested namespace definition cannot be inline" msgstr "" -#: cp/parser.c:19223 +#: cp/parser.c:19294 #, gcc-internal-format msgid "namespace %qD entered" msgstr "" -#: cp/parser.c:19278 +#: cp/parser.c:19349 #, gcc-internal-format msgid "% definition is not allowed here" msgstr "" -#: cp/parser.c:19429 +#: cp/parser.c:19501 #, gcc-internal-format msgid "" -"pack expansion in using-declaration only available with -std=c++17 or -" -"std=gnu++17" +"pack expansion in using-declaration only available with %<-std=c++17%> or %<-" +"std=gnu++17%>" msgstr "" -#: cp/parser.c:19444 +#: cp/parser.c:19516 #, gcc-internal-format msgid "a template-id may not appear in a using-declaration" msgstr "" -#: cp/parser.c:19491 +#: cp/parser.c:19563 #, gcc-internal-format msgid "" -"comma-separated list in using-declaration only available with -std=c++17 or -" -"std=gnu++17" +"comma-separated list in using-declaration only available with %<-std=c++17%> " +"or %<-std=gnu++17%>" msgstr "" -#: cp/parser.c:19501 +#: cp/parser.c:19573 #, gcc-internal-format msgid "" "access declarations are deprecated in favour of using-declarations; " "suggestion: add the % keyword" msgstr "" -#: cp/parser.c:19566 +#: cp/parser.c:19638 #, gcc-internal-format msgid "types may not be defined in alias template declarations" msgstr "" -#: cp/parser.c:19744 +#: cp/parser.c:19816 #, gcc-internal-format msgid "% in % function" msgstr "" -#: cp/parser.c:19763 cp/parser.c:19774 cp/parser.c:19785 +#: cp/parser.c:19836 cp/parser.c:19852 cp/parser.c:19865 #, gcc-internal-format msgid "duplicate asm qualifier %qT" msgstr "" -#: cp/parser.c:19795 +#: cp/parser.c:19842 +#, gcc-internal-format +msgid "asm qualifier %qT ignored outside of function body" +msgstr "" + +#: cp/parser.c:19877 #, gcc-internal-format msgid "%qT is not an asm qualifier" msgstr "" -#: cp/parser.c:20176 +#: cp/parser.c:19893 +#, gcc-internal-format +msgid "asm qualifier outside of function body" +msgstr "" + +#: cp/parser.c:20264 #, gcc-internal-format msgid "a function-definition is not allowed here" msgstr "" -#: cp/parser.c:20187 +#: cp/parser.c:20275 #, gcc-internal-format msgid "an asm-specification is not allowed on a function-definition" msgstr "" -#: cp/parser.c:20191 +#: cp/parser.c:20279 #, gcc-internal-format msgid "attributes are not allowed on a function-definition" msgstr "" -#: cp/parser.c:20242 +#: cp/parser.c:20330 #, gcc-internal-format msgid "expected constructor, destructor, or type conversion" msgstr "" -#: cp/parser.c:20362 +#: cp/parser.c:20450 #, gcc-internal-format msgid "initializer provided for function" msgstr "" -#: cp/parser.c:20396 +#: cp/parser.c:20484 #, gcc-internal-format msgid "attributes after parenthesized initializer ignored" msgstr "" -#: cp/parser.c:20410 +#: cp/parser.c:20498 #, gcc-internal-format msgid "non-function %qD declared as implicit template" msgstr "" -#: cp/parser.c:20873 +#: cp/parser.c:20961 #, gcc-internal-format msgid "array bound is not an integer constant" msgstr "" -#: cp/parser.c:20999 +#: cp/parser.c:21087 #, gcc-internal-format msgid "cannot define member of dependent typedef %qT" msgstr "" -#: cp/parser.c:21003 +#: cp/parser.c:21091 #, gcc-internal-format msgid "%<%T::%E%> is not a type" msgstr "" @@ -48636,17 +48913,17 @@ msgstr "" #. here because we do not have enough #. information about its original syntactic #. form. -#: cp/parser.c:21032 +#: cp/parser.c:21120 #, gcc-internal-format msgid "invalid declarator" msgstr "" -#: cp/parser.c:21040 +#: cp/parser.c:21128 #, gcc-internal-format msgid "invalid use of constructor as a template" msgstr "" -#: cp/parser.c:21042 +#: cp/parser.c:21130 #, gcc-internal-format msgid "" "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified " @@ -48655,390 +48932,408 @@ msgstr "" #. But declarations with qualified-ids can't appear in a #. function. -#: cp/parser.c:21145 +#: cp/parser.c:21239 #, gcc-internal-format msgid "qualified-id in declaration" msgstr "" -#: cp/parser.c:21170 +#: cp/parser.c:21264 #, gcc-internal-format msgid "expected declarator" msgstr "" -#: cp/parser.c:21289 +#: cp/parser.c:21383 #, gcc-internal-format msgid "%qD is a namespace" msgstr "" -#: cp/parser.c:21291 +#: cp/parser.c:21385 #, gcc-internal-format msgid "cannot form pointer to member of non-class %q#T" msgstr "" -#: cp/parser.c:21312 +#: cp/parser.c:21406 #, gcc-internal-format msgid "expected ptr-operator" msgstr "" -#: cp/parser.c:21373 +#: cp/parser.c:21467 #, gcc-internal-format msgid "duplicate cv-qualifier" msgstr "" -#: cp/parser.c:21427 +#: cp/parser.c:21521 #, gcc-internal-format msgid "multiple ref-qualifiers" msgstr "" -#: cp/parser.c:21464 +#: cp/parser.c:21558 #, gcc-internal-format msgid "%qE requires %<-fgnu-tm%>" msgstr "" -#: cp/parser.c:21522 +#: cp/parser.c:21616 #, gcc-internal-format msgid "duplicate virt-specifier" msgstr "" -#: cp/parser.c:21774 +#: cp/parser.c:21868 #, gcc-internal-format msgid "missing template arguments after %qT" msgstr "" -#: cp/parser.c:21780 cp/typeck2.c:494 cp/typeck2.c:541 cp/typeck2.c:2175 +#: cp/parser.c:21874 cp/typeck2.c:494 cp/typeck2.c:541 cp/typeck2.c:2187 #, gcc-internal-format msgid "invalid use of %qT" msgstr "" -#: cp/parser.c:21806 +#: cp/parser.c:21900 #, gcc-internal-format msgid "types may not be defined in template arguments" msgstr "" -#: cp/parser.c:21811 +#: cp/parser.c:21905 #, gcc-internal-format msgid "invalid use of % in template argument" msgstr "" -#: cp/parser.c:21905 +#: cp/parser.c:21999 #, gcc-internal-format msgid "expected type-specifier" msgstr "" -#: cp/parser.c:22180 +#: cp/parser.c:22274 #, gcc-internal-format msgid "expected %<,%> or %<...%>" msgstr "" -#: cp/parser.c:22258 +#: cp/parser.c:22352 #, gcc-internal-format msgid "types may not be defined in parameter types" msgstr "" -#: cp/parser.c:22435 +#: cp/parser.c:22529 #, gcc-internal-format msgid "default arguments are only permitted for function parameters" msgstr "" -#: cp/parser.c:22453 +#: cp/parser.c:22547 #, gcc-internal-format msgid "parameter pack %qD cannot have a default argument" msgstr "" -#: cp/parser.c:22459 +#: cp/parser.c:22553 #, gcc-internal-format msgid "template parameter pack cannot have a default argument" msgstr "" -#: cp/parser.c:22461 +#: cp/parser.c:22555 #, gcc-internal-format msgid "parameter pack cannot have a default argument" msgstr "" -#: cp/parser.c:22894 +#: cp/parser.c:22681 +#, gcc-internal-format +msgid "" +"function-try-block body of % constructor only available with %<-" +"std=c++2a%> or %<-std=gnu++2a%>" +msgstr "" + +#: cp/parser.c:22685 +#, gcc-internal-format +msgid "" +"function-try-block body of % function only available with %<-" +"std=c++2a%> or %<-std=gnu++2a%>" +msgstr "" + +#: cp/parser.c:23006 #, gcc-internal-format msgid "" -"C++ designated initializers only available with -std=c++2a or -std=gnu++2a" +"C++ designated initializers only available with %<-std=c++2a%> or %<-std=gnu+" +"+2a%>" msgstr "" -#: cp/parser.c:22914 +#: cp/parser.c:23026 #, gcc-internal-format msgid "ISO C++ does not allow GNU designated initializers" msgstr "" -#: cp/parser.c:22952 +#: cp/parser.c:23064 #, gcc-internal-format msgid "ISO C++ does not allow C99 designated initializers" msgstr "" -#: cp/parser.c:22966 +#: cp/parser.c:23078 #, gcc-internal-format msgid "" "either all initializer clauses should be designated or none of them should be" msgstr "" -#: cp/parser.c:22991 +#: cp/parser.c:23103 #, gcc-internal-format msgid "%<...%> not allowed in designated initializer list" msgstr "" -#: cp/parser.c:23029 +#: cp/parser.c:23141 #, gcc-internal-format msgid "%<.%s%> designator used multiple times in the same initializer list" msgstr "" -#: cp/parser.c:23085 cp/parser.c:23213 +#: cp/parser.c:23198 cp/parser.c:23326 #, gcc-internal-format msgid "expected class-name" msgstr "" -#: cp/parser.c:23415 +#: cp/parser.c:23528 #, gcc-internal-format msgid "expected %<;%> after class definition" msgstr "" -#: cp/parser.c:23418 +#: cp/parser.c:23531 #, gcc-internal-format msgid "expected %<;%> after struct definition" msgstr "" -#: cp/parser.c:23421 +#: cp/parser.c:23534 #, gcc-internal-format msgid "expected %<;%> after union definition" msgstr "" -#: cp/parser.c:23764 +#: cp/parser.c:23877 #, gcc-internal-format msgid "expected %<{%> or %<:%>" msgstr "" -#: cp/parser.c:23775 +#: cp/parser.c:23888 #, gcc-internal-format msgid "cannot specify % for a class" msgstr "" -#: cp/parser.c:23783 +#: cp/parser.c:23896 #, gcc-internal-format msgid "global qualification of class name is invalid" msgstr "" -#: cp/parser.c:23790 +#: cp/parser.c:23903 #, gcc-internal-format msgid "qualified name does not name a class" msgstr "" -#: cp/parser.c:23802 +#: cp/parser.c:23915 #, gcc-internal-format msgid "keyword % not allowed in class-head-name" msgstr "" -#: cp/parser.c:23808 +#: cp/parser.c:23921 #, gcc-internal-format msgid "invalid class name in declaration of %qD" msgstr "" -#: cp/parser.c:23866 +#: cp/parser.c:23979 #, gcc-internal-format msgid "an explicit specialization must be preceded by %