------- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-08 12:09 ------- With Paolo's testcase we get the following tree dump in .ch (after copy loop header): g (o) { static const char * const multilib_exclusions_raw[1] = {0B}; const char * const * q; static const char * const multilib_exclusions_raw[1] = {0B}; _Bool D.1280; const char * const D.1279;
<bb 0>: # multilib_exclusions_raw_11 = V_MAY_DEF <multilib_exclusions_raw_9>; # TMT.6_12 = V_MAY_DEF <TMT.6_10>; f (o_3); # VUSE <multilib_exclusions_raw_11>; D.1279_18 = multilib_exclusions_raw[0]; q_19 = &multilib_exclusions_raw[1]; if (D.1279_18 != 0B) goto <L0>; else goto <L2>; # TMT.6_22 = PHI <TMT.6_14(1), TMT.6_12(0)>; # multilib_exclusions_raw_21 = PHI <multilib_exclusions_raw_13(1), multilib_exclusions_raw_11(0)>; # q_20 = PHI <q_6(1), q_19(0)>; <L0>:; # multilib_exclusions_raw_13 = V_MAY_DEF <multilib_exclusions_raw_21>; # TMT.6_14 = V_MAY_DEF <TMT.6_22>; f (o_3); # VUSE <multilib_exclusions_raw_13>; # VUSE <TMT.6_14>; D.1279_4 = *q_20; q_6 = q_20 + 4B; if (D.1279_4 != 0B) goto <L0>; else goto <L2>; <L2>:; return; Note how there is a V_MAY_DEF on the first f for multilib_exclusions_raw. That is just wrong since multilib_exclusions_raw cannot change. -- What |Removed |Added ---------------------------------------------------------------------------- Keywords| |alias http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23777