aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2013-06-10 15:38:42 -0400
committerJason Merrill <jason@gcc.gnu.org>2013-06-10 15:38:42 -0400
commit5ee712eb20ec5df9c9e4d641db349933a4954aab (patch)
tree51719070388ff5113b5e6b1c6681a09e45d857d7 /gcc
parent1c59edccdc325aa66d60c27c53e17d5d072e0a2b (diff)
downloadgcc-5ee712eb20ec5df9c9e4d641db349933a4954aab.zip
gcc-5ee712eb20ec5df9c9e4d641db349933a4954aab.tar.gz
gcc-5ee712eb20ec5df9c9e4d641db349933a4954aab.tar.bz2
name-lookup.c (add_decl_to_level): Add decls in an anonymous namespace to static_decls.
* name-lookup.c (add_decl_to_level): Add decls in an anonymous namespace to static_decls. From-SVN: r199906
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/name-lookup.c4
-rw-r--r--gcc/testsuite/g++.dg/warn/anonymous-namespace-5.C8
3 files changed, 16 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ebf7179..0245153 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-10 Jason Merrill <jason@redhat.com>
+
+ * name-lookup.c (add_decl_to_level): Add decls in an anonymous
+ namespace to static_decls.
+
2013-06-07 Sriraman Tallam <tmsriram@google.com>
PR c++/57548
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 17d5ca2..2b1f9fb 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -597,7 +597,9 @@ add_decl_to_level (tree decl, cp_binding_level *b)
if ((VAR_P (decl)
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
|| (TREE_CODE (decl) == FUNCTION_DECL
- && (!TREE_PUBLIC (decl) || DECL_DECLARED_INLINE_P (decl))))
+ && (!TREE_PUBLIC (decl)
+ || decl_anon_ns_mem_p (decl)
+ || DECL_DECLARED_INLINE_P (decl))))
vec_safe_push (b->static_decls, decl);
}
}
diff --git a/gcc/testsuite/g++.dg/warn/anonymous-namespace-5.C b/gcc/testsuite/g++.dg/warn/anonymous-namespace-5.C
new file mode 100644
index 0000000..6f5a081
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/anonymous-namespace-5.C
@@ -0,0 +1,8 @@
+namespace {
+ void f(); // { dg-message "never defined" }
+}
+
+int main()
+{
+ f();
+}