* gcc.c-torture/execute/20020215-1.c: New test.
From-SVN: r49788
This commit is contained in:
parent
05fa709d38
commit
0b6e58fd6f
@ -1,3 +1,7 @@
|
||||
2002-02-15 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* gcc.c-torture/execute/20020215-1.c: New test.
|
||||
|
||||
2002-02-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* g++.dg/dg.exp: Exclude debug subdir, it has its own .exp.
|
||||
|
33
gcc/testsuite/gcc.c-torture/execute/20020215-1.c
Normal file
33
gcc/testsuite/gcc.c-torture/execute/20020215-1.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Test failed on an architecture that:
|
||||
|
||||
- had 16-bit registers,
|
||||
- passed 64-bit structures in registers,
|
||||
- only allowed SImode values in even numbered registers.
|
||||
|
||||
Before reload, s.i2 in foo() was represented as:
|
||||
|
||||
(subreg:SI (reg:DI 0) 2)
|
||||
|
||||
find_dummy_reload would return (reg:SI 1) for the subreg reload,
|
||||
despite that not being a valid register. */
|
||||
|
||||
struct s
|
||||
{
|
||||
short i1;
|
||||
long i2;
|
||||
short i3;
|
||||
};
|
||||
|
||||
struct s foo (struct s s)
|
||||
{
|
||||
s.i2++;
|
||||
return s;
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
struct s s = foo ((struct s) { 1000, 2000L, 3000 });
|
||||
if (s.i1 != 1000 || s.i2 != 2001L || s.i3 != 3000)
|
||||
abort ();
|
||||
exit (0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user