URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 384 |
/* { dg-do compile } */
|
/* { dg-do compile } */
|
bool foo();
|
bool foo();
|
|
|
struct A
|
struct A
|
{
|
{
|
A* fooA() { if (foo()) foo(); return this; }
|
A* fooA() { if (foo()) foo(); return this; }
|
|
|
virtual void barA(char);
|
virtual void barA(char);
|
};
|
};
|
|
|
template struct B
|
template struct B
|
{
|
{
|
A *p, *q;
|
A *p, *q;
|
|
|
void fooB(char c) { p->fooA()->barA(c); }
|
void fooB(char c) { p->fooA()->barA(c); }
|
};
|
};
|
|
|
template inline void bar(B b) { b.fooB(0); }
|
template inline void bar(B b) { b.fooB(0); }
|
|
|
extern template void bar(B<0>);
|
extern template void bar(B<0>);
|
|
|
void (*f)(B<0>) = bar;
|
void (*f)(B<0>) = bar;
|
|
|
void baz()
|
void baz()
|
{
|
{
|
B<0>().fooB(0);
|
B<0>().fooB(0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.