Commit 3078848e by Tobias Burnus Committed by Tobias Burnus

re PR fortran/32124 (Execution stops with stat= in ALLOCATE)

2007-05-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32124
	* runtime/memory.c (allocate_size): Use ERROR_ALLOCATION.
	(allocate,allocate64): Use stat variable if present.

From-SVN: r125133
parent 6124296b
2007-05-28 Tobias Burnus <burnus@net-b.de>
PR fortran/32124
* runtime/memory.c (allocate_size): Use ERROR_ALLOCATION.
(allocate,allocate64): Use stat variable if present.
2007-05-27 Janne Blomqvist <jb@gcc.gnu.org> 2007-05-27 Janne Blomqvist <jb@gcc.gnu.org>
* runtime/string.c (compare0): Use gfc_charlen_type instead of * runtime/string.c (compare0): Use gfc_charlen_type instead of
......
...@@ -144,7 +144,7 @@ allocate_size (size_t size, GFC_INTEGER_4 * stat) ...@@ -144,7 +144,7 @@ allocate_size (size_t size, GFC_INTEGER_4 * stat)
{ {
if (stat) if (stat)
{ {
*stat = 1; *stat = ERROR_ALLOCATION;
return newmem; return newmem;
} }
else else
...@@ -164,8 +164,16 @@ void * ...@@ -164,8 +164,16 @@ void *
allocate (GFC_INTEGER_4 size, GFC_INTEGER_4 * stat) allocate (GFC_INTEGER_4 size, GFC_INTEGER_4 * stat)
{ {
if (size < 0) if (size < 0)
runtime_error ("Attempt to allocate negative amount of memory. " {
"Possible integer overflow"); if (stat)
{
*stat = ERROR_ALLOCATION;
return NULL;
}
else
runtime_error ("Attempt to allocate negative amount of memory. "
"Possible integer overflow");
}
return allocate_size ((size_t) size, stat); return allocate_size ((size_t) size, stat);
} }
...@@ -177,8 +185,16 @@ void * ...@@ -177,8 +185,16 @@ void *
allocate64 (GFC_INTEGER_8 size, GFC_INTEGER_4 * stat) allocate64 (GFC_INTEGER_8 size, GFC_INTEGER_4 * stat)
{ {
if (size < 0) if (size < 0)
runtime_error ("ALLOCATE64: Attempt to allocate negative amount of " {
"memory. Possible integer overflow"); if (stat)
{
*stat = ERROR_ALLOCATION;
return NULL;
}
else
runtime_error ("ALLOCATE64: Attempt to allocate negative amount of "
"memory. Possible integer overflow");
}
return allocate_size ((size_t) size, stat); return allocate_size ((size_t) size, stat);
} }
......
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