diff options
author | Richard Henderson <rth@redhat.com> | 2005-07-25 16:04:33 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-07-25 16:04:33 -0700 |
commit | 5306ec31f509b6899d6728ca7d2d9846c66bffa2 (patch) | |
tree | a191cde8108b1af39f728fe3015def9fc06647b3 /gcc | |
parent | 7f50ddeef61d29b1bbf09aa2862390d81f2f6c37 (diff) | |
download | gcc-5306ec31f509b6899d6728ca7d2d9846c66bffa2.zip gcc-5306ec31f509b6899d6728ca7d2d9846c66bffa2.tar.gz gcc-5306ec31f509b6899d6728ca7d2d9846c66bffa2.tar.bz2 |
re PR middle-end/22626 (ICE with optimization turned on while trying to exand complex multiply)
PR 22626
* tree-complex.c (gate_no_optimization): True if errors.
* Makefile.in (tree-complex.o): Update dependencies.
From-SVN: r102373
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/Makefile.in | 8 | ||||
-rw-r--r-- | gcc/tree-complex.c | 5 |
3 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef46b56..587ebf1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-07-25 Richard Henderson <rth@redhat.com> + + PR 22626 + * tree-complex.c (gate_no_optimization): True if errors. + * Makefile.in (tree-complex.o): Update dependencies. + 2005-07-25 Aldy Hernandez <aldyh@redhat.com> * config/frv/predicates.md (integer_register_operand): Use diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 55b6e74..f849aab 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -2217,11 +2217,9 @@ tree-sra.o : tree-sra.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) \ $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) $(TREE_GIMPLE_H) \ langhooks.h tree-pass.h $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \ bitmap.h $(GGC_H) hard-reg-set.h $(OBSTACK_H) $(PARAMS_H) $(TARGET_H) -tree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \ - $(TM_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) tree-iterator.h tree-pass.h \ - $(FLAGS_H) $(OPTABS_H) $(RTL_H) $(MACHMODE_H) $(EXPR_H) \ - langhooks.h $(FLAGS_H) $(DIAGNOSTIC_H) $(GGC_H) \ - coretypes.h insn-codes.h +tree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \ + $(TM_H) $(RTL_H) real.h $(FLAGS_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) \ + tree-iterator.h tree-pass.h tree-ssa-propagate.h $(DIAGNOSTIC_H) tree-vect-generic.o : tree-vect-generic.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \ $(TM_H) $(TREE_FLOW_H) $(TREE_GIMPLE_H) tree-iterator.h tree-pass.h \ $(FLAGS_H) $(OPTABS_H) $(RTL_H) $(MACHMODE_H) $(EXPR_H) \ diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index a675f0a..b72c37e 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -31,6 +31,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "tree-iterator.h" #include "tree-pass.h" #include "tree-ssa-propagate.h" +#include "diagnostic.h" /* For each complex ssa name, a lattice value. We're interested in finding @@ -1566,7 +1567,9 @@ tree_lower_complex_O0 (void) static bool gate_no_optimization (void) { - return optimize == 0; + /* With errors, normal optimization passes are not run. If we don't + lower complex operations at all, rtl expansion will abort. */ + return optimize == 0 || sorrycount || errorcount; } struct tree_opt_pass pass_lower_complex_O0 = |