www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript

c++ - scppn.exe process crash

↑ ↓ ← "Matthew Wilson" <dmd synesis.com.au> writes:
Walter

Just had another nasty - a crash rather than an ICE - which had an
interesting cause. On earlier compilers, it compiled fine, but 8.31+ it was
toast.

It was caused by an iterator class - a helper for a TREEVIEW-wrapping
sequence class - that had previously relied on operator ==() and operator
!=() being free functions. In making the code work for other compilers
(notably Intel, GCC & Metrowerks) they required that the operators be
changed to public const member functions. However, I forgot to remove the
free functions. All other compilers (and previous versions of DMC++) happily
ignored the free-functions, but 8.31+ was very cross.

Don't know if this is helpful, but thought I'd let you know. I would imagine
you'd rather the compiler report an error (although I'm pretty sure it's not
an error - it would seem like a pretty stern situation - albeit that it is a
useless thing to have) than crash.

Matthew
Dec 23 2002
↑ ↓ → "Walter" <walter digitalmars.com> writes:
I need a test case that causes the crash so I can fix it. Thanks, -Walter

"Matthew Wilson" <dmd synesis.com.au> wrote in message
news:au87l2$rgh$1 digitaldaemon.com...
 Walter

 Just had another nasty - a crash rather than an ICE - which had an
 interesting cause. On earlier compilers, it compiled fine, but 8.31+ it

 toast.

 It was caused by an iterator class - a helper for a TREEVIEW-wrapping
 sequence class - that had previously relied on operator ==() and operator
 !=() being free functions. In making the code work for other compilers
 (notably Intel, GCC & Metrowerks) they required that the operators be
 changed to public const member functions. However, I forgot to remove the
 free functions. All other compilers (and previous versions of DMC++)

 ignored the free-functions, but 8.31+ was very cross.

 Don't know if this is helpful, but thought I'd let you know. I would

 you'd rather the compiler report an error (although I'm pretty sure it's

 an error - it would seem like a pretty stern situation - albeit that it is

 useless thing to have) than crash.

 Matthew

Dec 24 2002