public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c++/5662: ice on legal code in ggc-page.c
@ 2002-02-11 16:26 build
  0 siblings, 0 replies; only message in thread
From: build @ 2002-02-11 16:26 UTC (permalink / raw)
  To: gcc-gnats; +Cc: paulf


>Number:         5662
>Category:       c++
>Synopsis:       Internal error: Segmentation fault in gcc 3.0.3 c++ compile
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 11 16:26:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        3.0.3
>Organization:
Check Point Software Technologies, Ltd.
>Environment:
System: Linux polaris 2.2.12-20 #2 Fri Nov 9 14:03:17 PST 2001 i686 unknown
Architecture: i686

	problem appears on multiple pentium machines running 2.2 headers
        kernel/etc..
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.0.3/configure --prefix=/usr/local/3.0.3 --enable-languages=c,c++
>Description:

In a particular section of code, the compiler dies.  At -O0, gcc dies,
if you go to -O1, the compile generates a successful object file.	
It only occurs on 2.2 kernel/headers/libc (which we use so we can make 
compatible 2.2-2.4 products.)

DBLoad.cpp: In destructor `int db_load(const char*, const char*, const char*,
   const char*, CAdminBroker*, std::set<CEntry, std::less<CEntry>,
   std::allocator<CEntry> >*, mistring*)::_filenames::~_filenames()':
DBLoad.cpp:1831: Internal error: Segmentation fault

 * line 1831 in context (this section appears unaltered in the .ii minus
the comments) --

1826	while (filenames) {
1827		fn = filenames;
1828	        filenames = filenames->next;
1829	//	freestr(fn->name);
1830	//	memput(fn, sizeof *fn);
1831	 	delete fn;
1832    }

 * actual failure --
Starting program: /usr/local/3.0.3/lib/gcc-lib/i686-pc-linux-gnu/3.0.3/cc1plus -
fpreprocessed DBLoad.ii -quiet -dumpbase DBLoad.cpp -g -Wall -Wno-missing-braces
 -Wno-comment -Wno-comment -version -o DBLoad.s
GNU CPP version 3.0.3 (cpplib) (i386 Linux/ELF)
GNU C++ version 3.0.3 (i686-pc-linux-gnu)
        compiled by GNU C version 3.0.3.
DBLoad.cpp: In function `int db_load(const char*, const char*, const char*,
   const char*, CAdminBroker*, std::set<CEntry, std::less<CEntry>,
   std::allocator<CEntry> >*, mistring*)':
DBLoad.cpp:1342: warning: comparison between signed and unsigned integer
   expressions

Program received signal SIGSEGV, Segmentation fault.
0x826e6f7 in ggc_set_mark (p=0x8422) at ../../gcc-3.0.3/gcc/ggc-page.c:439
439     ../../gcc-3.0.3/gcc/ggc-page.c: No such file or directory.

 * gdb backtrace --

#0  0x826e6f7 in ggc_set_mark (p=0x8422) at ../../gcc-3.0.3/gcc/ggc-page.c:439
#1  0x8054a15 in mark_binding_level (arg=0x83c6da0)
    at ../../gcc-3.0.3/gcc/cp/decl.c:1982
#2  0x8054d77 in mark_named_label_lists (labs=0x852a0dc, uses=0x852a0d8)
    at ../../gcc-3.0.3/gcc/cp/decl.c:2005
#3  0x8068c76 in mark_lang_function (p=0x852a090)
    at ../../gcc-3.0.3/gcc/cp/decl.c:14474
#4  0x80fe11a in mark_function_chain (arg=0x8328548)
    at ../../gcc-3.0.3/gcc/function.c:7656
#5  0x826cc27 in ggc_mark_roots () at ../../gcc-3.0.3/gcc/ggc-common.c:186
#6  0x826ec3d in ggc_collect () at ../../gcc-3.0.3/gcc/ggc-page.c:1400
#7  0x80d8417 in rest_of_compilation (decl=0x40139c98)
    at ../../gcc-3.0.3/gcc/toplev.c:3841
#8  0x80bba83 in genrtl_finish_function (fn=0x40139c98)
    at ../../gcc-3.0.3/gcc/cp/semantics.c:2718
#9  0x80bb6e5 in expand_body (fn=0x40139c98)
    at ../../gcc-3.0.3/gcc/cp/semantics.c:2504
#10 0x80c2d19 in maybe_clone_body (fn=0x40135dd0)
    at ../../gcc-3.0.3/gcc/cp/optimize.c:1237
#11 0x80bb5c0 in expand_body (fn=0x40135dd0)
    at ../../gcc-3.0.3/gcc/cp/semantics.c:2415
#12 0x80b45bf in synthesize_method (fndecl=0x40139af8)
    at ../../gcc-3.0.3/gcc/cp/method.c:782
#13 0x80505d7 in build_over_call (cand=0x40f980c0, args=0x40f97ec4, flags=3)
    at ../../gcc-3.0.3/gcc/cp/call.c:4298
#14 0x8051015 in build_new_method_call (instance=0x40f97e88, name=0x4013d980,
    args=0x0, basetype_path=0x401363c0, flags=3)
    at ../../gcc-3.0.3/gcc/cp/call.c:4653
#15 0x80b28d2 in build_dtor_call (exp=0x40f97e88,
    dtor_kind=sfk_complete_destructor, flags=3)
    at ../../gcc-3.0.3/gcc/cp/init.c:3156
#16 0x80b2a27 in build_delete (type=0x40135af8, addr=0x40139ea0,
    auto_delete=sfk_complete_destructor, flags=3, use_global_delete=0)
    at ../../gcc-3.0.3/gcc/cp/init.c:3285
#17 0x8084e00 in delete_sanity (exp=0x40139ea0, size=0x0, doing_vec=0,
    use_global_delete=0) at ../../gcc-3.0.3/gcc/cp/decl2.c:1245
#18 0x8093dc0 in yyparse_1 () at /usr/lib/bison.simple:1259
#19 0x80d77d8 in compile_file (name=0xbffffd41 "DBLoad.ii")
    at ../../gcc-3.0.3/gcc/toplev.c:2369
#20 0x80db9f6 in main (argc=14, argv=0xbffffbc4)
    at ../../gcc-3.0.3/gcc/toplev.c:4990

 * actual gcc code at line 439 --

(gdb) list
435       /* Extract the level 1 and 2 indicies.  */
436       L1 = LOOKUP_L1 (p);
437       L2 = LOOKUP_L2 (p);
438
439       return base[L1][L2];
440     }

 * dump of p --

0xbfffebd0:     0x00008422      0x08328548      0xbfffebf8      0x40f201a0
0xbfffebe0:     0x40f201a0      0x083c6da0      0xbfffec18      0x08054d77
0xbfffebf0:     0x083c6da0      0x08328548      0xbfffec18      0x080ce22a
0xbfffec00:     0x00000c80      0x0855b590      0xbfffec38      0x0855c180
0xbfffec10:     0x0852a090      0x08328548      0xbfffec38      0x08068c76
0xbfffec20:     0x0852a0dc      0x0852a0d8      0x0855be30      0x0851d220
0xbfffec30:     0x0851d220      0x0855b220      0xbfffec58      0x080fe11a
0xbfffec40:     0x0852a090      0x0813e820      0x00000000      0xbfffec68

  unfortunately L1 and L2 are already gone at this point.

>How-To-Repeat:

  unfortunately I'm unable to build a small test case and am unable to
  provide our code to you.  Since the failure is in ggc_set_mark, I believe
  this has to do with gcc page sizes allocation/retrieval, etc.. 

>Fix:
  you can work around this with -O1 or better, or use 2.4 kernel/headers/libc
>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-02-12  0:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-11 16:26 c++/5662: ice on legal code in ggc-page.c build

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).