* Marc Glisse: > On Mon, 7 Jan 2019, Konstantin Kharlamov wrote: > >> In most projects a definite pattern that's unlikely to be executed >> is a PRINT_ERR macro which is basically a wrapper around fprintf() >> call. E.g. >> >> if (some_error) { >> PRINT_ERR("ERR"); >> // do cleanup >> return; >> } >> >> I wonder, is there a way to hint GCC that, whenever that code >> appears, whatever branch was prior to that is unlikely to be >> executed? > > Make PRINT_ERR a function with __attribute__((cold)). But this does something completely differently. On some targets, it produces unbearably slow code because GCC expects the code to never run in practice. __builtin_expect does not have this effect. Thanks, Florian