OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [g++.dg/] [abi/] [packed1.C] - Diff between revs 301 and 384

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 ();
}
}
 
 

powered by: WebSVN 2.1.0

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