OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [g++.dg/] [lto/] [20090221_0.C] - Rev 313

Go to most recent revision | 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();
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.