diff options
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/search.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/lookup5.C | 26 |
4 files changed, 35 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index da860eb6b38..f7201ba4520 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2006-01-18 Jakub Jelinek <jakub@redhat.com> + + * search.c (lookup_conversions_r): Fix a pasto. + 2006-01-17 Eric Christopher <echristo@apple.com> * call.c (convert_like_real): When issuing conversion diff --git a/gcc/cp/search.c b/gcc/cp/search.c index 090510b4103..90e88d6865e 100644 --- a/gcc/cp/search.c +++ b/gcc/cp/search.c @@ -2355,7 +2355,7 @@ lookup_conversions_r (tree binfo, { parent_tpl_convs = tree_cons (binfo, my_tpl_convs, parent_tpl_convs); if (virtual_depth) - TREE_STATIC (parent_convs) = 1; + TREE_STATIC (parent_tpl_convs) = 1; } child_convs = other_convs; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dc5c57a360e..61145bc640d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2006-01-18 Jakub Jelinek <jakub@redhat.com> + + * g++.dg/parse/lookup5.C: New test. + 2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/25697 diff --git a/gcc/testsuite/g++.dg/parse/lookup5.C b/gcc/testsuite/g++.dg/parse/lookup5.C new file mode 100644 index 00000000000..afdf023b50b --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/lookup5.C @@ -0,0 +1,26 @@ +// { dg-do compile } + +struct A {}; + +template <class T> struct B +{ + T a, b; + B() {} + B(T x, T y) : a(x), b(y) {} + template <class U> operator B<U> () const + { return B<U>((U)(this->a), (U)(this->b)); } +}; + +template <class T> struct C : public B<int> +{ + T *c; + inline T & operator *() { return *c; } +}; + +template <class T> struct D : virtual public C<T> { }; + +void +foo (D<A> x) +{ + *x; +} |