http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59049
Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu.org, | |steven at gcc dot gnu.org --- Comment #2 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> --- The regression shows up at r204194 : http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204194 The 104t.copyprop6 looks indeed more cumbersome for r204194 than for r204193: --- ../204193/strlen-2.i.104t.copyprop6 2013-11-08 16:03:58.272739028 +0000 +++ ./strlen-2.i.104t.copyprop6 2013-11-08 16:04:18.355773658 +0000 @@ -27,11 +27,15 @@ main_test () { + char[4] * iftmp.2_1; + const char * iftmp.6_2; const char * iftmp.12_3; long unsigned int g.3_7; long unsigned int g.5_8; + long unsigned int _10; long unsigned int h.7_11; long unsigned int h.9_12; + long unsigned int _14; long unsigned int i.10_15; long unsigned int i.11_16; long unsigned int j.13_19; @@ -44,24 +48,31 @@ long unsigned int _28; long unsigned int k.14_29; long unsigned int l.20_33; + _Bool _34; + _Bool _35; + _Bool _36; + _Bool _37; + _Bool _38; + _Bool _39; <bb 2>: g.3_7 = g; g.5_8 = g.3_7 + 1; g = g.5_8; - if (g.5_8 != 1) + if (g.3_7 != 0) goto <bb 3>; else goto <bb 4>; <bb 3>: - abort (); <bb 4>: - h.7_11 = h; - h.9_12 = h.7_11 + 1; - h = h.9_12; - if (h.9_12 != 1) + # iftmp.2_1 = PHI <"foo"(3), "bar"(2)> + _10 = strlen (iftmp.2_1); + _34 = g.5_8 != 1; + _35 = _10 != 3; + _36 = _35 | _34; + if (_36 != 0) goto <bb 5>; else goto <bb 6>; @@ -70,68 +81,93 @@ abort (); <bb 6>: + h.7_11 = h; + h.9_12 = h.7_11 + 1; + h = h.9_12; + if (h.7_11 != 0) + goto <bb 7>; + else + goto <bb 8>; + + <bb 7>: + + <bb 8>: + # iftmp.6_2 = PHI <&MEM[(void *)"xfoo" + 1B](7), "bar"(6)> + _14 = strlen (iftmp.6_2); + _37 = h.9_12 != 1; + _38 = _14 != 3; + _39 = _38 | _37; + if (_39 != 0) + goto <bb 9>; + else + goto <bb 10>; + + <bb 9>: + abort (); + + <bb 10>: i.10_15 = i; i.11_16 = i.10_15 + 1; i = i.11_16; if (i.11_16 != 1) - goto <bb 7>; + goto <bb 11>; else - goto <bb 8>; + goto <bb 12>; - <bb 7>: + <bb 11>: abort (); - <bb 8>: + <bb 12>: inside_main = 0; j.13_19 = j; if (j.13_19 != 0) - goto <bb 9>; + goto <bb 13>; else - goto <bb 10>; + goto <bb 14>; - <bb 9>: + <bb 13>: k.14_20 = k; k.16_21 = k.14_20 + 1; k = k.16_21; iftmp.12_23 = "foo" + k.14_20; - goto <bb 11>; + goto <bb 15>; - <bb 10>: + <bb 14>: k.14_24 = k; k.18_25 = k.14_24 + 1; k = k.18_25; iftmp.12_27 = "bar" + k.14_24; - <bb 11>: - # iftmp.12_3 = PHI <iftmp.12_23(9), iftmp.12_27(10)> + <bb 15>: + # iftmp.12_3 = PHI <iftmp.12_23(13), iftmp.12_27(14)> _28 = strlen (iftmp.12_3); if (_28 != 3) - goto <bb 13>; + goto <bb 17>; else - goto <bb 12>; + goto <bb 16>; - <bb 12>: + <bb 16>: k.14_29 = k; if (k.14_29 != 1) - goto <bb 13>; + goto <bb 17>; else - goto <bb 14>; + goto <bb 18>; - <bb 13>: + <bb 17>: abort (); - <bb 14>: + <bb 18>: foo (); l.20_33 = l; if (l.20_33 != 1) - goto <bb 15>; + goto <bb 19>; else - goto <bb 16>; + goto <bb 20>; - <bb 15>: + <bb 19>: abort (); - <bb 16>: + <bb 20>: return; }