Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!unido!gmdzi!tietz From: tietz@gmdzi.UUCP (Christoph Tietz) Newsgroups: gnu.g++.bug Subject: g++ 1.35.1- error in "delete [xxx] yyy" Message-ID: <1300@gmdzi.UUCP> Date: 29 Sep 89 13:00:17 GMT Distribution: gnu Organization: GMD, Sankt Augustin, F. R. Germany Lines: 63 I just encountered a really nasty bug in g++ 1.35.1- under SunOS4.0.3 on a SUN3. It boils down to the following: If you spezify the size in a delete statement as in "delete [100] chr_ptr" g++ will generate NO code at all for the delete statement. All is well again, if you just write "delete chr_ptr". We found this problem in form of a memory leak in a program that depends heavily on the generic vector classes of libg++. Here a trivial example: g++ version 1.35.1- /gmdusr/g++/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 leak.cc /tmp/cca03938.cpp GNU CPP version 1.35 /gmdusr/g++/lib/gcc-cc1plus /tmp/cca03938.cpp -quiet -dumpbase leak.cc -noreg -version -o leak.s GNU C++ version 1.35.1- (68k, MIT syntax) compiled by GNU C version 1.35. ----- main () { char *p; p = new char [100]; delete [100] p; } ----- generates the following code: ----- #NO_APP gcc_compiled.: .text .even .globl _main _main: link a6,#-4 pea 100:w jbsr ___builtin_new movel d0,a6@(-4) addqw #4,sp L1: unlk a6 rts ----- There is obviously no sign of a call to ___builtin_delete. But I think there should be %-( Christoph Tietz -- GMD, Schloss Birlinghoven, Postfach 1240, D-5205 St. Augustin 1, FRG e-mail: tietz@zi.gmd.dbp.de tietz@gmdzi.uucp tietz%zi.gmd.dbp.de@relay.cs.net ... !uunet!unido!gmdzi!tietz