public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets
@ 2012-04-22  1:08 cmaloney at tagged dot com
  2012-04-22  8:08 ` [Bug c++/53067] " paolo.carlini at oracle dot com
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: cmaloney at tagged dot com @ 2012-04-22  1:08 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 53067
           Summary: c++0x GCC 4.7.0 Regression std::ref with unordered
                    sets
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: cmaloney@tagged.com


Building the following code with gcc4.7 snapshot 20120421 fails, but passed
with gcc4.6.

$g++ -std=c++11

#include <functional>
#include <unordered_set>

int main(int, char**){
  std::unordered_map<int> Foo;
  ref(Foo);
}


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
@ 2012-04-22  8:08 ` paolo.carlini at oracle dot com
  2012-04-22 13:36 ` redi at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-04-22  8:08 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

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

--- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-04-22 08:08:05 UTC ---
Already fixed for 4.7.1.

*** This bug has been marked as a duplicate of bug 52942 ***


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
  2012-04-22  8:08 ` [Bug c++/53067] " paolo.carlini at oracle dot com
@ 2012-04-22 13:36 ` redi at gcc dot gnu.org
  2012-04-22 16:11 ` paolo.carlini at oracle dot com
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: redi at gcc dot gnu.org @ 2012-04-22 13:36 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
   Last reconfirmed|                            |2012-04-22
         Resolution|DUPLICATE                   |
     Ever Confirmed|0                           |1

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-04-22 13:36:19 UTC ---
It's not a dup, although it doesn't help that the testcase is bogus (should use
unordered_set not unordered_map)

#include <functional>
#include <unordered_set>

int main(int, char**){
  std::unordered_set<int> Foo;
  ref(Foo);
}


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
  2012-04-22  8:08 ` [Bug c++/53067] " paolo.carlini at oracle dot com
  2012-04-22 13:36 ` redi at gcc dot gnu.org
@ 2012-04-22 16:11 ` paolo.carlini at oracle dot com
  2012-04-22 16:57 ` paolo.carlini at oracle dot com
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-04-22 16:11 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-04-22 16:10:38 UTC ---
I'm right now rebuilding both mainline and branch, because yesterday both
worked and I don't think we changed anything in this area. What the heck it is?


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
                   ` (2 preceding siblings ...)
  2012-04-22 16:11 ` paolo.carlini at oracle dot com
@ 2012-04-22 16:57 ` paolo.carlini at oracle dot com
  2012-04-22 17:38 ` paolo at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-04-22 16:57 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |ASSIGNED
         AssignedTo|unassigned at gcc dot       |paolo.carlini at oracle dot
                   |gnu.org                     |com

--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-04-22 16:57:19 UTC ---
Ok, for 4_7-branch just stop this insanity and make all the implementation
details public. In mainline - barring other changes - we'll be anyway able to
do better thanks to access control part of SFINAE.


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
                   ` (4 preceding siblings ...)
  2012-04-22 17:38 ` paolo at gcc dot gnu.org
@ 2012-04-22 17:38 ` paolo at gcc dot gnu.org
  2012-04-22 17:40 ` paolo.carlini at oracle dot com
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: paolo at gcc dot gnu.org @ 2012-04-22 17:38 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from paolo at gcc dot gnu.org <paolo at gcc dot gnu.org> 2012-04-22 17:38:07 UTC ---
Author: paolo
Date: Sun Apr 22 17:37:57 2012
New Revision: 186676

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=186676
Log:
2012-04-22  Paolo Carlini  <paolo.carlini@oracle.com>

    PR libstdc++/53067
    * include/bits/hashtable_policy.h: Change inheritances to public.
    * testsuite/23_containers/unordered_map/requirements/53067.cc: New.
    * testsuite/23_containers/unordered_set/requirements/53067.cc: Likewise.

Added:
   
trunk/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
   
trunk/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/hashtable_policy.h


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
                   ` (3 preceding siblings ...)
  2012-04-22 16:57 ` paolo.carlini at oracle dot com
@ 2012-04-22 17:38 ` paolo at gcc dot gnu.org
  2012-04-22 17:38 ` paolo at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: paolo at gcc dot gnu.org @ 2012-04-22 17:38 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from paolo at gcc dot gnu.org <paolo at gcc dot gnu.org> 2012-04-22 17:38:18 UTC ---
Author: paolo
Date: Sun Apr 22 17:38:11 2012
New Revision: 186677

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=186677
Log:
2012-04-22  Paolo Carlini  <paolo.carlini@oracle.com>

    PR libstdc++/53067
    * include/bits/hashtable_policy.h: Change inheritances to public.
    * testsuite/23_containers/unordered_map/requirements/53067.cc: New.
    * testsuite/23_containers/unordered_set/requirements/53067.cc: Likewise.

Added:
   
branches/gcc-4_7-branch/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
   
branches/gcc-4_7-branch/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
Modified:
    branches/gcc-4_7-branch/libstdc++-v3/ChangeLog
    branches/gcc-4_7-branch/libstdc++-v3/include/bits/hashtable_policy.h


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
                   ` (5 preceding siblings ...)
  2012-04-22 17:38 ` paolo at gcc dot gnu.org
@ 2012-04-22 17:40 ` paolo.carlini at oracle dot com
  2012-09-25 17:06 ` paolo.carlini at oracle dot com
  2012-10-11 22:22 ` paolo.carlini at oracle dot com
  8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-04-22 17:40 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.7.1

--- Comment #7 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-04-22 17:40:06 UTC ---
Fixed mainline and 4.7.1.


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
                   ` (6 preceding siblings ...)
  2012-04-22 17:40 ` paolo.carlini at oracle dot com
@ 2012-09-25 17:06 ` paolo.carlini at oracle dot com
  2012-10-11 22:22 ` paolo.carlini at oracle dot com
  8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-09-25 17:06 UTC (permalink / raw)
  To: gcc-bugs


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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

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

--- Comment #8 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-09-25 17:05:49 UTC ---
Hi Francois, any chance you can look into this?

As you can see, at some point we hoped to have a more serious fix in mainline
thanks to access control under SFINAE, but actually we (I) were wrong, it
doesn't help. Thus we are stuck with public inheritance for all the
implementation detail base classes (see the comments in hashtable_policy.h), a
pretty ugly situation. It must be possible to redesign things a bit and avoid
that. What do you think?


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

* [Bug c++/53067] c++0x GCC 4.7.0 Regression std::ref with unordered sets
  2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
                   ` (7 preceding siblings ...)
  2012-09-25 17:06 ` paolo.carlini at oracle dot com
@ 2012-10-11 22:22 ` paolo.carlini at oracle dot com
  8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-10-11 22:22 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #9 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-11 22:21:50 UTC ---
Turns out I was wrong in my last message! Francois made me notice that in fact
in my experiments I was reverting the quick hack in an incorrect way. I have
now properly done the reversion:

  http://gcc.gnu.org/ml/gcc-cvs/2012-10/msg00502.html

and things work great in mainline.


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

end of thread, other threads:[~2012-10-11 22:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-22  1:08 [Bug c++/53067] New: c++0x GCC 4.7.0 Regression std::ref with unordered sets cmaloney at tagged dot com
2012-04-22  8:08 ` [Bug c++/53067] " paolo.carlini at oracle dot com
2012-04-22 13:36 ` redi at gcc dot gnu.org
2012-04-22 16:11 ` paolo.carlini at oracle dot com
2012-04-22 16:57 ` paolo.carlini at oracle dot com
2012-04-22 17:38 ` paolo at gcc dot gnu.org
2012-04-22 17:38 ` paolo at gcc dot gnu.org
2012-04-22 17:40 ` paolo.carlini at oracle dot com
2012-09-25 17:06 ` paolo.carlini at oracle dot com
2012-10-11 22:22 ` paolo.carlini at oracle dot com

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).