diff options
author | Richard Guenther <rguenther@suse.de> | 2008-09-04 19:32:02 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-09-04 19:32:02 +0000 |
commit | 6e1b67b3645308d0543d925baa7aad3e14306c77 (patch) | |
tree | 27a5bcd6078a1369a3103494899ef3c7d2310ab8 /gcc/fortran/trans-array.c | |
parent | a524985e06f2b5bda5bea91b716ad2ad3bcc351a (diff) | |
download | gcc-6e1b67b3645308d0543d925baa7aad3e14306c77.zip gcc-6e1b67b3645308d0543d925baa7aad3e14306c77.tar.gz gcc-6e1b67b3645308d0543d925baa7aad3e14306c77.tar.bz2 |
trans-array.c (gfc_conv_array_parameter): Use correct types in building COND_EXPRs.
2008-09-04 Richard Guenther <rguenther@suse.de>
* trans-array.c (gfc_conv_array_parameter): Use correct types
in building COND_EXPRs.
* trans-expr.c (gfc_conv_missing_dummy): Likewise.
* trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.
* gfortran.dg/internal_pack_4.f90: Adjust pattern.
From-SVN: r140001
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 2d574a3..e0ebbf0 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -5250,8 +5250,9 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, gfc_ss * ss, int g77, if (fsym && fsym->attr.optional && sym && sym->attr.optional) { tmp = gfc_conv_expr_present (sym); - ptr = build3 (COND_EXPR, TREE_TYPE (se->expr), tmp, ptr, - null_pointer_node); + ptr = build3 (COND_EXPR, TREE_TYPE (se->expr), tmp, + fold_convert (TREE_TYPE (se->expr), ptr), + fold_convert (TREE_TYPE (se->expr), null_pointer_node)); } ptr = gfc_evaluate_now (ptr, &se->pre); |