[LLVMbugs] [Bug 12240] New: Clang incorrectly emitting 'is a private member of' error for templated friend class

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Mar 11 07:11:01 PDT 2012


http://llvm.org/bugs/show_bug.cgi?id=12240

             Bug #: 12240
           Summary: Clang incorrectly emitting 'is a private member of'
                    error for templated friend class
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: howarth at nitro.med.uc.edu
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Created attachment 8184
  --> http://llvm.org/bugs/attachment.cgi?id=8184
preprocessed source file for mysql-5.0.95/ndb/src/common/util/Parser.cpp

The ncb/src/common/util/Parser.cpp file from mysql-5.0.95 fails to compile
under clang svn (but succeeds with FSF g++ 4.7.0RC). Under clang it produces
the compile error...


In file included from Parser.cpp:1:In file included from
Parser.cpp:19:../../../../ndb/include/util/Parser.hpp:253:16: error:
'm_breakOnCmd' is a private member of 'ParserImpl'  return impl->m_breakOnCmd; 
             ^../../../../ndb/include/util/Parser.hpp:152:8: note: declared
private here
  bool m_breakOnCmd;
       ^
../../../../ndb/include/util/Parser.hpp:260:9: error: 'm_breakOnCmd' is a
private member of 'ParserImpl'
  impl->m_breakOnCmd = v;
        ^
../../../../ndb/include/util/Parser.hpp:152:8: note: declared private here
  bool m_breakOnCmd;
       ^
../../../../ndb/include/util/Parser.hpp:267:16: error: 'm_breakOnEmpty' is a
private member of 'ParserImpl'
  return impl->m_breakOnEmpty;
               ^
../../../../ndb/include/util/Parser.hpp:151:8: note: declared private here
  bool m_breakOnEmpty;
       ^
../../../../ndb/include/util/Parser.hpp:273:9: error: 'm_breakOnEmpty' is a
private member of 'ParserImpl'
  impl->m_breakOnEmpty = v;
        ^
../../../../ndb/include/util/Parser.hpp:151:8: note: declared private here
  bool m_breakOnEmpty;
       ^
../../../../ndb/include/util/Parser.hpp:280:16: error: 'm_breakOnInvalidArg' is
a private member of 'ParserImpl'
  return impl->m_breakOnInvalidArg;
               ^
../../../../ndb/include/util/Parser.hpp:153:8: note: declared private here
  bool m_breakOnInvalidArg;
       ^
../../../../ndb/include/util/Parser.hpp:287:9: error: 'm_breakOnInvalidArg' is
a private member of 'ParserImpl'
  impl->m_breakOnInvalidArg = v;
        ^
../../../../ndb/include/util/Parser.hpp:153:8: note: declared private here
  bool m_breakOnInvalidArg;
       ^
6 errors generated.

despite being templated for private usage in ParserImpl.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list