Hi Arnd, On Thu, Aug 09, 2018 at 08:12:27PM +0200, Arnd Bergmann wrote: > On Thu, Aug 9, 2018 at 7:45 PM Paul Burton <paul.burton@xxxxxxxx> wrote: > > > +/* > > + * With GCC v4.5 onwards can use __builtin_unreachable to indicate to the > > + * compiler that a particular code path will never be hit. This allows it to be > > + * optimised out of the generated binary. > > + * > > + * Unfortunately GCC from at least v4.9.2 to current head of tree as of May > > + * 2016 suffer from a bug that can lead to instructions from beyond an > > Has anything happened to address this in gcc in the meantime? > Could you update this text to reflect whatever is in current gcc-9? Good question. I can reproduce the problem using the test case from [1] using both GCC 6.4.0 & 7.3.0, but 8.1.0 generates wildly different code which looks good. Nothing relevant is listed in the release notes for GCC 8.x though, and I can't see anything obvious in gcc's commit logs. It doesn't looks like the fix Robert suggested went in. So I don't know whether current GCC's have resolved the problem or just get lucky enough not to hit it with the existing testcase. I've copied Matthew (GCC MIPS maintainer) in case he has any relevant information. Thanks, Paul [1] https://gcc.gnu.org/ml/gcc-patches/2015-09/msg00360.html