For the following case: 

// line 1
class A {};
class B : private A { };

extern B b;

void f( A & = b); // ERROR

A & a = b; // ERROR

... g++ issues only one error:

t.cpp:9: error: 'A' is an inaccessible base of 'B'

... but it should also complain about the default arg.

Incidentally, this example was boiled down from code in a real project.


-- 
           Summary: No error given for derived-to-private-base conversion in
                    default arg.
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: widman at gimpel dot com


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

Reply via email to