dwarf2out.c (dwarf2out_define, [...]): Treat lineno 1 the same as lineno 0 before first start file directive.
* dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat lineno 1 the same as lineno 0 before first start file directive. (optimize_macinfo_range): Likewise. From-SVN: r187476
This commit is contained in:
parent
bdd61db72b
commit
f2ea3f1e00
|
@ -1,5 +1,9 @@
|
|||
2012-05-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
|
||||
lineno 1 the same as lineno 0 before first start file directive.
|
||||
(optimize_macinfo_range): Likewise.
|
||||
|
||||
* dwarf2out.c (have_macinfo): Define.
|
||||
(dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
|
||||
attribute, don't force empty compilation unit and don't emit any
|
||||
|
|
|
@ -20661,7 +20661,7 @@ dwarf2out_define (unsigned int lineno ATTRIBUTE_UNUSED,
|
|||
macinfo_entry e;
|
||||
/* Insert a dummy first entry to be able to optimize the whole
|
||||
predefined macro block using DW_MACRO_GNU_transparent_include. */
|
||||
if (VEC_empty (macinfo_entry, macinfo_table) && lineno == 0)
|
||||
if (VEC_empty (macinfo_entry, macinfo_table) && lineno <= 1)
|
||||
{
|
||||
e.code = 0;
|
||||
e.lineno = 0;
|
||||
|
@ -20688,7 +20688,7 @@ dwarf2out_undef (unsigned int lineno ATTRIBUTE_UNUSED,
|
|||
macinfo_entry e;
|
||||
/* Insert a dummy first entry to be able to optimize the whole
|
||||
predefined macro block using DW_MACRO_GNU_transparent_include. */
|
||||
if (VEC_empty (macinfo_entry, macinfo_table) && lineno == 0)
|
||||
if (VEC_empty (macinfo_entry, macinfo_table) && lineno <= 1)
|
||||
{
|
||||
e.code = 0;
|
||||
e.lineno = 0;
|
||||
|
@ -20827,13 +20827,13 @@ optimize_macinfo_range (unsigned int idx, VEC (macinfo_entry, gc) *files,
|
|||
|
||||
/* Optimize only if there are at least two consecutive define/undef ops,
|
||||
and either all of them are before first DW_MACINFO_start_file
|
||||
with lineno 0 (i.e. predefined macro block), or all of them are
|
||||
with lineno {0,1} (i.e. predefined macro block), or all of them are
|
||||
in some included header file. */
|
||||
if (second->code != DW_MACINFO_define && second->code != DW_MACINFO_undef)
|
||||
return 0;
|
||||
if (VEC_empty (macinfo_entry, files))
|
||||
{
|
||||
if (first->lineno != 0 || second->lineno != 0)
|
||||
if (first->lineno > 1 || second->lineno > 1)
|
||||
return 0;
|
||||
}
|
||||
else if (first->lineno == 0)
|
||||
|
@ -20846,7 +20846,7 @@ optimize_macinfo_range (unsigned int idx, VEC (macinfo_entry, gc) *files,
|
|||
for (i = idx; VEC_iterate (macinfo_entry, macinfo_table, i, cur); i++)
|
||||
if (cur->code != DW_MACINFO_define && cur->code != DW_MACINFO_undef)
|
||||
break;
|
||||
else if (first->lineno == 0 && cur->lineno != 0)
|
||||
else if (VEC_empty (macinfo_entry, files) && cur->lineno > 1)
|
||||
break;
|
||||
else
|
||||
{
|
||||
|
@ -20860,7 +20860,7 @@ optimize_macinfo_range (unsigned int idx, VEC (macinfo_entry, gc) *files,
|
|||
|
||||
/* From the containing include filename (if any) pick up just
|
||||
usable characters from its basename. */
|
||||
if (first->lineno == 0)
|
||||
if (VEC_empty (macinfo_entry, files))
|
||||
base = "";
|
||||
else
|
||||
base = lbasename (VEC_last (macinfo_entry, files)->info);
|
||||
|
|
Loading…
Reference in New Issue