re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs)
authorJakub Jelinek <jakub@redhat.com>
Mon, 27 Nov 2017 08:48:56 +0000 (09:48 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 27 Nov 2017 08:48:56 +0000 (09:48 +0100)
commitb8cb3096f78581c16d87469706e49b1a4ec345f0
treee81f0e0046a42d208b6c8cc59980e1aafa2275bb
parent9adeb64ab940db8fe484e6344dc28ec86f1a83bc
re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs)

PR debug/81307
* dbxout.c (lastlineno): New variable.
(dbx_debug_hooks): Use dbxout_switch_text_section as
switch_text_section debug hook.
(dbxout_function_end): Switch to current_function_section
rather than function_section.  If crtl->has_bb_partition,
output just one N_FUN, depending on in_cold_section_p.
(dbxout_source_line): Remember last lineno in lastlineno.
(dbxout_switch_text_section): New function.
(dbxout_function_decl): Adjust dbxout_block caller.
(dbx_block_with_cold_children): New function.
(dbxout_block): Return true if any LBRAC/RBRAC have been
emitted.  Use dbx_block_with_cold_children at depth == 0
in second partition.  Add PARENT_BLOCKNUM argument, pass
it optionally adjusted to children.  Output LBRAC/RBRAC
around recursive call only if the block is in the current
partition, if not and anything was output, emit empty
range LBRAC/RBRAC.
* final.c (final_scan_insn): Compute cold_function_name
before calling switch_text_section debug hook.  Call
that hook even if dwarf2out_do_frame if not emitting
dwarf debug info.

* g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
workaround.

From-SVN: r255161
gcc/ChangeLog
gcc/dbxout.c
gcc/final.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/debug9.C