aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-07-09 22:00:52 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-07-09 22:00:52 +0000
commit01306727d37b953932a24c24eca99808e26c22e0 (patch)
treea91c5a5656a1533e49fdea2b5d41036e625301d2
parent0f67fa83f2c26552227efc893ae27a910a40e140 (diff)
downloadgcc-01306727d37b953932a24c24eca99808e26c22e0.zip
gcc-01306727d37b953932a24c24eca99808e26c22e0.tar.gz
gcc-01306727d37b953932a24c24eca99808e26c22e0.tar.bz2
re PR fortran/29459 (Spurious warnings about anonymous variables)
PR fortran/29459 * trans-array.c (gfc_trans_array_constructor): Mark offset field with TREE_NO_WARNING. * trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound, stride and size variables with TREE_NO_WARNING. From-SVN: r126496
-rw-r--r--gcc/fortran/ChangeLog8
-rw-r--r--gcc/fortran/trans-array.c1
-rw-r--r--gcc/fortran/trans-decl.c22
3 files changed, 27 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 5f414f7..e1a4942 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/29459
+ * trans-array.c (gfc_trans_array_constructor): Mark offset field
+ with TREE_NO_WARNING.
+ * trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound,
+ stride and size variables with TREE_NO_WARNING.
+
2007-07-09 Steven G. Kargl <kargl@gcc.gnu.org>
* trans-decl.c (set_tree_decl_type_code): Remove function.
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 72bfd38..6a48031 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -1695,6 +1695,7 @@ gfc_trans_array_constructor (gfc_loopinfo * loop, gfc_ss * ss)
desc = ss->data.info.descriptor;
offset = gfc_index_zero_node;
offsetvar = gfc_create_var_np (gfc_array_index_type, "offset");
+ TREE_NO_WARNING (offsetvar) = 1;
TREE_USED (offsetvar) = 0;
gfc_trans_array_constructor_value (&loop->pre, type, desc, c,
&offset, &offsetvar, dynamic);
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 5a7ad254..49aaaf0 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -633,20 +633,31 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
for (dim = 0; dim < GFC_TYPE_ARRAY_RANK (type); dim++)
{
if (GFC_TYPE_ARRAY_LBOUND (type, dim) == NULL_TREE)
- GFC_TYPE_ARRAY_LBOUND (type, dim) = create_index_var ("lbound", nest);
+ {
+ GFC_TYPE_ARRAY_LBOUND (type, dim) = create_index_var ("lbound", nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_LBOUND (type, dim)) = 1;
+ }
/* Don't try to use the unknown bound for assumed shape arrays. */
if (GFC_TYPE_ARRAY_UBOUND (type, dim) == NULL_TREE
&& (sym->as->type != AS_ASSUMED_SIZE
|| dim < GFC_TYPE_ARRAY_RANK (type) - 1))
- GFC_TYPE_ARRAY_UBOUND (type, dim) = create_index_var ("ubound", nest);
+ {
+ GFC_TYPE_ARRAY_UBOUND (type, dim) = create_index_var ("ubound", nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_UBOUND (type, dim)) = 1;
+ }
if (GFC_TYPE_ARRAY_STRIDE (type, dim) == NULL_TREE)
- GFC_TYPE_ARRAY_STRIDE (type, dim) = create_index_var ("stride", nest);
+ {
+ GFC_TYPE_ARRAY_STRIDE (type, dim) = create_index_var ("stride", nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_STRIDE (type, dim)) = 1;
+ }
}
if (GFC_TYPE_ARRAY_OFFSET (type) == NULL_TREE)
{
GFC_TYPE_ARRAY_OFFSET (type) = gfc_create_var_np (gfc_array_index_type,
"offset");
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_OFFSET (type)) = 1;
+
if (nest)
gfc_add_decl_to_parent_function (GFC_TYPE_ARRAY_OFFSET (type));
else
@@ -655,7 +666,10 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
if (GFC_TYPE_ARRAY_SIZE (type) == NULL_TREE
&& sym->as->type != AS_ASSUMED_SIZE)
- GFC_TYPE_ARRAY_SIZE (type) = create_index_var ("size", nest);
+ {
+ GFC_TYPE_ARRAY_SIZE (type) = create_index_var ("size", nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_SIZE (type)) = 1;
+ }
if (POINTER_TYPE_P (type))
{