------- Comment #1 from rguenth at gcc dot gnu dot org  2008-03-12 10:19 -------
It's by no means a "simple" program ;)

the failure mode is that

Program received signal SIGSEGV, Segmentation fault.
0x0000000000400bed in basic::compare (this=0x603040, [EMAIL PROTECTED]) at 
t.C:98
98                              return compare_same_type(other);
(gdb) print other
$1 = (const basic &) @0x603010: {<refcounted> = {refcount = 1}, 
  _vptr.basic = 0x401430, static tinfo_static = {<No data fields>}, 
  tinfo_key = 0x401365, flags = 3}
(gdb) print *this
$3 = {<refcounted> = {refcount = 0}, _vptr.basic = 0x0, 
  static tinfo_static = {<No data fields>}, tinfo_key = 0x401365, flags = 3}

the object compare is invoked on is not properly initialized (its _vptr is
NULL).

(gdb) bt
#0  0x0000000000400bed in basic::compare (this=0x603040, [EMAIL PROTECTED])
    at t.C:98
#1  0x0000000000400f41 in ex::compare (this=0x7fff106c4510, 
    [EMAIL PROTECTED]) at t.C:165
#2  0x00000000004009a8 in main (argc=1, argv=0x7fff106c4628) at t.C:213

For whatever reason (program non-conformance or GCC bug).

Please try to simplify the test program.


-- 


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

Reply via email to