summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.law/operators15.C
blob: ea0e6885713192336f1b165392b98b3151927f81 (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
// { dg-do run  }
// GROUPS passed operators
// opr-del file
// Message-Id: <199301272137.AA25213@world.std.com>
// From: kol@world.std.com (Nikolay Yatsenko)
// Subject: bug report
// Date: Wed, 27 Jan 1993 16:37:30 -0500

extern "C" int printf(const char* ...);

int     delete_counter = -1;

struct T{
  void operator delete (void * p) {delete_counter ++; ::operator delete(p);}
};

int main(void)
{
  T * ps1 = new T;

  ::delete ps1;             // Wrong T::operator delete() is called here

  if (delete_counter != -1)
    { printf ("FAIL\n"); return 1; }
  else
    printf ("PASS\n");
  return 0;
}