https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43264
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-02-06 CC| |law at redhat dot com Ever confirmed|0 |1 --- Comment #5 from Jeffrey A. Law <law at redhat dot com> --- It's a bug specific to the old H8/300 support (ie, works correctly on H8/300H and H8/300s variants). The 24bit shift is implemented as a byte copy from the high byte to the low bite, then extending the sign bit through the two middle bytes and into the high byte. But the extending part had two typos which prevented extending into the upper middle and upper bytes.