Lines Matching defs:pointer

63   if (attr.pointer)
73 akind, !(attr.pointer || attr.target));
91 /* Copy pointer address back - but only if it could have changed and
92 if the actual argument is a pointer and not, e.g., NULL(). */
93 if ((attr.pointer || attr.allocatable) && attr.intent != INTENT_IN)
460 nor a pointer; that's only relevant for the optional handling. */
633 NULL pointer checks are added if the argument is OPTIONAL. */
838 nor a pointer; that's relevant for the optional handling.
1060 then from is a common pointer and is to be used as is. */
1321 (pointer or ordinary assignment). */
1500 on the parent ss' next pointer. Thus we should not take the next
1501 pointer blindly, but rather go up one nest level as long as next
1587 && ((sym->ts.type != BT_CLASS && !sym->attr.pointer)
1742 && (CLASS_DATA (ref->u.c.component)->attr.pointer
1746 && (ref->u.c.component->attr.pointer
1748 gfc_error ("Sorry, coindexed access to a pointer or allocatable "
2270 if (((c->attr.pointer || c->attr.allocatable)
2313 /* Return the contents of a variable. Also handles reference/pointer
2314 variables (all Fortran pointer references are implicit). */
2420 /* Dereference character pointer dummy arguments
2422 if ((sym->attr.pointer || sym->attr.allocatable)
2441 && !sym->attr.dimension && !sym->attr.pointer
2446 /* Dereference non-character pointer variables.
2448 if ((sym->attr.pointer || sym->attr.allocatable
2491 /* Return a pointer to an element. */
3444 /* Return the backend_decl for a procedure pointer component. */
3519 /* TODO - make the cray pointee a pointer to a procedure,
3520 assign the pointer to it and use it for the call. This
3608 !sym->attr.target && !sym->attr.pointer
3690 new_sym->attr.pointer = sym->attr.pointer;
3745 /* If the argument is either a string or a pointer to a string,
3751 if (sym->attr.pointer)
3759 /* If the argument is a scalar, a pointer to an array or an allocatable,
3761 else if (!sym->attr.dimension || sym->attr.pointer || sym->attr.allocatable)
4221 is zero based on the data pointer. Note that the temp
4367 /* Determine the offset for pointer formal arguments and set the
4426 pointer. */
4479 || proc_ifc->result->attr.pointer)
4500 'expr' is only needed for procedure pointer components. */
4612 pass the array data pointer without descriptor. */
4614 && !(fsym->attr.pointer || fsym->attr.allocatable)
4667 /* Pass a NULL pointer for an absent arg. */
4676 && fsym && !fsym->attr.pointer
4680 /* Pass a NULL pointer to denote an absent arg. */
4748 pointer is NULL. We need this extra conditional because of
4770 array - instead it returns a pointer to the data element. */
4815 /* The Cray pointer needs to be converted to a pointer to
4867 && e->value.function.esym->result->attr.pointer)
4869 && e->symtree->n.sym->attr.pointer))
5042 the address of a pointer back to the pointer itself before,
5058 && ((fsym->attr.pointer
5069 /* Scalar pointer dummy args require an extra level of
5070 indirection. The null pointer already contains
5188 fsym && fsym->attr.pointer);
5200 fsym && fsym->attr.pointer);
5211 fsym && fsym->attr.pointer);
5247 as then array elements are accessed - or no NULL pointer is
5358 /* In Fortran 2008 it's allowed to pass a NULL pointer/nonallocated
5366 /* If the actual argument is an optional pointer/allocatable and
5378 else if (attr.pointer
5379 && (fsym == NULL || !fsym->attr.pointer))
5385 msg = xasprintf ("Proc-pointer actual argument '%s' is not "
5411 else if (attr.pointer
5412 && (fsym == NULL || !fsym->attr.pointer))
5417 msg = xasprintf ("Proc-pointer actual argument '%s' is not "
5447 is a pointer to the variable holding the length. Therefore
5461 pointer - except for Bind(c) which only passes the pointer.
5702 returns a pointer, the temporary will be a shallow copy and
5704 callee_alloc = comp->attr.allocatable || comp->attr.pointer;
5707 !comp->attr.pointer, callee_alloc,
5737 returns a pointer, the temporary will be a shallow copy and
5739 callee_alloc = sym->attr.allocatable || sym->attr.pointer;
5742 !sym->attr.pointer, callee_alloc,
5758 if ((!comp && (sym->attr.pointer || sym->attr.allocatable))
5759 || (comp && (comp->attr.pointer || comp->attr.allocatable)))
5868 /* If we have a pointer function, but we don't want a pointer, e.g.
5871 where f is pointer valued, we have to dereference the result. */
5873 && ((!comp && (sym->attr.pointer || sym->attr.allocatable))
5874 || (comp && (comp->attr.pointer || comp->attr.allocatable))))
5906 /* Check the data pointer hasn't been modified. This would
5907 happen in a function returning a pointer. */
5921 /* Dereference for character pointer results. */
5922 if ((!comp && (sym->attr.pointer || sym->attr.allocatable))
5923 || (comp && (comp->attr.pointer || comp->attr.allocatable)))
6465 bool array, bool pointer, bool procptr)
6474 if (!(expr || pointer || procptr))
6501 if (pointer)
6511 else if (pointer || procptr)
6789 /* If a conversion expression has a null data pointer
6795 || arg->symtree->n.sym->attr.pointer)
6941 if (cm->attr.pointer || cm->attr.proc_pointer)
6949 /* Array pointer. */
7028 /* The remainder of these instructions follow the if (cm->attr.pointer)
7263 cm->attr.dimension, cm->attr.pointer,
7487 && expr->value.function.esym->result->attr.pointer
7490 && expr->symtree->n.sym->attr.pointer
7533 /* Generate code for a pointer assignment. */
7592 pointer. */
7621 gfc_trans_same_strlen_check ("pointer assignment", &expr1->where,
7653 /* Array pointer. Find the last reference on the LHS and if it is an
7675 /* Just set the data pointer to null. */
7741 /* If this is a subreference array pointer assignment, use the rhs
7786 temporary to the pointer. */
7824 /* Copy data pointer. */
7928 gfc_trans_same_strlen_check ("pointer assignment", &expr1->where,
7933 the target is at least as large as the pointer. */
8007 necessary if the rhs is a non-pointer function, as the allocatable components
8091 /* Restore pointer address of coarray components. */
8171 ? (expr2->value.function.esym->attr.pointer
8173 : (expr2->symtree->n.sym->attr.pointer
8227 /* If the lhs has been host_associated, is in common, a pointer or is
8232 || sym->attr.pointer
8252 && !sym->attr.pointer
8258 the variable is local or host associated and not a pointer or
8269 a pointer, a target or a result. */
8686 /* A data-pointer-returning function should be considered as a variable
8729 return func_ifc->result->attr.pointer;
9142 /* 'tmp' is either the pointer to the array(POINTER_PLUS_EXPR)
9180 NOTE ALSO: The concatenation operation generates a temporary pointer,