9.50 __attribute__((visibility("visibility_type"))) function
attribute
This function attribute affects the visibility of ELF symbols.
Note
This attribute is a GNU compiler extension that the ARM compiler
supports.
Syntax
__attribute__((visibility("visibility_type")))
Where visibility_type is one
of the following:
default
The assumed visibility of symbols can be changed
by other options. Default visibility overrides such changes. Default
visibility corresponds to external linkage.
hidden
The symbol is not placed into the dynamic symbol
table, so no other executable or shared library can directly reference
it. Indirect references are possible using function pointers.
internal
Unless otherwise specified by the processor-specific
Application Binary Interface (psABI), internal visibility
means that the function is never called from another module.
protected
The symbol is placed into the dynamic symbol table,
but references within the defining module bind to the local symbol.
That is, the symbol cannot be overridden by another module.
Usage
Except when specifying default visibility,
this attribute is intended for use with declarations that would
otherwise have external linkage.
You can apply this attribute to functions and variables in
C and C++. In C++, it can also be applied to class, struct, union,
and enum types, and namespace declarations.
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.