URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [lto/] [20090221_0.C] - Rev 693
Compare with Previous | Blame | View Log
// { dg-lto-do assemble }
extern void some_function (const char *);
extern bool some_other_function ();
struct Foo
{
long long a;
int b;
};
bool Foo_eq(Foo x, Foo y)
{
return x.a == y.a && x.b == y.b;
}
struct Bar
{
Foo a;
int b;
};
struct Baz
{
Bar a;
Baz(Bar &a):a(a) { }
};
struct Zonk
{
Baz baz;
Bar func_1(const Bar & bar) {
if (Foo_eq(bar.a, baz.a.a) && bar.b == baz.a.b || some_other_function ())
return bar;
}
void func_2(const Baz & baz) {
func_1(baz.a);
some_function(__PRETTY_FUNCTION__);
}
};
void func() {
Bar bar;
Zonk *rep;
rep->func_1(bar);
rep->func_2(Baz(bar));
}
void foo ()
{
func();
}