https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106822
--- Comment #1 from Benjamin B. Meier <benjamin.meier70 at gmail dot com> --- It might also be worth to note that the following code always compiles without any jumps: -------------------------------- bool f2(const MyStruct *s) { return s->a | s ->b; } -------------------------------- Given that f and f2 should behave identical, I would assume that the optimized code of them is similar "good" (e.g. does not contain any jumps)