------- Comment #4 from fxcoudert at gcc dot gnu dot org 2007-10-17 12:36 ------- (In reply to comment #3) > You're right. The assignment even produces the temporary for the lhs index > that it should. Now why on earth does this happen in 64bit mode an not in > 32bit??
Sometimes, the difference between 32 and 64 bit is that gfortran generates conversions for subscripts from int4 to int8 in the 64-bit case, while it uses the int4 directly in the 32 bit case; an expression can then be an EXPR_FUNCTION in one case (__convert_i4_i8, or something like that) and an EXPR_CONST or EXPR_ARRAY in the other case; this difference then makes us take different code paths. I've seen it happen for a recent PR, though I can't remember which. -- fxcoudert at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fxcoudert at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33749