[Bug middle-end/26001] [4.1/4.2 Regression] expand uses the wrong part of the string for array accesses
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Jan 30 19:27:00 GMT 2006
------- Comment #12 from pinskia at gcc dot gnu dot org 2006-01-30 19:27 -------
(In reply to comment #11)
> 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.
That might be a good idea, I was just not thinking too well today for some
reason.
> > 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.
[1] here is correct, the arrary bounds is 1:1 and not the C array bounds
starting at 0.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26001
More information about the Gcc-bugs
mailing list