(root)/
gcc-13.2.0/
libitm/
testsuite/
libitm.c/
notx.c
       1  /* These tests all check whether initialization happens properly even if no
       2     transaction has been used in the current thread yet.  */
       3  
       4  /* { dg-options "-pthread" } */
       5  
       6  #include <stdlib.h>
       7  #include <pthread.h>
       8  #include <libitm.h>
       9  
      10  static void *test1 (void *dummy __attribute__((unused)))
      11  {
      12    if (_ITM_inTransaction() != outsideTransaction)
      13      abort();
      14    return NULL;
      15  }
      16  
      17  static void *test2 (void *dummy __attribute__((unused)))
      18  {
      19    if (_ITM_getTransactionId() != _ITM_noTransactionId)
      20      abort();
      21    return NULL;
      22  }
      23  
      24  
      25  int main()
      26  {
      27    pthread_t thread;
      28  
      29    pthread_create(&thread, NULL, test1, NULL);
      30    pthread_join(thread, NULL);
      31  
      32    pthread_create(&thread, NULL, test2, NULL);
      33    pthread_join(thread, NULL);
      34  
      35    return 0;
      36  }