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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.dg/] [opt/] [anonunion1.C] - Diff between revs 301 and 338

Only display areas with differences | Details | Blame | View Log

Rev 301 Rev 338
// PR c++/5748
// PR c++/5748
// This testcase ICEd because used flag from the anon union variables
// This testcase ICEd because used flag from the anon union variables
// was not propagated back to the anon union itself, causing addressof
// was not propagated back to the anon union itself, causing addressof
// not to be replaced with stack slot.
// not to be replaced with stack slot.
// { dg-do compile }
// { dg-do compile }
// { dg-options "-O2" }
// { dg-options "-O2" }
struct A {
struct A {
  A ();
  A ();
  ~A ();
  ~A ();
  int foo ();
  int foo ();
  int bar (void *x, int y);
  int bar (void *x, int y);
};
};
int A::foo()
int A::foo()
{
{
  union {
  union {
    int a;
    int a;
    int b;
    int b;
  };
  };
  if (bar (&a, sizeof (int)) != 32)
  if (bar (&a, sizeof (int)) != 32)
    return 16;
    return 16;
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

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