[Boost-bugs] [Boost C++ Libraries] #1472: foreach test breaks VC++2009

Subject: [Boost-bugs] [Boost C++ Libraries] #1472: foreach test breaks VC++2009
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2007-11-22 20:49:30


#1472: foreach test breaks VC++2009
-------------------------------------------+--------------------------------
 Reporter: jrp at dial dot pipex dot com | Owner: eric_niebler
     Type: Bugs | Status: new
Milestone: Boost 1.35.0 | Component: foreach
  Version: Boost Development Trunk | Severity: Problem
 Keywords: |
-------------------------------------------+--------------------------------
 The foreach tests break the VC++2008 release compiler.

 A typical result is

 {{{
 call_once.cpp
 C:\temp\regression\boost\boost/test/impl/execution_monitor.ipp(792) :
 warning C4535: calling _set_se_translator() requires /EHa
 c:\temp\regression\boost\boost\test\impl\execution_monitor.ipp(1017) :
 warning C6001: Using uninitialized memory 'old_iph': Lines: 984, 986, 987,
 1000, 1002, 1006, 1013, 1014, 1015, 1017
 c:\temp\regression\boost\boost\test\impl\debug.ipp(700) : warning C6320:
 Exception-filter expression is the constant EXCEPTION_EXECUTE_HANDLER.
 This might mask exceptions that were not intended to be handled
 c:\temp\regression\boost\boost\test\impl\debug.ipp(701) : warning C6322:
 Empty _except block
 c:\temp\regression\boost\boost\test\impl\debug.ipp(836) : warning C6335:
 Leaking process information handle 'debugger_info.hProcess'
 c:\temp\regression\boost\boost\test\impl\debug.ipp(836) : warning C6335:
 Leaking process information handle 'debugger_info.hThread'
 c:\temp\regression\boost\boost\test\impl\debug.ipp(821) : warning C6054:
 String 'format' might not be zero-terminated: Lines: 763, 768, 773, 774,
 775, 776, 780, 787, 793, 795, 801, 802, 803, 805, 814, 820, 821
 c:\temp\regression\boost\boost\foreach.hpp(388) : warning C6282: Incorrect
 operator: assignment of constant in Boolean context. Consider using '=='
 instead
 ..\libs\foreach\test\call_once.cpp(32) : fatal error C1001: An internal
 error has occurred in the compiler.
 (compiler file 'msc1ast.cpp', line 1411)
  To work around this problem, try simplifying or changing the program near
 the locations listed above.
 Please choose the Technical Support command on the Visual C++
  Help menu, or open the Technical Support help file for more information
 Internal Compiler Error in C:\Program Files\Microsoft Visual Studio
 9.0\VC\BIN\cl.exe. You will be prompted to send an error report to
 Microsoft later.

 }}}

 The warning relates to the following

 {{{
 inline bool set_false(bool &b) { return b = false; }

 }}}

 which can be removed by

 {{{
 inline bool set_false(bool &b) { b = false; return false; }

 }}}

 This does not remove the crash, which occurs at lines like

 {{{
     BOOST_FOREACH( foreach_value_type i, rng )

 }}}

 or

 {{{
 BOOST_FOREACH(int i, get_vector())

 }}}

--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/1472>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.


This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:57 UTC