This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/50628] [4.7 Regression] gfortran.fortran-torture/execute/entry_4.f fails
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 06 Oct 2011 13:50:42 +0000
- Subject: [Bug middle-end/50628] [4.7 Regression] gfortran.fortran-torture/execute/entry_4.f fails
- Auto-submitted: auto-generated
- References: <bug-50628-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50628
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu.org
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-10-06 13:50:42 UTC ---
Looks like SRA messes up:
f2 (integer(kind=4) * a)
{
+ complex(kind=4) D.1794;
+ complex(kind=4) SR.5;
+ logical(kind=4) SR.4;
integer(kind=4) D.1791;
logical(kind=4) D.1790;
union munion.0.f2 D.1789;
@@ -181,8 +79,11 @@
<bb 5>:
D.1789 = __result_master.0.f2;
- __result = D.1789;
- D.1779_2 = __result.f2;
+ SR.4_11 = __result_master.0.f2.e2;
+ D.1789.e2 = SR.4_11;
+ D.1794_12 = VIEW_CONVERT_EXPR<complex(kind=4)>(D.1789);
+ SR.5_14 = D.1794_12;
+ D.1779_2 = SR.5_14;
return D.1779_2;
that looks like quite a stupit transform (the load and the store, using
logical(kind=4) which has the right size but precision 1 - and thus
truncates!)!
FRE then goes and does
__result_master.0.f2.f2 = __complex__ (4.5e+1, 0.0);
D.1808 = __result_master.0.f2;
SR.7_12 = __result_master.0.f2.e2;
- SR.4_6 = __result_master.0.f2.e2;
+ SR.4_6 = 0;
SR.7_8 = SR.4_6;
D.1808.e2 = SR.7_8;
D.1802_7 = VIEW_CONVERT_EXPR<complex(kind=4)>(D.1808);
because it simply interprets bit zero of 4.5e+1.
Martin?