dwarf2out.c (gen_subprogram_die): Use is_unit_die when deciding whether to not re...
authorRichard Biener <rguenther@suse.de>
Thu, 28 Jun 2018 10:18:27 +0000 (10:18 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 28 Jun 2018 10:18:27 +0000 (10:18 +0000)
2018-06-28  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (gen_subprogram_die): Use is_unit_die when
deciding whether to not re-use a DIE.

From-SVN: r262217

gcc/ChangeLog
gcc/dwarf2out.c

index e5567914e8f3ebab72899501997cc085e35932c3..c9f7236b837fcc5292c8c7b35e8e0435bff59b6a 100644 (file)
@@ -1,3 +1,8 @@
+2018-06-28  Richard Biener  <rguenther@suse.de>
+
+       * dwarf2out.c (gen_subprogram_die): Use is_unit_die when
+       deciding whether to not re-use a DIE.
+
 2018-06-28  Richard Biener  <rguenther@suse.de>
 
        * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an
index bcd47c8363bf0a278c9aff995b1f8b27faf774c5..db9f6397cc1aba27e6e385b5e6798177b3f6e575 100644 (file)
@@ -22780,7 +22780,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
         apply; we just use the old DIE.  */
       expanded_location s = expand_location (DECL_SOURCE_LOCATION (decl));
       struct dwarf_file_data * file_index = lookup_filename (s.file);
-      if (((is_cu_die (old_die->die_parent)
+      if (((is_unit_die (old_die->die_parent)
            /* This condition fixes the inconsistency/ICE with the
               following Fortran test (or some derivative thereof) while
               building libgfortran:
@@ -22796,9 +22796,6 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
                && old_die->die_parent->die_tag == DW_TAG_module)
            || context_die == NULL)
           && (DECL_ARTIFICIAL (decl)
-              /* The location attributes may be in the abstract origin
-                 which in the case of LTO might be not available to
-                 look at.  */
               || (get_AT_file (old_die, DW_AT_decl_file) == file_index
                   && (get_AT_unsigned (old_die, DW_AT_decl_line)
                       == (unsigned) s.line)