]> granicus.if.org Git - clang/commit
Don't inject the class name until that magical lbrace.
authorJohn McCall <rjmccall@apple.com>
Sun, 20 Dec 2009 07:58:13 +0000 (07:58 +0000)
committerJohn McCall <rjmccall@apple.com>
Sun, 20 Dec 2009 07:58:13 +0000 (07:58 +0000)
commitf9368159334ff86ea5fa367225c1a580977f3b03
tree07e7e0be59c8924c33a865d99b4af7bfa122c52b
parent84d11c7ba48023b2bd3375ef002e08fecdb186ce
Don't inject the class name until that magical lbrace.

Because of the rules of base-class lookup* and the restrictions on typedefs, it
was actually impossible for this to cause any problems more serious than the
spurious acceptance of
  template <class T> class A : B<A> { ... };
instead of
  template <class T> class A : B<A<T> > { ... };
but I'm sure we can all agree that that is a very important restriction which
is well worth making another Parser->Sema call for.

(*) n.b. clang++ does not implement these rules correctly;  we are not ignoring
    non-type names

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91792 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Parse/Action.h
lib/Parse/ParseDeclCXX.cpp
lib/Sema/Sema.h
lib/Sema/SemaDecl.cpp
test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp