Boost C++ Libraries: Ticket #9174: Incompatible declaration in interlocked.hpp https://svn.boost.org/trac10/ticket/9174 <p> If I compile <strong>boost\detail\interlocked.hpp</strong> on MS <strong>Visual Studio 2010</strong> using <strong>Intel Compiler 14.0</strong> and my project also includes msvc's <strong>&lt;intrin.h&gt;</strong>, then I get a compiler error of incompatible declarations, because &lt;intrin.h&gt; declares <code>_InterlockedCompareExchange</code>, <code>_InterlockedExchange</code> and <code>_InterlockedExchangeAdd</code> without <code>__cdecl</code> but interlocked.hpp declares them as <code>__cdecl</code>. The issue is solved by stripping <code>__CLRCALL_PURE_OR_CDECL</code> from declarations of these three functions. (And maybe better include the standard &lt;intrin.h&gt; when compiling on MSVC even with Intel compiler) </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9174 Trac 1.4.3 viboes Sun, 29 Sep 2013 08:44:14 GMT <link>https://svn.boost.org/trac10/ticket/9174#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9174#comment:1</guid> <description> <p> Is this a duplicate of <a class="new ticket" href="https://svn.boost.org/trac10/ticket/8485" title="#8485: Bugs: Compile error, same as #5431, but Windows Vista (64 bit) (new)">#8485</a>? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Sun, 29 Sep 2013 08:48:26 GMT</pubDate> <title>owner, component changed https://svn.boost.org/trac10/ticket/9174#comment:2 https://svn.boost.org/trac10/ticket/9174#comment:2 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Anthony Williams</span> to <span class="trac-author">Peter Dimov</span> </li> <li><strong>component</strong> <span class="trac-field-old">thread</span> → <span class="trac-field-new">smart_ptr</span> </li> </ul> Ticket Peter Dimov Sun, 29 Sep 2013 11:11:34 GMT <link>https://svn.boost.org/trac10/ticket/9174#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9174#comment:3</guid> <description> <p> It is not possible to determine whether Intel has &lt;intrin.h&gt; as this depends on the underlying MSVC installation, but I've added in <a class="changeset" href="https://svn.boost.org/trac10/changeset/85994" title="Add BOOST_USE_INTRIN_H support; remove #pragma intrinsic, not needed ...">[85994]</a> support for #define BOOST_USE_INTRIN_H, which forces interlocked.hpp to unconditionally use intrin.h. This should help in cases where the autodetection is not quite up to par. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Peter Dimov</dc:creator> <pubDate>Thu, 24 Oct 2013 14:01:55 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/9174#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/9174#comment:4</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/86416" title="Merged revision(s) 85994 from trunk: Add BOOST_USE_INTRIN_H support; ...">[86416]</a>) Merged revision(s) 85994 from trunk: Add BOOST_USE_INTRIN_H support; remove #pragma intrinsic, not needed and not supported on Intel. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/6646" title="#6646: Bugs: Compiling boost 1.49 fails with Intel Compiler V12.1 due to changed ... (closed: fixed)">#6646</a>. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7318" title="#7318: Bugs: Warnings &#34;unimplemented pragma ignored&#34; with Intel C++ Compiler XE ... (closed: fixed)">#7318</a>. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/9174" title="#9174: Bugs: Incompatible declaration in interlocked.hpp (closed: fixed)">#9174</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Peter Dimov</dc:creator> <pubDate>Wed, 11 Dec 2013 17:32:53 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/9174#comment:5 https://svn.boost.org/trac10/ticket/9174#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">fixed</span> </li> </ul> Ticket