From: Andrew Pinski Date: Fri, 3 Aug 2007 23:36:05 +0000 (+0000) Subject: re PR middle-end/32935 (internal compiler error: in emit_move_insn, at expr.c:3316) X-Git-Tag: releases/gcc-4.3.0~3559 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9fc04494477f63b2739ea14f80bb87f4bfd21ce;p=thirdparty%2Fgcc.git re PR middle-end/32935 (internal compiler error: in emit_move_insn, at expr.c:3316) 2007-08-03 Andrew Pinski PR middle-end/32935 * fold-convert.c (fold_negate_expr ): Convert back to the correct type the negate expression. 2007-08-03 Andrew Pinski PR middle-end/32935 * gfortran.fortran-torture/compile/complex_1.f90: New test. From-SVN: r127190 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5878f50f2010..21f9c3a1e518 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-08-03 Andrew Pinski + + PR middle-end/32935 + * fold-convert.c (fold_negate_expr ): Convert back to the + correct type the negate expression. + 2007-08-03 Jan Hubicka * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 614e55a63659..be46b23e22f1 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -1382,7 +1382,7 @@ fold_negate_expr (tree t) { tem = strip_float_extensions (t); if (tem != t && negate_expr_p (tem)) - return negate_expr (tem); + return fold_convert (type, negate_expr (tem)); } break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ded4044d3d17..7ba9afc60f18 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-08-03 Andrew Pinski + + PR middle-end/32935 + * gfortran.fortran-torture/compile/complex_1.f90: New test. + 2007-08-03 Francois-Xavier Coudert PR fortran/32955 diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90 new file mode 100644 index 000000000000..605ec665f4a9 --- /dev/null +++ b/gcc/testsuite/gfortran.fortran-torture/compile/complex_1.f90 @@ -0,0 +1,5 @@ +program test_gfortran2 + Complex(8) :: g, zh + Real(8) :: g_q + g = zh - zh/cmplx(0.0_8,-g_q) +end