URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 338 |
// { dg-do compile { target s390x-*-* } }
|
// { dg-do compile { target s390x-*-* } }
|
// { dg-options "-O3 -fPIC" }
|
// { dg-options "-O3 -fPIC" }
|
|
|
class A
|
class A
|
{
|
{
|
public:
|
public:
|
void f (void) { _M_a = 0; }
|
void f (void) { _M_a = 0; }
|
void g (void) { _M_a = 1; }
|
void g (void) { _M_a = 1; }
|
void h (void);
|
void h (void);
|
|
|
private:
|
private:
|
int _M_a;
|
int _M_a;
|
};
|
};
|
|
|
class B : virtual public A
|
class B : virtual public A
|
{
|
{
|
};
|
};
|
|
|
void
|
void
|
test (B& x)
|
test (B& x)
|
{
|
{
|
for (int i = 0; i < 17; i++)
|
for (int i = 0; i < 17; i++)
|
{
|
{
|
x.f ();
|
x.f ();
|
(x.*&A::g) ();
|
(x.*&A::g) ();
|
x.h ();
|
x.h ();
|
}
|
}
|
}
|
}
|
|
|
// Check that every call to A::g goes via the PLT.
|
// Check that every call to A::g goes via the PLT.
|
// { dg-final { scan-assembler-not "brasl\[^@\]*\n" } }
|
// { dg-final { scan-assembler-not "brasl\[^@\]*\n" } }
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.