- ExternalLinkage, // Externally visible function
- LinkOnceLinkage, // Keep one copy of named function when linking (inline)
- WeakLinkage, // Keep one copy of named function when linking (weak)
- AppendingLinkage, // Special purpose, only applies to global arrays
- InternalLinkage // Rename collisions when linking (static functions)
+ ExternalLinkage = 0,///< Externally visible function
+ LinkOnceLinkage, ///< Keep one copy of function when linking (inline)
+ WeakLinkage, ///< Keep one copy of named function when linking (weak)
+ AppendingLinkage, ///< Special purpose, only applies to global arrays
+ InternalLinkage, ///< Rename collisions when linking (static functions)
+ DLLImportLinkage, ///< Function to be imported from DLL
+ DLLExportLinkage, ///< Function to be accessible from DLL
+ ExternalWeakLinkage,///< ExternalWeak linkage description
+ GhostLinkage ///< Stand-in functions for streaming fns from BC files
+ };
+
+ /// @brief An enumeration for the kinds of visibility of global values.
+ enum VisibilityTypes {
+ DefaultVisibility = 0, ///< The GV is visible
+ HiddenVisibility, ///< The GV is hidden
+ ProtectedVisibility ///< The GV is protected