diff options
author | Jie Zhang <jie@codesourcery.com> | 2010-03-31 02:44:10 +0000 |
---|---|---|
committer | Jie Zhang <jiez@gcc.gnu.org> | 2010-03-31 02:44:10 +0000 |
commit | dc12b70ef2ff960820c183f4911c9d426e34eac3 (patch) | |
tree | bdc83c7c76ffc03569d38f8626f441aecbd9e452 /gcc/testsuite/gcc.dg/pr43562.c | |
parent | d500b6cfc85cbd6d7a042796689d796d498fc468 (diff) | |
download | gcc-dc12b70ef2ff960820c183f4911c9d426e34eac3.zip gcc-dc12b70ef2ff960820c183f4911c9d426e34eac3.tar.gz gcc-dc12b70ef2ff960820c183f4911c9d426e34eac3.tar.bz2 |
re PR other/43562 (GCC ICE on optimize attribute)
PR 43562
* reload.h (caller_save_initialized_p): Declare.
* toplev.c (backend_init_target): Don't call
init_caller_save but set caller_save_initialized_p
to false.
* caller-save.c (caller_save_initialized_p): Define.
(init_caller_save): Check caller_save_initialized_p.
* ira.c (ira): Call init_caller_save if flag_caller_saves.
testsuite/
PR 43562
* gcc.dg/pr43562.c: New test.
From-SVN: r157849
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr43562.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr43562.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr43562.c b/gcc/testsuite/gcc.dg/pr43562.c new file mode 100644 index 0000000..352c107 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr43562.c @@ -0,0 +1,20 @@ +/* { dg-options "-O0" } */ +/* { dg-do compile } */ + +extern unsigned foo (void); +extern void bar (void); + +__attribute__ ((optimize ("O2"))) +void bak () +{ + unsigned a; + while (1) + { + a = foo (); + while (a) + { + a &= 1; + bar (); + } + } +} |