[Bug other/56076] [4.8 regression] Several 64-bit libgo tests FAIL in read_line_header

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 24 09:47:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56076

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-24 09:47:00 UTC ---
I guess if DW_AT_comp_dir attribute is missing, we could crash that way.

We could do:
--- libbacktrace/dwarf.c.jj    2013-01-17 13:42:51.000000000 +0100
+++ libbacktrace/dwarf.c    2013-01-24 10:43:38.234973942 +0100
@@ -1655,7 +1655,8 @@ read_line_header (struct backtrace_state
             strnlen ((const char *) hdr_buf.buf, hdr_buf.left) + 1))
     return 0;
       dir_index = read_uleb128 (&hdr_buf);
-      if (IS_ABSOLUTE_PATH (filename))
+      if (IS_ABSOLUTE_PATH (filename)
+      || (dir_index == 0 && u->comp_dir == NULL))
     hdr->filenames[i] = filename;
       else
     {

or perhaps issue an error if dir_index == 0 && u->comp_dir == NULL inside of
else.
But I believe even some GCC versions in the past were buggy and didn't emit
DW_AT_comp_dir always when needed, and other compilers could have similar bugs
too, so perhaps we should be more forgiving.



More information about the Gcc-bugs mailing list