From 9881e3e5e8b19559f67332ea3f027c315933aed0 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Fri, 22 Jul 2005 17:40:37 +0000 Subject: [PATCH] re PR debug/21828 (debug info omitted for uninitialized variables) PR debug/21828 * toplev.c (check_global_declarations): Do not mark undefined variables as DECL_IGNORED_P. * varasm.c (first_global_object_name): GTY it. (weak_global_object_name): Likewise. (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating a string to go into {weak,first}_global_object_name. PR debug/21828 * gcc.dg/debug/dwarf2/dwarf-uninit.c: New test. From-SVN: r102287 --- gcc/ChangeLog | 10 ++++++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c | 10 ++++++++++ gcc/toplev.c | 7 ------- gcc/varasm.c | 7 +++++-- 5 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 75ca975defd..b4b36143da0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2005-07-22 Mark Mitchell + + PR debug/21828 + * toplev.c (check_global_declarations): Do not mark undefined + variables as DECL_IGNORED_P. + * varasm.c (first_global_object_name): GTY it. + (weak_global_object_name): Likewise. + (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating + a string to go into {weak,first}_global_object_name. + 2005-07-22 DJ Delorie * c-format.c (check_function_format): Change warning control diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 25db24b931a..64a5887655a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-22 Mark Mitchell + + PR debug/21828 + * gcc.dg/debug/dwarf2/dwarf-uninit.c: New test. + 2005-07-22 Diego Novillo * gcc.dg/tree-ssa/20050719-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c new file mode 100644 index 00000000000..f0237cc823c --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c @@ -0,0 +1,10 @@ +/* { dg-do compile */ +/* { dg-options "-O2 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler "DW_TAG_variable" } } */ +/* PR debug/21828 */ + +static int i; +int main() { + i += 3; + return 0; +} diff --git a/gcc/toplev.c b/gcc/toplev.c index 5ad62dd6ecf..b5ee33b33b8 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -802,13 +802,6 @@ check_global_declarations (tree *vec, int len) { decl = vec[i]; - /* Do not emit debug information about variables that are in - static storage, but not defined. */ - if (TREE_CODE (decl) == VAR_DECL - && TREE_STATIC (decl) - && !TREE_ASM_WRITTEN (decl)) - DECL_IGNORED_P (decl) = 1; - /* Warn about any function declared static but not defined. We don't warn about variables, diff --git a/gcc/varasm.c b/gcc/varasm.c index e4d30974ddc..3ef81468850 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -60,6 +60,9 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #endif /* The (assembler) name of the first globally-visible object output. */ +extern GTY(()) const char *first_global_object_name; +extern GTY(()) const char *weak_global_object_name; + const char *first_global_object_name; const char *weak_global_object_name; @@ -1207,11 +1210,11 @@ notice_global_symbol (tree decl) if (!*type) { const char *p; - char *name; + const char *name; rtx decl_rtl = DECL_RTL (decl); p = targetm.strip_name_encoding (XSTR (XEXP (decl_rtl, 0), 0)); - name = xstrdup (p); + name = ggc_strdup (p); *type = name; } -- 2.30.2