This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/15573] New: infinite recursion in cc1plus
- From: "twalberg at mindspring dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 May 2004 19:11:28 -0000
- Subject: [Bug c++/15573] New: infinite recursion in cc1plus
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Attempting to use gcc-3.4.0 vanilla to compile par2cmdline-0.4 resulted in
ICE due to infite loop in cc1plus - portion of stack trace:
#723 0x081ebac9 in build_over_call (cand=0x4141ca20, flags=3)
at ../../gcc/cp/call.c:4475
#724 0x081ec932 in build_new_method_call (instance=0x41cfcd20, fns=0x41cfcd34,
args=0x41cfccf8, conversion_path=0x41419580, flags=3)
at ../../gcc/cp/call.c:5126
#725 0x0822ab39 in ocp_convert (type=0x4141c9b4, expr=0x41716330, convtype=65,
flags=3) at ../../gcc/cp/cvt.c:753
#726 0x0805e2b9 in force_rvalue (expr=0x41716330) at ../../gcc/cp/cvt.c:592
#727 0x081ed111 in convert_like_real (convs=0x4141c9b4, expr=0x41716330,
fn=0x41420654, argnum=0, inner=0, issue_conversion_warnings=24)
at ../../gcc/cp/call.c:4088
#728 0x081ebac9 in build_over_call (cand=0x4141ca20, flags=3)
at ../../gcc/cp/call.c:4475
#729 0x081ec932 in build_new_method_call (instance=0x41cfcc6c, fns=0x41cfcc80,
args=0x41cfcc44, conversion_path=0x41419580, flags=3)
at ../../gcc/cp/call.c:5126
#730 0x0822ab39 in ocp_convert (type=0x4141c9b4, expr=0x41716330, convtype=65,
flags=3) at ../../gcc/cp/cvt.c:753
#731 0x0805e2b9 in force_rvalue (expr=0x41716330) at ../../gcc/cp/cvt.c:592
#732 0x081ed111 in convert_like_real (convs=0x4141c9b4, expr=0x41716330,
fn=0x41420654, argnum=0, inner=0, issue_conversion_warnings=24)
at ../../gcc/cp/call.c:4088
#733 0x081ebac9 in build_over_call (cand=0x4141ca20, flags=3)
at ../../gcc/cp/call.c:4475
gcc configuration:
tew@hobbes> gcc -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Configured with: ../configure --prefix=/usr --enable-shared --with-gnu-as
--with-gnu-ld --enable-multilib --enable-threads --with-cpu=pentium4
--enable-cpp --enable-version-specific-runtime-libs --disable-nls
Thread model: posix
gcc version 3.4.0
output from compiler run:
if g++ -DHAVE_CONFIG_H -I. -I. -I. -Wall -g -O2 -MT par2cmdline.o -MD -MP -MF
".deps/par2cmdline.Tpo" -c -o par2cmdline.o par2cmdline.cpp; \
then mv -f ".deps/par2cmdline.Tpo" ".deps/par2cmdline.Po"; else rm -f
".deps/par2cmdline.Tpo"; exit 1; fi
In file included from par2cmdline.h:265,
from par2cmdline.cpp:20:
par2fileformat.h:67: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash PACKET_HEADER::hash'
par2fileformat.h:68: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash PACKET_HEADER::setid'
par2fileformat.h:79: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash FILEVERIFICATIONENTRY::hash'
par2fileformat.h:86: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash FILEVERIFICATIONPACKET::fileid'
par2fileformat.h:87: warning: ignoring packed attribute on unpacked non-POD
field `FILEVERIFICATIONENTRY FILEVERIFICATIONPACKET::entries[0u]'
par2fileformat.h:101: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash FILEDESCRIPTIONPACKET::fileid'
par2fileformat.h:102: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash FILEDESCRIPTIONPACKET::hashfull'
par2fileformat.h:103: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash FILEDESCRIPTIONPACKET::hash16k'
par2fileformat.h:131: warning: ignoring packed attribute on unpacked non-POD
field `MD5Hash MAINPACKET::fileid[0u]'
g++: Internal error: Segmentation fault (program cc1plus)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
At first thought this was related to the '__attribute__ ((packed))' stuff, but
looking at the cc1plus, I'm not so sure, and relocating the attribute
designation didn't fix it.
The code as distributed uses a bunch of
struct blah { /* ... */ } __attribute__ ((packed));
I got identical symptoms with:
struct __attribute__ ((packed)) blah { /* ... */ };
And the following gave parse errors:
struct blah __attribute__ ((packed)) { /* ... */ };
--
Summary: infinite recursion in cc1plus
Product: gcc
Version: 3.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: twalberg at mindspring dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15573