[Bug middle-end/26001] [4.1/4.2 Regression] expand uses the wrong part of the string for array accesses
tobi at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Jan 30 19:23:00 GMT 2006
------- Comment #11 from tobi at gcc dot gnu dot org 2006-01-30 19:23 -------
(In reply to comment #10)
> (In reply to comment #8)
> > Did the regression also happen on 4.1? We should probably revert Feng Wang's
> > patch there.
>
> But there is a latent bug. I don't know a way to reproduce this without Feng's
> patch in C or C++, maybe Ada. But the bug is still there.
I'm not sure what you're trying to say, so let me rephrase: given the advanced
state of 4.1 in the relase cycle, it may make sense to revert Feng Wang's patch
in 4.1, and to fix the underlying bug only in the trunk.
> Here is the reduced testcase that passes at -O0 but fails at -O1.
> CHARACTER*10 INTSTR
> CHARACTER C1
> DATA INTSTR / '0123456789' /
>
> C1 = INTSTR(1:1)
> print *, C1
> if(C1 .ne. '0') call abort()
>
> end
Thanks, do you still get '1' in the RTL dump if you change INSTR? IOW, does it
address the elements of the string incorrectly,
if (c1[1]{lb: 1 sz: 1} != "0"[1]{lb: 1 sz: 1})
^^^
this (t02.original) looks like a possible off-by-one error.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26001
More information about the Gcc-bugs
mailing list