OSDN Git Service

* trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
[pf3gnuchains/gcc-fork.git] / gcc / fortran / trans-decl.c
index e24390b..7393f49 100644 (file)
@@ -778,27 +778,13 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
          gtype = build_array_type (gtype, rtype);
          /* Ensure the bound variables aren't optimized out at -O0.
             For -O1 and above they often will be optimized out, but
-            can be tracked by VTA.  Also clear the artificial
-            lbound.N or ubound.N DECL_NAME, so that it doesn't end up
-            in debug info.  */
-         if (lbound && TREE_CODE (lbound) == VAR_DECL
-             && DECL_ARTIFICIAL (lbound) && DECL_IGNORED_P (lbound))
-           {
-             if (DECL_NAME (lbound)
-                 && strstr (IDENTIFIER_POINTER (DECL_NAME (lbound)),
-                            "lbound") != 0)
-               DECL_NAME (lbound) = NULL_TREE;
-             DECL_IGNORED_P (lbound) = 0;
-           }
-         if (ubound && TREE_CODE (ubound) == VAR_DECL
-             && DECL_ARTIFICIAL (ubound) && DECL_IGNORED_P (ubound))
-           {
-             if (DECL_NAME (ubound)
-                 && strstr (IDENTIFIER_POINTER (DECL_NAME (ubound)),
-                            "ubound") != 0)
-               DECL_NAME (ubound) = NULL_TREE;
-             DECL_IGNORED_P (ubound) = 0;
-           }
+            can be tracked by VTA.  */
+         if (GFC_TYPE_ARRAY_LBOUND (type, dim)
+             && TREE_CODE (GFC_TYPE_ARRAY_LBOUND (type, dim)) == VAR_DECL)
+           DECL_IGNORED_P (GFC_TYPE_ARRAY_LBOUND (type, dim)) = 0;
+         if (GFC_TYPE_ARRAY_UBOUND (type, dim)
+             && TREE_CODE (GFC_TYPE_ARRAY_UBOUND (type, dim)) == VAR_DECL)
+           DECL_IGNORED_P (GFC_TYPE_ARRAY_UBOUND (type, dim)) = 0;
        }
       TYPE_NAME (type) = type_decl = build_decl (input_location,
                                                 TYPE_DECL, NULL, gtype);