re PR debug/55794 (FAIL: g++.dg/debug/dwarf2/non-virtual-thunk.C -std=gnu++98 and -std=gnu++11)

PR debug/55794
	* config/pa/pa.c (pa_output_function_epilogue): Skip address and code
	size accounting for thunks.
	(pa_asm_output_mi_thunk): Use final_start_function() and
	final_end_function() to output function start and end directives.

From-SVN: r209163
This commit is contained in:
John David Anglin 2014-04-06 15:17:41 +00:00
parent cce24f8eee
commit a9a302d9f2
2 changed files with 15 additions and 13 deletions

View File

@ -1,3 +1,11 @@
2014-04-06 John David Anglin <danglin@gcc.gnu.org>
PR debug/55794
* config/pa/pa.c (pa_output_function_epilogue): Skip address and code
size accounting for thunks.
(pa_asm_output_mi_thunk): Use final_start_function() and
final_end_function() to output function start and end directives.
2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
* config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have device

View File

@ -4187,13 +4187,17 @@ pa_output_function_epilogue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
if (TARGET_SOM && TARGET_GAS)
{
/* We done with this subspace except possibly for some additional
/* We are done with this subspace except possibly for some additional
debug information. Forget that we are in this subspace to ensure
that the next function is output in its own subspace. */
in_section = NULL;
cfun->machine->in_nsubspa = 2;
}
/* Thunks do their own accounting. */
if (cfun->is_thunk)
return;
if (INSN_ADDRESSES_SET_P ())
{
insn = get_last_nonnote_insn ();
@ -8259,8 +8263,7 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
xoperands[1] = XEXP (DECL_RTL (thunk_fndecl), 0);
xoperands[2] = GEN_INT (delta);
ASM_OUTPUT_LABEL (file, XSTR (xoperands[1], 0));
fprintf (file, "\t.PROC\n\t.CALLINFO FRAME=0,NO_CALLS\n\t.ENTRY\n");
final_start_function (emit_barrier (), file, 1);
/* Output the thunk. We know that the function is in the same
translation unit (i.e., the same space) as the thunk, and that
@ -8466,16 +8469,7 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
}
}
fprintf (file, "\t.EXIT\n\t.PROCEND\n");
if (TARGET_SOM && TARGET_GAS)
{
/* We done with this subspace except possibly for some additional
debug information. Forget that we are in this subspace to ensure
that the next function is output in its own subspace. */
in_section = NULL;
cfun->machine->in_nsubspa = 2;
}
final_end_function ();
if (TARGET_SOM && flag_pic && TREE_PUBLIC (function))
{