trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P on VAR_DECL LBOUND and/or UBOUND, even for -O1.

* trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
	on VAR_DECL LBOUND and/or UBOUND, even for -O1.

From-SVN: r158366
This commit is contained in:
Jakub Jelinek 2010-04-15 10:53:41 +02:00
parent f36ae44d4f
commit e429bb4931
2 changed files with 15 additions and 11 deletions

View File

@ -1,6 +1,11 @@
2010-04-15 Jakub Jelinek <jakub@redhat.com>
* trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
on VAR_DECL LBOUND and/or UBOUND, even for -O1.
2010-04-14 Steven G. Kargl <kargl@gcc.gnu.org>
* fortran/intrinsic.texi: Add the missing specific name of intrinsic
* intrinsic.texi: Add the missing specific name of intrinsic
procedure where the specific name is identical to the generic name.
Fix inconsistent or mismatch in the argument names in intrinsic
procedure descriptions. Add the SCALAR allocatable description to

View File

@ -775,16 +775,15 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
GFC_TYPE_ARRAY_LBOUND (type, dim),
GFC_TYPE_ARRAY_UBOUND (type, dim));
gtype = build_array_type (gtype, rtype);
/* Ensure the bound variables aren't optimized out at -O0. */
if (!optimize)
{
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;
}
/* 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. */
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);