diff options
author | Dominik Vogt <vogt@linux.vnet.ibm.com> | 2015-08-27 07:38:36 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2015-08-27 07:38:36 +0000 |
commit | d26d508afa21f42ac33b0f10e64d78e961171796 (patch) | |
tree | 291ad7b335a6a734ededa6da70bbcb65b1b293ac | |
parent | d8d9efb3480764438e243f6c22843a57b5188185 (diff) | |
download | gcc-d26d508afa21f42ac33b0f10e64d78e961171796.zip gcc-d26d508afa21f42ac33b0f10e64d78e961171796.tar.gz gcc-d26d508afa21f42ac33b0f10e64d78e961171796.tar.bz2 |
S/390: Add emit_barrier() after trap
gcc/ChangeLog
* config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
trap to fix ICE.
gcc/testsuite/ChangeLog
* gcc.target/s390/20150826-1.c: New test.
From-SVN: r227251
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/s390/20150826-1.c | 12 |
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1cfd8e8..e8884c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com> + + * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after + trap to fix ICE. + 2015-08-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert): diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 54b6b7d..cbfc800 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -10351,6 +10351,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/ChangeLog b/gcc/testsuite/ChangeLog index 27be013..15a2a43 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com> + + * gcc.target/s390/20150826-1.c: New test. + 2015-08-26 Renlin Li <renlin.li@arm.com> * gcc.target/aarch64/combine_bfi_1.c: New testcase. 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..1567ced --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/20150826-1.c @@ -0,0 +1,12 @@ +/* Check that emitting a dynamic stack check for sizes below the + current frame size work. */ + +/* { dg-do compile } */ +/* { dg-options "-O3 -mstack-size=32" } */ + +extern int bar(char *); +int foo(void) +{ + char b[100]; + return bar(b); +} /* { dg-warning "An unconditional trap is added" } */ |