aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-common.c
diff options
context:
space:
mode:
authorGeorge Helffrich <george@gcc.gnu.org>2008-04-01 21:23:36 +0000
committerGeorge Helffrich <george@gcc.gnu.org>2008-04-01 21:23:36 +0000
commit7151ffbe56dd95cbd05e4e5c418468d30dc33c2f (patch)
tree803082c66137124abad95c71d051d7b2b08a3878 /gcc/fortran/trans-common.c
parentdc197ab91c79219326ebc83e7353ac4f925e78e5 (diff)
downloadgcc-7151ffbe56dd95cbd05e4e5c418468d30dc33c2f.zip
gcc-7151ffbe56dd95cbd05e4e5c418468d30dc33c2f.tar.gz
gcc-7151ffbe56dd95cbd05e4e5c418468d30dc33c2f.tar.bz2
trans-common.c (create_common): Add decl to function chain to preserve identifier scope in debug output.
* fortran/trans-common.c (create_common): Add decl to function chain to preserve identifier scope in debug output. * dbxout.c: Emit .stabs debug info for Fortran COMMON block variables as base symbol name + offset using N_BCOMM/N_ECOMM. (is_fortran, dbxout_common_name, dbxout_common_check): New functions. (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage in common. (dbxout_syms): Check for COMMON-based symbol and wrap in N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible in bracket for efficiency. * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block using DW_TAG_common_block + member offset. (add_pubname_string): New function. (dw_expand_expr): New function to find block name and offset for COMMON var. (common_check): New function to check whether symbol in Fortran COMMON. (gen_variable_die): If COMMON, use DW_TAG_common_block. * testsuite/gcc.dg/debug/pr35154.c: New test to check that non-Fortran use of common is unchanged. * testsuite/lib/gfortran-dg.exp: New harness to compile Fortran progs with all combinations of debug options available on target. * testsuite/gfortran.dg/debug/debug.exp: Ditto. * testsuite/gfortran.dg/debug/trivial.f: Ditto. * 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. From-SVN: r133801
Diffstat (limited to 'gcc/fortran/trans-common.c')
-rw-r--r--gcc/fortran/trans-common.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index 7086a6c..f7042cb 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -687,10 +687,7 @@ 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)
- 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),