diff options
| author | Jakub Jelinek <jakub@redhat.com> | 2005-06-13 17:24:54 +0200 |
|---|---|---|
| committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2005-06-13 17:24:54 +0200 |
| commit | dda895f9c6216d207d277770e221939f3a42e8ff (patch) | |
| tree | 0035578b9cc54831eeec842b51ebb7c3f6932292 /gcc/fortran/trans-stmt.c | |
| parent | adacecf105b889e4d7f9b48dea7895724f850d66 (diff) | |
| download | gcc-dda895f9c6216d207d277770e221939f3a42e8ff.zip gcc-dda895f9c6216d207d277770e221939f3a42e8ff.tar.gz gcc-dda895f9c6216d207d277770e221939f3a42e8ff.tar.bz2 | |
trans-expr.c (gfc_conv_function_call): Return int instead of void.
* trans-expr.c (gfc_conv_function_call): Return int instead of
void. Use a local variable for has_alternate_specifier and
return it. Avoid modification of function type's return value
in place, since it may be shared.
* trans.h (has_alternate_specifier): Remove.
(gfc_conv_function_call): Change return type.
* trans-stmt.c (has_alternate_specifier): Remove.
(gfc_trans_call): Add a local has_alternate_specifier variable,
set it from gfc_conv_function_call return value.
* gfortran.dg/altreturn_1.f90: New test.
From-SVN: r100878
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
| -rw-r--r-- | gcc/fortran/trans-stmt.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 5554318..46a69d4 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -37,8 +37,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "trans-const.h" #include "arith.h" -int has_alternate_specifier; - typedef struct iter_info { tree var; @@ -206,6 +204,7 @@ tree gfc_trans_call (gfc_code * code) { gfc_se se; + int has_alternate_specifier; /* A CALL starts a new block because the actual arguments may have to be evaluated first. */ @@ -213,10 +212,10 @@ gfc_trans_call (gfc_code * code) gfc_start_block (&se.pre); gcc_assert (code->resolved_sym); - has_alternate_specifier = 0; /* Translate the call. */ - gfc_conv_function_call (&se, code->resolved_sym, code->ext.actual); + has_alternate_specifier + = gfc_conv_function_call (&se, code->resolved_sym, code->ext.actual); /* A subroutine without side-effect, by definition, does nothing! */ TREE_SIDE_EFFECTS (se.expr) = 1; |
