On 2017.01.18 at 09:11 -0500, Jason Merrill wrote: > On Wed, Jan 18, 2017 at 3:55 AM, Markus Trippelsdorf > <mar...@trippelsdorf.de> wrote: > > On 2017.01.17 at 13:26 -0500, Jason Merrill wrote: > >> On Thu, Jan 12, 2017 at 2:36 AM, Markus Trippelsdorf > >> <mar...@trippelsdorf.de> wrote: > > + if (abi_version_at_least (11) && discriminator - 1 >= 10) > > + { > > + write_char ('_'); > > + if (abi_warn_or_compat_version_crosses (11)) > > + G.need_abi_warning = 1; > > This check should be outside the abi_version_at_least block; we want > to warn if -fabi-version=10 and -Wabi=11.
Ok, thanks. Is the following OK? PR c++/77489 * mangle.c (write_discriminator): Move abi warning check out of if block. diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index d1b107cbb1d..6f2e86d43f3 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1965,13 +1965,11 @@ write_discriminator (const int discriminator) /* If discriminator is zero, don't write anything. Otherwise... */ if (discriminator > 0) { + if (abi_warn_or_compat_version_crosses (11)) + G.need_abi_warning = 1; write_char ('_'); if (abi_version_at_least (11) && discriminator - 1 >= 10) - { - write_char ('_'); - if (abi_warn_or_compat_version_crosses (11)) - G.need_abi_warning = 1; - } + write_char ('_'); write_unsigned_number (discriminator - 1); if (abi_version_at_least (11) && discriminator - 1 >= 10) write_char ('_'); -- Markus