mirror of git://gcc.gnu.org/git/gcc.git
re PR debug/54499 (GCC produces wrong debugging information, failure while assembling generated .s file)
PR debug/54499
* cgraphunit.c (assemble_thunk): Don't call source_line debug hook
here, instead call insn_locations_{init,finalize} and initialize
prologue_location.
* g++.dg/debug/pr54499.C: New test.
From-SVN: r193338
This commit is contained in:
parent
3ad2d621f5
commit
68a5598093
|
|
@ -1,3 +1,10 @@
|
||||||
|
2012-11-08 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR debug/54499
|
||||||
|
* cgraphunit.c (assemble_thunk): Don't call source_line debug hook
|
||||||
|
here, instead call insn_locations_{init,finalize} and initialize
|
||||||
|
prologue_location.
|
||||||
|
|
||||||
2012-11-08 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
|
2012-11-08 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
|
||||||
|
|
||||||
PR driver/54789
|
PR driver/54789
|
||||||
|
|
|
||||||
|
|
@ -1413,16 +1413,16 @@ assemble_thunk (struct cgraph_node *node)
|
||||||
DECL_INITIAL (thunk_fndecl) = fn_block;
|
DECL_INITIAL (thunk_fndecl) = fn_block;
|
||||||
init_function_start (thunk_fndecl);
|
init_function_start (thunk_fndecl);
|
||||||
cfun->is_thunk = 1;
|
cfun->is_thunk = 1;
|
||||||
|
insn_locations_init ();
|
||||||
|
set_curr_insn_location (DECL_SOURCE_LOCATION (thunk_fndecl));
|
||||||
|
prologue_location = curr_insn_location ();
|
||||||
assemble_start_function (thunk_fndecl, fnname);
|
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,
|
targetm.asm_out.output_mi_thunk (asm_out_file, thunk_fndecl,
|
||||||
fixed_offset, virtual_value, alias);
|
fixed_offset, virtual_value, alias);
|
||||||
|
|
||||||
assemble_end_function (thunk_fndecl, fnname);
|
assemble_end_function (thunk_fndecl, fnname);
|
||||||
|
insn_locations_finalize ();
|
||||||
init_insn_lengths ();
|
init_insn_lengths ();
|
||||||
free_after_compilation (cfun);
|
free_after_compilation (cfun);
|
||||||
set_cfun (NULL);
|
set_cfun (NULL);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-11-08 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR debug/54499
|
||||||
|
* g++.dg/debug/pr54499.C: New test.
|
||||||
|
|
||||||
2012-11-08 Jan Hubicka <jh@suse.cz>
|
2012-11-08 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
PR middle-end/48636
|
PR middle-end/48636
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
// PR debug/54499
|
||||||
|
// { dg-do assemble }
|
||||||
|
|
||||||
|
struct S1
|
||||||
|
{
|
||||||
|
virtual void f () = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct S2
|
||||||
|
{
|
||||||
|
virtual ~S2 () { }
|
||||||
|
};
|
||||||
|
|
||||||
|
struct S3 : public S1, public S2
|
||||||
|
{
|
||||||
|
void f ();
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
S3::f ()
|
||||||
|
{
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue