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).