public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/51804] New: Wabi false positives
@ 2012-01-09 21:26 bkoz at gcc dot gnu.org
  2012-01-09 21:27 ` [Bug c++/51804] " bkoz at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2012-01-09 21:26 UTC (permalink / raw)
  To: gcc-bugs

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: unassigned@gcc.gnu.org
        ReportedBy: bkoz@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.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/51804] Wabi false positives
  2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
@ 2012-01-09 21:27 ` bkoz at gcc dot gnu.org
  2012-01-09 21:44 ` bkoz at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2012-01-09 21:27 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2012-01-09 21:27:35 UTC ---
Created attachment 26284
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26284
log file of 'make check-libstdc++-v3' with  -Wabi


72 new fails


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/51804] Wabi false positives
  2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
  2012-01-09 21:27 ` [Bug c++/51804] " bkoz at gcc dot gnu.org
@ 2012-01-09 21:44 ` bkoz at gcc dot gnu.org
  2012-01-09 21:46 ` bkoz at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2012-01-09 21:44 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2012-01-09 21:44:39 UTC ---
Created attachment 26286
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26286
enables -Wabi for 'make check-libstdc++-v3'


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/51804] Wabi false positives
  2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
  2012-01-09 21:27 ` [Bug c++/51804] " bkoz at gcc dot gnu.org
  2012-01-09 21:44 ` bkoz at gcc dot gnu.org
@ 2012-01-09 21:46 ` bkoz at gcc dot gnu.org
  2012-01-09 22:22 ` jason at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2012-01-09 21:46 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2012-01-09 21:45:51 UTC ---
Created attachment 26287
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26287
pre-processed test file, run with -Wabi


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/51804] Wabi false positives
  2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-01-09 21:46 ` bkoz at gcc dot gnu.org
@ 2012-01-09 22:22 ` jason at gcc dot gnu.org
  2012-01-10  0:06 ` bkoz at gcc dot gnu.org
  2012-01-11  4:23 ` [Bug c++/51804] -Wabi confusion bkoz at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jason at gcc dot gnu.org @ 2012-01-09 22:22 UTC (permalink / raw)
  To: gcc-bugs

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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> 2012-01-09 22:22:11 UTC ---
(In reply to comment #0)
> 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?

Doesn't look like it. Any use of variadic templates in a function signature
will result in a -Wabi warning now, since the mangling of argument packs
changes in -fabi-version=6.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/51804] Wabi false positives
  2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-01-09 22:22 ` jason at gcc dot gnu.org
@ 2012-01-10  0:06 ` bkoz at gcc dot gnu.org
  2012-01-11  4:23 ` [Bug c++/51804] -Wabi confusion bkoz at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2012-01-10  0:06 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2012-01-10 00:06:05 UTC ---

Ah! Ok. I didn't realize there was an -fabi-version=6. Now I get it. Stupid me,
for thinking v3 was the latest greatest, doh.

From:
http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C_002b_002b-Dialect-Options.html#C_002b_002b-Dialect-Options

It looks like some bits should be added to invoke.texi for Version 6. (ie
-fabi-version=6).

Here's a first pass.

Version 6 changes the mangling for parameter packs in variadic templates,
certain preincrement/decrement operators, and the way C++11 scoped enumerators
are mangled for types larger than int.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/51804] -Wabi confusion
  2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-01-10  0:06 ` bkoz at gcc dot gnu.org
@ 2012-01-11  4:23 ` bkoz at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2012-01-11  4:23 UTC (permalink / raw)
  To: gcc-bugs

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

Benjamin Kosnik <bkoz at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED

--- Comment #6 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2012-01-11 04:22:54 UTC ---

Calling this fixed, via a combination of corrected docs and me actually
understanding them.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-01-11  4:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-09 21:26 [Bug c++/51804] New: Wabi false positives bkoz at gcc dot gnu.org
2012-01-09 21:27 ` [Bug c++/51804] " bkoz at gcc dot gnu.org
2012-01-09 21:44 ` bkoz at gcc dot gnu.org
2012-01-09 21:46 ` bkoz at gcc dot gnu.org
2012-01-09 22:22 ` jason at gcc dot gnu.org
2012-01-10  0:06 ` bkoz at gcc dot gnu.org
2012-01-11  4:23 ` [Bug c++/51804] -Wabi confusion bkoz at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).