Opened 13 years ago

Closed 10 years ago

#4080 closed Bugs (fixed)

Various compilers need BOOST_NO_COMPLETE_VALUE_INITIALIZATION

Reported by: niels_dekker Owned by: niels_dekker
Milestone: Boost 1.43.0 Component: config
Version: Boost 1.42.0 Severity: Problem
Keywords: Cc:

Description

John Maddock has just added my boost_no_complete_value_initialization tests to the trunk: https://svn.boost.org/svn/boost/trunk/libs/config/test/boost_no_com_value_init.ipp [61153], which is likely to cause some regression failures. This ticket is there to remind me to keep an eye at the regression page: http://www.boost.org/development/tests/trunk/developer/config_.html And to define the new defect macro, BOOST_NO_COMPLETE_VALUE_INITIALIZATION, for those compilers that appear to get those regression failures.

Moreover, this ticket allows archiving the regression failure output for those compilers, before those failures are suppressed by means of the defect macro.

Related ticket: #3869, "Unconditional call to memset in value_initialized()", reported by Aleksey Gurtovoy.

Related mailing list item: [boost] [config] New defect macro:BOOST_NO_COMPLETE_VALUE_INITIALIZATION

Change History (16)

comment:1 by niels_dekker, 13 years ago

(In [61516]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V10.1.0 (trunk), see #4080.

in reply to:  1 comment:2 by niels_dekker, 13 years ago

I just added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to https://svn.boost.org/svn/boost/trunk/boost/config/compiler/vacpp.hpp because IBM's XL C/C++ for AIX V10.1.0.0 did not value-initialize enum_holder_and_int(), virtual_destructor_holder(), and non_pod_class() from https://svn.boost.org/svn/boost/trunk/libs/config/test/boost_no_com_value_init.ipp revision [61436], according to the Config/trunk regression data provided by IBM_Canada_Ltd.

comment:3 by niels_dekker, 12 years ago

(In [61642]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to GCC < 4.4 (trunk), see #4080.

comment:4 by niels_dekker, 12 years ago

(In [61652]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Borland (trunk), see #4080

in reply to:  4 comment:5 by niels_dekker, 12 years ago

Adding BOOST_NO_COMPLETE_VALUE_INITIALIZATION to http://svn.boost.org/svn/boost/trunk/boost/config/compiler/borland.hpp ([61652]) fixed the related regression failures of siliconman/borland-5.9.3 (config_test + config_test_threaded), but it did not fix any regression failure of siliconman/borland-6.1.3, siliconman/borland-6.2.1, codegear/borland-cb2009, or borland-cb2010. So the defect macro still needs to be added to http://svn.boost.org/svn/boost/trunk/boost/config/compiler/codegear.hpp

comment:6 by niels_dekker, 12 years ago

(In [61691]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to CodeGear (trunk), see #4080.

comment:7 by niels_dekker, 12 years ago

(In [61725]) Redid adding BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V10.1.0 (trunk), as [61516]. The addition of heap objects to boost_no_complete_value_initialization::test() [61552] did not cause any extra failures. See #4080.

comment:8 by niels_dekker, 12 years ago

(In [61744]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Sun <= 5.10 (trunk), see #4080

comment:9 by niels_dekker, 12 years ago

(In [61799]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Microsoft Visual C++ (trunk), see #4080.

comment:10 by niels_dekker, 12 years ago

(In [61848]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V11.0.1 (trunk), see #4080.

comment:11 by niels_dekker, 12 years ago

(In [61933]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to IBM XL C++ <= V11.1 (trunk), see #4080.

comment:12 by niels_dekker, 12 years ago

(In [61971]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to clang (trunk), see #4080.

comment:13 by niels_dekker, 12 years ago

(In [62094]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to VC++ 10.0 (trunk), see #4080.

comment:14 by niels_dekker, 12 years ago

(In [62159]) Added BOOST_NO_COMPLETE_VALUE_INITIALIZATION to Intel C++ <= 11.1 (trunk), see #4080.

comment:15 by viboes, 10 years ago

Couldn't this ticket be closed?

comment:16 by niels_dekker, 10 years ago

Resolution: fixed
Status: newclosed

Thanks, Vicente. I agree with you; I'll close the ticket. Of course future compiler versions might need this defect-macro as well...

Note that for Microsoft Visual C++, with revision [78468] the defect-macro is defined unconditionally (independent of its compiler version). Unfortunately the current Boost Config test cannot detect when this defect-macro is defined unnecessarily. (If a future version of Visual C++ would ever completely implement value-initialization, BOOST_NO_COMPLETE_VALUE_INITIALIZATION would still remain there for this compiler.) But that issue is beyond the scope of this ticket.

Note: See TracTickets for help on using tickets.