[LLVMbugs] [Bug 15209] New: core DR 580 - template parameters and base-specifiers access checked too eagerly

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Feb 8 01:24:57 PST 2013


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

            Bug ID: 15209
           Summary: core DR 580 - template parameters and base-specifiers
                    access checked too eagerly
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: zilla at kayari.org
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

class A {
  typedef int I; // private member
  template<int> struct Q;
  template<int> friend struct R;
protected:
  struct B { };
};
template<A::I> struct A::Q { };
template<A::I> struct R { };
struct D: A::B, A { };

t.cc:9:13: error: 'I' is a private member of 'A'
template<A::I> struct R { };
            ^
t.cc:2:15: note: implicitly declared private here
  typedef int I; // private member
              ^
t.cc:10:14: error: 'B' is a protected member of 'A'
struct D: A::B, A { };
             ^
t.cc:6:10: note: declared protected here
  struct B { };
         ^

The member, A::Q, is handled correctly, but the friend R and derived type D
should also be able to refer to non-public names from A.

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#580

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130208/ec082d1b/attachment.html>


More information about the llvm-bugs mailing list