aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.law/operators15.C
blob: 0b0623c94c5b8741dd7c8984afc15f24c1a2ee44 (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
// 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");
  else
    printf ("PASS\n");
  return 0;
}