Add support for a ".file 0" directive if supporting DWARF 5 or higher.
PR 25614 * dwarf2dbg.c (dwarf2_directive_filename): Allow a file number of 0 if the dwarf_level is 5 or more. Complain if a filename follows a file 0. * testsuite/gas/elf/dwarf-5-file0.s: New test. * testsuite/gas/elf/dwarf-5-file0.d: New test driver. * testsuite/gas/elf/elf.exp: Run the new test. PR 25612 * config/tc-ia64.h (DWARF2_VERISION): Fix typo. * doc/as.texi: Fix another typo.
This commit is contained in:
parent
436b5e99c8
commit
84d9ab33f3
|
@ -1,3 +1,17 @@
|
||||||
|
2020-03-06 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 25614
|
||||||
|
* dwarf2dbg.c (dwarf2_directive_filename): Allow a file number of
|
||||||
|
0 if the dwarf_level is 5 or more. Complain if a filename follows
|
||||||
|
a file 0.
|
||||||
|
* testsuite/gas/elf/dwarf-5-file0.s: New test.
|
||||||
|
* testsuite/gas/elf/dwarf-5-file0.d: New test driver.
|
||||||
|
* testsuite/gas/elf/elf.exp: Run the new test.
|
||||||
|
|
||||||
|
PR 25612
|
||||||
|
* config/tc-ia64.h (DWARF2_VERISION): Fix typo.
|
||||||
|
* doc/as.texi: Fix another typo.
|
||||||
|
|
||||||
2020-03-06 Nick Clifton <nickc@redhat.com>
|
2020-03-06 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 25612
|
PR 25612
|
||||||
|
|
|
@ -325,5 +325,5 @@ typedef struct unwind_record
|
||||||
|
|
||||||
/* VMS backtraces expect dwarf version 3. */
|
/* VMS backtraces expect dwarf version 3. */
|
||||||
#ifdef TE_VMS
|
#ifdef TE_VMS
|
||||||
#define DWARF2_VERSION (dwarf_level < 3 ? 3 : debug_level)
|
#define DWARF2_VERSION (dwarf_level < 3 ? 3 : dwarf_level)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -780,7 +780,7 @@ per target basis.
|
||||||
@item --gdwarf-5
|
@item --gdwarf-5
|
||||||
This option is the same as the @option{--gdwarf-2} option, except that it
|
This option is the same as the @option{--gdwarf-2} option, except that it
|
||||||
allows for the possibility of the generation of extra debug information as per
|
allows for the possibility of the generation of extra debug information as per
|
||||||
version 4 of the DWARF specification. Note - enabling this option does not
|
version 5 of the DWARF specification. Note - enabling this option does not
|
||||||
guarantee the generation of any extra infortmation, the choice to do so is on a
|
guarantee the generation of any extra infortmation, the choice to do so is on a
|
||||||
per target basis.
|
per target basis.
|
||||||
|
|
||||||
|
|
|
@ -794,17 +794,27 @@ dwarf2_directive_filename (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
num = get_absolute_expression ();
|
num = get_absolute_expression ();
|
||||||
filename = demand_copy_C_string (&filename_len);
|
|
||||||
if (filename == NULL)
|
|
||||||
return NULL;
|
|
||||||
demand_empty_rest_of_line ();
|
|
||||||
|
|
||||||
if ((offsetT) num < 1)
|
if ((offsetT) num < 1 && dwarf_level < 5)
|
||||||
{
|
{
|
||||||
as_bad (_("file number less than one"));
|
as_bad (_("file number less than one"));
|
||||||
|
ignore_rest_of_line ();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (num == 0)
|
||||||
|
{
|
||||||
|
demand_empty_rest_of_line ();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
filename = demand_copy_C_string (&filename_len);
|
||||||
|
if (filename == NULL)
|
||||||
|
/* demand_copy_C_string will have already generated an error message. */
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
demand_empty_rest_of_line ();
|
||||||
|
|
||||||
/* A .file directive implies compiler generated debug information is
|
/* A .file directive implies compiler generated debug information is
|
||||||
being supplied. Turn off gas generated debug info. */
|
being supplied. Turn off gas generated debug info. */
|
||||||
debug_type = DEBUG_NONE;
|
debug_type = DEBUG_NONE;
|
||||||
|
@ -821,7 +831,7 @@ dwarf2_directive_filename (void)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_filenum (filename, (unsigned int) num);
|
(void) get_filenum (filename, (unsigned int) num);
|
||||||
|
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#as: --gdwarf-5
|
||||||
|
#name: DWARF5 .line 0
|
||||||
|
#readelf: -wl
|
||||||
|
|
||||||
|
#pass
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
.text
|
||||||
|
|
||||||
|
.file 0
|
||||||
|
.line 1
|
||||||
|
.long 3
|
||||||
|
|
||||||
|
.file 1 "asdf"
|
||||||
|
.line 2
|
||||||
|
.long 5
|
||||||
|
|
||||||
|
.file 0
|
||||||
|
.line 4
|
||||||
|
.long 3
|
||||||
|
|
||||||
|
.file 2 "def"
|
||||||
|
.line 5
|
||||||
|
.long 3
|
||||||
|
|
|
@ -272,6 +272,7 @@ if { [is_elf_format] } then {
|
||||||
run_dump_test "dwarf2-17" $dump_opts
|
run_dump_test "dwarf2-17" $dump_opts
|
||||||
run_dump_test "dwarf2-18" $dump_opts
|
run_dump_test "dwarf2-18" $dump_opts
|
||||||
run_dump_test "dwarf2-19" $dump_opts
|
run_dump_test "dwarf2-19" $dump_opts
|
||||||
|
run_dump_test "dwarf-5-file0" $dump_opts
|
||||||
run_dump_test "bss"
|
run_dump_test "bss"
|
||||||
run_dump_test "bad-bss"
|
run_dump_test "bad-bss"
|
||||||
run_dump_test "bad-section-flag"
|
run_dump_test "bad-section-flag"
|
||||||
|
|
Loading…
Reference in New Issue