Followup-For: Bug #836934
Control: found -1 1:1.2.4-1.1
Control: retitle -1 frobtads: FTBFS with C++14 on i386: error: exception
cleanup for this placement new selects non-placement operator delete
Hi,
this is still reproducible on i386 (and armhf, too, so probably a 32-bit
problem):
g++ -DHAVE_CONFIG_H -I. -I/build/frobtads-1.2.4/. -DFROBTADS -DTC_TARGET_T3
-DTADSNET -DOS_DECLARATIVE_TLS -DVMGLOB_VARS -D_M_IX86_64 -DRUNFAST
-I/build/frobtads-1.2.4/./src -I/build/frobtads-1.2.4/./tads2
-I/build/frobtads-1.2.4/./tads3 -I/build/frobtads-1.2.4/./tads3/unix
-DT3_INC_DIR=\"/usr/share/frobtads/tads3/include\"
-DT3_LIB_DIR=\"/usr/share/frobtads/tads3/lib\"
-DT3_RES_DIR=\"/usr/share/frobtads/tads3/res\" -DT3_LOG_FILE=\"/tmp/frob.log\"
-I/build/frobtads-1.2.4/./src -I/build/frobtads-1.2.4/./tads2
-I/build/frobtads-1.2.4/./src -I/build/frobtads-1.2.4/./tads3
-I/build/frobtads-1.2.4/./tads3/test -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
-fdebug-prefix-map=/build/frobtads-1.2.4=. -fstack-protector-strong -Wformat
-Werror=format-security -fno-strict-aliasing -pthread -c -o tads3/tcprs.o
/build/frobtads-1.2.4/./tads3/tcprs.cpp
In file included from /build/frobtads-1.2.4/./tads3/tcprs.cpp:39:
/build/frobtads-1.2.4/./tads3/vmbignum.h: In static member function 'static
vm_obj_id_t CVmObjBigNum::create(int, const bignum_t<prec>*)':
/build/frobtads-1.2.4/./tads3/vmbignum.h:585:45: error: exception cleanup for
this placement new selects non-placement operator delete [-fpermissive]
585 | new (vmg_ id) CVmObjBigNum(vmg_ prec);
| ^
<built-in>: note: 'void operator delete(void*, unsigned int)' is a usual
(non-placement) deallocation function in C++14 (or with -fsized-deallocation)
/build/frobtads-1.2.4/./tads3/vmbignum.h: In static member function 'static
vm_obj_id_t CVmObjBigNum::create(int, const bignum_t<prec>&)':
/build/frobtads-1.2.4/./tads3/vmbignum.h:596:45: error: exception cleanup for
this placement new selects non-placement operator delete [-fpermissive]
596 | new (vmg_ id) CVmObjBigNum(vmg_ prec);
| ^
<built-in>: note: 'void operator delete(void*, unsigned int)' is a usual
(non-placement) deallocation function in C++14 (or with -fsized-deallocation)
/build/frobtads-1.2.4/./tads3/vmbignum.h: In member function 'virtual void
CVmMetaclassBigNum::create_for_image_load(vm_obj_id_t)':
/build/frobtads-1.2.4/./tads3/vmbignum.h:1640:36: error: exception cleanup for
this placement new selects non-placement operator delete [-fpermissive]
1640 | new (vmg_ id) CVmObjBigNum();
| ^
<built-in>: note: 'void operator delete(void*, unsigned int)' is a usual
(non-placement) deallocation function in C++14 (or with -fsized-deallocation)
/build/frobtads-1.2.4/./tads3/vmbignum.h: In member function 'virtual void
CVmMetaclassBigNum::create_for_restore(vm_obj_id_t)':
/build/frobtads-1.2.4/./tads3/vmbignum.h:1647:36: error: exception cleanup for
this placement new selects non-placement operator delete [-fpermissive]
1647 | new (vmg_ id) CVmObjBigNum();
| ^
<built-in>: note: 'void operator delete(void*, unsigned int)' is a usual
(non-placement) deallocation function in C++14 (or with -fsized-deallocation)
make[2]: *** [Makefile:10276: tads3/tcprs.o] Error 1
make[2]: Leaving directory '/build/frobtads-1.2.4/obj-i686-linux-gnu'
make[1]: *** [Makefile:3854: all] Error 2
make[1]: Leaving directory '/build/frobtads-1.2.4/obj-i686-linux-gnu'
make: *** [/usr/share/cdbs/1/class/makefile.mk:77: debian/stamp-makefile-build]
Error 2
Andreas