------- Comment #3 from pinskia at gcc dot gnu dot org 2006-01-09 17:57 ------- Some more information: (gdb) p debug_generic_expr(lhs.common.type) charD.14[1:32] * $3 = void (gdb) p debug_generic_expr(rhs.common.type) charD.14 *
So we have lhs of a pointer to an array of and not a pointer to a char which is the right hand side. char names[50][1:32]; If we remove the forall part and assign i to be one, we get: i = 1; D.778 = i + -1; D.779 = i + -1; D.780 = &names[D.779]; D.781 = (char[1:32] *) D.780; charts[D.778].name = D.781; That is wrong as is as &names[D.779] type is not char* but already "char[1:32] *", I have to figure out why we have char* here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24936