Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67743 - trunk/status
From: marshall_at_[hidden]
Date: 2011-01-06 19:45:23


Author: marshall
Date: 2011-01-06 19:45:21 EST (Thu, 06 Jan 2011)
New Revision: 67743
URL: http://svn.boost.org/trac/boost/changeset/67743

Log:
Applied patch; refs #2294
Text files modified:
   trunk/status/explicit-failures-markup.xml | 36 ++++++++++++++++++++++++++++++++----
   1 files changed, 32 insertions(+), 4 deletions(-)

Modified: trunk/status/explicit-failures-markup.xml
==============================================================================
--- trunk/status/explicit-failures-markup.xml (original)
+++ trunk/status/explicit-failures-markup.xml 2011-01-06 19:45:21 EST (Thu, 06 Jan 2011)
@@ -2546,24 +2546,52 @@
             <toolset name="gcc-3.4.6_linux_ia64"/>
             <toolset name="gcc-4.2.*"/>
             <toolset name="gcc-4.1.2_sunos_i86pc"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" id="optional-compiler-bug">
+ <p>This failure is caused by a compiler bug, and as far as we can
+ tell, can't be worked around in the library, although we think
+ the library might be made safer with respect to this bug.</p>
+
+ <p>Specifics: the following simple test fails when it should succeed.</p>
+ <pre>
+ #include &lt;cassert&gt;
+
+ int const x = 0;
+ struct A
+ {
+ A(int const&amp; y)
+ {
+ assert(&amp;x == &amp;y);
+ }
+ };
+
+ int main()
+ {
+ A a(x); // direct initialization works fine
+ A b = x; // copy initialization causes x to be copied before it is bound
+ }
+ </pre>
+
+ The possible safety enhancement would be to cause the constructor
+ in question to be explicit for optional&lt;T const&amp;&gt;; that
+ would prevent copy initialization.
+ </note>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_ref_fail1"/>
             <toolset name="borland-5.6*"/>
             <toolset name="borland-5.8*"/>
             <toolset name="borland-5.9*"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" refid="optional-compiler-bug"/>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_fail3a"/>
             <toolset name="gcc-3_3-darwin"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" refid="optional-compiler-bug"/>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_inplace_fail2"/>
             <toolset name="gcc-3_3-darwin"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" refid="optional-compiler-bug"/>
         </mark-expected-failures>
     </library>
 


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