3 // Origin: David Margery <David.Margery@irisa.fr>
5 // Bug: We fail to set DECL_TEMPLATE_PARM_P when reducing template
8 template <class T> class A2 {
12 template <class other> A2 & operator=(const A2<other> o) {
20 template <class T> class A1 {
24 template <class other> A1 & operator=(const A1<other> o) {
28 template <class other> A1 & operator=(const A2<other> o) {
35 template <template <class U> class T> class B {
39 template <template <class U2> class O> struct rebind { typedef B<O> other ;};
40 template <template <class U2> class O> B & operator=(const B<O> o) {
47 int main(int argc, char *argv[]) {