From 210cfe6365e5b2f696bb1e32b8bc25628b1064c1 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 14 May 2012 19:07:41 +0200 Subject: [PATCH] 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: r187475 --- gcc/ChangeLog | 4 ++++ gcc/dwarf2out.c | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5efbfe5ff96f..bdb3a5b33a9b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2012-05-14 Jakub Jelinek + * 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 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index a92881b2d9cf..3569dc565b83 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -20110,7 +20110,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; @@ -20137,7 +20137,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; @@ -20276,13 +20276,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) @@ -20295,7 +20295,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 { @@ -20309,7 +20309,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); -- 2.47.2