diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 98c80045f99dd5c67d64b3aaee286b64805f3fa7..23f76a3fd05132e866b9af4219a0975374197ffe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-04-19 Jie Zhang <jie@codesourcery.com> + + PR target/43662 + * reginfo.c (reinit_regs): Set caller_save_initialized_p + to false. + 2010-04-19 Ira Rosen <irar@il.ibm.com> PR tree-optimization/37027 diff --git a/gcc/reginfo.c b/gcc/reginfo.c index ee6c7ee6447a162154d4bf0edab7b8cd4ed71df9..bf43d702da55f43073b4c5baa7a8150557a05a9e 100644 --- a/gcc/reginfo.c +++ b/gcc/reginfo.c @@ -666,6 +666,8 @@ void reinit_regs (void) { init_regs (); + /* caller_save needs to be re-initialized. */ + caller_save_initialized_p = false; ira_init (); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8215f8363b899901abdc4f624bd6e9ea2dbdc6e1..01a2602414967fa04c2ccf3522c1bc50e97de547 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-04-19 Jie Zhang <jie@codesourcery.com> + + PR target/43662 + * gcc.target/i386/pr43662.c: New test. + 2010-04-19 Dodji Seketeli <dodji@redhat.com> PR c++/43704 diff --git a/gcc/testsuite/gcc.target/i386/pr43662.c b/gcc/testsuite/gcc.target/i386/pr43662.c new file mode 100644 index 0000000000000000000000000000000000000000..246c8aafa6e22278beeab8d424400ce1a11b3bfa --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr43662.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target lp64 } */ +/* { dg-options "-O2" } */ + +void __attribute__ ((ms_abi)) foo (void) +{ +} + +typedef struct _IAVIStreamImpl +{ + int sInfo; + int has; +} IAVIStreamImpl; + +extern int __attribute__ ((ms_abi)) aso (void *); +extern int sre (void *); + +int AVIFILE_OpenCompressor (IAVIStreamImpl *This) +{ + if (This->has != 0) + aso (&This->has); + sre (&This->sInfo); + return 0; +}