cgraphunit.c (assemble_thunk): Add source line info.
2012-08-06 Cary Coutant <ccoutant@google.com> gcc/ * cgraphunit.c (assemble_thunk): Add source line info. * final.c (final): Check for non-null cfg pointer. gcc/testsuite/ * g++.dg/debug/dwarf2/non-virtual-thunk.C: New test case. From-SVN: r190190
This commit is contained in:
parent
d28cfc4ae6
commit
292ffe8608
5 changed files with 59 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
|||
2012-08-06 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* cgraphunit.c (assemble_thunk): Add source line info.
|
||||
* final.c (final): Check for non-null cfg pointer.
|
||||
|
||||
2012-08-06 Sandra Loosemore <sandra@codesourcery.com>
|
||||
Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||
Julian Brown <julian@codesourcery.com>
|
||||
|
|
|
@ -1381,6 +1381,10 @@ assemble_thunk (struct cgraph_node *node)
|
|||
init_function_start (thunk_fndecl);
|
||||
cfun->is_thunk = 1;
|
||||
assemble_start_function (thunk_fndecl, fnname);
|
||||
(*debug_hooks->source_line) (DECL_SOURCE_LINE (thunk_fndecl),
|
||||
DECL_SOURCE_FILE (thunk_fndecl),
|
||||
/* discriminator */ 0,
|
||||
/* is_stmt */ 1);
|
||||
|
||||
targetm.asm_out.output_mi_thunk (asm_out_file, thunk_fndecl,
|
||||
fixed_offset, virtual_value, alias);
|
||||
|
|
12
gcc/final.c
12
gcc/final.c
|
@ -1863,11 +1863,13 @@ final (rtx first, FILE *file, int optimize_p)
|
|||
start_to_bb = XCNEWVEC (basic_block, bb_map_size);
|
||||
end_to_bb = XCNEWVEC (basic_block, bb_map_size);
|
||||
|
||||
FOR_EACH_BB_REVERSE (bb)
|
||||
{
|
||||
start_to_bb[INSN_UID (BB_HEAD (bb))] = bb;
|
||||
end_to_bb[INSN_UID (BB_END (bb))] = bb;
|
||||
}
|
||||
/* There is no cfg for a thunk. */
|
||||
if (!cfun->is_thunk)
|
||||
FOR_EACH_BB_REVERSE (bb)
|
||||
{
|
||||
start_to_bb[INSN_UID (BB_HEAD (bb))] = bb;
|
||||
end_to_bb[INSN_UID (BB_END (bb))] = bb;
|
||||
}
|
||||
}
|
||||
|
||||
/* Output the insns. */
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2012-08-06 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* g++.dg/debug/dwarf2/non-virtual-thunk.C: New test case.
|
||||
|
||||
2012-08-06 Janus Weil <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/35831
|
||||
|
|
39
gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C
Normal file
39
gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C
Normal file
|
@ -0,0 +1,39 @@
|
|||
// { dg-do compile }
|
||||
// { dg-options "-g2 -dA" }
|
||||
|
||||
// Verify that line number info is output for the non-virtual
|
||||
// thunks for C::~C().
|
||||
// { dg-final { scan-assembler "thunk.C:30" } }
|
||||
|
||||
class A
|
||||
{
|
||||
public:
|
||||
A();
|
||||
virtual ~A();
|
||||
private:
|
||||
int i;
|
||||
};
|
||||
|
||||
class B
|
||||
{
|
||||
public:
|
||||
B();
|
||||
virtual ~B();
|
||||
private:
|
||||
int i;
|
||||
};
|
||||
|
||||
class C : public A, public B
|
||||
{
|
||||
public:
|
||||
C();
|
||||
virtual ~C(); // line 30
|
||||
};
|
||||
|
||||
C::C()
|
||||
{
|
||||
}
|
||||
|
||||
C::~C()
|
||||
{
|
||||
}
|
Loading…
Add table
Reference in a new issue