[cfe-dev] VS2013 <atomic> not parsing

Richard Smith via cfe-dev cfe-dev at lists.llvm.org
Thu Aug 18 18:06:03 PDT 2016


On Thu, Aug 18, 2016 at 5:36 PM, Daniel Dilts via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> 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:
>
> 1>  In file included from C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\include\atomic:19:
> 1>C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\include\xatomic.h(98,2): error : MS-style inline assembly is not
> available: Unable to find target for this triple (no targets are registered)
> 1>          __asm
> 1>          ^
> 1>C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\include\xatomic.h(117,2): error : MS-style inline assembly is not
> available: Unable to find target for this triple (no targets are registered)
> 1>          __asm
> 1>          ^
> 1>C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\include\xatomic.h(140,2): error : MS-style inline assembly is not
> available: Unable to find target for this triple (no targets are registered)
> 1>          __asm
> 1>          ^
> 1>C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\include\xatomic.h(163,2): error : MS-style inline assembly is not
> available: Unable to find target for this triple (no targets are registered)
> 1>          __asm
> 1>          ^
> 1>C:\Program Files (x86)\Microsoft Visual Studio
> 12.0\VC\include\xatomic.h(186,2): error : MS-style inline assembly is not
> available: Unable to find target for this triple (no targets are registered)
> 1>          __asm
> 1>          ^
> 1>  5 errors generated.
>
>
>
>
> 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?
>

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):

#include "llvm/Support/TargetSelect.h"

  llvm::InitializeAllTargets();
  llvm::InitializeAllTargetMCs();
  llvm::InitializeAllAsmPrinters();
  llvm::InitializeAllAsmParsers();
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160818/b17434f3/attachment.html>


More information about the cfe-dev mailing list