
On Wed, 13 Jan 2010 11:11:20 -0600, Niels Dekker - address until 2010-10-10 <niels_address_until_2010-10-10@xs4all.nl> wrote:
Peter Foelsche wrote:
in boost_1_41_0 there is still an unconditional call to memset in value_initialized()
Fernando Cacciola and I originally added the memset call within value_initialized() for MSVC only, because MSVC's implementation of value-initialization was known to incorrectly leave some bytes uninitialized, in some very relevant use cases. https://svn.boost.org/trac/boost/changeset/39157/trunk/boost/utility/value_i... Thereby we also added extra unit tests, which were passed by MSVC by then, because of the memset. But unfortunately they failed on other compilers (GCC, Borland/Codegear and Sun), because of similar value-initialization issues. That's when we thought it was wise to just have the memset call there for all compilers: https://svn.boost.org/trac/boost/changeset/41942/trunk/boost/utility/value_i...
Do I understand correctly that you want the memset call to be skipped for those compiler versions that have implemented value-initialization entirely correctly? Do you know exactly which compiler versions do implement value-initialization correctly?
Personally, I believe the assumption that by default compilers get this wrong is incorrect and should be revised. IOW, I think we should revert to the approach of applying the workaround conditionally for the specific compilers known to be buggy, and just those -- especially if we have tests to discover these bugs should they return. As for the specific compiler versions: - GCC bugs #30111 and #33916 has been fixed in 4.4 and 4.2.4 correspondingly [1], [2]. - MSVC bug #100744, despite being marked as "Closed, Won't Fix" [3], has actually been fixed in VC9 [4]. - Borland bug #51854 is also reported as being fixed in build "12.0.3140.16150" [5] [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111#c10 [2] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916#c12 [3] https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?Feedba... [4] https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?Feedba... [5] http://qc.embarcadero.com/wc/qcmain.aspx?rc=51854 -- Aleksey Gurtovoy MetaCommunications Engineering