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/] [gcc.c-torture/] [execute/] [20020215-1.c] - Diff between revs 297 and 338

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

Rev 297 Rev 338
/* Test failed on an architecture that:
/* Test failed on an architecture that:
 
 
   - had 16-bit registers,
   - had 16-bit registers,
   - passed 64-bit structures in registers,
   - passed 64-bit structures in registers,
   - only allowed SImode values in even numbered registers.
   - only allowed SImode values in even numbered registers.
 
 
   Before reload, s.i2 in foo() was represented as:
   Before reload, s.i2 in foo() was represented as:
 
 
        (subreg:SI (reg:DI 0) 2)
        (subreg:SI (reg:DI 0) 2)
 
 
   find_dummy_reload would return (reg:SI 1) for the subreg reload,
   find_dummy_reload would return (reg:SI 1) for the subreg reload,
   despite that not being a valid register.  */
   despite that not being a valid register.  */
 
 
struct s
struct s
{
{
  short i1;
  short i1;
  long i2;
  long i2;
  short i3;
  short i3;
};
};
 
 
struct s foo (struct s s)
struct s foo (struct s s)
{
{
  s.i2++;
  s.i2++;
  return s;
  return s;
}
}
 
 
int main ()
int main ()
{
{
  struct s s = foo ((struct s) { 1000, 2000L, 3000 });
  struct s s = foo ((struct s) { 1000, 2000L, 3000 });
  if (s.i1 != 1000 || s.i2 != 2001L || s.i3 != 3000)
  if (s.i1 != 1000 || s.i2 != 2001L || s.i3 != 3000)
    abort ();
    abort ();
  exit (0);
  exit (0);
}
}
 
 

powered by: WebSVN 2.1.0

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