34 lines
577 B
C
34 lines
577 B
C
// The VxWorks kernel has no implementation of atexit, so local statics
|
|
// are never destroyed.
|
|
// { dg-do run { xfail vxworks_kernel } }
|
|
// This is a poor test case, it is meant to ensure that function local
|
|
// statics are destroyed at the right time. See PR 2736 for details.
|
|
// prms-id: 2736
|
|
|
|
#include <stdlib.h>
|
|
|
|
int count;
|
|
|
|
struct A {
|
|
int which;
|
|
A(int i) :which(i) {
|
|
// printf("ctor %x\n", this);
|
|
}
|
|
~A() {
|
|
// printf("dtor %x\n", this);
|
|
if (++count != which)
|
|
abort ();
|
|
}
|
|
};
|
|
|
|
void
|
|
foo() {
|
|
static A a(1);
|
|
}
|
|
|
|
A a(2);
|
|
|
|
int main() {
|
|
foo();
|
|
}
|