This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/15573] New: infinite recursion in cc1plus


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]