diff options
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/misc.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans.c | 8 |
3 files changed, 12 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 751bd5a..afab687 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,12 @@ 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 * trans.c (gfc_call_malloc): Improve comment. (gfc_allocate_with_status): Remove size < 0 check. diff --git a/gcc/fortran/misc.c b/gcc/fortran/misc.c index 397c872..86e102e 100644 --- a/gcc/fortran/misc.c +++ b/gcc/fortran/misc.c @@ -36,7 +36,7 @@ gfc_getmem (size_t n) p = xmalloc (n); 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); return p; } diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index f3914a1..1fd0dc1 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -590,7 +590,7 @@ gfc_call_malloc (stmtblock_t * block, tree type, tree size) if (stat) *stat = LIBERROR_ALLOCATION; else - runtime_error ("Out of memory"); + runtime_error ("Allocation would exceed memory limit"); } return newmem; } */ @@ -636,7 +636,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) 1))))); 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, gfor_fndecl_os_error, 1, msg); @@ -1003,7 +1003,7 @@ internal_realloc (void *mem, size_t size) { res = realloc (mem, size); if (!res && size != 0) - _gfortran_os_error ("Out of memory"); + _gfortran_os_error ("Allocation would exceed memory limit"); if (size == 0) return NULL; @@ -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, nonzero); 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, null_result, build_call_expr_loc (input_location, |