From: burnus Date: Fri, 18 Jan 2008 00:28:28 +0000 (+0000) Subject: 2008-01-18 Richard Sandiford X-Git-Tag: upstream/4.9.2~44124 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eeaa887f60fb8137ce97644ce73ffa4884699b3a;p=platform%2Fupstream%2Flinaro-gcc.git 2008-01-18 Richard Sandiford PR fortran/34686 * trans-expr.c (gfc_conv_function_call): Use proper type for returned character pointers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131620 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index dccfcdf..ff0e639 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2008-01-18 Richard Sandiford + + PR fortran/34686 + * trans-expr.c (gfc_conv_function_call): Use proper + type for returned character pointers. + 2008-01-17 Paul Thomas PR fortran/34429 diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index c1de2a9..9e30a99 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -2660,13 +2660,7 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, character pointers. */ if (sym->attr.pointer || sym->attr.allocatable) { - /* Build char[0:len-1] * pstr. */ - tmp = fold_build2 (MINUS_EXPR, gfc_charlen_type_node, len, - build_int_cst (gfc_charlen_type_node, 1)); - tmp = build_range_type (gfc_array_index_type, - gfc_index_zero_node, tmp); - tmp = build_array_type (gfc_character1_type_node, tmp); - var = gfc_create_var (build_pointer_type (tmp), "pstr"); + var = gfc_create_var (type, "pstr"); /* Provide an address expression for the function arguments. */ var = build_fold_addr_expr (var);