This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/56581] Segfault when reading source file which starts with a byte-order mark (-cpp works)
- From: "tkoenig at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 12 Mar 2013 22:05:12 +0000
- Subject: [Bug fortran/56581] Segfault when reading source file which starts with a byte-order mark (-cpp works)
- Auto-submitted: auto-generated
- References: <bug-56581-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56581
Thomas Koenig <tkoenig at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-invalid-code,
| |rejects-valid
Status|UNCONFIRMED |NEW
Last reconfirmed|2013-03-10 00:00:00 |2013-03-12
Ever Confirmed|0 |1
--- Comment #8 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2013-03-12 22:05:12 UTC ---
We try to support this, but apparently it doesn't work
(see line 2015 and following of scanner.c).
Same thing happens for 4.6 and 4.7.
Valgrind tells me
==11226== Memcheck, a memory error detector
==11226== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==11226== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==11226== Command: /home/ig25/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/f951 ice.f
==11226==
==11226== Invalid write of size 4
==11226== at 0x580400: load_line(_IO_FILE*, unsigned int**, int*, int
const*) (scanner.c:1646)
==11226== by 0x5811C3: load_file(char const*, char const*, bool)
(scanner.c:2009)
==11226== by 0x582F82: gfc_new_file() (scanner.c:2120)
==11226== by 0x5A1DA7: gfc_init() (f95-lang.c:224)
==11226== by 0x94F286: toplev_main(int, char**) (toplev.c:1700)
==11226== by 0x5A38454: (below main) (in /lib64/libc-2.15.so)
==11226== Address 0x5ea3e30 is 0 bytes after a block of size 288 alloc'd
==11226== at 0x4C292B8: calloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==11226== by 0xE54110: xcalloc (xmalloc.c:162)
==11226== by 0x58155E: load_file(char const*, char const*, bool)
(scanner.c:2030)
==11226== by 0x582F82: gfc_new_file() (scanner.c:2120)
==11226== by 0x5A1DA7: gfc_init() (f95-lang.c:224)
==11226== by 0x94F286: toplev_main(int, char**) (toplev.c:1700)
==11226== by 0x5A38454: (below main) (in /lib64/libc-2.15.so)