mirror of git://gcc.gnu.org/git/gcc.git
Fix line number data for PIC register setup code.
2013-10-27 Tom de Vries <tom@codesourcery.com> * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn. Don't commit insertions after NOTE_INSN_FUNCTION_BEG. * gcc.target/arm/require-pic-register-loc.c: New test. From-SVN: r204112
This commit is contained in:
parent
3c7ac4cbe7
commit
e40191f1e0
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-10-27 Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
|
* cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
|
||||||
|
Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
|
||||||
|
|
||||||
2013-10-27 Oleg Endo <olegendo@gcc.gnu.org>
|
2013-10-27 Oleg Endo <olegendo@gcc.gnu.org>
|
||||||
|
|
||||||
* config/sh/sh.c (MSW, LSW): Move and rename macros to...
|
* config/sh/sh.c (MSW, LSW): Move and rename macros to...
|
||||||
|
|
|
||||||
|
|
@ -4789,14 +4789,18 @@ gimple_expand_cfg (void)
|
||||||
if (e->insns.r)
|
if (e->insns.r)
|
||||||
{
|
{
|
||||||
rebuild_jump_labels_chain (e->insns.r);
|
rebuild_jump_labels_chain (e->insns.r);
|
||||||
/* Avoid putting insns before parm_birth_insn. */
|
/* Put insns after parm birth, but before
|
||||||
|
NOTE_INSNS_FUNCTION_BEG. */
|
||||||
if (e->src == ENTRY_BLOCK_PTR
|
if (e->src == ENTRY_BLOCK_PTR
|
||||||
&& single_succ_p (ENTRY_BLOCK_PTR)
|
&& single_succ_p (ENTRY_BLOCK_PTR))
|
||||||
&& parm_birth_insn)
|
|
||||||
{
|
{
|
||||||
rtx insns = e->insns.r;
|
rtx insns = e->insns.r;
|
||||||
e->insns.r = NULL_RTX;
|
e->insns.r = NULL_RTX;
|
||||||
emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
|
if (NOTE_P (parm_birth_insn)
|
||||||
|
&& NOTE_KIND (parm_birth_insn) == NOTE_INSN_FUNCTION_BEG)
|
||||||
|
emit_insn_before_noloc (insns, parm_birth_insn, e->dest);
|
||||||
|
else
|
||||||
|
emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
commit_one_edge_insertion (e);
|
commit_one_edge_insertion (e);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
|
2013-10-27 Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
|
* gcc.target/arm/require-pic-register-loc.c: New test.
|
||||||
|
|
||||||
2013-10-27 Uros Bizjak <ubizjak@gmail.com>
|
2013-10-27 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
PR target/58679
|
PR target/58679
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-g -fPIC" } */
|
||||||
|
|
||||||
|
void *v;
|
||||||
|
void a (void *x) { }
|
||||||
|
void b (void) { }
|
||||||
|
/* line 7. */
|
||||||
|
int /* line 8. */
|
||||||
|
main (int argc) /* line 9. */
|
||||||
|
{ /* line 10. */
|
||||||
|
if (argc == 12345) /* line 11. */
|
||||||
|
{
|
||||||
|
a (v);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
b ();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* { dg-final { scan-assembler-not "\.loc 1 7 0" } } */
|
||||||
|
/* { dg-final { scan-assembler-not "\.loc 1 8 0" } } */
|
||||||
|
/* { dg-final { scan-assembler-not "\.loc 1 9 0" } } */
|
||||||
|
|
||||||
|
/* The loc at the start of the prologue. */
|
||||||
|
/* { dg-final { scan-assembler-times "\.loc 1 10 0" 1 } } */
|
||||||
|
|
||||||
|
/* The loc at the end of the prologue, with the first user line. */
|
||||||
|
/* { dg-final { scan-assembler-times "\.loc 1 11 0" 1 } } */
|
||||||
Loading…
Reference in New Issue