https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68122
Maxim Ostapenko <chefmax at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |chefmax at gcc dot gnu.org --- Comment #2 from Maxim Ostapenko <chefmax at gcc dot gnu.org> --- $ cat tm-thread.c.019t.ubsan ;; Function main (main, funcdef_no=0, decl_uid=2229, cgraph_uid=0, symbol_order=1) main () { int D.2233; int cnt.0; int D.2234; int cnt.0_2; int _3; int _6; <bb 2>: __transaction_atomic // SUBCODE=[ GTMA_HAVE_LOAD GTMA_HAVE_STORE ] <bb 3>: cnt.0_2 = cnt; _3 = UBSAN_CHECK_ADD (cnt.0_2, 1); cnt = _3; __builtin__ITM_commitTransaction (); <bb 4>: _6 = 0; <L0>: return _6; } It seems that pass_ipa_tm tries to handle UBSAN_CHECK_ADD call and fails. Should we teach it to handle ubsan intrinsics? Or maybe just not instrument transaction clauses at all?