http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51855
--- Comment #2 from torvald at gcc dot gnu.org 2012-01-13 23:45:12 UTC --- Author: torvald Date: Fri Jan 13 23:45:06 2012 New Revision: 183172 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183172 Log: libitm: Filter out undo writes that overlap with the libitm stack. PR libitm/51855 * config/generic/tls.h (GTM::mask_stack_top): New. (GTM::mask_stack_bottom): Declare. * config/generic/tls.c (GTM::mask_stack_bottom): New. * local.cc (gtm_undolog::rollback): Filter out any updates that overlap the libitm stack. Add current transaction as parameter. * libitm_i.h (GTM::gtm_undolog::rollback): Adapt. * beginend.cc (GTM::gtm_thread::rollback): Adapt. * testsuite/libitm.c/stackundo.c: New test. Added: trunk/libitm/testsuite/libitm.c/stackundo.c Modified: trunk/libitm/ChangeLog trunk/libitm/beginend.cc trunk/libitm/config/generic/tls.cc trunk/libitm/config/generic/tls.h trunk/libitm/libitm_i.h trunk/libitm/local.cc