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

Reply via email to