aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2018-02-22 18:14:21 +0200
committerJanne Blomqvist <jb@gcc.gnu.org>2018-02-22 18:14:21 +0200
commit6cc22cf4dfcfecda589cd0fc023abbeff7779279 (patch)
tree911979f9a93cb44340a7cd0c77ee209e85268f8a /libgfortran
parent58730d1899b1deb723c0b13984fda1768ae73408 (diff)
PR 78534, 84509 Fix libgfortran API for PAUSE statement
This patch changes the libgfortran API for the PAUSE statement. By passing a GFC_INTEGER_8 it handles -fdefault-integer-8, and for the character version passing the length as a size_t. Regtested on x86_64-pc-linux-gnu, committed as obvious. gcc/fortran/ChangeLog: 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org> PR 78534 PR 84509 * trans-decl.c (gfc_build_builtin_function_decls): Pass gfc_int8_type node to pause_numeric, size_type_node to pause_string. * trans-stmt.c (gfc_trans_pause): Likewise. libgfortran/ChangeLog: 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org> PR 78534 PR 84509 * runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8 argument. (pause_string): Modify to take size_t character length argument. From-SVN: r257903
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog8
-rw-r--r--libgfortran/runtime/pause.c10
2 files changed, 13 insertions, 5 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 4db4968e209..0ef7e2cea98 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,5 +1,13 @@
2018-02-22 Janne Blomqvist <jb@gcc.gnu.org>
+ PR 78534
+ PR 84509
+ * runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8
+ argument.
+ (pause_string): Modify to take size_t character length argument.
+
+2018-02-22 Janne Blomqvist <jb@gcc.gnu.org>
+
* libgfortran.h (stop_string): Use size_t for character length.
* runtime/stop.c (stop_string): Likewise.
(error_stop_string): Likewise.
diff --git a/libgfortran/runtime/pause.c b/libgfortran/runtime/pause.c
index 25690d8319e..3b4c17b8932 100644
--- a/libgfortran/runtime/pause.c
+++ b/libgfortran/runtime/pause.c
@@ -46,23 +46,23 @@ do_pause (void)
/* A numeric PAUSE statement. */
-extern void pause_numeric (GFC_INTEGER_4);
+extern void pause_numeric (GFC_INTEGER_8);
export_proto(pause_numeric);
void
-pause_numeric (GFC_INTEGER_4 code)
+pause_numeric (GFC_INTEGER_8 code)
{
- st_printf ("PAUSE %d\n", (int) code);
+ st_printf ("PAUSE %ld\n", (long) code);
do_pause ();
}
/* A character string or blank PAUSE statement. */
-extern void pause_string (char *string, GFC_INTEGER_4 len);
+extern void pause_string (char *string, size_t len);
export_proto(pause_string);
void
-pause_string (char *string, GFC_INTEGER_4 len)
+pause_string (char *string, size_t len)
{
estr_write ("PAUSE ");
ssize_t w = write (STDERR_FILENO, string, len);