[flang-commits] [flang] [Flang] Add partial support for lowering procedure pointer assignment. (PR #70461)

Daniel Chen via flang-commits flang-commits at lists.llvm.org
Wed Nov 15 09:08:43 PST 2023


DanielCChen wrote:

> > With the latest updates, my record shows that there is no more open comments for this PR. Please let me know if I missed anything. I will work on the LIT tests and push a commit for that soon.
> 
> Sounds right to me. I am testing your PR, and I have a few new comments (more about small features where procedure pointers are allowed and that were not covered by "local" TODO, so crash with the removal of high level TODOs).
> 
> Could you please add TODOs inside intrinisics that takes POINTERs arguments?
> 
> ASSOCIATED
> 
> ```
>    real, pointer, external :: p
>   print *, associated(p)
> end
> ```
> 
> Crashes at
> 
> https://github.com/llvm/llvm-project/blob/6d858e2ad3502f787d3a51fb3d69139686812703/flang/lib/Optimizer/Builder/IntrinsicCall.cpp#L2057
> 
> C_FUNCLOC
> 
> ```
>   use iso_c_binding
>   real, pointer, external :: p
>   call test(c_funloc(p))
> end
> ```
> 
> Crashes at
> 
> https://github.com/llvm/llvm-project/blob/6d858e2ad3502f787d3a51fb3d69139686812703/flang/lib/Optimizer/Builder/IntrinsicCall.cpp#L2310
> 
> NULLIFY (it is not an intrinsic, but rather a statement)
> 
> ```
>   real, pointer, external :: p
>   nullify(p)
> end
> ```
> 
> Crashes at
> 
> https://github.com/llvm/llvm-project/blob/718793ce6a54b8fb95884d7fb37f70fd339cab3b/flang/lib/Lower/Bridge.cpp#L3098
> 
> The following intriniscs takes pointer arguments but OK for now (hits TODO):
> 
> * C_F_PROCPOINTER is OK, it is not yet implemented.
> * NULL(P) is fine for now (special handling before IntrinsicCall.cpp, or caught by the "lowering function references that return procedure pointers to HLFIR" TODO). For reference will need handling at https://github.com/llvm/llvm-project/blob/6d858e2ad3502f787d3a51fb3d69139686812703/flang/lib/Optimizer/Builder/IntrinsicCall.cpp#L4517
>    when implementing the ProcRef TODO.
> 
> These are all the intrinsics taking procedure pointers I could think of.

Sure. I will check these and add TODOs.

https://github.com/llvm/llvm-project/pull/70461


More information about the flang-commits mailing list