From 97b6d55b1b6d4356462bcba4a4ff76c3ccf7872c Mon Sep 17 00:00:00 2001 From: Matt Austern Date: Mon, 8 Mar 2004 19:03:10 +0000 Subject: [PATCH] re PR debug/14079 (wrong debug info for extern boolean variable in debug mode) PR debug/14079 * name-lookup.c (add_decl_to_level): Add extern variables, as well as static, to static_decls array. From-SVN: r79122 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/name-lookup.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ae6da109e6b..70f15ffd298 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-03-08 Matt Austern + + PR debug/14079 + * name-lookup.c (add_decl_to_level): Add extern variables, as well + as static, to static_decls array. + 2004-03-05 Jason Merrill * tree.c (list_hash_pieces): s/TYPE_HASH/TREE_HASH/. diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 7d6239b67ed..1da453a016d 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -526,9 +526,13 @@ add_decl_to_level (tree decl, cxx_scope *b) b->names = decl; b->names_size++; - /* If appropriate, add decl to separate list of statics. */ + /* If appropriate, add decl to separate list of statics. We + include extern variables because they might turn out to be + static later. It's OK for this list to contain a few false + positives. */ if (b->kind == sk_namespace) - if ((TREE_CODE (decl) == VAR_DECL && TREE_STATIC (decl)) + if ((TREE_CODE (decl) == VAR_DECL + && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) || (TREE_CODE (decl) == FUNCTION_DECL && (!TREE_PUBLIC (decl) || DECL_DECLARED_INLINE_P (decl)))) VARRAY_PUSH_TREE (b->static_decls, decl); -- 2.30.2