Avoid using create_tmp_var for static decls.
authorBernd Schmidt <bernds@codesourcery.com>
Wed, 9 Jul 2014 10:34:40 +0000 (10:34 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 9 Jul 2014 10:34:40 +0000 (10:34 +0000)
* trans-array.c (gfc_build_constant_array_constructor): Build a
static decl manually.
* trans-decl.c (create_main_function): Likewise.

From-SVN: r212388

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-decl.c

index 4d9f0c3ce26643f559807613b4d8d2129fc8b851..daf0040fb7cc15b61d4912c1fc639ee7437d2fdb 100644 (file)
@@ -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
index 0e018991c0a0801c8313301acb32605bf2d3facb..c30318a7c2012a64eb036b88951df4c492050f3b 100644 (file)
@@ -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;
 }
index 93c59b11b669f900efa8a52f92a3baf2899187a0..00ac010878a68d8b0c28bed2fdc8146f5b75a2bb 100644 (file)
@@ -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,