| Index: gcc/gcc/fortran/st.c
|
| diff --git a/gcc/gcc/fortran/st.c b/gcc/gcc/fortran/st.c
|
| index 18f1b6d91c44c993a419fc8a416a30fb7092d714..f1765e6ed7ce4a7dd134bd427c838e1d25ec9603 100644
|
| --- a/gcc/gcc/fortran/st.c
|
| +++ b/gcc/gcc/fortran/st.c
|
| @@ -1,5 +1,5 @@
|
| /* Build executable statement trees.
|
| - Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
|
| + Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009
|
| Free Software Foundation, Inc.
|
| Contributed by Andy Vaught
|
|
|
| @@ -80,19 +80,21 @@ gfc_append_code (gfc_code *tail, gfc_code *new_code)
|
| void
|
| gfc_free_statement (gfc_code *p)
|
| {
|
| - if (p->expr)
|
| - gfc_free_expr (p->expr);
|
| + if (p->expr1)
|
| + gfc_free_expr (p->expr1);
|
| if (p->expr2)
|
| gfc_free_expr (p->expr2);
|
|
|
| switch (p->op)
|
| {
|
| case EXEC_NOP:
|
| + case EXEC_END_BLOCK:
|
| case EXEC_ASSIGN:
|
| case EXEC_INIT_ASSIGN:
|
| case EXEC_GOTO:
|
| case EXEC_CYCLE:
|
| case EXEC_RETURN:
|
| + case EXEC_END_PROCEDURE:
|
| case EXEC_IF:
|
| case EXEC_PAUSE:
|
| case EXEC_STOP:
|
| @@ -108,13 +110,19 @@ gfc_free_statement (gfc_code *p)
|
| case EXEC_ARITHMETIC_IF:
|
| break;
|
|
|
| + case EXEC_BLOCK:
|
| + gfc_free_namespace (p->ext.ns);
|
| + break;
|
| +
|
| case EXEC_COMPCALL:
|
| + case EXEC_CALL_PPC:
|
| case EXEC_CALL:
|
| case EXEC_ASSIGN_CALL:
|
| gfc_free_actual_arglist (p->ext.actual);
|
| break;
|
|
|
| case EXEC_SELECT:
|
| + case EXEC_SELECT_TYPE:
|
| if (p->ext.case_list)
|
| gfc_free_case_list (p->ext.case_list);
|
| break;
|
| @@ -125,7 +133,7 @@ gfc_free_statement (gfc_code *p)
|
|
|
| case EXEC_ALLOCATE:
|
| case EXEC_DEALLOCATE:
|
| - gfc_free_alloc_list (p->ext.alloc_list);
|
| + gfc_free_alloc_list (p->ext.alloc.list);
|
| break;
|
|
|
| case EXEC_OPEN:
|
|
|