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++/12233] New: Segfault if class misses trailing semicolon


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12233

           Summary: Segfault if class misses trailing semicolon
           Product: gcc
           Version: 3.2
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pso at netman dot dk
                CC: gcc-bugs at gcc dot gnu dot org

In a special situation (see file example) a missing ; at the end of a class 
declaration causes a segfault instead of an error. The offending class is D 
below, but it seems that the surrounding classes and code is needed to trigger 
the problem.

Im using mingw through Dev-Cpp on Windows 2000, Pentium 3

-----------------------
--- GccSegfault.cpp ---
class A {
public:
};

class B {
public:
  void Lock();
};

class C {
};

class D: public A {
public:

  B slave;
  
  D()
  {
    slave.Lock();
  }
}

C::C()
{
}
---- 
C:\Dev-Cpp\Projects>..\bin\g++ -v -save-temps GccSegfault.cpp
Reading specs from ../bin/../lib/gcc-lib/mingw32/3.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=f77,c++,objc,ada --disable-win32-registry --disable-shared
Thread model: win32
gcc version 3.2 (mingw special 20020817-1)
 ..\bin\..\lib\gcc-lib\mingw32\3.2\cpp0.exe -lang-c++ -D__GNUG__=3 -D__DEPRECATE
D -D__EXCEPTIONS -v -iprefix ..\bin\../lib/gcc-lib/mingw32/3.2/ -D__GNUC__=3 -D_
_GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D_WIN32 -D__WIN
32 -D__WIN32__ -DWIN32 -D__MINGW32__ -D__MSVCRT__ -DWINNT -D_X86_=1 -D_WIN32 -D_
_WIN32 -D__WIN32__ -D__WIN32__ -D__MINGW32__ -D__MSVCRT__ -D__WINNT__ -D_X86_=1
-D__WIN32 -D__WINNT -Asystem=winnt -D__NO_INLINE__ -D__STDC_HOSTED__=1 -Acpu=i38
6 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i586__ -D__tune_pentium__ -
D__stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)) -D_
_fastcall=__attribute__((__fastcall__)) -D_stdcall=__attribute__((__stdcall__))
-D_cdecl=__attribute__((__cdecl__)) -D_fastcall=__attribute__((__fastcall__)) -D
__declspec(x)=__attribute__((x)) GccSegfault.cpp GccSegfault.ii
GNU CPP version 3.2 (mingw special 20020817-1) (cpplib) (80386, BSD syntax)
ignoring nonexistent directory "../include/c++/3.2"
ignoring nonexistent directory "../include/c++/3.2/mingw32"
ignoring nonexistent directory "../include/c++/3.2/backward"
ignoring nonexistent directory "../mingw32/include"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/../../../../inclu
de/c++/3.2"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/../../../../inclu
de/c++/3.2/mingw32"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/../../../../inclu
de/c++/3.2/backward"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/../../../../inclu
de"
ignoring nonexistent directory "/mingw/include"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/include"
ignoring nonexistent directory "/mingw/lib/gcc-lib/mingw32/3.2/../../../../mingw
32/include"
ignoring nonexistent directory "/usr/local/mingw32/include"
#include "..." search starts here:
#include <...> search starts here:
 ../include
 ../lib/gcc-lib/mingw32/3.2/include
End of search list.
 ..\bin\..\lib\gcc-lib\mingw32\3.2\cc1plus.exe -fpreprocessed GccSegfault.ii -qu
iet -dumpbase GccSegfault.cpp -version -o GccSegfault.s
GNU CPP version 3.2 (mingw special 20020817-1) (cpplib) (80386, BSD syntax)
GNU C++ version 3.2 (mingw special 20020817-1) (mingw32)
        compiled by GNU C version 3.2.
GccSegfault.cpp:24: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

----


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