S/390: Fix missing .size directives.
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jan 2016 09:55:38 +0000 (09:55 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jan 2016 09:55:38 +0000 (09:55 +0000)
It seems at some point the .size hook was hijacked to emit some
machine-specific directives, and the actual .size directive was
forgotten.  This caused problems for split-stack support, since
linker couldn't scan the function body for non-split-stack calls.

gcc/ChangeLog:

* config/s390/s390.c (s390_asm_declare_function_size): Add code
to actually emit the .size directive.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232669 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/s390/s390.c

index a17a403..0237f57 100644 (file)
@@ -1,3 +1,8 @@
+2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
+
+       * config/s390/s390.c (s390_asm_declare_function_size): Add code
+       to actually emit the .size directive.
+
 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
             Jakub Jelinek  <jakub@redhat.com>
 
index 21a5687..3be64de 100644 (file)
@@ -6834,8 +6834,10 @@ s390_asm_output_function_prefix (FILE *asm_out_file,
 
 void
 s390_asm_declare_function_size (FILE *asm_out_file,
-                               const char *fnname ATTRIBUTE_UNUSED, tree decl)
+                               const char *fnname, tree decl)
 {
+  if (!flag_inhibit_size_directive)
+    ASM_OUTPUT_MEASURED_SIZE (asm_out_file, fnname);
   if (DECL_FUNCTION_SPECIFIC_TARGET (decl) == NULL)
     return;
   fprintf (asm_out_file, "\t.machine pop\n");