Mercurial > hg > CbC > CbC_gcc
view libitm/testsuite/libitm.c/cancel.c @ 115:4cb7a319550d
fix c-parser.c
author | mir3636 |
---|---|
date | Tue, 28 Nov 2017 19:31:15 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
#include <stdlib.h> #include <libitm.h> unsigned char pp[100]; void __attribute((transaction_may_cancel_outer,noinline)) cancel1() { __transaction_cancel [[outer]]; } int a, b; int main() { a = b = 0; __transaction_atomic { a = 1; __transaction_atomic { b = 1; __transaction_cancel; } } if (a != 1 || b != 0) abort(); if (_ITM_inTransaction() != outsideTransaction) abort(); __transaction_atomic [[outer]] { a = 2; __transaction_atomic { b = 2; __transaction_cancel [[outer]]; } } if (a != 1 || b != 0) abort(); if (_ITM_inTransaction() != outsideTransaction) abort(); __transaction_atomic [[outer]] { a = 2; __transaction_atomic { b = 2; __transaction_cancel [[outer]]; cancel1(); } } if (a != 1 || b != 0) abort(); if (_ITM_inTransaction() != outsideTransaction) abort(); return 0; }