diff options
author | tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-03 16:18:46 +0000 |
---|---|---|
committer | tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-03 16:18:46 +0000 |
commit | 8a92488f1a9238839c542dd77303db2032378c42 (patch) | |
tree | 2053327438b596f44709a80d2095a44b82bdb8f7 /gcc/fortran/trans-decl.c | |
parent | 560af66a9aba07bb656034b5bf121d46f5b6026f (diff) | |
download | ppe42-gcc-8a92488f1a9238839c542dd77303db2032378c42.tar.gz ppe42-gcc-8a92488f1a9238839c542dd77303db2032378c42.zip |
2006-03-03 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/25031
* trans-array.h: Adjust gfc_array_allocate prototype.
* trans-array.c (gfc_array_allocate): Change type of
gfc_array_allocatate to bool. Function returns true if
it operates on an array. Change second argument to gfc_expr.
Find last reference in chain.
If the function operates on an allocatable array, emit call to
allocate_array() or allocate64_array().
* trans-stmt.c (gfc_trans_allocate): Code to follow to last
reference has been moved to gfc_array_allocate.
* trans.h: Add declaration for gfor_fndecl_allocate_array and
gfor_fndecl_allocate64_array.
(gfc_build_builtin_function_decls): Add gfor_fndecl_allocate_array
and gfor_fndecl_allocate64_array.
2006-03-03 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/25031
* runtime/memory.c: Adjust copyright years.
(allocate_array): New function.
(allocate64_array): New function.
* libgfortran.h (error_codes): Add ERROR_ALLOCATION.
2006-03-03 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/25031
* multiple_allocation_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111677 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 47911ff1455..41f5abe831f 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -80,6 +80,8 @@ tree gfor_fndecl_internal_realloc64; tree gfor_fndecl_internal_free; tree gfor_fndecl_allocate; tree gfor_fndecl_allocate64; +tree gfor_fndecl_allocate_array; +tree gfor_fndecl_allocate64_array; tree gfor_fndecl_deallocate; tree gfor_fndecl_pause_numeric; tree gfor_fndecl_pause_string; @@ -2193,6 +2195,16 @@ gfc_build_builtin_function_decls (void) void_type_node, 2, ppvoid_type_node, gfc_int8_type_node); + gfor_fndecl_allocate_array = + gfc_build_library_function_decl (get_identifier (PREFIX("allocate_array")), + void_type_node, 2, ppvoid_type_node, + gfc_int4_type_node); + + gfor_fndecl_allocate64_array = + gfc_build_library_function_decl (get_identifier (PREFIX("allocate64_array")), + void_type_node, 2, ppvoid_type_node, + gfc_int8_type_node); + gfor_fndecl_deallocate = gfc_build_library_function_decl (get_identifier (PREFIX("deallocate")), void_type_node, 2, ppvoid_type_node, |