https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53991
--- Comment #9 from torvald at gcc dot gnu.org --- Still fails with r232693. This seems to be another case of difficult ordering between TM passes and other passes. It makes sense that we don't inline tm_pure because we must not loose that information. always_inline is specified to produce an error when not inlining, but this shouldn't be much of a problem when considering code instrumented for transactions I suppose (can there be a case where lack of inlining causes a correctness problem?). Perhaps it's easiest if we clone the function if we see such a case, so that the solution can be different for TM-instrumented clones and normal code.