https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108656
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- In general we avoid disallowing attribute combinations that at least in theory make sense. pure/const are about memory side-effects while returns_twice is about control flow, so in this regard I don't see how they should conflict. That we exclude !gimple_has_side_effects from call_can_make_abnormal_goto is somewhat of a chicken-and-egg thing - "side effect" is something not explicitely encoded in the IL but a returns_twice results in explicit encoding via abnormal edges. But then we cannot use that for CFG construction.