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 run }
|
// { dg-do run }
|
struct S;
|
struct S;
|
|
|
template
|
template
|
struct F {
|
struct F {
|
S* f (S& s)
|
S* f (S& s)
|
{
|
{
|
return (s.*p)();
|
return (s.*p)();
|
}
|
}
|
};
|
};
|
|
|
template
|
template
|
struct D {
|
struct D {
|
void d (S& s)
|
void d (S& s)
|
{
|
{
|
(s.*p) = 3;
|
(s.*p) = 3;
|
}
|
}
|
};
|
};
|
|
|
struct S {
|
struct S {
|
S* g ();
|
S* g ();
|
int i;
|
int i;
|
F<&S::g> fg;
|
F<&S::g> fg;
|
D<&S::i> di;
|
D<&S::i> di;
|
S* h(), k(F<&S::h>);
|
S* h(), k(F<&S::h>);
|
F<&S::g> fg2;
|
F<&S::g> fg2;
|
D<&S::i> di2;
|
D<&S::i> di2;
|
};
|
};
|
|
|
S* S::g()
|
S* S::g()
|
{
|
{
|
return this;
|
return this;
|
}
|
}
|
|
|
S* S::h()
|
S* S::h()
|
{
|
{
|
return this;
|
return this;
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
S s;
|
S s;
|
s.i = 2;
|
s.i = 2;
|
s.di.d (s);
|
s.di.d (s);
|
if (s.i != 3)
|
if (s.i != 3)
|
return 1;
|
return 1;
|
if (s.fg2.f(s) != &s)
|
if (s.fg2.f(s) != &s)
|
return 1;
|
return 1;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.