The following causes an ICE with 17 update one.
MODULE m IMPLICIT NONE CONTAINS SUBROUTINE ice(arg) USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_NULL_PTR INTEGER, OPTIONAL :: arg CALL proc(MERGE(C_NULL_PTR, C_NULL_PTR, PRESENT(arg))) END SUBROUTINE ice SUBROUTINE proc(ptr) BIND(C) USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_PTR TYPE(C_PTR), VALUE :: ptr END SUBROUTINE proc END MODULE m
>ifort /c /check:all /warn:all /standard-semantics "2016-12-17 ice.f90" Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 17.0 Build 20161005 Copyright (C) 1985-2016 Intel Corporation. All rights reserved. 2016-12-17 ice.f90(11): remark #7712: This variable has not been used. [PTR] SUBROUTINE proc(ptr) BIND(C) ------------------^ 2016-12-17 ice.f90(8): catastrophic error: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error. compilation aborted for 2016-12-17 ice.f90 (code 1)