Commit 79bd1948 by Steven G. Kargl

gfortran.h (gfc_code): Rename struct member label to label1.

2009-05-12  Steven G. Kargl  <kargl@gcc.gnu.org>

	* gfortran.h (gfc_code): Rename struct member label to label1.
	* dump-parse-tree.c (show_code_node): Update symbol.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
	gfc_trans_arithmetic_if)": Ditto.
	* resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
	* match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
	gfc_match_assign, gfc_match_goto): Ditto.
	* parse.c (parse_do_block): Ditto.

From-SVN: r147489
parent 286c4fcb
2009-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.h (gfc_code): Rename struct member label to label1.
* dump-parse-tree.c (show_code_node): Update symbol.
* trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
gfc_trans_arithmetic_if)": Ditto.
* resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
* match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
gfc_match_assign, gfc_match_goto): Ditto.
* parse.c (parse_do_block): Ditto.
2009-05-13 Tobias Burnus <burnus@net-b.de> 2009-05-13 Tobias Burnus <burnus@net-b.de>
PR fortran/34153 PR fortran/34153
......
...@@ -1174,7 +1174,7 @@ show_code_node (int level, gfc_code *c) ...@@ -1174,7 +1174,7 @@ show_code_node (int level, gfc_code *c)
case EXEC_LABEL_ASSIGN: case EXEC_LABEL_ASSIGN:
fputs ("LABEL ASSIGN ", dumpfile); fputs ("LABEL ASSIGN ", dumpfile);
show_expr (c->expr); show_expr (c->expr);
fprintf (dumpfile, " %d", c->label->value); fprintf (dumpfile, " %d", c->label1->value);
break; break;
case EXEC_POINTER_ASSIGN: case EXEC_POINTER_ASSIGN:
...@@ -1186,8 +1186,8 @@ show_code_node (int level, gfc_code *c) ...@@ -1186,8 +1186,8 @@ show_code_node (int level, gfc_code *c)
case EXEC_GOTO: case EXEC_GOTO:
fputs ("GOTO ", dumpfile); fputs ("GOTO ", dumpfile);
if (c->label) if (c->label1)
fprintf (dumpfile, "%d", c->label->value); fprintf (dumpfile, "%d", c->label1->value);
else else
{ {
show_expr (c->expr); show_expr (c->expr);
...@@ -1197,7 +1197,7 @@ show_code_node (int level, gfc_code *c) ...@@ -1197,7 +1197,7 @@ show_code_node (int level, gfc_code *c)
fputs (", (", dumpfile); fputs (", (", dumpfile);
for (; d; d = d ->block) for (; d; d = d ->block)
{ {
code_indent (level, d->label); code_indent (level, d->label1);
if (d->block != NULL) if (d->block != NULL)
fputc (',', dumpfile); fputc (',', dumpfile);
else else
...@@ -1260,7 +1260,7 @@ show_code_node (int level, gfc_code *c) ...@@ -1260,7 +1260,7 @@ show_code_node (int level, gfc_code *c)
fputs ("IF ", dumpfile); fputs ("IF ", dumpfile);
show_expr (c->expr); show_expr (c->expr);
fprintf (dumpfile, " %d, %d, %d", fprintf (dumpfile, " %d, %d, %d",
c->label->value, c->label2->value, c->label3->value); c->label1->value, c->label2->value, c->label3->value);
break; break;
case EXEC_IF: case EXEC_IF:
...@@ -1287,7 +1287,7 @@ show_code_node (int level, gfc_code *c) ...@@ -1287,7 +1287,7 @@ show_code_node (int level, gfc_code *c)
show_code (level + 1, d->next); show_code (level + 1, d->next);
} }
code_indent (level, c->label); code_indent (level, c->label1);
fputs ("ENDIF", dumpfile); fputs ("ENDIF", dumpfile);
break; break;
...@@ -1317,7 +1317,7 @@ show_code_node (int level, gfc_code *c) ...@@ -1317,7 +1317,7 @@ show_code_node (int level, gfc_code *c)
show_code (level + 1, d->next); show_code (level + 1, d->next);
} }
code_indent (level, c->label); code_indent (level, c->label1);
fputs ("END SELECT", dumpfile); fputs ("END SELECT", dumpfile);
break; break;
...@@ -1398,7 +1398,7 @@ show_code_node (int level, gfc_code *c) ...@@ -1398,7 +1398,7 @@ show_code_node (int level, gfc_code *c)
show_code (level + 1, c->block->next); show_code (level + 1, c->block->next);
code_indent (level, c->label); code_indent (level, c->label1);
fputs ("END DO", dumpfile); fputs ("END DO", dumpfile);
break; break;
......
...@@ -1913,7 +1913,7 @@ typedef struct gfc_code ...@@ -1913,7 +1913,7 @@ typedef struct gfc_code
struct gfc_code *block, *next; struct gfc_code *block, *next;
locus loc; locus loc;
gfc_st_label *here, *label, *label2, *label3; gfc_st_label *here, *label1, *label2, *label3;
gfc_symtree *symtree; gfc_symtree *symtree;
gfc_expr *expr, *expr2; gfc_expr *expr, *expr2;
/* A name isn't sufficient to identify a subroutine, we need the actual /* A name isn't sufficient to identify a subroutine, we need the actual
......
...@@ -1389,7 +1389,7 @@ match_arithmetic_if (void) ...@@ -1389,7 +1389,7 @@ match_arithmetic_if (void)
new_st.op = EXEC_ARITHMETIC_IF; new_st.op = EXEC_ARITHMETIC_IF;
new_st.expr = expr; new_st.expr = expr;
new_st.label = l1; new_st.label1 = l1;
new_st.label2 = l2; new_st.label2 = l2;
new_st.label3 = l3; new_st.label3 = l3;
...@@ -1470,7 +1470,7 @@ gfc_match_if (gfc_statement *if_type) ...@@ -1470,7 +1470,7 @@ gfc_match_if (gfc_statement *if_type)
new_st.op = EXEC_ARITHMETIC_IF; new_st.op = EXEC_ARITHMETIC_IF;
new_st.expr = expr; new_st.expr = expr;
new_st.label = l1; new_st.label1 = l1;
new_st.label2 = l2; new_st.label2 = l2;
new_st.label3 = l3; new_st.label3 = l3;
...@@ -1789,7 +1789,7 @@ done: ...@@ -1789,7 +1789,7 @@ done:
&& gfc_reference_st_label (label, ST_LABEL_TARGET) == FAILURE) && gfc_reference_st_label (label, ST_LABEL_TARGET) == FAILURE)
goto cleanup; goto cleanup;
new_st.label = label; new_st.label1 = label;
if (new_st.op == EXEC_DO_WHILE) if (new_st.op == EXEC_DO_WHILE)
new_st.expr = iter.end; new_st.expr = iter.end;
...@@ -2033,7 +2033,7 @@ gfc_match_assign (void) ...@@ -2033,7 +2033,7 @@ gfc_match_assign (void)
expr->symtree->n.sym->attr.assign = 1; expr->symtree->n.sym->attr.assign = 1;
new_st.op = EXEC_LABEL_ASSIGN; new_st.op = EXEC_LABEL_ASSIGN;
new_st.label = label; new_st.label1 = label;
new_st.expr = expr; new_st.expr = expr;
return MATCH_YES; return MATCH_YES;
} }
...@@ -2063,7 +2063,7 @@ gfc_match_goto (void) ...@@ -2063,7 +2063,7 @@ gfc_match_goto (void)
return MATCH_ERROR; return MATCH_ERROR;
new_st.op = EXEC_GOTO; new_st.op = EXEC_GOTO;
new_st.label = label; new_st.label1 = label;
return MATCH_YES; return MATCH_YES;
} }
...@@ -2108,7 +2108,7 @@ gfc_match_goto (void) ...@@ -2108,7 +2108,7 @@ gfc_match_goto (void)
tail = tail->block; tail = tail->block;
} }
tail->label = label; tail->label1 = label;
tail->op = EXEC_GOTO; tail->op = EXEC_GOTO;
} }
while (gfc_match_char (',') == MATCH_YES); while (gfc_match_char (',') == MATCH_YES);
...@@ -2161,7 +2161,7 @@ gfc_match_goto (void) ...@@ -2161,7 +2161,7 @@ gfc_match_goto (void)
tail->next = gfc_get_code (); tail->next = gfc_get_code ();
tail->next->op = EXEC_GOTO; tail->next->op = EXEC_GOTO;
tail->next->label = label; tail->next->label1 = label;
} }
while (gfc_match_char (',') == MATCH_YES); while (gfc_match_char (',') == MATCH_YES);
...@@ -2782,7 +2782,7 @@ gfc_match_call (void) ...@@ -2782,7 +2782,7 @@ gfc_match_call (void)
c->next = gfc_get_code (); c->next = gfc_get_code ();
c->next->op = EXEC_GOTO; c->next->op = EXEC_GOTO;
c->next->label = a->label; c->next->label1 = a->label;
} }
} }
......
...@@ -2867,7 +2867,7 @@ parse_do_block (void) ...@@ -2867,7 +2867,7 @@ parse_do_block (void)
gfc_state_data s; gfc_state_data s;
gfc_symtree *stree; gfc_symtree *stree;
s.ext.end_do_label = new_st.label; s.ext.end_do_label = new_st.label1;
if (new_st.ext.iterator != NULL) if (new_st.ext.iterator != NULL)
stree = new_st.ext.iterator->var->symtree; stree = new_st.ext.iterator->var->symtree;
......
...@@ -6645,7 +6645,7 @@ gfc_resolve_blocks (gfc_code *b, gfc_namespace *ns) ...@@ -6645,7 +6645,7 @@ gfc_resolve_blocks (gfc_code *b, gfc_namespace *ns)
break; break;
case EXEC_GOTO: case EXEC_GOTO:
resolve_branch (b->label, b); resolve_branch (b->label1, b);
break; break;
case EXEC_SELECT: case EXEC_SELECT:
...@@ -6927,7 +6927,7 @@ resolve_code (gfc_code *code, gfc_namespace *ns) ...@@ -6927,7 +6927,7 @@ resolve_code (gfc_code *code, gfc_namespace *ns)
&code->expr->where); &code->expr->where);
} }
else else
resolve_branch (code->label, code); resolve_branch (code->label1, code);
break; break;
case EXEC_RETURN: case EXEC_RETURN:
...@@ -6951,9 +6951,9 @@ resolve_code (gfc_code *code, gfc_namespace *ns) ...@@ -6951,9 +6951,9 @@ resolve_code (gfc_code *code, gfc_namespace *ns)
break; break;
case EXEC_LABEL_ASSIGN: case EXEC_LABEL_ASSIGN:
if (code->label->defined == ST_LABEL_UNKNOWN) if (code->label1->defined == ST_LABEL_UNKNOWN)
gfc_error ("Label %d referenced at %L is never defined", gfc_error ("Label %d referenced at %L is never defined",
code->label->value, &code->label->where); code->label1->value, &code->label1->where);
if (t == SUCCESS if (t == SUCCESS
&& (code->expr->expr_type != EXPR_VARIABLE && (code->expr->expr_type != EXPR_VARIABLE
|| code->expr->symtree->n.sym->ts.type != BT_INTEGER || code->expr->symtree->n.sym->ts.type != BT_INTEGER
...@@ -6978,7 +6978,7 @@ resolve_code (gfc_code *code, gfc_namespace *ns) ...@@ -6978,7 +6978,7 @@ resolve_code (gfc_code *code, gfc_namespace *ns)
gfc_error ("Arithmetic IF statement at %L requires a numeric " gfc_error ("Arithmetic IF statement at %L requires a numeric "
"expression", &code->expr->where); "expression", &code->expr->where);
resolve_branch (code->label, code); resolve_branch (code->label1, code);
resolve_branch (code->label2, code); resolve_branch (code->label2, code);
resolve_branch (code->label3, code); resolve_branch (code->label3, code);
break; break;
......
...@@ -109,16 +109,16 @@ gfc_trans_label_assign (gfc_code * code) ...@@ -109,16 +109,16 @@ gfc_trans_label_assign (gfc_code * code)
len = GFC_DECL_STRING_LEN (se.expr); len = GFC_DECL_STRING_LEN (se.expr);
addr = GFC_DECL_ASSIGN_ADDR (se.expr); addr = GFC_DECL_ASSIGN_ADDR (se.expr);
label_tree = gfc_get_label_decl (code->label); label_tree = gfc_get_label_decl (code->label1);
if (code->label->defined == ST_LABEL_TARGET) if (code->label1->defined == ST_LABEL_TARGET)
{ {
label_tree = gfc_build_addr_expr (pvoid_type_node, label_tree); label_tree = gfc_build_addr_expr (pvoid_type_node, label_tree);
len_tree = integer_minus_one_node; len_tree = integer_minus_one_node;
} }
else else
{ {
gfc_expr *format = code->label->format; gfc_expr *format = code->label1->format;
label_len = format->value.character.length; label_len = format->value.character.length;
len_tree = build_int_cst (NULL_TREE, label_len); len_tree = build_int_cst (NULL_TREE, label_len);
...@@ -144,8 +144,8 @@ gfc_trans_goto (gfc_code * code) ...@@ -144,8 +144,8 @@ gfc_trans_goto (gfc_code * code)
tree tmp; tree tmp;
gfc_se se; gfc_se se;
if (code->label != NULL) if (code->label1 != NULL)
return build1_v (GOTO_EXPR, gfc_get_label_decl (code->label)); return build1_v (GOTO_EXPR, gfc_get_label_decl (code->label1));
/* ASSIGNED GOTO. */ /* ASSIGNED GOTO. */
gfc_init_se (&se, NULL); gfc_init_se (&se, NULL);
...@@ -170,7 +170,7 @@ gfc_trans_goto (gfc_code * code) ...@@ -170,7 +170,7 @@ gfc_trans_goto (gfc_code * code)
/* Check the label list. */ /* Check the label list. */
do do
{ {
target = gfc_get_label_decl (code->label); target = gfc_get_label_decl (code->label1);
tmp = gfc_build_addr_expr (pvoid_type_node, target); tmp = gfc_build_addr_expr (pvoid_type_node, target);
tmp = fold_build2 (EQ_EXPR, boolean_type_node, tmp, assigned_goto); tmp = fold_build2 (EQ_EXPR, boolean_type_node, tmp, assigned_goto);
tmp = build3_v (COND_EXPR, tmp, tmp = build3_v (COND_EXPR, tmp,
...@@ -719,14 +719,14 @@ gfc_trans_arithmetic_if (gfc_code * code) ...@@ -719,14 +719,14 @@ gfc_trans_arithmetic_if (gfc_code * code)
/* Build something to compare with. */ /* Build something to compare with. */
zero = gfc_build_const (TREE_TYPE (se.expr), integer_zero_node); zero = gfc_build_const (TREE_TYPE (se.expr), integer_zero_node);
if (code->label->value != code->label2->value) if (code->label1->value != code->label2->value)
{ {
/* If (cond < 0) take branch1 else take branch2. /* If (cond < 0) take branch1 else take branch2.
First build jumps to the COND .LT. 0 and the COND .EQ. 0 cases. */ First build jumps to the COND .LT. 0 and the COND .EQ. 0 cases. */
branch1 = build1_v (GOTO_EXPR, gfc_get_label_decl (code->label)); branch1 = build1_v (GOTO_EXPR, gfc_get_label_decl (code->label1));
branch2 = build1_v (GOTO_EXPR, gfc_get_label_decl (code->label2)); branch2 = build1_v (GOTO_EXPR, gfc_get_label_decl (code->label2));
if (code->label->value != code->label3->value) if (code->label1->value != code->label3->value)
tmp = fold_build2 (LT_EXPR, boolean_type_node, se.expr, zero); tmp = fold_build2 (LT_EXPR, boolean_type_node, se.expr, zero);
else else
tmp = fold_build2 (NE_EXPR, boolean_type_node, se.expr, zero); tmp = fold_build2 (NE_EXPR, boolean_type_node, se.expr, zero);
...@@ -734,9 +734,9 @@ gfc_trans_arithmetic_if (gfc_code * code) ...@@ -734,9 +734,9 @@ gfc_trans_arithmetic_if (gfc_code * code)
branch1 = fold_build3 (COND_EXPR, void_type_node, tmp, branch1, branch2); branch1 = fold_build3 (COND_EXPR, void_type_node, tmp, branch1, branch2);
} }
else else
branch1 = build1_v (GOTO_EXPR, gfc_get_label_decl (code->label)); branch1 = build1_v (GOTO_EXPR, gfc_get_label_decl (code->label1));
if (code->label->value != code->label3->value if (code->label1->value != code->label3->value
&& code->label2->value != code->label3->value) && code->label2->value != code->label3->value)
{ {
/* if (cond <= 0) take branch1 else take branch2. */ /* if (cond <= 0) take branch1 else take branch2. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment