diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-09-17 12:13:12 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-09-17 12:13:12 +0200 |
commit | c6423ef3e00856eb88fb7fceb0f08b6068ddd926 (patch) | |
tree | 339fefefa19c741b32e5ef9e8249c05755344a1c /gcc/fortran | |
parent | 3b9ee1cc734a78aaf343eea4e8a748cbf4a95510 (diff) | |
download | gcc-c6423ef3e00856eb88fb7fceb0f08b6068ddd926.zip gcc-c6423ef3e00856eb88fb7fceb0f08b6068ddd926.tar.gz gcc-c6423ef3e00856eb88fb7fceb0f08b6068ddd926.tar.bz2 |
error.c (error_print): Move increment out of the assert.
2012-09-17 Tobias Burnus <burnus@net-b.de>
* error.c (error_print): Move increment out of the assert.
* interface.c (gfc_compare_derived_types): Add assert.
(get_expr_storage_size): Remove always-true logical condition.
* resolve.c (resolve_allocate_expr): Fix looping logic.
* target-memory.c (gfc_target_expr_size): Add assert.
From-SVN: r191381
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/error.c | 3 | ||||
-rw-r--r-- | gcc/fortran/interface.c | 8 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 2 | ||||
-rw-r--r-- | gcc/fortran/target-memory.c | 5 |
5 files changed, 19 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index cc97cac..b2950f7 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2012-09-17 Tobias Burnus <burnus@net-b.de> + + * error.c (error_print): Move increment out of the assert. + * interface.c (gfc_compare_derived_types): Add assert. + (get_expr_storage_size): Remove always-true logical condition. + * resolve.c (resolve_allocate_expr): Fix looping logic. + * target-memory.c (gfc_target_expr_size): Add assert. + 2012-09-16 Janus Weil <janus@gcc.gnu.org> PR fortran/54594 diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c index 64b9357..4b06156 100644 --- a/gcc/fortran/error.c +++ b/gcc/fortran/error.c @@ -544,7 +544,8 @@ error_print (const char *type, const char *format0, va_list argp) gcc_assert (pos >= 0); while (ISDIGIT(*format)) format++; - gcc_assert (*format++ == '$'); + gcc_assert (*format == '$'); + format++; } else pos++; diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index b348856..88689aa 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -396,11 +396,12 @@ gfc_compare_derived_types (gfc_symbol *derived1, gfc_symbol *derived2) if (derived1 == derived2) return 1; + gcc_assert (derived1 && derived2); + /* Special case for comparing derived types across namespaces. If the true names and module names are the same and the module name is nonnull, then they are equal. */ - if (derived1 != NULL && derived2 != NULL - && strcmp (derived1->name, derived2->name) == 0 + if (strcmp (derived1->name, derived2->name) == 0 && derived1->module != NULL && derived2->module != NULL && strcmp (derived1->module, derived2->module) == 0) return 1; @@ -2267,8 +2268,7 @@ get_expr_storage_size (gfc_expr *e) elements *= (end - start)/stride + 1L; } - else if (ref->type == REF_ARRAY && ref->u.ar.type == AR_FULL - && ref->u.ar.as->lower && ref->u.ar.as->upper) + else if (ref->type == REF_ARRAY && ref->u.ar.type == AR_FULL) for (i = 0; i < ref->u.ar.as->rank; i++) { if (ref->u.ar.as->lower[i] && ref->u.ar.as->upper[i] diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 6a7b6c9..f67c07f 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -7427,7 +7427,7 @@ check_symbols: "statement at %L", &e->where); goto failure; } - break; + continue; } if (ar->dimen_type[i] == DIMEN_STAR && i == (ar->dimen + ar->codimen - 1) diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c index bedc668..7a55dcd 100644 --- a/gcc/fortran/target-memory.c +++ b/gcc/fortran/target-memory.c @@ -125,9 +125,12 @@ gfc_target_expr_size (gfc_expr *e) /* Determine type size without clobbering the typespec for ISO C binding types. */ gfc_typespec ts; + HOST_WIDE_INT size; ts = e->ts; type = gfc_typenode_for_spec (&ts); - return int_size_in_bytes (type); + size = int_size_in_bytes (type); + gcc_assert (size >= 0); + return size; } default: gfc_internal_error ("Invalid expression in gfc_target_expr_size."); |