[Bug c++/20637] New: [3.3/3.4/4.0/4.1 regression] Confusing message with different using declarations

bangerth at dealii dot org gcc-bugzilla@gcc.gnu.org
Fri Mar 25 16:27:00 GMT 2005


This was hard to find. Consider this snippet: 
------------------ 
struct B { 
    void f(); 
}; 
 
struct D : B { 
    using B::f; 
    B::f; 
}; 
------------------ 
Note that D contains old- and new-style using declarations. In my case, they 
were several hundred lines apart in D, so it wasn't quite so obvious. What 
I get is this: 
 
g/x> /home/bangerth/bin/gcc-4*/bin/c++ -c a.cc 
a.cc:2: error: ?void B::f()? and ?void B::f()? cannot be overloaded 
 
Note that it doesn't show where the attempt to overload happens, it only shows 
the original place. That's bad diagnostics. 
 
gcc2.95 didn't say anything about the code, so I rate this as a regression. 
 
W.

-- 
           Summary: [3.3/3.4/4.0/4.1 regression] Confusing message with
                    different using declarations
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bangerth at dealii dot org
                CC: gcc-bugs at gcc dot gnu dot org


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



More information about the Gcc-bugs mailing list