diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-01-19 06:46:48 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-01-19 06:46:48 +0000 |
commit | 7a886e1a12ded84f49181cac9423e9db645cc452 (patch) | |
tree | 7f5d6f94bc8d1a37ef8288be2bbcc87a20e05d5a /test/SemaTemplate/dependent-base-member-init.cpp | |
parent | e39fe72df7da662c195ef4bcd542d58ec87d5422 (diff) | |
download | clang-7a886e1a12ded84f49181cac9423e9db645cc452.tar.gz |
In a mem-initializer, a nested-name-specifier followed by an
identifier always names a type. In the case of a dependent
nested-name-specifier, build a TypenameType to describe the dependent
base type. I'd like to move more of this behavior up into the parser,
but this fixes PR6062.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93871 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaTemplate/dependent-base-member-init.cpp')
-rw-r--r-- | test/SemaTemplate/dependent-base-member-init.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/SemaTemplate/dependent-base-member-init.cpp b/test/SemaTemplate/dependent-base-member-init.cpp index c9823d227d..3109375806 100644 --- a/test/SemaTemplate/dependent-base-member-init.cpp +++ b/test/SemaTemplate/dependent-base-member-init.cpp @@ -34,3 +34,21 @@ template<typename T> struct s1 : s0<typename s0_traits<T>::t0> { s1() {} }; +// PR6062 +namespace PR6062 { + template <typename T> + class A : public T::type + { + A() : T::type() + { + } + + template <typename U> + A(U const& init) + : T::type(init) + { } + + template<typename U> + A(U& init) : U::other_type(init) { } + }; +} |