aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-common.c
diff options
context:
space:
mode:
authorGeorge Helffrich <george@gcc.gnu.org>2008-04-26 09:46:01 +0000
committerGeorge Helffrich <george@gcc.gnu.org>2008-04-26 09:46:01 +0000
commit97b1c140a6d807d164dd12c8e767bec96874d297 (patch)
tree41a41127f1938338b6b87dd1bde0414e40bfc07f /gcc/fortran/trans-common.c
parentfe4540a0d438eb803d6c821e072ec495c80dc882 (diff)
2008-04-26 George Helffrich <george@gcc.gnu.org>
PR fortran/35892 PR fortran/35154 * fortran/trans-common.c (create_common): Add decl to function chain (if inside one) to preserve identifier scope in debug output. * testsuite/gfortran.dg/debug/pr35154-stabs.f: New test case for .stabs functionality. * testsuite/gfortran.dg/debug/pr35154-dwarf2.f: New test case for DWARF functionality. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@134696 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-common.c')
-rw-r--r--gcc/fortran/trans-common.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index c6a386e0120..5c91bf57946 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -685,10 +685,14 @@ create_common (gfc_common_head *com, segment_info *head, bool saw_equiv)
/* This is a fake variable just for debugging purposes. */
TREE_ASM_WRITTEN (var_decl) = 1;
- if (com)
+ /* To preserve identifier names in COMMON, chain to procedure
+ scope unless at top level in a module definition. */
+ if (com
+ && s->sym->ns->proc_name
+ && s->sym->ns->proc_name->attr.flavor == FL_MODULE)
var_decl = pushdecl_top_level (var_decl);
else
- gfc_add_decl_to_function (var_decl);
+ gfc_add_decl_to_function (var_decl);
SET_DECL_VALUE_EXPR (var_decl,
fold_build3 (COMPONENT_REF, TREE_TYPE (s->field),