diff options
author | dfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-05 18:53:23 +0000 |
---|---|---|
committer | dfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-05 18:53:23 +0000 |
commit | 53ee584785ce94d834c0679ed8a6abb6a7c89e99 (patch) | |
tree | 24a5a6c449684bf4a2c0701c5f668e03bd7fa60f /gcc/fortran/constructor.c | |
parent | 8a123d266848163411307d046439a60f4661ce4d (diff) |
gcc/fortran/:
2010-05-05 Daniel Franke <franke.daniel@gmail.com>
PR fortran/24978
* gfortran.h: Removed repeat count from constructor, removed
all usages.
* data.h (gfc_assign_data_value_range): Changed return value from
void to gfc_try.
* data.c (gfc_assign_data_value): Add location to constructor element.
(gfc_assign_data_value_range): Call gfc_assign_data_value()
for each element in range. Return early if an error was generated.
* resolve.c (check_data_variable): Stop early if range assignment
generated an error.
gcc/testsuite/:
2010-05-05 Daniel Franke <franke.daniel@gmail.com>
PR fortran/24978
* gfortran.dg/data_invalid.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159076 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/constructor.c')
-rw-r--r-- | gcc/fortran/constructor.c | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/gcc/fortran/constructor.c b/gcc/fortran/constructor.c index 12bbdc4a5cbc..45228b0c47cf 100644 --- a/gcc/fortran/constructor.c +++ b/gcc/fortran/constructor.c @@ -36,7 +36,6 @@ node_free (splay_tree_value value) gfc_free_iterator (c->iterator, 1); mpz_clear (c->offset); - mpz_clear (c->repeat); gfc_free (c); } @@ -55,7 +54,6 @@ node_copy (splay_tree_node node, void *base) c->n.component = src->n.component; mpz_init_set (c->offset, src->offset); - mpz_init_set (c->repeat, src->repeat); return c; } @@ -80,7 +78,6 @@ gfc_constructor_get (void) c->iterator = NULL; mpz_init_set_si (c->offset, 0); - mpz_init_set_si (c->repeat, 0); return c; } @@ -172,7 +169,6 @@ gfc_constructor_insert_expr (gfc_constructor_base *base, gfc_constructor * gfc_constructor_lookup (gfc_constructor_base base, int offset) { - gfc_constructor *c; splay_tree_node node; if (!base) @@ -182,22 +178,7 @@ gfc_constructor_lookup (gfc_constructor_base base, int offset) if (node) return (gfc_constructor*) node->value; - /* Check if the previous node has a repeat count big enough to - cover the offset looked for. */ - node = splay_tree_predecessor (base, offset); - if (!node) - return NULL; - - c = (gfc_constructor*) node->value; - if (mpz_cmp_si (c->repeat, 1) > 0) - { - if (mpz_get_si (c->offset) + mpz_get_si (c->repeat) <= offset) - c = NULL; - } - else - c = NULL; - - return c; + return NULL; } |