- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
module mwe
contains
subroutine fail(a,b)
implicit none
integer, intent(out), optional :: a
integer, intent(out), optional :: b
integer :: args_present
args_present = sum(merge(1,0,[present(a),present(b)]))
end subroutine fail
end module mwe
The above trivial module ICEs ifx 2025.1.0 20250317, but only with this command line:
ifx -assume norealloc_lhs -check all mwe.F90
Dropping either of the options makes the compiler behave.
Enlace copiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
It's the -check shape along with -assume norealloc_lhs combo. I can see how the compiler could get confused about how to check shape when you say to not create an temp for the LHS in this case. Easy for us to see that the result of the expression on the LHS is a simple scalar, but it's a merge of an array which is then sum'med.
I will get a bug report started. Until there is a fix you can use
-warn all,noshape
to prevent the error.
Thank you for a simple and easy to understand sample.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
bug ID is CMPLRLLVM-68884
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Thank you for making this into a bug ID and for the suggested workaround. We found that a simple replacement of
sum(merge(1,0,[...]))
with
count([...])
made the compiler behave.

- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla