]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-nested.c (get_nonlocal_vla_type): If not optimizing, call note_nonlocal_vla_type...
authorJakub Jelinek <jakub@redhat.com>
Sun, 26 Apr 2009 18:47:54 +0000 (20:47 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sun, 26 Apr 2009 18:47:54 +0000 (20:47 +0200)
commit77f2a97066c469e868d6518e96c353f71aa28813
tree2115d30581d9d9182f2b8de566ba08dcd3742e3b
parent4561e242764a1d0e8f260a432dea56d429e6ae3e
tree-nested.c (get_nonlocal_vla_type): If not optimizing, call note_nonlocal_vla_type for nonlocal VLAs.

* tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
note_nonlocal_vla_type for nonlocal VLAs.
(note_nonlocal_vla_type, note_nonlocal_block_vlas,
contains_remapped_vars, remap_vla_decls): New functions.
(convert_nonlocal_reference_stmt): If not optimizing, call
note_nonlocal_block_vlas on GIMPLE_BIND block vars.
(nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
if it wasn't found in var_map.
(finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
declare_vars.
* gimplify.c (nonlocal_vlas): New variable.
(gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
referenced VLAs.
(gimplify_body): Create and destroy nonlocal_vlas.

* trans-decl.c: Include pointer-set.h.
(nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
(gfc_nonlocal_dummy_array_decl): New function.
(gfc_get_symbol_decl): Call it for non-local dummy args with saved
descriptor.
(gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
(gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
chain it to outermost block's vars, destroy it afterwards.
* Make-lang.in (trans-decl.o): Depend on pointer-set.h.

From-SVN: r146810
gcc/ChangeLog
gcc/fortran/Make-lang.in
gcc/fortran/trans-decl.c
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/tree-nested.c