Developer Guide and Reference

Contents

fvisibility

Specifies the default visibility for global symbols or the visibility for symbols in declarations, functions, or variables.
This content is specific to C++; it does not apply to
DPC++
.

Syntax

Linux:
-fvisibility
=
arg
-fvisibility-global-new-delete-hidden
-fvisibility-inlines-hidden
-f[no]visibility-inlines-hidden-static-local-var
-fvisibility-ms-compat
Windows:
None
Arguments
arg
Specifies the visibility setting. Possible values are:
default
Sets visibility to default. The symbol is visible outside this shared object.
This means that other components can reference the symbols, and the symbol definitions can be overridden (preempted) by a definition of the same name in another component.
hidden
Sets visibility to hidden. The symbol is
not
visible outside this shared object.
This means that other components cannot directly reference the symbol.
internal
This is the same as specifying hidden.
protected
Sets visibility to protected. The symbol is seen by the dynamic linker but always dynamically resolves to an object within this shared object.
This means that other components can reference the symbol, but it cannot be overridden by a definition of the same name in another component.
This value is not supported on all targets.
Default
-fvisibility=default
The compiler sets visibility of symbols to default.
Description
This option specifies the default visibility for global symbols (syntax
-fvisibility=
arg
) or the visibility for symbols in declarations, functions, or variables.
The following table shows supported
-fvisibility
options:
Option
Description
-fvisibility=
arg
Sets visibility of symbols for all global declarations.
As specified above in Arguments,
arg
can be one of the following: hidden internal default protected.
-fvisibility-global-new-delete-hidden
Sets hidden visibility for global C++ operator new and delete declarations.
-fvisibility-inlines-hidden
Sets hidden visibility by default for inline C++ member functions.
-fvisibility-inlines-hidden-static-local-var
-fno-visibility-inlines-hidden-static-local-var
When
-fvisibility-inlines-hidden
is enabled, static variables in inline C++ member functions will also be given hidden visibility by default.
To disable option
-fvisibility-inlines-hidden-static-local-var
, specify option
-fno-visibility-inlines-hidden-static-local-var
.
-fvisibility-ms-compat
Sets default visibility for global types and sets hidden visibility for global functions and variables.
If an -fvisibility option is specified more than once on the command line, the last specification takes precedence over any others.
The following shows the precedence of the visibility settings (from greatest to least visibility):
  • default
  • protected
  • hidden
IDE Equivalent
None
Alternate Options
None

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.