<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Aug 18, 2016 at 5:36 PM, Daniel Dilts via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>I have a custom tool that is built using clang 3.8.0.  When I #include <atomic> the tool fails and gives this error message:</div><div><br></div><div>1>  In file included from C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\atomic:19:<br>1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xatomic.h(98,<wbr>2): error : MS-style inline assembly is not available: Unable to find target for this triple (no targets are registered)<br>1>          __asm<br>1>          ^<br>1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xatomic.h(117,<wbr>2): error : MS-style inline assembly is not available: Unable to find target for this triple (no targets are registered)<br>1>          __asm<br>1>          ^<br>1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xatomic.h(140,<wbr>2): error : MS-style inline assembly is not available: Unable to find target for this triple (no targets are registered)<br>1>          __asm<br>1>          ^<br>1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xatomic.h(163,<wbr>2): error : MS-style inline assembly is not available: Unable to find target for this triple (no targets are registered)<br>1>          __asm<br>1>          ^<br>1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xatomic.h(186,<wbr>2): error : MS-style inline assembly is not available: Unable to find target for this triple (no targets are registered)<br>1>          __asm<br>1>          ^<br>1>  5 errors generated.</div><div><br></div><div><br></div><div><br></div><div><br></div><div>When I run clang-cl against the same file it compiles without a complaint.  What would I need to do to get this to work?</div></div></blockquote><div><br></div><div>You need to initialize LLVM's list of registered targets, so it can find the appropriate assembler to use to interpret the assembly code. Here's what Clang does during startup (though you likely only need a subset of this if you don't care about actually generating code):</div><div><br></div><div><div>#include "llvm/Support/TargetSelect.h"</div></div><div><br></div><div><div>  llvm::InitializeAllTargets();</div><div>  llvm::InitializeAllTargetMCs();</div><div>  llvm::InitializeAllAsmPrinters();</div><div>  llvm::InitializeAllAsmParsers();<br></div></div></div></div></div>