summaryrefslogtreecommitdiff
path: root/libgfortran/runtime
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2012-03-25 08:48:49 +0300
committerJanne Blomqvist <jb@gcc.gnu.org>2012-03-25 08:48:49 +0300
commitf4471acbe3a0e4aee9aa8144898c593ff4e7b595 (patch)
tree685cb6240f35fb0058480526772367ef510d1cba /libgfortran/runtime
parent0651865170b953c49b8acce8ad6de0143c00fc06 (diff)
downloadgcc-f4471acbe3a0e4aee9aa8144898c593ff4e7b595.tar.gz
Use calloc instead of malloc and memset.
2012-03-25 Janne Blomqvist <jb@gcc.gnu.org> * runtime/memory.c (xcalloc): New function. * libgfortran.h (xcalloc): New prototype. * io/list_read.c (push_char): Use xcalloc instead of get_mem and memset. (l_push_char): Likewise. * io/unit.c (insert_unit): Likewise. (get_internal_unit): Likewise. * io/unix.c (open_internal): Likewise. (open_internal4): Likewise. (fd_to_stream): Likewise. From-SVN: r185773
Diffstat (limited to 'libgfortran/runtime')
-rw-r--r--libgfortran/runtime/memory.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/libgfortran/runtime/memory.c b/libgfortran/runtime/memory.c
index a26d9e59efa..044a115c1f5 100644
--- a/libgfortran/runtime/memory.c
+++ b/libgfortran/runtime/memory.c
@@ -1,5 +1,6 @@
/* Memory management routines.
- Copyright 2002, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ Copyright 2002, 2005, 2006, 2007, 2009, 2010, 2012
+ Free Software Foundation, Inc.
Contributed by Paul Brook <paul@nowt.org>
This file is part of the GNU Fortran runtime library (libgfortran).
@@ -59,3 +60,19 @@ internal_malloc_size (size_t size)
return get_mem (size);
}
+
+
+/* calloc wrapper that aborts on error. */
+
+void *
+xcalloc (size_t nmemb, size_t size)
+{
+ if (nmemb * size == 0)
+ nmemb = size = 1;
+
+ void *p = calloc (nmemb, size);
+ if (!p)
+ os_error ("Allocating cleared memory failed");
+
+ return p;
+}