Commit 13f5d5e0 by Claudiu Zissulescu Committed by Claudiu Zissulescu

Don't split call from its call arg location.

gcc/
2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
	and its corresponding call arg location note.

testsuite/
2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/loop-5.cpp: New test.

From-SVN: r254998
parent 6fe5e235
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
* cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
and its corresponding call arg location note.
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
Andrew Burgess <andrew.burgess@embecosm.com>
* config/arc/arc-protos.h (arc_compute_frame_size): Delete
......@@ -1626,6 +1626,11 @@ force_nonfallthru_and_redirect (edge e, basic_block target, rtx jump_label)
else
new_head = BB_END (e->src);
new_head = NEXT_INSN (new_head);
/* Make sure we don't split a call and its corresponding
CALL_ARG_LOCATION note. */
if (new_head && NOTE_P (new_head)
&& NOTE_KIND (new_head) == NOTE_INSN_CALL_ARG_LOCATION)
new_head = NEXT_INSN (new_head);
jump_block = create_basic_block (new_head, NULL, e->src);
jump_block->count = count;
......
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
* gcc.target/arc/loop-5.cpp: New test.
2017-11-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/83047
......
/* { dg-do compile } */
/* { dg-options "-O2 -g" } */
/* Check if gcc splits a call from its CALL_ARG_LOCATION note. If so,
we get an ICE in dwarf2out_var_location. */
typedef void Trans_NS_std_new_handler();
void *operator new(unsigned)
{
void *p;
while (__builtin_expect(p == 0, false))
{
Trans_NS_std_new_handler handler;
try {
handler();
} catch (int) {
}
}
return (void*) 0xdead;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment