https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68122
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rth at gcc dot gnu.org, | |torvald at gcc dot gnu.org --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Forgot the testcase: int cnt; int x, y, *p; int main (void) { __transaction_atomic { cnt += __builtin_add_overflow (x, y, p); } } Basically, all cases in trans-mem.c that use gimple_call_fn are suspect, for gimple_call_internal_p calls that returns NULL. is_tm_pure_call handles internal calls by testing ECF_CONST or ECF_PURE for them, which is fine, the question is what exactly to do about the other spots. Richard/Torvald, could you please have a look at this?