------- Comment #4 from fxcoudert at gcc dot gnu dot org 2007-02-06 13:41 ------- I was wrong: the bug basically happens for all intrinsics which gfc_walk_expr one of their arguments and then simply assert that the ss != gfc_ss_terminator. This is a wrong thing to do for constant arguments. I audited all the intrinsics to find out which I could lead to an ICE, and here's the complete list:
integer,parameter :: i(1,1) = 0, j(2) = 42 logical :: l ! print *, maxloc(j+j,mask=(j==2)) print *, size(j+j) print *, minval(j+j) print *, minval(j,mask=(j==2)) print *, maxval(j+j) print *, maxval(j,mask=(j==2)) print *, sum(j,mask=j==2) print *, sum(j+j) print *, product(j+j) print *, ubound(j+j) print *, lbound(j+j) print *, dot_product(j+j,j) print *, dot_product(j,j+j) print *, count(i==1) print *, any(i==1) print *, all(i==1) end I couldn't make maxloc/minloc ICE, although I'm pretty sure there should be a way to get it. -- fxcoudert at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|fxcoudert at gcc dot gnu dot|unassigned at gcc dot gnu |org |dot org Status|ASSIGNED |NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29400