URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 338 |
// PR c++/15759
|
// PR c++/15759
|
// Origin: Lars Rune Nøstdal
|
// Origin: Lars Rune Nøstdal
|
// Testcase: Volker Reichelt
|
// Testcase: Volker Reichelt
|
|
|
// { dg-do run }
|
// { dg-do run }
|
|
|
extern "C" void abort();
|
extern "C" void abort();
|
|
|
int n = 0;
|
int n = 0;
|
|
|
int f() { return ++n; }
|
int f() { return ++n; }
|
|
|
int(&foo1)() = f;
|
int(&foo1)() = f;
|
int(*foo2)() = &f;
|
int(*foo2)() = &f;
|
int(*foo3)() = f;
|
int(*foo3)() = f;
|
|
|
int bar1(int i = foo1()) { return i; }
|
int bar1(int i = foo1()) { return i; }
|
int bar2(int i = foo2()) { return i; }
|
int bar2(int i = foo2()) { return i; }
|
int bar3(int i = foo3()) { return i; }
|
int bar3(int i = foo3()) { return i; }
|
int bar4(int i = f()) { return i; }
|
int bar4(int i = f()) { return i; }
|
|
|
int main()
|
int main()
|
{
|
{
|
if (bar1() != 1) abort();
|
if (bar1() != 1) abort();
|
if (bar2() != 2) abort();
|
if (bar2() != 2) abort();
|
if (bar3() != 3) abort();
|
if (bar3() != 3) abort();
|
if (bar4() != 4) abort();
|
if (bar4() != 4) abort();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.