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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [sra-1.c] - Rev 774

Go to most recent revision | Compare with Previous | Blame | View Log

/* { dg-do compile } */
/* { dg-options "-O1" } */
/* Let gimple verifier check what SRA does to unions and single-field
   strucutres . */
 
struct sim_struct
{
  int x;
};
 
extern struct sim_struct get_x(void);
 
struct sim_struct foo (void)
{
  struct sim_struct simple;
 
  simple = get_x ();
  if (simple.x % 2)
    simple.x = 39;
  else
    simple.x -=8;
 
  return simple;
}
 
struct sim_cmplx
{
  _Complex double c;
};
 
extern struct sim_cmplx get_sc (void);
 
_Complex double foo_c (void)
{
  struct sim_cmplx simple;
 
  simple = get_sc ();
  if (__real__ simple.c > 200.3)
    __imag__ simple.c -= 2.4;
 
  return simple.c;
}
 
 
union sim_union
{
  int i;
  float d;
};
 
extern union sim_union get_y (void);
 
union sim_union bar (void)
{
  union sim_union simple;
 
  simple = get_y ();
  if (simple.d > 8.2)
    simple.i = 300;
 
  return simple;
}
 
extern int get_int (void);
 
int bar_i (void)
{
  union sim_union simple;
 
  simple = get_y ();
  if (simple.d > 8.2)
    simple.i = get_int ();
 
  return simple.i;
}
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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