|
Boost : |
From: Ralf W. Grosse-Kunstleve (rwgk_at_[hidden])
Date: 2007-09-14 01:06:25
The SVN head of boost/utility/value_init.hpp produces a Visual C++ 7.1 ICE (see below) when compiling some of our Boost.Python extensions. The simple patch below works around the problem. I've also tested with with VC 8.0. Is this OK to commit?
Thanks!
Ralf
P.S.: Simply inlining get() didn't work. The ICE only went away after I changed
(*static_cast<T*>(ptr)).T::~T()
to
static_cast<T*>(ptr)->T::~T()
Index: value_init.hpp
===================================================================
--- value_init.hpp (revision 39257)
+++ value_init.hpp (working copy)
@@ -69,7 +69,11 @@
new (&x) T();
}
- ~non_const_T_base() { get().T::~T(); }
+ ~non_const_T_base()
+ {
+ void * ptr = &x;
+ static_cast<T*>(ptr)->T::~T();
+ }
T & get() const
{
cl /nologo /D_SECURE_SCL=0 /D_CRT_SECURE_NO_DEPRECATE /wd4996 /Zm800 /MD /GR /EH
sc /DBOOST_DISABLE_THREADS /DNDEBUG /Ox -DBOOST_ALL_NO_LIB -DBOOST_PYTHON_MAX_BA
SES=2 /Iinclude /IC:\home\rwgk\hot\include /IC:\home\rwgk\dist\svnroot_cctbx\inc
lude /IC:\home\rwgk\dist\svnroot_cctbx\scitbx\include /IC:\home\rwgk\dist\svnroo
t_cctbx /IC:\home\rwgk\hot\boost /Ibase\python\include /IC:\home\rwgk\hot\base\p
ython\include /IC:\home\rwgk\dist\svnroot_cctbx\base\python\include /c C:\home\r
wgk\dist\svnroot_cctbx\scitbx\array_family\boost_python\flex_int.cpp /Foscitbx\a
rray_family\boost_python\flex_int.obj
flex_int.cpp
C:\home\rwgk\hot\boost\boost\utility\value_init.hpp(72) : fatal error C1001: INT
ERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 2701)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk