1  /* { dg-do compile } */
       2  /* { dg-options "-fgnu-tm -fdump-tree-tmmark" } */
       3  
       4  #include <stdlib.h>
       5  
       6  char *z;
       7  
       8  void foobar(void)
       9  {
      10      char *p, *q;
      11      __transaction_atomic {
      12  	p = (char *)malloc(123);
      13  	q = (char *)calloc(555,1);
      14  	free(q);
      15  	free(p);
      16      }
      17      z = (char *)malloc (666);
      18  }
      19  
      20  /* { dg-final { scan-tree-dump-times " malloc .666" 1 "tmmark" { target { ! { *-*-solaris2* && c++ } } } } } */
      21  /* Solaris 2 headers are C++-aware and declare std::malloc.  */
      22  /* { dg-final { scan-tree-dump-times " std::malloc .666" 1 "tmmark" { target { *-*-solaris2* && c++ } } } } */
      23  /* { dg-final { scan-tree-dump-times "__builtin__ITM_malloc" 1 "tmmark" } } */
      24  /* { dg-final { scan-tree-dump-times "__builtin__ITM_calloc" 1 "tmmark" } } */
      25  /* { dg-final { scan-tree-dump-times "__builtin__ITM_free" 2 "tmmark" } } */