From ec6b88cd51234d138bd559271def086156fcae07 Mon Sep 17 00:00:00 2001 From: Dominik Vogt Date: Wed, 26 Aug 2015 14:37:00 +0100 Subject: [PATCH] s390: Add emit_barrier() after trap. --- gcc/config/s390/s390.c | 1 + gcc/testsuite/gcc.target/s390/20150826-1.c | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 gcc/testsuite/gcc.target/s390/20150826-1.c diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 6366691..5951598 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -10491,6 +10491,7 @@ s390_emit_prologue (void) current_function_name(), cfun_frame_layout.frame_size, s390_stack_size); emit_insn (gen_trap ()); + emit_barrier (); } else { diff --git a/gcc/testsuite/gcc.target/s390/20150826-1.c b/gcc/testsuite/gcc.target/s390/20150826-1.c new file mode 100644 index 0000000..830772f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/20150826-1.c @@ -0,0 +1,11 @@ +/* Check that -mstack-size=32 does not cause an ICE. */ + +/* { dg-do compile } */ +/* { dg-options "-O3 -mstack-size=32 -Wno-pointer-to-int-cast" } */ + +extern char* bar(char *); +int foo(void) +{ + char b[100]; + return (int)bar(b); +} /* { dg-warning "An unconditional trap is added" } */ -- 2.3.0