]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
dwarf2out.c (gen_formal_parameter_die, [...]): For DECL_BY_REFERENCE decls don't...
authorJakub Jelinek <jakub@redhat.com>
Fri, 29 Aug 2008 18:49:36 +0000 (20:49 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 29 Aug 2008 18:49:36 +0000 (20:49 +0200)
* 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

gcc/ChangeLog
gcc/dwarf2out.c

index 551723211f27dd55aab084edebac75c327513056..2cfe256a44b4aab31d0c20ff4c3986ad404988e4 100644 (file)
@@ -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
index 13eebbc34d2684fb9e70851d3292e2d194639fe5..d0c1a2eccf12a226db997a2014c69adfd33f8ee7 100644 (file)
@@ -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);