summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-13 12:38:52 +0000
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-13 12:38:52 +0000
commited87d3a6a1563df30079b1b7655e1033ced5f3e2 (patch)
tree68d3333b75a2a5c6354c4d19bcc53878265911b3
parent56e964d4d38077f376413e39abde77c53b2ad573 (diff)
downloadgcc-ed87d3a6a1563df30079b1b7655e1033ced5f3e2.tar.gz
2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
* config/s390/s390.c (s390_asm_output_function_label): Fix crash caused by bad second argument to warning_at() with -mhotpatch and nested functions (e.g. with gfortran). 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com> * gcc.target/s390/hotpatch-compile-8.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207753 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/s390/s390.c5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/s390/hotpatch-compile-8.c23
4 files changed, 35 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c31875d0903..e0293c5096f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
+
+ * config/s390/s390.c (s390_asm_output_function_label): Fix crash
+ caused by bad second argument to warning_at() with -mhotpatch and
+ nested functions (e.g. with gfortran).
+
2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
* opts.c (option_name): Remove "enabled by default" rider.
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 993ed8434f6..7a79286c9b4 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -5305,9 +5305,8 @@ s390_asm_output_function_label (FILE *asm_out_file, const char *fname,
if (hotpatch_trampoline_halfwords >= 0
&& decl_function_context (decl) != NULL_TREE)
{
- warning_at (0, DECL_SOURCE_LOCATION (decl),
- "hotpatch_prologue is not compatible with nested"
- " function");
+ warning_at (DECL_SOURCE_LOCATION (decl), OPT_mhotpatch,
+ "hotpatching is not compatible with nested functions");
hotpatch_trampoline_halfwords = -1;
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 803207cfc64..392986f4f8f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
+
+ * gcc.target/s390/hotpatch-compile-8.c: New test.
+
2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
* gcc.dg/pr59605.c: Convert to a compile test. Protect MAX_COPY
diff --git a/gcc/testsuite/gcc.target/s390/hotpatch-compile-8.c b/gcc/testsuite/gcc.target/s390/hotpatch-compile-8.c
new file mode 100644
index 00000000000..489fc5dd9f0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/hotpatch-compile-8.c
@@ -0,0 +1,23 @@
+/* Functional tests for the function hotpatching feature. */
+
+/* { dg-do run } */
+/* { dg-options "-O3 -mzarch -mhotpatch" } */
+
+#include <stdio.h>
+
+int hp1(void)
+{
+ int nested1(void) /* { dg-warning "hotpatching is not compatible with nested functions" } */
+ { return 1; }
+
+ __attribute__ ((hotpatch))
+ int nested2(void) /* { dg-warning "hotpatching is not compatible with nested functions" } */
+ { return 1; }
+
+ return nested1() - nested2();
+}
+
+int main (void)
+{
+ return hp1();
+}