view gcc/testsuite/g++.old-deja/g++.mike/p710.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do assemble  }
// GROUPS passed delete
/*
  Bug Id: 
  PRMS Id: p0000710
  Bug is : overloading operator delete in class def not allowed
*/

/*
  In addition to this bug, the compiler permits overloading operator
  delete in the class definition.  This is verboten, and should be
  caught by a regression suite.  In other words, the following is also a
  bug that's not caught:
*/


#include <stdlib.h>

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



class B
{
 public:
   int x;
   virtual ~B() {}
   void operator delete(void*,size_t s)
  {
      printf("B::delete() %d\n",s);
   }
   void operator delete(void*){}
};

int main()
{
   B* p = new B;
   delete p;
   return 0;
}