re PR target/79494 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2330)
PR target/79494 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call make_reg_eh_region_note_nothrow_nononlocal on call_insn. * config/rs6000/rs6000.c: Include except.h. (rs6000_expand_split_stack_prologue): Call make_reg_eh_region_note_nothrow_nononlocal on the call insn. * gcc.dg/pr79494.c: New test. From-SVN: r245629
This commit is contained in:
parent
03108bad95
commit
2f3ec56d60
|
@ -1,3 +1,12 @@
|
|||
2017-02-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/79494
|
||||
* config/i386/i386.c (ix86_expand_split_stack_prologue): Call
|
||||
make_reg_eh_region_note_nothrow_nononlocal on call_insn.
|
||||
* config/rs6000/rs6000.c: Include except.h.
|
||||
(rs6000_expand_split_stack_prologue): Call
|
||||
make_reg_eh_region_note_nothrow_nononlocal on the call insn.
|
||||
|
||||
2017-02-21 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR lto/79579
|
||||
|
|
|
@ -15057,6 +15057,8 @@ ix86_expand_split_stack_prologue (void)
|
|||
add_function_usage_to (call_insn, call_fusage);
|
||||
if (!TARGET_64BIT)
|
||||
add_reg_note (call_insn, REG_ARGS_SIZE, GEN_INT (0));
|
||||
/* Indicate that this function can't jump to non-local gotos. */
|
||||
make_reg_eh_region_note_nothrow_nononlocal (as_a <rtx_insn *> (call_insn));
|
||||
|
||||
/* In order to make call/return prediction work right, we now need
|
||||
to execute a return instruction. See
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
#include "builtins.h"
|
||||
#include "context.h"
|
||||
#include "tree-pass.h"
|
||||
#include "except.h"
|
||||
#if TARGET_XCOFF
|
||||
#include "xcoffout.h" /* get declarations of xcoff_*_section_name */
|
||||
#endif
|
||||
|
@ -31680,6 +31681,8 @@ rs6000_expand_split_stack_prologue (void)
|
|||
split_stack_return use r0. */
|
||||
use_reg (&call_fusage, r0);
|
||||
add_function_usage_to (insn, call_fusage);
|
||||
/* Indicate that this function can't jump to non-local gotos. */
|
||||
make_reg_eh_region_note_nothrow_nononlocal (insn);
|
||||
emit_insn (gen_frame_load (r0, r1, info->lr_save_offset));
|
||||
insn = emit_move_insn (lr, r0);
|
||||
add_reg_note (insn, REG_CFA_RESTORE, lr);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2017-02-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/79494
|
||||
* gcc.dg/pr79494.c: New test.
|
||||
|
||||
2017-02-21 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* gcc.dg/plugin/diagnostic-test-expressions-1.c: Add -Wno-psabi
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
/* PR target/79494 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target split_stack } */
|
||||
/* { dg-options "-O2 -fsplit-stack -g" } */
|
||||
|
||||
void
|
||||
foo (int a)
|
||||
{
|
||||
__label__ lab;
|
||||
__attribute__((noinline, noclone)) void bar (int b)
|
||||
{
|
||||
switch (b)
|
||||
{
|
||||
case 1:
|
||||
goto lab;
|
||||
case 2:
|
||||
goto lab;
|
||||
}
|
||||
}
|
||||
bar (a);
|
||||
lab:;
|
||||
}
|
Loading…
Reference in New Issue