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>
|
2017-02-21 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
PR lto/79579
|
PR lto/79579
|
||||||
|
|
|
@ -15057,6 +15057,8 @@ ix86_expand_split_stack_prologue (void)
|
||||||
add_function_usage_to (call_insn, call_fusage);
|
add_function_usage_to (call_insn, call_fusage);
|
||||||
if (!TARGET_64BIT)
|
if (!TARGET_64BIT)
|
||||||
add_reg_note (call_insn, REG_ARGS_SIZE, GEN_INT (0));
|
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
|
/* In order to make call/return prediction work right, we now need
|
||||||
to execute a return instruction. See
|
to execute a return instruction. See
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
#include "builtins.h"
|
#include "builtins.h"
|
||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "tree-pass.h"
|
#include "tree-pass.h"
|
||||||
|
#include "except.h"
|
||||||
#if TARGET_XCOFF
|
#if TARGET_XCOFF
|
||||||
#include "xcoffout.h" /* get declarations of xcoff_*_section_name */
|
#include "xcoffout.h" /* get declarations of xcoff_*_section_name */
|
||||||
#endif
|
#endif
|
||||||
|
@ -31680,6 +31681,8 @@ rs6000_expand_split_stack_prologue (void)
|
||||||
split_stack_return use r0. */
|
split_stack_return use r0. */
|
||||||
use_reg (&call_fusage, r0);
|
use_reg (&call_fusage, r0);
|
||||||
add_function_usage_to (insn, call_fusage);
|
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));
|
emit_insn (gen_frame_load (r0, r1, info->lr_save_offset));
|
||||||
insn = emit_move_insn (lr, r0);
|
insn = emit_move_insn (lr, r0);
|
||||||
add_reg_note (insn, REG_CFA_RESTORE, lr);
|
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>
|
2017-02-21 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
|
|
||||||
* gcc.dg/plugin/diagnostic-test-expressions-1.c: Add -Wno-psabi
|
* 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