]> granicus.if.org Git - clang/commit
Fix a point of semantics with using declaration hiding: method templates
authorJohn McCall <rjmccall@apple.com>
Wed, 16 Jun 2010 08:42:20 +0000 (08:42 +0000)
committerJohn McCall <rjmccall@apple.com>
Wed, 16 Jun 2010 08:42:20 +0000 (08:42 +0000)
commitad00b7705f9bbee81beeac428e7c6587734ab5a6
treecd68ed597dabc2870e71dd62cdf287859b1019e3
parentbd409d040bffef3e7ba862941dd706b1f7021141
Fix a point of semantics with using declaration hiding:  method templates
introduced by using decls are hidden even if their template parameter lists
or return types differ from the "overriding" declaration.

Propagate using shadow declarations around more effectively when looking up
template-ids.  Reperform lookup for template-ids in member expressions so that
access control is properly set up.

Fix some number of latent bugs involving template-ids with totally invalid
base types.  You can only actually get these with a scope specifier, since
otherwise the template-id won't parse as a template-id.

Fixes PR7384.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106093 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/Lookup.h
lib/Sema/Sema.h
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaTemplate.cpp
lib/Sema/TreeTransform.h
test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp
test/SemaCXX/member-expr.cpp