[LLVMdev] clang thread-local compilation error on windows

Michael Spencer bigcheesegs at gmail.com
Wed Aug 8 13:02:02 PDT 2012


On Wed, Aug 8, 2012 at 12:04 PM, Stephen Schiffli <sschiffli at gmail.com> wrote:
> Hello, I am trying to compile some code to LLVM IR with a simple "__thread
> int x" but hitting this error:
>     test.cpp:1:1: error: thread-local storage is unsupported for the current
> target
>
> I'm using both the -S and -emit-llvm options on clang, and was expecting to
> see "@x = thread_local global i32 0" come out of clang.
>
> I am curious why clang even cares about this since its my understanding it
> woud just attach thread_local to the declaration and then allow me to handle
> it later on in llc to do the actual traget specific implementation.  Can
> someone help clear where the thread-local implementation should go?
>
> Thanks,
> -Stephen

It's saying this because it knows that LLVM doesn't support thread
local storage on Windows. Although I believe this has changed
recently. The reason clang is reporting it is because in general it is
nicer for a user to get a nice diagnostic from clang instead of an
assert from inside codegen.

- Michael Spencer



More information about the llvm-dev mailing list