diff options
author | George Helffrich <george@gcc.gnu.org> | 2008-04-26 09:46:01 +0000 |
---|---|---|
committer | George Helffrich <george@gcc.gnu.org> | 2008-04-26 09:46:01 +0000 |
commit | 97b1c140a6d807d164dd12c8e767bec96874d297 (patch) | |
tree | 41a41127f1938338b6b87dd1bde0414e40bfc07f /gcc/fortran/trans-common.c | |
parent | fe4540a0d438eb803d6c821e072ec495c80dc882 (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.c | 8 |
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), |