Boost C++ Libraries: Ticket #9829: incorrect coding when BOOST_NO_CXX11_RVALUE_REFERENCES is defined https://svn.boost.org/trac10/ticket/9829 <p> Hello! I'm trying to compile hhvm (hip hop vm) with the Intel compiler using gcc 4.8.2 headers, and boost 1.54 </p> <p> This version of boost, configured for the Intel compiler, defines BOOST_NO_CXX11_RVALUE_REFERENCES, and the substitute code which is supplied for this configuration is incorrect. It causes a compilation problem in hhvm. I confirmed that by attempting to compile the file using g++ and -DDBOOST_NO_CXX11_RVALUE_REFERENCES, and g++ reports the same issue. </p> <p> /nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2/bin/../include/c++/4.8.2/bits/stl_algobase.h(682) : error: no operator "=" matches these operands </p> <blockquote> <p> operand types are: HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a> = const HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a> </p> </blockquote> <blockquote> <p> *<span class="underline">first = </span>value; </p> <blockquote> <p> <sup> </sup></p> </blockquote> <p> detected during: </p> <blockquote> <p> instantiation of "<span class="underline">gnu_cxx::</span>enable_if&lt;&lt;expression&gt;, void&gt;::<span class="underline">type std::</span>fill_a(_Forw </p> </blockquote> </blockquote> <p> ardIterator, _ForwardIterator, const _Tp &amp;) [with _ForwardIterator=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a> * , _Tp=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a>]" at line 729 </p> <blockquote> <p> instantiation of "void std::fill(_ForwardIterator, _ForwardIterator, const _Tp &amp;) [with </p> </blockquote> <p> _ForwardIterator=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a> *, _Tp=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a>]" at line 46 2 of "/nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2/bin/../include/c++/4.8.2/bits/vector.tcc" </p> <blockquote> <p> instantiation of "void std::vector&lt;_Tp, _Alloc&gt;::_M_fill_insert(std::vector&lt;_Tp, _Alloc&gt; </p> </blockquote> <p> ::iterator, std::vector&lt;_Tp, _Alloc&gt;::size_type={std::size_t={unsigned long}}, const std::vector&lt;_Tp , _Alloc&gt;::value_type &amp;) [with _Tp=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a>, _Alloc=HPHP::smart::Allocator&lt;HP HP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a>&gt;]" at line 1024 of "/nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2 /bin/../include/c++/4.8.2/bits/stl_vector.h" </p> <blockquote> <p> instantiation of "void std::vector&lt;_Tp, _Alloc&gt;::insert(std::vector&lt;_Tp, _Alloc&gt;::iterat </p> </blockquote> <p> or, std::vector&lt;_Tp, _Alloc&gt;::size_type={std::size_t={unsigned long}}, const std::vector&lt;_Tp, _Alloc </p> <blockquote class="citation"> <p> ::value_type &amp;) [with _Tp=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a>, _Alloc=HPHP::smart::Allocator&lt;HPHP::JIT: </p> </blockquote> <p> :RegAllocInfo::<a class="missing wiki">RegMap</a>&gt;]" at line 687 of "/nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2/bin/../i nclude/c++/4.8.2/bits/stl_vector.h" </p> <blockquote> <p> instantiation of "void std::vector&lt;_Tp, _Alloc&gt;::resize(std::vector&lt;_Tp, _Alloc&gt;::size_t </p> </blockquote> <p> ype={std::size_t={unsigned long}}, const std::vector&lt;_Tp, _Alloc&gt;::value_type &amp;) [with _Tp=HPHP::JIT ::RegAllocInfo::<a class="missing wiki">RegMap</a>, _Alloc=HPHP::smart::Allocator&lt;HPHP::JIT::RegAllocInfo::RegMap&gt;]" at line 100 </p> <blockquote> <p> of "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc/hhvm/hphp/runtime/vm/jit/state </p> </blockquote> <p> -vector.h" </p> <blockquote> <p> instantiation of "void HPHP::JIT::<a class="missing wiki">StateVector</a>&lt;Key, Info&gt;::grow() [with Key=HPHP::JIT::IR </p> </blockquote> <p> Instruction, Info=HPHP::JIT::RegAllocInfo::<a class="missing wiki">RegMap</a>]" at line 76 of "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc/hhvm/hphp/runtime/vm/jit/state-vector.h" </p> <blockquote> <p> instantiation of "HPHP::JIT::<a class="missing wiki">StateVector</a>&lt;Key, Info&gt;::reference HPHP::JIT::<a class="missing wiki">StateVector</a>&lt;Ke </p> </blockquote> <p> y, Info&gt;::operator[](uint32_t={unsigned int}) [with Key=HPHP::JIT::IRInstruction, Info=HPHP::JIT::Re gAllocInfo::<a class="missing wiki">RegMap</a>]" at line 86 of "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc /hhvm/hphp/runtime/vm/jit/state-vector.h" </p> <blockquote> <p> instantiation of "HPHP::JIT::<a class="missing wiki">StateVector</a>&lt;Key, Info&gt;::reference HPHP::JIT::<a class="missing wiki">StateVector</a>&lt;Ke </p> </blockquote> <p> y, Info&gt;::operator[](const Key *) [with Key=HPHP::JIT::IRInstruction, Info=HPHP::JIT::RegAllocInfo:: <a class="missing wiki">RegMap</a>]" at line 63 of "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc/hhvm/hphp/r untime/vm/jit/reg-alloc.h" </p> <p> In a separate ticket I'll file requests to modify the availability of rvalue references based on Intel compiler version (or EDG symbols). The currently available Intel compiler does provide rvalue references </p> <p> Attaching the preprocessed output from the Intel compiler </p> <p> Thanks and regards, Melanie </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9829 Trac 1.4.3 Melanie Blower <melanie.blower@…> Wed, 02 Apr 2014 17:39:23 GMT <link>https://svn.boost.org/trac10/ticket/9829#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9829#comment:1</guid> <description> <p> Actually the file is too big to attach </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Steven Watanabe</dc:creator> <pubDate>Wed, 02 Apr 2014 19:27:57 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/9829#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9829#comment:2</guid> <description> <p> What substitute code? There's no reference to Boost at all in that error message. You'll need to be more specific. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Wed, 23 Apr 2014 11:02:56 GMT</pubDate> <title>component changed; owner set https://svn.boost.org/trac10/ticket/9829#comment:3 https://svn.boost.org/trac10/ticket/9829#comment:3 <ul> <li><strong>owner</strong> set to <span class="trac-author">John Maddock</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">config</span> </li> </ul> Ticket John Maddock Wed, 23 Apr 2014 11:46:59 GMT <link>https://svn.boost.org/trac10/ticket/9829#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9829#comment:4</guid> <description> <p> You need to provide a reduced test case *using Boost only*, without that we simply have no idea what you're talking about. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Wed, 18 Jun 2014 18:06:04 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/9829#comment:5 https://svn.boost.org/trac10/ticket/9829#comment:5 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">invalid</span> </li> </ul> <p> Closing down: please reopen if you have a test case for us, thanks. </p> Ticket nmusolino@… Sun, 22 Nov 2015 00:26:51 GMT <link>https://svn.boost.org/trac10/ticket/9829#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9829#comment:6</guid> <description> <p> I believe that ticket <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/11815" title="#11815: Bugs: boost::config defines BOOST_NO_CXX11_RVALUE_REFERENCES under icc 15 (closed: worksforme)">#11815</a> may be a manifestation of the same issue. Adding a comment to establish the cross-reference and notify the original reporter. </p> </description> <category>Ticket</category> </item> </channel> </rss>