summaryrefslogtreecommitdiffstats
path: root/libgfortran/intrinsics/pack_generic.c
diff options
context:
space:
mode:
authortkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-29 20:01:45 +0000
committertkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-29 20:01:45 +0000
commit5a037dbd1fa96857356ea9450dbb279236a4ccbd (patch)
tree05a77906359d7bd336aba3bd8c097b7414e1f63a /libgfortran/intrinsics/pack_generic.c
parent4047f0ad54131fd8873b84689a613687398056c6 (diff)
downloadppe42-gcc-5a037dbd1fa96857356ea9450dbb279236a4ccbd.tar.gz
ppe42-gcc-5a037dbd1fa96857356ea9450dbb279236a4ccbd.zip
2007-07-29 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32858 PR libfortran/30814 * configure.ac: Added checks for presence of stdio.h and stdarg.h. Test presence of vsnprintf(). * configure: Regenerated. * config.h.in: Regenerated. * libgfortran.h: Include <stdio.h>. Add printf attribute to prototype of runtime_error. Remove prototype for st_sprintf. Add prototype for st_vprintf. * runtime/main.c (store_exec_path): Replace st_sprintf by sprintf. * runtime/error.c (st_sprintf): Remove. (runtime_error): Rewrite as a variadic function. Call st_vprintf(). * intrinsics/pack_generic.c: Output extents of LHS and RHS for bounds error. * io/open.c (new_unit): Replace st_sprintf by sprintf. * io/list_read.c (convert_integer): Likewise. (parse_repeat): Likewise. (read_logical): Likewise. (read_character): Likewise. (parse_real): Likewise. (read_real): Likewise. (check_type): Likewise. (nml_parse_qualifyer): Likewise. (nml_read_obj): Likewise. (nml_get_ojb_data): Likewise. * io/unix.c (init_error_stream): Remove. (tempfile): Replace st_sprintf by sprintf. (st_vprintf): New function. (st_printf): Rewrite to call st_vprintf. * io/transfer.c (require_type): Replace st_sprintf by sprintf. * io/format.c (format_error): Likewise. * io/write.c (nml_write_obj): Likewise. 2007-07-29 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/32858 PR libfortran/30814 * gfortran.dg/pack_bounds_1.f90: Adjust to new error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127049 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/intrinsics/pack_generic.c')
-rw-r--r--libgfortran/intrinsics/pack_generic.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libgfortran/intrinsics/pack_generic.c b/libgfortran/intrinsics/pack_generic.c
index 104c59f6e4d..a1998ad580b 100644
--- a/libgfortran/intrinsics/pack_generic.c
+++ b/libgfortran/intrinsics/pack_generic.c
@@ -217,9 +217,13 @@ pack_internal (gfc_array_char *ret, const gfc_array_char *array,
else
{
/* We come here because of range checking. */
- if (total != ret->dim[0].ubound + 1 - ret->dim[0].lbound)
- runtime_error ("Incorrect extent in return value of"
- " PACK intrinsic");
+ index_type ret_extent;
+
+ ret_extent = ret->dim[0].ubound + 1 - ret->dim[0].lbound;
+ if (total != ret_extent)
+ runtime_error ("Incorrect extent in return value of PACK intrinsic;"
+ " is %ld, should be %ld", (long int) total,
+ (long int) ret_extent);
}
}
OpenPOWER on IntegriCloud