re PR bootstrap/48216 (IRIX 6 Ada bootstrap broken: gnu_decl uninitialized in gcc...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 21 Mar 2011 18:19:47 +0000 (18:19 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 21 Mar 2011 18:19:47 +0000 (18:19 +0000)
PR bootstrap/48216
* gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.

From-SVN: r171254

gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c

index 3ddcda5ad491ac871ea105e44de7937cc9e472dd..b2d88618040114dbe194ed6736c562dbadd83018 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR bootstrap/48216
+       * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
+
 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
index ab571ab7b6c737f9d87a986c9e6d4a98144a5bfb..2f9b2ecec23621be6b483d57d4cf9e7d5d2adf6a 100644 (file)
@@ -6006,7 +6006,6 @@ elaborate_expression_1 (tree gnu_expr, Entity_Id gnat_entity, tree gnu_name,
 {
   const bool expr_global_p = Is_Public (gnat_entity) || global_bindings_p ();
   bool expr_variable_p, use_variable;
-  tree gnu_decl;
 
   /* In most cases, we won't see a naked FIELD_DECL because a discriminant
      reference will have been replaced with a COMPONENT_REF when the type
@@ -6071,15 +6070,17 @@ elaborate_expression_1 (tree gnu_expr, Entity_Id gnat_entity, tree gnu_name,
 
   /* Now create it, possibly only for debugging purposes.  */
   if (use_variable || need_debug)
-    gnu_decl
-      = create_var_decl (create_concat_name (gnat_entity,
-                                            IDENTIFIER_POINTER (gnu_name)),
-                        NULL_TREE, TREE_TYPE (gnu_expr), gnu_expr,
-                        !need_debug, Is_Public (gnat_entity),
-                        !definition, expr_global_p, NULL, gnat_entity);
-
-  if (use_variable)
-    return gnu_decl;
+    {
+      tree gnu_decl
+       = create_var_decl (create_concat_name (gnat_entity,
+                                              IDENTIFIER_POINTER (gnu_name)),
+                          NULL_TREE, TREE_TYPE (gnu_expr), gnu_expr,
+                          !need_debug, Is_Public (gnat_entity),
+                          !definition, expr_global_p, NULL, gnat_entity);
+
+      if (use_variable)
+       return gnu_decl;
+    }
 
   return expr_variable_p ? gnat_save_expr (gnu_expr) : gnu_expr;
 }