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.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [p783b.C] - Diff between revs 305 and 338

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

Rev 305 Rev 338
// { dg-do run  }
// { dg-do run  }
// This one check for objects being destroyed twice.  The bug it is
// This one check for objects being destroyed twice.  The bug it is
// looking for is the extra dtor call on C() even though it is never
// looking for is the extra dtor call on C() even though it is never
// built.
// built.
// prms-id: 783
// prms-id: 783
extern "C" int printf (const char *, ...);
extern "C" int printf (const char *, ...);
extern "C" void exit (int);
extern "C" void exit (int);
class C {
class C {
  int i;
  int i;
public:
public:
//  C() {printf ("C ctor at %x\n", this);}
//  C() {printf ("C ctor at %x\n", this);}
//  ~C() {printf ("C dtor at %x\n", this);}
//  ~C() {printf ("C dtor at %x\n", this);}
  C() {
  C() {
    i = 1;
    i = 1;
  }
  }
  ~C() {
  ~C() {
    if (i != 1) {
    if (i != 1) {
      exit(1);
      exit(1);
    }
    }
    i = 0;
    i = 0;
  }
  }
};
};
C g;
C g;
C func()  {
C func()  {
  return g;
  return g;
}
}
int main(int argc, char**argv) {
int main(int argc, char**argv) {
  C c,d;
  C c,d;
//  printf ("\n");
//  printf ("\n");
  c = (argc != 1) ? C() : d;
  c = (argc != 1) ? C() : d;
//  printf ("\n");
//  printf ("\n");
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

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