aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/tm/pr46941.C
blob: eac5438313877f5a49a3a685365c7a8f510811a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// { dg-do "compile" }
// { dg-options "-fgnu-tm" }

class Obj
{
  int dummy;
};

__attribute__((transaction_safe))
Obj* allocate()
{
  return new Obj;
}

__attribute__((transaction_safe))
void deallocate(Obj * o)
{
  delete o;
}

__attribute__((transaction_safe))
Obj* allocatearray()
{
  return new Obj[2];
}

__attribute__((transaction_safe))
void deallocatearray(Obj *o[])
{
  delete [] o;
}

/* The delete/new operators are handled by the libitm runtime.  */
/* { dg-final { scan-assembler "_ZGTtnw\[mj\]" } } */
/* { dg-final { scan-assembler "_ZGTtna\[mj\]" } } */
/* { dg-final { scan-assembler "_ZGTtdlPv" } } */
/* { dg-final { scan-assembler "_ZGTtdaPv" } } */