URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 384 |
// PR c++/6316
|
// PR c++/6316
|
// This testcase ICEd because when deferred bar()::F::F() was being
|
// This testcase ICEd because when deferred bar()::F::F() was being
|
// expanded, containing bar() was still deferred and had DECL_EXTERNAL set
|
// expanded, containing bar() was still deferred and had DECL_EXTERNAL set
|
// (and DECL_NOT_REALLY_EXTERN too).
|
// (and DECL_NOT_REALLY_EXTERN too).
|
// { dg-do compile }
|
// { dg-do compile }
|
// { dg-options "-O3" }
|
// { dg-options "-O3" }
|
|
|
struct A { ~A() throw() {} };
|
struct A { ~A() throw() {} };
|
template struct B { U a; B(const T *); };
|
template struct B { U a; B(const T *); };
|
typedef B C;
|
typedef B C;
|
struct D { D(); };
|
struct D { D(); };
|
struct E { virtual ~E(); };
|
struct E { virtual ~E(); };
|
|
|
E *bar ();
|
E *bar ();
|
|
|
void
|
void
|
foo ()
|
foo ()
|
{
|
{
|
E *a = bar ();
|
E *a = bar ();
|
}
|
}
|
|
|
extern char *z [];
|
extern char *z [];
|
|
|
E *
|
E *
|
bar ()
|
bar ()
|
{
|
{
|
struct F : public E
|
struct F : public E
|
{
|
{
|
F ()
|
F ()
|
{
|
{
|
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
C e = z[i];
|
C e = z[i];
|
}
|
}
|
D x, y;
|
D x, y;
|
};
|
};
|
return new F ();
|
return new F ();
|
}
|
}
|
|
|
int
|
int
|
main ()
|
main ()
|
{
|
{
|
foo ();
|
foo ();
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.