https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64853
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-01-29 CC| |jakub at gcc dot gnu.org Target Milestone|--- |5.0 Summary|wrong code at -Os and above |[5 Regression] wrong code |on x86_64-linux-gnu |at -Os and above on | |x86_64-linux-gnu Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This started with r217560, the first difference is during VRP2: Visiting statement: _13 = (signed char) g_68; +Match-and-simplified (signed char) g_68 to -56(OVF) Found new range for _13: [-56, -56] and various others, leading to -_10: ~[1, 254] +_10: [255, +INF] .MEM_11: VARYING -g_12: [0, 255] -_13: VARYING +g_12: [255, 255] +_13: [-56, -1] etc. Haven't checked if the changes are correct or not.