This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/18604] New: [3.4/4.0 Regression] Strong using lookup conflicts


The following code fails to compile on 3.4 and newer compilers:

-------------------------------------------------
#include <functional>

struct less : public std::less<int>
{};

#include <set>
-------------------------------------------------

$ g++-3.4 -c test.cc
In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.0/include/c++/set:67,
                 from test.cc:6:
/usr/lib/gcc/i686-pc-cygwin/3.4.0/include/c++/bits/stl_set.h:69: error: `less' h
as not been declared



The problem appears related to strong using. This is a reduced, epurated 
testcase:

-------------------------------------------------
namespace NB {}

namespace NA  {
    using namespace NB;
}

namespace NB {
    using namespace NA __attribute__ ((strong));

    struct Foo {};
}

struct Foo : NB::Foo
{};

namespace NA {
   Foo a;
}
-------------------------------------------------
test.ii:17: error: `Foo' does not name a type


(note: I found this bug while cleaning up the testcase in PR 15855).

Jason: can you have a look at this please?

-- 
           Summary: [3.4/4.0 Regression] Strong using lookup conflicts
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: giovannibajo at libero dot it
                CC: gcc-bugs at gcc dot gnu dot org,jason at redhat dot com


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]