Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r62067 - trunk/libs/config/test
From: nielsdekker_at_[hidden]
Date: 2010-05-17 11:36:06


Author: niels_dekker
Date: 2010-05-17 11:36:04 EDT (Mon, 17 May 2010)
New Revision: 62067
URL: http://svn.boost.org/trac/boost/changeset/62067

Log:
Temporarily skipped value-initialization of m_ptr_to_member_array for Intel <= 11.1, to avoid an internal error reported by John Maddock, Intel support issue 589832.
Text files modified:
   trunk/libs/config/test/boost_no_com_value_init.ipp | 19 ++++++++++++++++++-
   1 files changed, 18 insertions(+), 1 deletions(-)

Modified: trunk/libs/config/test/boost_no_com_value_init.ipp
==============================================================================
--- trunk/libs/config/test/boost_no_com_value_init.ipp (original)
+++ trunk/libs/config/test/boost_no_com_value_init.ipp 2010-05-17 11:36:04 EDT (Mon, 17 May 2010)
@@ -517,6 +517,17 @@
 // the function above here.
 #define FAILED_TO_VALUE_INITIALIZE(value) failed_to_value_initialized(value, #value)
 
+// TODO Niels Dekker, May 17, 2010: The following code is meant to be very tentative (trunk only).
+// It should be removed later this month, and is certainly not meant to become part of the release branch!!!
+#ifdef __INTEL_COMPILER
+ #if __INTEL_COMPILER <= 1110
+ // The following macro indicates that initialization of m_ptr_to_member_array must be skipped.
+ // Such an initialization triggered an internal error (assertion failed at: "shared/edgglue/edg_expr.c",
+ // line 2859) on Intel <= 11.1 (Intel support issue 589832, reported by John Maddock, May 2010).
+ BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER_ARRAY
+ #endif
+#endif
+
 
   // value_initializer initializes each of its data members by means
   // of an empty set of parentheses, and allows checking whether
@@ -658,7 +669,9 @@
     m_member_function_ptr_struct(),
     m_member_function_ptr_struct_array(),
     m_ptr_to_member(),
+#ifndef BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER_ARRAY
     m_ptr_to_member_array(),
+#endif
     m_ptr_to_member_struct(),
     m_ptr_to_member_struct_array(),
     m_bit_field_struct(),
@@ -759,8 +772,12 @@
         FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_struct_array[0]) +
         FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_struct_array[1]) +
         FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member) +
+#ifdef BOOST_DETAIL_NO_COMPLETE_VALUE_INITIALIZATION_SKIP_PTR_TO_MEMBER_ARRAY
+ ( (std::cout << "Skipped m_ptr_to_member_array check\n"), 1) +
+#else
         FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_array[0]) +
         FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_array[1]) +
+#endif
         FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_struct) +
         FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_struct_array[0]) +
         FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_struct_array[1]) +
@@ -1007,7 +1024,7 @@
         << num_failures_of_temporaries << '+'
         << num_failures_of_heap_objects << "): "
         << total_num_failures
- << "\nDetected by boost_no_complete_value_initialization::test() revision 26."
+ << "\nDetected by boost_no_complete_value_initialization::test() revision 27."
         << std::endl;
     }
     return static_cast<int>(total_num_failures);


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk