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++.old-deja/] [g++.jason/] [dtor5.C] - Diff between revs 305 and 384

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

Rev 305 Rev 384
// { dg-do run  }
// { dg-do run  }
// PRMS Id: 5286
// PRMS Id: 5286
// Bug: g++ forgets side-effects of object in call to nonexistent destructor.
// Bug: g++ forgets side-effects of object in call to nonexistent destructor.
#include 
#include 
int r;
int r;
template  struct A {
template  struct A {
  T *p;
  T *p;
  int i;
  int i;
  A() { i = 0; p = (T*) new char[sizeof (T)]; new (p + i++) T; }
  A() { i = 0; p = (T*) new char[sizeof (T)]; new (p + i++) T; }
  ~A() { p[--i].~T(); r = i; }
  ~A() { p[--i].~T(); r = i; }
};
};
int main()
int main()
{
{
  { A a; }
  { A a; }
  int* p = (int*) new char[sizeof (int)];
  int* p = (int*) new char[sizeof (int)];
  new (p + r++) int;
  new (p + r++) int;
  typedef int I;
  typedef int I;
  p[--r].~I();
  p[--r].~I();
  return r;
  return r;
}
}
 
 

powered by: WebSVN 2.1.0

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