--- Comment #15 from pinskia at gcc dot gnu dot org 2007-06-17 21:40
---
We have an extra:
(insn 39 38 40 t.f90:7 (parallel [
(set (reg:SI 73)
(ashift:SI (reg:SI 68 [ _s1 ])
(const_int 2 [0x2])))
(clobber (reg:CC 17 flags))
--- Comment #7 from jv244 at cam dot ac dot uk 2007-06-03 09:02 ---
suspect that this is a front end issue, where something wrong is being
generated for s2a_3. It seems to trigger only if a is a function results, and
s1,s2,s3 are len=*.
--
jv244 at cam dot ac dot uk changed:
--- Comment #6 from jv244 at cam dot ac dot uk 2007-05-30 09:22 ---
(In reply to comment #5)
I wonder if my patch at:
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01769.html
Fixes the issue.
both testcases still fail for me at -O2 with this morning's compiler (which
should include
--- Comment #3 from burnus at gcc dot gnu dot org 2007-05-29 18:09 ---
More regression hunting: FAILS with r125059, Works with r125057.
Conclusion: The patch causing or revealing this wrong-code error is:
r125058 | rguenth | 2007-05-25 11:07:29 +0200 (Fr, 25 Mai 2007) | 10 lines
--- Comment #4 from burnus at gcc dot gnu dot org 2007-05-29 18:15 ---
I assume this is another incarnation of this bugs but leads to a segfault and
a slightly different valgrind output
This test works for me with gfortran as of this morning and also with gfortran
r12505 (on
--- Comment #5 from pinskia at gcc dot gnu dot org 2007-05-29 18:26 ---
Plus forwprop only does:
D.1046_37 = (*__result.0_23)[0];
D.1048_41 = (char *) _s1_2(D);
D.1049_42 = D.1046_37 + D.1048_41;
Into:
D.1046_37 = (*__result.0_23)[0];
...
D.1048_41 = (char *) _s1_2(D);