[cfe-commits] r157921 - in /cfe/trunk: include/clang/Basic/DiagnosticParseKinds.td test/Sema/thread-specifier.c
Hans Wennborg
hans at hanshq.net
Mon Jun 4 03:19:34 PDT 2012
Author: hans
Date: Mon Jun 4 05:19:34 2012
New Revision: 157921
URL: http://llvm.org/viewvc/llvm-project?rev=157921&view=rev
Log:
Test the '__thread' before 'static' warning.
Also fix the '__thread' before 'extern' case.
Modified:
cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
cfe/trunk/test/Sema/thread-specifier.c
Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=157921&r1=157920&r2=157921&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Mon Jun 4 05:19:34 2012
@@ -37,7 +37,7 @@
"plain '_Complex' requires a type specifier; assuming '_Complex double'">;
def ext_integer_complex : 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<
"empty %select{struct|union}0 is a GNU extension">, InGroup<GNU>;
Modified: cfe/trunk/test/Sema/thread-specifier.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/thread-specifier.c?rev=157921&r1=157920&r2=157921&view=diff
==============================================================================
--- cfe/trunk/test/Sema/thread-specifier.c (original)
+++ cfe/trunk/test/Sema/thread-specifier.c Mon Jun 4 05:19:34 2012
@@ -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 extern int t2;
-__thread static int t3;
+__thread extern int t2; // expected-warning {{'__thread' before 'extern'}}
+__thread static int t3; // expected-warning {{'__thread' before 'static'}}
__thread __private_extern__ int t4;
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}}
+
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 extern int t9;
- __thread static int t10;
+ extern __thread int t9;
+ static __thread int t10;
__thread __private_extern__ int t11;
__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 typedef int t14; // expected-error {{'__thread' is only allowed on variable declarations}}
__thread int t15; // expected-note {{previous definition is here}}
int t15; // expected-error {{non-thread-local declaration of 't15' follows thread-local declaration}}
More information about the cfe-commits
mailing list