diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-06-11 08:42:49 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-06-11 08:42:49 +0200 |
commit | e8d4f3fcb274af7dc592a5f95ca76da533505920 (patch) | |
tree | a68cb3905d59801559b99384933e8a0c97de5c67 /gcc | |
parent | e521964299930c05e5306addf709980a52d4a62c (diff) | |
download | gcc-e8d4f3fcb274af7dc592a5f95ca76da533505920.zip gcc-e8d4f3fcb274af7dc592a5f95ca76da533505920.tar.gz gcc-e8d4f3fcb274af7dc592a5f95ca76da533505920.tar.bz2 |
interface.c (fold_unary): Rename to...
* interface.c (fold_unary): Rename to...
(fold_unary_intrinsic): ... this.
(gfc_extend_expr): Adjust caller.
(gfc_match_generic_spec): Likewise. Initialize *op to INTRINSIC_NONE
to avoid warnings.
* expr.c (gfc_simplify_expr): Initialize start and end before calling
gfc_extract_int.
From-SVN: r148366
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/fortran/expr.c | 6 | ||||
-rw-r--r-- | gcc/fortran/interface.c | 7 |
3 files changed, 16 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index cb53120..68ad797 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,13 @@ +2009-06-11 Jakub Jelinek <jakub@redhat.com> + + * interface.c (fold_unary): Rename to... + (fold_unary_intrinsic): ... this. + (gfc_extend_expr): Adjust caller. + (gfc_match_generic_spec): Likewise. Initialize *op to INTRINSIC_NONE + to avoid warnings. + * expr.c (gfc_simplify_expr): Initialize start and end before calling + gfc_extract_int. + 2009-06-10 Dave Korn <dave.korn.cygwin@gmail.com> * trans-decl.c (create_main_function): Don't build main decl twice. diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index f76c35e..9342719 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -1654,18 +1654,16 @@ gfc_simplify_expr (gfc_expr *p, int type) gfc_char_t *s; int start, end; + start = 0; if (p->ref && p->ref->u.ss.start) { gfc_extract_int (p->ref->u.ss.start, &start); start--; /* Convert from one-based to zero-based. */ } - else - start = 0; + end = p->value.character.length; if (p->ref && p->ref->u.ss.end) gfc_extract_int (p->ref->u.ss.end, &end); - else - end = p->value.character.length; s = gfc_get_wide_string (end - start + 2); memcpy (s, p->value.character.string + start, diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 48c026c..6cd34fa 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -95,7 +95,7 @@ gfc_free_interface (gfc_interface *intr) minus respectively, leaving the rest unchanged. */ static gfc_intrinsic_op -fold_unary (gfc_intrinsic_op op) +fold_unary_intrinsic (gfc_intrinsic_op op) { switch (op) { @@ -136,10 +136,11 @@ gfc_match_generic_spec (interface_type *type, if (gfc_match (" operator ( %o )", &i) == MATCH_YES) { /* Operator i/f */ *type = INTERFACE_INTRINSIC_OP; - *op = fold_unary (i); + *op = fold_unary_intrinsic (i); return MATCH_YES; } + *op = INTRINSIC_NONE; if (gfc_match (" operator ( ") == MATCH_YES) { m = gfc_match_defined_op_name (buffer, 1); @@ -2482,7 +2483,7 @@ gfc_extend_expr (gfc_expr *e) actual->next->expr = e->value.op.op2; } - i = fold_unary (e->value.op.op); + i = fold_unary_intrinsic (e->value.op.op); if (i == INTRINSIC_USER) { |