* decl.c (grokdeclarator): Diagnost "extern thread" and "static
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Dec 2002 17:47:15 +0000 (17:47 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Dec 2002 17:47:15 +0000 (17:47 +0000)
thread" correctly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60637 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/decl.c

index 9a50d25..b3851d4 100644 (file)
@@ -1,3 +1,8 @@
+2002-12-30  Mark Mitchell  <mark@codesourcery.com>
+
+       * decl.c (grokdeclarator): Diagnost "extern thread" and "static
+       thread" correctly.
+
 2002-12-30  Nathanael Nerode  <neroden@gcc.gnu.org>
 
        * decl.c, decl2.c, decl.h:  GCC, not GNU CC.  This is the C++ front
index c0f82f7..7b29820 100644 (file)
@@ -10430,13 +10430,12 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
                  else if (RIDBIT_SETP (i, specbits))
                    pedwarn ("duplicate `%s'", IDENTIFIER_POINTER (id));
 
-                 /* Diagnose "__thread extern".  Recall that this list
-                    is in the reverse order seen in the text.  */
-                 if (i == (int)RID_THREAD)
+                 /* Diagnose "__thread extern" or "__thread static".  */
+                 if (RIDBIT_SETP (RID_THREAD, specbits))
                    {
-                     if (RIDBIT_SETP (RID_EXTERN, specbits))
+                     if (i == (int)RID_EXTERN)
                        error ("`__thread' before `extern'");
-                     if (RIDBIT_SETP (RID_STATIC, specbits))
+                     else if (i == (int)RID_STATIC)
                        error ("`__thread' before `static'");
                    }