+2004-05-13 Bud Davis <bdavis9659@comcast.net>
+
+ PR fortran/15294
+ * gfortran.fortran-torture/execute/adjustr.f90: New file.
+
2004-05-13 Diego Novillo <dnovillo@redhat.com>
Merge from tree-ssa-20020619-branch. See
--- /dev/null
+! pr 15294 - [gfortran] ADJUSTR intrinsic accesses corrupted pointer
+!
+ program test_adjustr
+ implicit none
+ integer test_cases
+ parameter (test_cases=13)
+ integer i
+ character(len=10) s1(test_cases), s2(test_cases)
+ s1(1)='A'
+ s2(1)=' A'
+ s1(2)='AB'
+ s2(2)=' AB'
+ s1(3)='ABC'
+ s2(3)=' ABC'
+ s1(4)='ABCD'
+ s2(4)=' ABCD'
+ s1(5)='ABCDE'
+ s2(5)=' ABCDE'
+ s1(6)='ABCDEF'
+ s2(6)=' ABCDEF'
+ s1(7)='ABCDEFG'
+ s2(7)=' ABCDEFG'
+ s1(8)='ABCDEFGH'
+ s2(8)=' ABCDEFGH'
+ s1(9)='ABCDEFGHI'
+ s2(9)=' ABCDEFGHI'
+ s1(10)='ABCDEFGHIJ'
+ s2(10)='ABCDEFGHIJ'
+ s1(11)=''
+ s2(11)=''
+ s1(12)=' '
+ s2(12)=' '
+ s1(13)=' '
+ s2(13)=' '
+ do I = 1,test_cases
+ print*,i
+ print*, 's1 = "', s1(i), '"'
+ print*, 's2 = "', s2(i), '"'
+ print*, 'adjustr(s1) = "', adjustr(s1(i)), '"'
+ if (adjustr(s1(i)).ne.s2(i)) then
+ print*,'fail'
+ call abort
+ endif
+ enddo
+
+ end program test_adjustr
+2004-05-13 Bud Davis <bdavis9659@comcast.net>
+
+ PR fortran/15294
+ * io/intrinsic/string_intrinsics.c(adjustr): rework logic.
+
2004-05-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Steven Bosscher <stevenb@suse.de>
i = len;
while (i > 0 && src[i - 1] == ' ')
- i++;
+ i--;
- if (i < len)
- memcpy (&dest[len - i], &src, i);
if (i < len)
memset (dest, ' ', len - i);
+ memcpy (dest + (len - i), src, i );
}