// Check that on targets with "__cxa_atexit" we use destructors,
// rather than cleanup functions, to destroy objects with static
// storage duration.

// { dg-require-effective-target "cxa_atexit" }
// Cleanup functions generated by G++ have the "_tcf" prefix.
// { dg-final { scan-assembler-not "_tcf" } }

struct S { 
  ~S();
};

struct T { 
  S s;
};

S s;
T t;

void f() {
  static S s;
}