On 2017.01.18 at 10:03 -0500, Jason Merrill wrote:
> On Wed, Jan 18, 2017 at 9:23 AM, Markus Trippelsdorf
> <mar...@trippelsdorf.de> wrote:
> > 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.
> >
> > +      if (abi_warn_or_compat_version_crosses (11))
> > +       G.need_abi_warning = 1;
> >        write_char ('_');
> >        if (abi_version_at_least (11) && discriminator - 1 >= 10)
> 
> Ah, but it does need to be controlled by the second part of this test;
> we only want the warning if the discriminator will be two digits.

No. It appears to work even without the additional condition:

 % g++ -fabi-version=10 -Wabi=11 -Wall -c gcc/testsuite/g++.dg/abi/pr77489.C
gcc/testsuite/g++.dg/abi/pr77489.C:56:16: warning: the mangled name of 
‘localVar’ changes between -fabi-version=10 (_ZZ3foovE8localVar_11) and 
-fabi-version=11 (_ZZ3foovE8localVar__11_) [-Wabi]
     static int localVar = 12;
                ^~~~~~~~
gcc/testsuite/g++.dg/abi/pr77489.C:52:16: warning: the mangled name of 
‘localVar’ changes between -fabi-version=10 (_ZZ3foovE8localVar_10) and 
-fabi-version=11 (_ZZ3foovE8localVar__10_) [-Wabi]
     static int localVar = 11;
                ^~~~~~~~

-- 
Markus

Reply via email to