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]

Re: gcc 3.0.2/Cygwin/Win2K "Internal error: Segmentation fault"

[Get raw message]
This happens also in gcc 3.1 on x86 Linux.
here is the gdb info:

Program received signal SIGSEGV, Segmentation fault.
0x080c9402 in dump_expr (t=0x40179d20, flags=512) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/error.c:1765
1765          if (VOID_TYPE_P (TREE_TYPE (t)))
(gdb) bt
#0  0x080c9402 in dump_expr (t=0x40179d20, flags=512) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/error.c:1765
#1  0x080c9002 in dump_expr (t=0x401758c0, flags=512) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/error.c:1587
#2  0x080caedb in expr_as_string (decl=0x401758c0, flags=0) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/error.c:2134
#3  0x08088bd6 in mangle_class_name_for_template (
     name=0x850e90e 
"\020?32@?233&\b\020\000\000\000!\000\000\000../sysdeps/generic/stdint.h\0001\
000\000\000../sysdeps/generic/dl-
dtprocnum.h\000\032@\030\223H\b0\000\000\000i\000\000\000?016o\b°\216H\b 
\224H\b\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000I\000\
000\000\0206t\bH?32@ps/generic/stdin 
\000\000\000(\000\000\000/usr/src/bs/BUILD/glibc-2.2/elf/h\000\000\0008\000\
000\000"..., parms=0x40175800, arglist=0x401758e0) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/pt.c:3685
#4  0x08089330 in classtype_mangled_name (t=0x4018d074) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/pt.c:3722
#5  0x08089d0c in lookup_template_class (d1=0x4018c600, 
arglist=0x401758e0, in_decl=0x0, context=0x0, entering_scope=0, 
complain=1) at /lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/pt.c:4238
#6  0x0810b7b7 in finish_template_type (name=0x4018c600, 
args=0x40179cf0, entering_scope=0) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/cp/semantics.c:2077
#7  0x080d14da in yyparse_1 () at /usr/lib/bison.simple:1057
#8  0x082bbc74 in compile_file () at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/toplev.c:2128
#9  0x082c1076 in toplev_main (argc=37, argv=0xbfffedd4) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/toplev.c:5173
#10 0x0813571b in main (argc=37, argv=0xbfffedd4) at 
/lhome/src/gnu/gcc/gcc3.1/src/gcc/main.c:35
#11 0x40041f31 in __libc_start_main (main=0x8135700 <main>, argc=37, 
ubp_av=0xbfffedd4, init=0x8049060 <_init>, fini=0x83874b4 <_fini>, 
rtld_fini=0x4000e274 <_dl_fini>,
     stack_end=0xbfffedcc) at ../sysdeps/generic/libc-start.c:129
(gdb) p t
$1 = 0x40179d20
(gdb) pt *t
  <convert_expr 0x40179d20
     arg 0 <integer_cst 0x4016ad00 type <integer_type 0x401703a0 int> 
constant 1>>
(gdb) p *t
$4 = {common = {chain = 0x0, type = 0x0, aux = 0x0, code = CONVERT_EXPR, 
side_effects_flag = 0, constant_flag = 0, addressable_flag = 0, 
volatile_flag = 0, readonly_flag = 0,
     unsigned_flag = 0, asm_written_flag = 0, used_flag = 0, 
nothrow_flag = 0, static_flag = 0, public_flag = 0, private_flag = 0, 
protected_flag = 0, bounded_flag = 0,
     lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, 
lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, dummy = 0}, int_cst = 
{common = {chain = 0x0, type = 0x0,
       aux = 0x0, code = CONVERT_EXPR, side_effects_flag = 0, 
constant_flag = 0, addressable_flag = 0, volatile_flag = 0, 
readonly_flag = 0, unsigned_flag = 0, asm_written_flag = 0,
       used_flag = 0, nothrow_flag = 0, static_flag = 0, public_flag = 0, 
private_flag = 0, protected_flag = 0, bounded_flag = 0, lang_flag_0 = 0, 
lang_flag_1 = 0, lang_flag_2 = 0,
       lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 
0, dummy = 0}, rtl = 0x9, int_cst = {low = 1075227904, high = 0}}, 
real_cst = {common = {chain = 0x0,
       type = 0x0, aux = 0x0, code = CONVERT_EXPR, side_effects_flag = 0, 
constant_flag = 0, addressable_flag = 0, volatile_flag = 0, 
readonly_flag = 0, unsigned_flag = 0,
       asm_written_flag = 0, used_flag = 0, nothrow_flag = 0, 
static_flag = 0, public_flag = 0, private_flag = 0, protected_flag = 0, 
bounded_flag = 0, lang_flag_0 = 0,
       lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 
0, lang_flag_5 = 0, lang_flag_6 = 0, dummy = 0}, rtl = 0x9, real_cst = 
{r = {1075227904, 0, 0, 0, 2}}},
   string = {common = {chain = 0x0, type = 0x0, aux = 0x0, code = 
CONVERT_EXPR, side_effects_flag = 0, constant_flag = 0, 
addressable_flag = 0, volatile_flag = 0, readonly_flag = 0,
       unsigned_flag = 0, asm_written_flag = 0, used_flag = 0, 
nothrow_flag = 0, static_flag = 0, public_flag = 0, private_flag = 0, 
protected_flag = 0, bounded_flag = 0,
       lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 
0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, dummy = 0}, rtl = 
0x9, length = 1075227904,
     pointer = 0x0}, complex = {common = {chain = 0x0, type = 0x0, aux = 
0x0, code = CONVERT_EXPR, side_effects_flag = 0, constant_flag = 0, 
addressable_flag = 0, volatile_flag = 0,
       readonly_flag = 0, unsigned_flag = 0, asm_written_flag = 0, 
used_flag = 0, nothrow_flag = 0, static_flag = 0, public_flag = 0, 
private_flag = 0, protected_flag = 0,
       bounded_flag = 0, lang_flag_0 = 0, lang_flag_1 = 0, lang_flag_2 = 
0, lang_flag_3 = 0, lang_flag_4 = 0, lang_flag_5 = 0, lang_flag_6 = 0, 
dummy = 0}, rtl = 0x9,
     real = 0x4016ad00, imag = 0x0}, identifier = {common = {chain = 0x0, 
type = 0x0, aux = 0x0, code = CONVERT_EXPR, side_effects_flag = 0, 
constant_flag = 0, addressable_flag = 0,
       volatile_flag = 0, readonly_flag = 0, unsigned_flag = 0, 
asm_written_flag = 0, used_flag = 0, nothrow_flag = 0, static_flag = 0, 
public_flag = 0, private_flag = 0,
       protected_flag = 0, bounded_flag = 0, lang_flag_0 = 0, 
lang_flag_1 = 0, lang_flag_2 = 0, lang_flag_3 = 0, lang_flag_4 = 0, 
lang_flag_5 = 0, lang_flag_6 = 0, dummy = 0}, id = {
       len = 9Segmentation fault (core dumped)

On Monday, November 26, 2001, at 01:00 , Walter E. Brown wrote:

> Issuing the command:
>     g++ -v -save-temps gccbug.cc
> produces on the screen:
> ==============  cut  ==================
> Reading specs from /usr/local/lib/gcc-lib/i686-pc-cygwin/3.0.2/specs
> Configured with: ../gcc-3.0.2/configure
> Thread model: single
> gcc version 3.0.2
>
> /usr/local/lib/gcc-lib/i686-pc-cygwin/3.0.2/cpp0.exe -lang-c++ -D__GNU
> G__=3 -D__GXX_DEPRECATED -D__
> EXCEPTIONS -D__GXX_ABI_VERSION=100 -v -D__GNUC__=3 -D__GNUC_MINOR__=0
> -D__GNUC_PATCHLEVEL__=2 -D_X86
> _=1 -D_X86_=1 -Asystem=winnt -D__NO_INLINE__ -D__STDC_HOSTED__=1 -Acpu
> =i386 -Amachine=i386 -Di386 -D
> __i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ -D__stdcall=__
> attribute__((__stdcall__)) -D_
> _cdecl=__attribute__((__cdecl__)) -D_stdcall=__attribute__((__stdcall_
> _)) -D_cdecl=__attribute__((__
> cdecl__)) -D__declspec(x)=__attribute__((x)) -D__i386__ -D__i386 -D__C
> YGWIN32__ -D__CYGWIN__ -Dunix
> -D__unix__ -D__unix -isystem /usr/local/include -idirafter
> /usr/include -idirafter /usr/include/w32a
> pi gccbug.cc gccbug.ii
> GNU CPP version 3.0.2 (cpplib) (80386, BSD syntax)
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/local/include
>  /usr/local/include/g++-v3
>  /usr/local/include/g++-v3/i686-pc-cygwin
>  /usr/local/include/g++-v3/backward
>  /usr/local/lib/gcc-lib/i686-pc-cygwin/3.0.2/include
>  /usr/include
>  /usr/include/w32api
> End of search list.
>
> /usr/local/lib/gcc-lib/i686-pc-cygwin/3.0.2/cc1plus.exe -fpreprocessed
> gccbug.ii -quiet -dumpbase g
> ccbug.cc -version -o gccbug.s
> GNU CPP version 3.0.2 (cpplib) (80386, BSD syntax)
> GNU C++ version 3.0.2 (i686-pc-cygwin)
>         compiled by GNU C version 3.0.2.
> gccbug.cc:10: 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.
> ===========  end cut  =============
>
> leaving file gccbugs.ii:
> ============  cut  ================
> # 1 "gccbug.cc"
> template< class T, T i >
> struct vw
> {
>   static T const value = i;
> };
>
> template< int N >
> struct s
>   : public vw< int, (N < 0 ? -1 : +1) >
> {};
>
> int main() {
> }
> ===========  end cut  =============
>
> I have found that removing the + from the conditional
> expression is an effective workaround.
>
> 	- WEB
> --
> Walter E. Brown, Ph.D.			voice: 630.840-2784
> MS 234, Computational Physics Dept.
> Fermi National Accelerator Laboratory
> Batavia, IL  60510-0500
> U.S.A.
>


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