aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-06-11 08:42:49 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-06-11 08:42:49 +0200
commite8d4f3fcb274af7dc592a5f95ca76da533505920 (patch)
treea68cb3905d59801559b99384933e8a0c97de5c67 /gcc
parente521964299930c05e5306addf709980a52d4a62c (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/fortran/expr.c6
-rw-r--r--gcc/fortran/interface.c7
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)
{