forked from OSchip/llvm-project
Test the '__thread' before 'static' warning.
Also fix the '__thread' before 'extern' case. llvm-svn: 157921
This commit is contained in:
parent
09610f3e09
commit
96fe81069b
|
@ -37,7 +37,7 @@ def ext_plain_complex : ExtWarn<
|
||||||
"plain '_Complex' requires a type specifier; assuming '_Complex double'">;
|
"plain '_Complex' requires a type specifier; assuming '_Complex double'">;
|
||||||
def ext_integer_complex : Extension<
|
def ext_integer_complex : Extension<
|
||||||
"complex integer types are an extension">;
|
"complex integer types are an extension">;
|
||||||
def ext_thread_before : Extension<"'__thread' before 'static'">;
|
def ext_thread_before : Extension<"'__thread' before '%0'">;
|
||||||
|
|
||||||
def ext_empty_struct_union : Extension<
|
def ext_empty_struct_union : Extension<
|
||||||
"empty %select{struct|union}0 is a GNU extension">, InGroup<GNU>;
|
"empty %select{struct|union}0 is a GNU extension">, InGroup<GNU>;
|
||||||
|
|
|
@ -1,19 +1,21 @@
|
||||||
// RUN: %clang_cc1 -triple i686-pc-linux-gnu -fsyntax-only -verify %s
|
// RUN: %clang_cc1 -triple i686-pc-linux-gnu -fsyntax-only -verify -pedantic %s
|
||||||
|
|
||||||
__thread int t1;
|
__thread int t1;
|
||||||
__thread extern int t2;
|
__thread extern int t2; // expected-warning {{'__thread' before 'extern'}}
|
||||||
__thread static int t3;
|
__thread static int t3; // expected-warning {{'__thread' before 'static'}}
|
||||||
__thread __private_extern__ int t4;
|
__thread __private_extern__ int t4;
|
||||||
struct t5 { __thread int x; }; // expected-error {{type name does not allow storage class to be specified}}
|
struct t5 { __thread int x; }; // expected-error {{type name does not allow storage class to be specified}}
|
||||||
__thread int t6(); // expected-error {{'__thread' is only allowed on variable declarations}}
|
__thread int t6(); // expected-error {{'__thread' is only allowed on variable declarations}}
|
||||||
|
|
||||||
int f(__thread int t7) { // expected-error {{'__thread' is only allowed on variable declarations}}
|
int f(__thread int t7) { // expected-error {{'__thread' is only allowed on variable declarations}}
|
||||||
__thread int t8; // expected-error {{'__thread' variables must have global storage}}
|
__thread int t8; // expected-error {{'__thread' variables must have global storage}}
|
||||||
__thread extern int t9;
|
extern __thread int t9;
|
||||||
__thread static int t10;
|
static __thread int t10;
|
||||||
__thread __private_extern__ int t11;
|
__thread __private_extern__ int t11;
|
||||||
__thread auto int t12; // expected-error {{'__thread' variables must have global storage}}
|
__thread auto int t12; // expected-error {{'__thread' variables must have global storage}}
|
||||||
__thread register int t13; // expected-error {{'__thread' variables must have global storage}}
|
__thread register int t13; // expected-error {{'__thread' variables must have global storage}}
|
||||||
}
|
}
|
||||||
|
|
||||||
__thread typedef int t14; // expected-error {{'__thread' is only allowed on variable declarations}}
|
__thread typedef int t14; // expected-error {{'__thread' is only allowed on variable declarations}}
|
||||||
__thread int t15; // expected-note {{previous definition is here}}
|
__thread int t15; // expected-note {{previous definition is here}}
|
||||||
int t15; // expected-error {{non-thread-local declaration of 't15' follows thread-local declaration}}
|
int t15; // expected-error {{non-thread-local declaration of 't15' follows thread-local declaration}}
|
||||||
|
|
Loading…
Reference in New Issue