OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [g++.dg/] [init/] [placement5.C] - Diff between revs 301 and 384

Only display areas with differences | Details | Blame | View Log

Rev 301 Rev 384
// 5.3.4/19: If the lookup finds the two-parameter form of a usual
// 5.3.4/19: If the lookup finds the two-parameter form of a usual
// deallocation function (3.7.4.2) and that function, considered as a
// deallocation function (3.7.4.2) and that function, considered as a
// placement deallocation function, would have been selected as a match for
// placement deallocation function, would have been selected as a match for
// the allocation function, the program is ill-formed.
// the allocation function, the program is ill-formed.
// But we should only complain about using op delete (void *, size_t) for
// But we should only complain about using op delete (void *, size_t) for
// placement delete if it would also be selected for normal delete, not if
// placement delete if it would also be selected for normal delete, not if
// there's also an op delete (void *).
// there's also an op delete (void *).
typedef __SIZE_TYPE__ size_t;
typedef __SIZE_TYPE__ size_t;
struct A
struct A
{
{
  A();
  A();
  void* operator new (size_t, size_t);
  void* operator new (size_t, size_t);
  void operator delete (void *, size_t); // { dg-error "non-placement" }
  void operator delete (void *, size_t); // { dg-error "non-placement" }
};
};
struct B
struct B
{
{
  B();
  B();
  void * operator new (size_t);
  void * operator new (size_t);
  void * operator new (size_t, size_t);
  void * operator new (size_t, size_t);
  void operator delete (void *);
  void operator delete (void *);
  void operator delete (void *, size_t);
  void operator delete (void *, size_t);
};
};
int main()
int main()
{
{
  A* ap = new (24) A;           // { dg-error "placement delete" }
  A* ap = new (24) A;           // { dg-error "placement delete" }
  B* bp = new (24) B;
  B* bp = new (24) B;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.