foo.c   [plain text]


static int var_static = 3;

__attribute__((visibility("hidden")))
int var_hidden = 4;

int var_global = 5;


__attribute__((visibility("hidden"), weak))
int var_weak_hidden = 4;

__attribute__((weak))
int var_weak_global = 5;




static int* foo_static() { return &var_static; }

__attribute__((visibility("hidden")))
int* foo_hidden() { return &var_hidden; }


int* foo_global() { return &var_global; }


__attribute__((visibility("hidden"),weak))
int* foo_weak_hidden() { return &var_weak_hidden; }


__attribute__((weak))
int* foo_weak_global() { return &var_weak_global; }


__attribute__((visibility("hidden")))
void* keep[] = { &foo_static };