| 1c7e6ec2 | 20-Dec-2009 |
John McCall <[email protected]> |
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 ser
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
llvm-svn: 91792
show more ...
|
| bffb990c | 20-Dec-2009 |
John McCall <[email protected]> |
Test the lookup I wasn't sure would be done properly after the last patch. Clang reasonably adds all the base specifiers in one pass; this is now required for correctness to prevent lookup from goin
Test the lookup I wasn't sure would be done properly after the last patch. Clang reasonably adds all the base specifiers in one pass; this is now required for correctness to prevent lookup from going mad. But this has the advantage of establishing the correct context when looking up base specifiers, which will be important for access control.
llvm-svn: 91791
show more ...
|