public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/44027] New: Segfault on internal read with -malign-double
@ 2010-05-07 14:42 Igor dot Katchaev at cern dot ch
2010-05-07 15:43 ` [Bug fortran/44027] " burnus at gcc dot gnu dot org
0 siblings, 1 reply; 2+ messages in thread
From: Igor dot Katchaev at cern dot ch @ 2010-05-07 14:42 UTC (permalink / raw)
To: gcc-bugs
Results and status of internal read are wrong if -malign-double
option is specified. Seen on (32 bit)
SLC4 gfortran 4.3.3 (i686-pc-linux-gnu),
Ubuntu9 gfortran 4.4.1 (Ubuntu 4.4.1-4ubuntu9),
rhel6 beta (4.4.3-1.el6.i386).
No problem on g77 and gfortran (4.1.2-44.EL4_8.1.i386) on SLC4,
gfortran (4.1.2-48.el5.i386) on slc5.
Under Ubuntu9 gfortran 4.4.1:
% gfortran -malign-double ttest.f && ./a.out
Segmentation fault
Under SLC4 gfortran 4.3.3:
% gfortran -malign-double ttest.f && ./a.out
Bad input 1 iostat -1
ival = 4685168
------ ttest.f ------
program ttest
implicit none
integer ival, ierr
character*1 str
str = "1"
read(str,*,iostat=ierr) ival
if (ierr.ne.0) then
write(0,*) 'Bad input ',str,' iostat',ierr
endif
write(0,*) 'ival = ', ival
end
------ EOF ------
Regards, Igor
--
Summary: Segfault on internal read with -malign-double
Product: gcc
Version: 4.4.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Igor dot Katchaev at cern dot ch
GCC build triplet: gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
GCC host triplet: Linux pcbecn 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12
05:23:0
GCC target triplet: i486-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44027
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Bug fortran/44027] Segfault on internal read with -malign-double
2010-05-07 14:42 [Bug fortran/44027] New: Segfault on internal read with -malign-double Igor dot Katchaev at cern dot ch
@ 2010-05-07 15:43 ` burnus at gcc dot gnu dot org
0 siblings, 0 replies; 2+ messages in thread
From: burnus at gcc dot gnu dot org @ 2010-05-07 15:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from burnus at gcc dot gnu dot org 2010-05-07 15:42 -------
As requested in PR 44026: Mark this report as duplicate.
Regarding the error message itself: As the manual state (man gcc or
http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html#index-malign_002ddouble-1314
) the option -malign-double does:
"Control whether GCC aligns double, long double, and long long variables on a
two word boundary or a one word boundary" ("On x86-64, -malign-double is
enabled by default.")
But it also states:
"Warning: if you use the -malign-double switch, structures containing the
above types will be aligned differently than the published application binary
interface specifications for the 386 and will not be binary compatible with
structures in code compiled without that switch."
This includes in particular all libraries - and in particular the GNU Fortran
run-time library (libgfortran) but also the system's C library (libc, e.g.
GLIBC) and math library (libm). Depending what your program and what the
library is doing, a program might work, might not work or might more or less
silently fail.
Of course one could recompile all libraries, but the simpler solution is:
Simply avoid the flag -m(no-)align-double.
As this is a somewhat regularly recurring problem, it was suggested to enable a
warning in the front end (i.e. in the Fortran part of GCC). However, as this is
a target-dependent option, getting the warning right (e.g. warn on x86 for
-malign-double and on x86-64 for -mno-align-double while on non-x86 platforms
the flag does not even exist ...) was seen as too cumbersome and convoluted to
be useful and thus no warning was added.
*** This bug has been marked as a duplicate of 44026 ***
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |DUPLICATE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44027
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-05-07 15:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-07 14:42 [Bug fortran/44027] New: Segfault on internal read with -malign-double Igor dot Katchaev at cern dot ch
2010-05-07 15:43 ` [Bug fortran/44027] " burnus at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).