loop.temp_dim is set by gfc_trans_create_temp_array; there should be no reason why that value wouldn't suit gfc_trans_constant_array_constructor, which has then no reason to set the value directly. This patch remove that code. Then, the loop argument is useless and can be removed too. The function is static, so it loses its gfc_ prefix along the way. OK?