Commit 5cc5439e by Richard Sandiford Committed by Tobias Burnus

re PR fortran/34686 (Aliasing bug when returning character pointers)

2008-01-18  Richard Sandiford  <rsandifo@nildram.co.uk>

       PR fortran/34686
       * trans-expr.c (gfc_conv_function_call): Use proper
       type for returned character pointers.

From-SVN: r131620
parent b80034e8
2008-01-18 Richard Sandiford <rsandifo@nildram.co.uk>
PR fortran/34686
* trans-expr.c (gfc_conv_function_call): Use proper
type for returned character pointers.
2008-01-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34429
......
......@@ -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);
......
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