Lines Matching full:pointer
9 # Procedure Pointer
11 A procedure pointer is a procedure that has the EXTERNAL and POINTER attributes.
17 to LLVM IR, and thus will not be lowering the procedure-pointer-related
30 - 8.5.14: POINTER attribute
32 - A procedure pointer shall not be referenced unless it is pointer associated
37 - (4) A procedure pointer declared in the scoping unit of a main program,
41 - 10.2.2.2 Pointer assignment statement
44 - 10.2.2.4 Procedure pointer assignment
50 - A procedure pointer may be pointer associated with an external procedure, an
52 procedure that is not a procedure pointer.
55 - 16.9.16 ASSOCIATED(POINTER [, TARGET])
56 - POINTER may be a procedure pointer, and TARGET may be proc-target in a
57 pointer assignment statement (10.2.2).
59 - MOLD may be a procedure pointer.
61 - FPTR shall be a procedure pointer, and not be a component of a coindexed
63 - C.1.1 A procedure that is not a procedure pointer can be an actual argument
64 that corresponds to a procedure pointer dummy argument with the INTENT(IN)
71 ### Procedure pointer `!fir.ref<!fir.boxproc<T>>`
73 A procedure pointer may have an explicit or implicit interface. T in
75 procedure pointer has the implicit interface declared as
76 `procedure(), pointer :: p`.
83 The actual argument may be a procedure pointer, a valid target for the dummy
84 pointer, a reference to the NULL() intrinsic, or a reference to a function that
85 returns a procedure pointer.
87 If the interface is explicit, and the dummy argument is procedure pointer, the
88 reference is resolved as the pointer to the procedure; otherwise, the reference
89 is resolved as the pointer target.
99 procedure(func), pointer :: p
109 procedure(func), pointer :: q
135 procedure(func), pointer, save :: p
145 procedure(func), pointer :: q
178 procedure(func), pointer :: p
188 procedure(func), pointer :: q
212 pointer, the code passes a pointer to the procedure as the actual argument
213 (see Case 5); Otherwise, the code passes the procedure pointer target as the
226 procedure(), pointer :: pp
253 procedure(), pointer :: p
256 procedure(), pointer :: pp
269 C_F_PROCPOINTER is used to associate a procedure pointer with the target of a C
270 function pointer. C_FUNPTR is also designed for interoperability with any C
271 function pointer type.
273 ### Procedure pointer to function returning a character type
275 The dummy procedure pointer may not have a function type with an assumed length
278 ### Procedure pointer to internal procedure
285 ### Procedure pointer assignment `p => proc`
287 The right-hand side may be a procedure, a procedure pointer, or a function whose
288 result is a procedure pointer.
308 procedure(func), pointer :: pp
323 procedure(func), pointer :: arg0, arg1
335 procedure(func), pointer :: pp
367 // case2: assignment from procdure pointer
370 // case3: assignment from a reference to a function whose result is a procedure pointer
379 ### Procedure pointer components
382 bound to objects. Such procedure pointer components will have the type
395 procedure(func), pointer, nopass :: solve
430 LLVM IR testing is also helpful with the initial check. A C function pointer is
431 semantically equivalent to a Fortran procedure in LLVM IR level, and a pointer
432 to a C function pointer is semantically equivalent to a Fortran procedure
433 pointer in LLVM IR level. That is, a Fortran procedure will be converted to a
434 opaque pointer in LLVM IR level, which is the same for a C function pointer;
435 a Fortran procedure pointer will be converted to a opaque pointer pointing to
436 a opaque pointer, which is the same for a pointer to a C function pointer.
447 - procedure pointer initialization
448 - procedure pointer assignment
449 - procedure pointer, procedure pointer target passed to a C function
450 - procedure pointer, procedure pointer target passed to a Fortran procedure
451 - procedure pointer component in derived types
457 - `flang/lib/Lower/CallInterface.cpp:708`: not yet implemented: procedure pointer result not yet ha…
458 - `flang/lib/Lower/CallInterface.cpp:961`: not yet implemented: procedure pointer arguments
459 - `flang/lib/Lower/CallInterface.cpp:993`: not yet implemented: procedure pointer results
460 - `flang/lib/Lower/ConvertExpr.cpp:1119`: not yet implemented: procedure pointer component in deriv…
462 - `flang/lib/Lower/Bridge.cpp:2438`: not yet implemented: procedure pointer assignment
463 - `flang/lib/Lower/ConvertVariable.cpp:348`: not yet implemented: procedure pointer component defau…
464 - `flang/lib/Lower/ConvertVariable.cpp:416`: not yet implemented: procedure pointer globals
466 - `flang/lib/Lower/HostAssociations.cpp:162`: not yet implemented: capture procedure pointer in int…