You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.7 KiB

  1. diff --recursive -u gcc-7.4.0-vanilla/libitm/beginend.cc gcc-7.4.0/libitm/beginend.cc
  2. --- gcc-7.4.0-vanilla/libitm/beginend.cc 2017-01-01 07:07:43.905435000 -0500
  3. +++ gcc-7.4.0/libitm/beginend.cc 2019-11-09 00:31:10.093128945 -0500
  4. @@ -431,7 +431,7 @@
  5. // Save everything that we might have to restore on restarts or aborts.
  6. jb = tx->jb;
  7. undolog_size = tx->undolog.size();
  8. - memcpy(&alloc_actions, &tx->alloc_actions, sizeof(alloc_actions));
  9. + alloc_actions = tx->alloc_actions;
  10. user_actions_size = tx->user_actions.size();
  11. id = tx->id;
  12. prop = tx->prop;
  13. @@ -449,7 +449,7 @@
  14. // commits of nested transactions. Allocation actions must be committed
  15. // before committing the snapshot.
  16. tx->jb = jb;
  17. - memcpy(&tx->alloc_actions, &alloc_actions, sizeof(alloc_actions));
  18. + tx->alloc_actions = alloc_actions;
  19. tx->id = id;
  20. tx->prop = prop;
  21. }
  22. @@ -485,7 +485,7 @@
  23. prop = cp->prop;
  24. if (cp->disp != abi_disp())
  25. set_abi_disp(cp->disp);
  26. - memcpy(&alloc_actions, &cp->alloc_actions, sizeof(alloc_actions));
  27. + alloc_actions = cp->alloc_actions;
  28. nesting = cp->nesting;
  29. }
  30. else
  31. diff --recursive -u gcc-7.4.0-vanilla/libitm/method-ml.cc gcc-7.4.0/libitm/method-ml.cc
  32. --- gcc-7.4.0-vanilla/libitm/method-ml.cc 2017-01-01 07:07:43.905435000 -0500
  33. +++ gcc-7.4.0/libitm/method-ml.cc 2019-11-09 01:12:58.674388557 -0500
  34. @@ -138,7 +138,9 @@
  35. // This store is only executed while holding the serial lock, so relaxed
  36. // memory order is sufficient here. Same holds for the memset.
  37. time.store(0, memory_order_relaxed);
  38. - memset(orecs, 0, sizeof(atomic<gtm_word>) * L2O_ORECS);
  39. + void *p = orecs;
  40. + memset(p, 0, sizeof(atomic<gtm_word>) * L2O_ORECS);
  41. +
  42. }
  43. };