------- Additional Comments From sgk at troutmask dot apl dot washington dot edu 2005-01-02 19:10 ------- Here a further reduction of the problem.
This compiles fine logical a, b a(b) = .true. b = .false. if (a(b)) b = .true. end The parse tree is ASSIGN b .false. IF a[[((b))]] ASSIGN b .true. ENDIF This causes the ICE. logical a, b a(b) = .true. if (a(.false.)) b = .true. end with the following parse tree IF a[[((.false.))]] ASSIGN b .true. ENDIF The problem is in gfc_conv_statement_function(), which apparently can't deal with an actual named constant parameter for its argument. Unfortunately, I still don't know how to fix this. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18600