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++/41788
|
// PR c++/41788
|
// { dg-options "-Wpacked" }
|
// { dg-options "-Wpacked" }
|
// { dg-do run }
|
// { dg-do run }
|
|
|
extern "C" void abort ();
|
extern "C" void abort ();
|
|
|
struct INNER { // { dg-warning "inefficient.*vptr" "" { target alpha*-*-* ia64-*-* hppa*-*-* sparc*-*-* sh*-*-* } }
|
struct INNER { // { dg-warning "inefficient.*vptr" "" { target alpha*-*-* ia64-*-* hppa*-*-* sparc*-*-* sh*-*-* } }
|
virtual int foo() const { return 1; }
|
virtual int foo() const { return 1; }
|
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
|
|
struct OUTER {
|
struct OUTER {
|
char c;
|
char c;
|
INNER inner;
|
INNER inner;
|
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
|
|
int main()
|
int main()
|
{
|
{
|
OUTER outer;
|
OUTER outer;
|
int s = sizeof(outer);
|
int s = sizeof(outer);
|
int o = (char *)&outer.inner - (char *)&outer;
|
int o = (char *)&outer.inner - (char *)&outer;
|
if (s != sizeof (char) + sizeof (void*)
|
if (s != sizeof (char) + sizeof (void*)
|
|| o != sizeof (char))
|
|| o != sizeof (char))
|
abort ();
|
abort ();
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.