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?

Reply via email to