svn commit: r224523 - head/contrib/gcc/cp
Martin Matuska
mm at FreeBSD.org
Sat Jul 30 17:27:29 UTC 2011
Author: mm
Date: Sat Jul 30 17:27:29 2011
New Revision: 224523
URL: http://svn.freebsd.org/changeset/base/224523
Log:
Fix invalid assertion of C++ external static data member declarations
as anonymous namespaces are local to the current translation.
GCC PR: c++/33094
Reviewed by: uqs
Approved by: re (kib)
Obtained from: gcc (branches/redhat/gcc-4_1-branch, rev. 129554, GPLv2)
MFC after: 1 week
Modified:
head/contrib/gcc/cp/ChangeLog
head/contrib/gcc/cp/decl.c
Modified: head/contrib/gcc/cp/ChangeLog
==============================================================================
--- head/contrib/gcc/cp/ChangeLog Sat Jul 30 14:13:57 2011 (r224522)
+++ head/contrib/gcc/cp/ChangeLog Sat Jul 30 17:27:29 2011 (r224523)
@@ -1,3 +1,9 @@
+2007-09-29 Jason Merrill <jason at redhat.com>
+
+ PR c++/33094
+ * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member
+ constant to not have DECL_EXTERNAL if it's file-local.
+
2007-08-24 Jakub Jelinek <jakub at redhat.com>
PR c++/31941
Modified: head/contrib/gcc/cp/decl.c
==============================================================================
--- head/contrib/gcc/cp/decl.c Sat Jul 30 14:13:57 2011 (r224522)
+++ head/contrib/gcc/cp/decl.c Sat Jul 30 17:27:29 2011 (r224523)
@@ -4968,7 +4968,7 @@ make_rtl_for_nonlocal_decl (tree decl, t
/* An in-class declaration of a static data member should be
external; it is only a declaration, and not a definition. */
if (init == NULL_TREE)
- gcc_assert (DECL_EXTERNAL (decl));
+ gcc_assert (DECL_EXTERNAL (decl) || !TREE_PUBLIC (decl));
}
/* We don't create any RTL for local variables. */
More information about the svn-src-all
mailing list