URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
// { dg-do assemble }
|
// { dg-do assemble }
|
|
|
// Origin: David Margery
|
// Origin: David Margery
|
|
|
// Bug: We fail to set DECL_TEMPLATE_PARM_P when reducing template
|
// Bug: We fail to set DECL_TEMPLATE_PARM_P when reducing template
|
// parameter level.
|
// parameter level.
|
|
|
template class A2 {
|
template class A2 {
|
public:
|
public:
|
A2() {}
|
A2() {}
|
virtual ~A2() {}
|
virtual ~A2() {}
|
template A2 & operator=(const A2 o) {
|
template A2 & operator=(const A2 o) {
|
i=o.i;
|
i=o.i;
|
return *this;
|
return *this;
|
}
|
}
|
T i;
|
T i;
|
T j;
|
T j;
|
};
|
};
|
|
|
template class A1 {
|
template class A1 {
|
public:
|
public:
|
A1() {}
|
A1() {}
|
virtual ~A1() {}
|
virtual ~A1() {}
|
template A1 & operator=(const A1 o) {
|
template A1 & operator=(const A1 o) {
|
i=o.i;
|
i=o.i;
|
return *this;
|
return *this;
|
}
|
}
|
template A1 & operator=(const A2 o) {
|
template A1 & operator=(const A2 o) {
|
i=o.i;
|
i=o.i;
|
return *this;
|
return *this;
|
}
|
}
|
T i;
|
T i;
|
};
|
};
|
|
|
template class T> class B {
|
template class T> class B {
|
public:
|
public:
|
B(){}
|
B(){}
|
virtual ~B(){}
|
virtual ~B(){}
|
template class O> struct rebind { typedef B other ;};
|
template class O> struct rebind { typedef B other ;};
|
template class O> B & operator=(const B o) {
|
template class O> B & operator=(const B o) {
|
i=o.i;
|
i=o.i;
|
return *this;
|
return *this;
|
}
|
}
|
T i;
|
T i;
|
};
|
};
|
|
|
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
|
|
A1 a1;
|
A1 a1;
|
A1 a2;
|
A1 a2;
|
a1=a2;
|
a1=a2;
|
|
|
B b1;
|
B b1;
|
B b2;
|
B b2;
|
b1=b2;
|
b1=b2;
|
|
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.