Commit bd085c20 by Janne Blomqvist

Better error message for malloc() failure

From-SVN: r167863
parent 272dc851
2010-12-15 Janne Blomqvist <jb@gcc.gnu.org> 2010-12-15 Janne Blomqvist <jb@gcc.gnu.org>
* trans.c (gfc_allocate_with_status): Better error message for
malloc() failure.
(gfc_call_realloc): Likewise.
* misc.c (gfc_getmem): Likewise.
2010-12-15 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/28105 PR fortran/28105
* trans.c (gfc_call_malloc): Improve comment. * trans.c (gfc_call_malloc): Improve comment.
(gfc_allocate_with_status): Remove size < 0 check. (gfc_allocate_with_status): Remove size < 0 check.
......
...@@ -36,7 +36,7 @@ gfc_getmem (size_t n) ...@@ -36,7 +36,7 @@ gfc_getmem (size_t n)
p = xmalloc (n); p = xmalloc (n);
if (p == NULL) if (p == NULL)
gfc_fatal_error ("Out of memory-- malloc() failed"); gfc_fatal_error ("Allocation would exceed memory limit -- malloc() failed");
memset (p, 0, n); memset (p, 0, n);
return p; return p;
} }
......
...@@ -590,7 +590,7 @@ gfc_call_malloc (stmtblock_t * block, tree type, tree size) ...@@ -590,7 +590,7 @@ gfc_call_malloc (stmtblock_t * block, tree type, tree size)
if (stat) if (stat)
*stat = LIBERROR_ALLOCATION; *stat = LIBERROR_ALLOCATION;
else else
runtime_error ("Out of memory"); runtime_error ("Allocation would exceed memory limit");
} }
return newmem; return newmem;
} */ } */
...@@ -636,7 +636,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) ...@@ -636,7 +636,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status)
1))))); 1)))));
msg = gfc_build_addr_expr (pchar_type_node, gfc_build_localized_cstring_const msg = gfc_build_addr_expr (pchar_type_node, gfc_build_localized_cstring_const
("Out of memory")); ("Allocation would exceed memory limit"));
tmp = build_call_expr_loc (input_location, tmp = build_call_expr_loc (input_location,
gfor_fndecl_os_error, 1, msg); gfor_fndecl_os_error, 1, msg);
...@@ -1003,7 +1003,7 @@ internal_realloc (void *mem, size_t size) ...@@ -1003,7 +1003,7 @@ internal_realloc (void *mem, size_t size)
{ {
res = realloc (mem, size); res = realloc (mem, size);
if (!res && size != 0) if (!res && size != 0)
_gfortran_os_error ("Out of memory"); _gfortran_os_error ("Allocation would exceed memory limit");
if (size == 0) if (size == 0)
return NULL; return NULL;
...@@ -1036,7 +1036,7 @@ gfc_call_realloc (stmtblock_t * block, tree mem, tree size) ...@@ -1036,7 +1036,7 @@ gfc_call_realloc (stmtblock_t * block, tree mem, tree size)
null_result = fold_build2_loc (input_location, TRUTH_AND_EXPR, boolean_type_node, null_result = fold_build2_loc (input_location, TRUTH_AND_EXPR, boolean_type_node,
null_result, nonzero); null_result, nonzero);
msg = gfc_build_addr_expr (pchar_type_node, gfc_build_localized_cstring_const msg = gfc_build_addr_expr (pchar_type_node, gfc_build_localized_cstring_const
("Out of memory")); ("Allocation would exceed memory limit"));
tmp = fold_build3_loc (input_location, COND_EXPR, void_type_node, tmp = fold_build3_loc (input_location, COND_EXPR, void_type_node,
null_result, null_result,
build_call_expr_loc (input_location, build_call_expr_loc (input_location,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment