diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2006-05-20 22:35:02 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2006-05-20 15:35:02 -0700 |
commit | 7e2fe9d8a171c50b39b985fb0f9d9721f4f42656 (patch) | |
tree | 9ae8d54e49e1bd1ea366d26f5cfdeb46a7893f20 | |
parent | 0323103130bfbabe742046a857737ae6bcc5dc4c (diff) | |
download | gcc-7e2fe9d8a171c50b39b985fb0f9d9721f4f42656.zip gcc-7e2fe9d8a171c50b39b985fb0f9d9721f4f42656.tar.gz gcc-7e2fe9d8a171c50b39b985fb0f9d9721f4f42656.tar.bz2 |
re PR middle-end/25776 (ICE in cgraph after error at -O1 and above)
2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/25776
* cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
or sorry count is non zero.
2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/25776
* g++.dg/other/error11.C: New test.
From-SVN: r113941
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/error11.C | 17 |
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7deb475..f05e632 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-05-20 Andrew Pinski <pinskia@physics.uc.edu> + + PR middle-end/25776 + * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error + or sorry count is non zero. + 2006-05-20 Andreas Schwab <schwab@suse.de> * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 5ff4fff..44b3d4f 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -1410,7 +1410,11 @@ cgraph_optimize (void) fprintf (cgraph_dump_file, "Marked "); dump_cgraph (cgraph_dump_file); } - ipa_passes (); + + /* Don't run the IPA passes if there was any error or sorry messages. */ + if (errorcount == 0 && sorrycount == 0) + ipa_passes (); + /* This pass remove bodies of extern inline functions we never inlined. Do this later so other IPA passes see what is really going on. */ cgraph_remove_unreachable_nodes (false, dump_file); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 10b3a7d..d558ee2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-05-20 Andrew Pinski <pinskia@physics.uc.edu> + + PR middle-end/25776 + * g++.dg/other/error11.C: New test. + 2006-05-20 Richard Sandiford <richard@codesourcery.com> * gcc.target/mips/pr26765.c: Add -w to options. diff --git a/gcc/testsuite/g++.dg/other/error11.C b/gcc/testsuite/g++.dg/other/error11.C new file mode 100644 index 0000000..d8a641c --- /dev/null +++ b/gcc/testsuite/g++.dg/other/error11.C @@ -0,0 +1,17 @@ +/* { dg-options "-O1" } */ +struct A +{ + ERROR; /* { dg-error "ERROR" } */ + ~A(); +}; + +struct B +{ + virtual ~B(); +}; + +struct C : B, A {}; + +struct D : C {}; + +D d; |