http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51804

             Bug #: 51804
           Summary: Wabi false positives
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: b...@gcc.gnu.org


When adding -Wabi to the libstdc++ build flags, I ran the testsuite with -Wabi
as well, since that tends to instantiate more templates than just building the
libstdc++.so.

When I run the the libstdc++ testsuite with -Wabi, I get 72 new fails. 

Some of these make sense from the manual, ie
http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#C_002b_002b-Dialect-Options

or from the example with non-type reference

extern int N;

template <int &> struct S {};

void n(S<N>) {2;}

which is

-fabi-version=3
0000000000000000 T _Z1n1SIL_Z1NEE 

-fabi-version=2
0000000000000000 T _Z1n1SILZ1NEE
0000000000000000 T _Z1n1SIL_Z1NEE


One can see the difference very easily in terms of what is produced by the
compiler.

However, there look to be some false positives, in things like:

libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc

and others (full log attached as 20120109-libstdc++.sum.bz2)


I see a lot of things like:

s.h:752:7: warning: the mangled name of ‘void
__gnu_test::constexpr_single_value_constructible::_Concept<_Ttesttype,
_Tvaluetype, true>::__constraint() [with _Ttesttype = std::tuple<int, int>;
_Tvaluetype = std::tuple<short int, short int>]’ will change in a future
version of GCC [-Wabi]

I'm finding it harder to make sense of this warning. Is this a false positive?
If not, what changed? I'll attach a pre-processed file that gives this warning,
and a log of the test run.

Reply via email to