/* For details, see README */

extern "C" {

void __attribute__((constructor))
my_constructor(void)
{
    /* nothing */
}

void __attribute__((destructor))
my_destructor(void)
{
    /* nothing */
}

}

class Foo {
public:
    Foo() : mValue(1) {}
    ~Foo() { mValue = 0; }
private:
    int mValue;
};

static Foo foo;