This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libfortran/36886] New: misaligment for cshift of character
- From: "tkoenig at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Jul 2008 10:27:34 -0000
- Subject: [Bug libfortran/36886] New: misaligment for cshift of character
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
array->data and ret->data are not
divisible by four in this test case, yet
we use ints for copying.
Not too bad on a i686, very bad on systems that
enforce alignment.
$ cat cshift-char.f90
program main
character(len=2) :: c2
character(len=4), dimension(2,2) :: a, b, c, d
! Force misalignment of a or b
common /foo/ a, c, c2, b, d
a = 'aa'
b = 'bb'
d = cshift(b,1)
c = cshift(a,1)
end program main
$ gfortran -g cshift-char.f90
$ gdb ./a.out
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) b _gfortran_cshift0_4_char
Function "_gfortran_cshift0_4_char" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (_gfortran_cshift0_4_char) pending.
(gdb) r
Starting program: /home/ig25/Krempel/Char/a.out
Breakpoint 1, *_gfortran_cshift0_4_char (ret=0xbfc41720, ret_length=4,
array=0xbfc41744, pshift=0x8048904, pdim=0x0, array_length=4)
at ../../../../gcc/trunk/libgfortran/intrinsics/cshift0.c:364
364 DEFINE_CSHIFT (4);
(gdb) p ret->data
$1 = 0x8049ad2 ""
(gdb) p array->data
$2 = 0x8049ac2 "bb bb bb bb "
(gdb)
--
Summary: misaligment for cshift of character
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: libfortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36886