The following code should not compile:

int f(int);
void g()
{
  class C {
    friend int f(int);
  };
}

The C++ standard clause 11.4 ; 9 states that friend declarations in local
classes have different rules to friend declarations in regular classes. Friend
functions must be previously declared in the innermost enclosing non-class
scope.


-- 
           Summary: failure to check for visible declaration of friend
                    function to local class
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: accepts-invalid
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: amylaar at gcc dot gnu dot org


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

Reply via email to