diff options
| -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; |
