-
Notifications
You must be signed in to change notification settings - Fork 11.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[flang] Missing semantic error for procedure pointer target that is not known to be a procedure #73215
Comments
@llvm/issue-subscribers-bug Author: None (jeanPerier)
The following program is accepted by flang, while all other compilers reject it:
(Flang implicitly resolves Failing tests in the llvm-test-suite: https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/proc_ptr_46.f90 |
@llvm/issue-subscribers-flang-frontend Author: None (jeanPerier)
The following program is accepted by flang, while all other compilers reject it:
(Flang implicitly resolves Failing tests in the llvm-test-suite: https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/proc_ptr_46.f90 |
These tests are looking for a semantic error that flang is not emitting but they used to pass because a TODO for procedure pointers was emitted in lowering. Lowering implemented procedure pointers, so these test now fail. I opened an issue against semantics, but I want to comment out these tests so that we can still land the lowering implementation of procedure pointers that is correct. See llvm/llvm-project#73215
These tests are looking for a semantic error that flang is not emitting but they used to pass because a TODO for procedure pointers was emitted in lowering. Lowering implemented procedure pointers, so these test now fail. I opened an issue against semantics, but I want to comment out these tests so that we can still land the lowering implementation of procedure pointers that is correct. See llvm/llvm-project#73215
This behavior is intentional, as I could find no constraint or requirement from the standard being violated, and the interpretation is unambiguous. |
These tests are looking for a semantic error that flang is not emitting but they used to pass because a TODO for procedure pointers was emitted in lowering. Lowering implemented procedure pointers, so these test now fail. I opened an issue against semantics, but I want to comment out these tests so that we can still land the lowering implementation of procedure pointers that is correct. See llvm/llvm-project#73215
Assigned back to Jean, who can respond to my comment or close the bug. |
These tests are looking for a semantic error that flang is not emitting but they used to pass because a TODO for procedure pointers was emitted in lowering. Lowering implemented procedure pointers, so these test now fail. I opened an issue against semantics, but I want to comment out these tests so that we can still land the lowering implementation of procedure pointers that is correct. See llvm/llvm-project#73215
I could also not find a constraint or requirement violation here. It seems rational to implicitly resolve the procedure pointer RHS as a procedure name just like they are implicitly resolved to procedure in call statements. |
The following program is accepted by flang, while all other compilers reject it:
(Flang implicitly resolves
x
to be a procedure).Failing tests in the llvm-test-suite:
https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/proc_ptr_46.f90
https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/proc_ptr_37.f90
The text was updated successfully, but these errors were encountered: