This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: C++ PATCH: New parser
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Phil Edwards <phil at jaj dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 28 Dec 2002 11:53:53 -0800
- Subject: Re: C++ PATCH: New parser
I'm going back to sleep now to keep the Norwalk virus at bay,
Gotta cut back on those raw oysters, buddy!
I'm a vegetarian, so that wasn't it. Unless someone slipped me an
oyster mickey. :-)
Autocrasher sees two regressions:
g++.sum g++.dg/tls/diag-1.C
g++.sum g++.dg/tls/diag-2.C
Dang it; forgot to configure with --enable-threads when testing.
I'm testing this fix now, which I'll check in if it works. It may
take me all day to get this in; if anyone's bothered, feel free to
check this patch in if it works for you.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
Index: decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.972
diff -c -5 -p -r1.972 decl.c
*** decl.c 28 Dec 2002 08:03:39 -0000 1.972
--- decl.c 28 Dec 2002 19:54:42 -0000
*************** grokdeclarator (declarator, declspecs, d
*** 10434,10450 ****
longlong = 1;
}
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)
{
! if (RIDBIT_SETP (RID_EXTERN, specbits))
error ("`__thread' before `extern'");
! if (RIDBIT_SETP (RID_STATIC, specbits))
error ("`__thread' before `static'");
}
if (i == (int)RID_EXTERN
&& TREE_PURPOSE (spec) == error_mark_node)
--- 10434,10449 ----
longlong = 1;
}
else if (RIDBIT_SETP (i, specbits))
pedwarn ("duplicate `%s'", IDENTIFIER_POINTER (id));
! /* Diagnose "__thread extern" or "__thread static". */
! if (RIDBIT_SETP (RID_THREAD, specbits))
{
! if (i == (int)RID_EXTERN)
error ("`__thread' before `extern'");
! else if (i == (int)RID_STATIC)
error ("`__thread' before `static'");
}
if (i == (int)RID_EXTERN
&& TREE_PURPOSE (spec) == error_mark_node)