diff options
Diffstat (limited to 'test/Sema/attr-tls_model.c')
-rw-r--r-- | test/Sema/attr-tls_model.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/Sema/attr-tls_model.c b/test/Sema/attr-tls_model.c new file mode 100644 index 0000000..e184ebc --- /dev/null +++ b/test/Sema/attr-tls_model.c @@ -0,0 +1,14 @@ +// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -verify -fsyntax-only %s + +#if !__has_attribute(tls_model) +#error "Should support tls_model attribute" +#endif + +int f() __attribute((tls_model("global-dynamic"))); // expected-error {{'tls_model' attribute only applies to thread-local variables}} + +int x __attribute((tls_model("global-dynamic"))); // expected-error {{'tls_model' attribute only applies to thread-local variables}} +static __thread int y __attribute((tls_model("global-dynamic"))); // no-warning + +static __thread int y __attribute((tls_model("local", "dynamic"))); // expected-error {{attribute takes one argument}} +static __thread int y __attribute((tls_model(123))); // expected-error {{argument to tls_model attribute was not a string literal}} +static __thread int y __attribute((tls_model("foobar"))); // expected-error {{tls_model must be "global-dynamic", "local-dynamic", "initial-exec" or "local-exec"}} |