re PR fortran/30865 ([4.1, 4.2 only] optional argument passed on to size(...,dim=))
2007-03-01 Tobias Burnus <burnus@net-b.de> PR fortran/30865 * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers. From-SVN: r122423
This commit is contained in:
parent
aedcd69592
commit
9c3e90e346
2 changed files with 12 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-03-01 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/30865
|
||||
* trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
|
||||
|
||||
2007-02-28 Tobias Burnus <burnus@net-b.de>
|
||||
Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
|
|
|
@ -2723,10 +2723,13 @@ gfc_conv_intrinsic_size (gfc_se * se, gfc_expr * expr)
|
|||
&& actual->expr->symtree->n.sym->attr.optional)
|
||||
{
|
||||
tree tmp;
|
||||
tmp = gfc_build_addr_expr (pvoid_type_node,
|
||||
argse.expr);
|
||||
tmp = build2 (NE_EXPR, boolean_type_node, tmp,
|
||||
build_int_cst (pvoid_type_node, 0));
|
||||
gfc_init_se (&argse, NULL);
|
||||
argse.want_pointer = 1;
|
||||
argse.data_not_needed = 1;
|
||||
gfc_conv_expr (&argse, actual->expr);
|
||||
gfc_add_block_to_block (&se->pre, &argse.pre);
|
||||
tmp = build2 (NE_EXPR, boolean_type_node, argse.expr,
|
||||
null_pointer_node);
|
||||
tmp = gfc_evaluate_now (tmp, &se->pre);
|
||||
se->expr = build3 (COND_EXPR, pvoid_type_node,
|
||||
tmp, fncall1, fncall0);
|
||||
|
|
Loading…
Add table
Reference in a new issue