Avoid using create_tmp_var for static decls.
* trans-array.c (gfc_build_constant_array_constructor): Build a static decl manually. * trans-decl.c (create_main_function): Likewise. From-SVN: r212388
This commit is contained in:
parent
7bb7b83693
commit
059345ce40
3 changed files with 17 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
|
||||
|
||||
* trans-array.c (gfc_build_constant_array_constructor): Build a
|
||||
static decl manually.
|
||||
* trans-decl.c (create_main_function): Likewise.
|
||||
|
||||
2014-07-07 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/61459
|
||||
|
|
|
@ -2045,11 +2045,15 @@ gfc_build_constant_array_constructor (gfc_expr * expr, tree type)
|
|||
TREE_CONSTANT (init) = 1;
|
||||
TREE_STATIC (init) = 1;
|
||||
|
||||
tmp = gfc_create_var (tmptype, "A");
|
||||
tmp = build_decl (input_location, VAR_DECL, create_tmp_var_name ("A"),
|
||||
tmptype);
|
||||
DECL_ARTIFICIAL (tmp) = 1;
|
||||
DECL_IGNORED_P (tmp) = 1;
|
||||
TREE_STATIC (tmp) = 1;
|
||||
TREE_CONSTANT (tmp) = 1;
|
||||
TREE_READONLY (tmp) = 1;
|
||||
DECL_INITIAL (tmp) = init;
|
||||
pushdecl (tmp);
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
|
|
@ -5383,11 +5383,16 @@ create_main_function (tree fndecl)
|
|||
TREE_STATIC (array) = 1;
|
||||
|
||||
/* Create a static variable to hold the jump table. */
|
||||
var = gfc_create_var (array_type, "options");
|
||||
var = build_decl (input_location, VAR_DECL,
|
||||
create_tmp_var_name ("options"),
|
||||
array_type);
|
||||
DECL_ARTIFICIAL (var) = 1;
|
||||
DECL_IGNORED_P (var) = 1;
|
||||
TREE_CONSTANT (var) = 1;
|
||||
TREE_STATIC (var) = 1;
|
||||
TREE_READONLY (var) = 1;
|
||||
DECL_INITIAL (var) = array;
|
||||
pushdecl (var);
|
||||
var = gfc_build_addr_expr (build_pointer_type (integer_type_node), var);
|
||||
|
||||
tmp = build_call_expr_loc (input_location,
|
||||
|
|
Loading…
Add table
Reference in a new issue