]> granicus.if.org Git - clang/commit
Check access to friend declarations. There's a number of different
authorJohn McCall <rjmccall@apple.com>
Fri, 10 Aug 2012 03:15:35 +0000 (03:15 +0000)
committerJohn McCall <rjmccall@apple.com>
Fri, 10 Aug 2012 03:15:35 +0000 (03:15 +0000)
commit1f2e1a96bec2ba6418ae7f2d2b525a3575203b6a
tree4186ca57ea4f54df5ac62a3528a8ab089fe75f65
parent7c304f56eecbd03db7d222a05dfcd593750d50d3
Check access to friend declarations.  There's a number of different
things going on here that were problematic:
  - We were missing the actual access check, or rather, it was suppressed
    on account of being a redeclaration lookup.
  - The access check would naturally happen during delay, which isn't
    appropriate in this case.
  - We weren't actually emitting dependent diagnostics associated with
    class templates, which was unfortunate.
  - Access was being propagated incorrectly for friend method declarations
    that couldn't be matched at parse-time.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161652 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/Sema/SemaAccess.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaTemplateInstantiate.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp
test/CXX/class.access/class.friend/p1.cpp
test/CXX/class.access/class.friend/p9-cxx0x.cpp [new file with mode: 0644]
test/CXX/temp/temp.decls/temp.friend/p1.cpp