aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-08-29 20:49:36 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-08-29 20:49:36 +0200
commitf51d8f1af29a9c5db950dbf4158387067eecce7e (patch)
treeedd2331387e5920f458fd2f0084230b4a42dd2c8 /gcc
parentb6b904bd616d3e1bb186db29c91172279cbd21b9 (diff)
downloadgcc-f51d8f1af29a9c5db950dbf4158387067eecce7e.zip
gcc-f51d8f1af29a9c5db950dbf4158387067eecce7e.tar.gz
gcc-f51d8f1af29a9c5db950dbf4158387067eecce7e.tar.bz2
dwarf2out.c (gen_formal_parameter_die, [...]): For DECL_BY_REFERENCE decls don't pass TREE_READONLY and TREE_THIS_VOLATILE to...
* dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For DECL_BY_REFERENCE decls don't pass TREE_READONLY and TREE_THIS_VOLATILE to add_type_attribute. From-SVN: r139779
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/dwarf2out.c23
2 files changed, 17 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5517232..2cfe256 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2008-08-29 Jakub Jelinek <jakub@redhat.com>
+ * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
+ DECL_BY_REFERENCE decls don't pass TREE_READONLY and
+ TREE_THIS_VOLATILE to add_type_attribute.
+
* dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
types.
(gen_array_type_die): Emit DW_TAG_string_type for Fortran character
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 13eebbc..d0c1a2e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -13023,11 +13023,13 @@ gen_formal_parameter_die (tree node, dw_die_ref context_die)
tree type = TREE_TYPE (node);
add_name_and_src_coords_attributes (parm_die, node);
if (DECL_BY_REFERENCE (node))
- type = TREE_TYPE (type);
- add_type_attribute (parm_die, type,
- TREE_READONLY (node),
- TREE_THIS_VOLATILE (node),
- context_die);
+ add_type_attribute (parm_die, TREE_TYPE (type), 0, 0,
+ context_die);
+ else
+ add_type_attribute (parm_die, type,
+ TREE_READONLY (node),
+ TREE_THIS_VOLATILE (node),
+ context_die);
if (DECL_ARTIFICIAL (node))
add_AT_flag (parm_die, DW_AT_artificial, 1);
}
@@ -13704,14 +13706,15 @@ gen_variable_die (tree decl, dw_die_ref context_die)
else
{
tree type = TREE_TYPE (decl);
+
+ add_name_and_src_coords_attributes (var_die, decl);
if ((TREE_CODE (decl) == PARM_DECL
|| TREE_CODE (decl) == RESULT_DECL)
&& DECL_BY_REFERENCE (decl))
- type = TREE_TYPE (type);
-
- add_name_and_src_coords_attributes (var_die, decl);
- add_type_attribute (var_die, type, TREE_READONLY (decl),
- TREE_THIS_VOLATILE (decl), context_die);
+ add_type_attribute (var_die, TREE_TYPE (type), 0, 0, context_die);
+ else
+ add_type_attribute (var_die, type, TREE_READONLY (decl),
+ TREE_THIS_VOLATILE (decl), context_die);
if (TREE_PUBLIC (decl))
add_AT_flag (var_die, DW_AT_external, 1);