// { dg-options "-fvisibility=hidden" } // { dg-require-visibility "" } // { dg-final { scan-not-hidden "_ZGVZN5otherclEvE4s_cd" } } extern "C" int printf (const char *, ...); #define DLLEXPORT __attribute__ ((visibility("default"))) struct class_data { int apple; class_data() { printf("non trivial ctor\n"); } }; struct DLLEXPORT other { class_data* operator ()() { static class_data s_cd; return &s_cd; } }; int main() { other aFoo; aFoo(); return 0; }