[PATCH] D24602: [libc++] Fix and document visibility attributes for Clang, GCC and Windows.

Shoaib Meenai via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 16 10:21:17 PDT 2016


smeenai added a subscriber: smeenai.

================
Comment at: docs/DesignDocs/VisibilityMacros.rst:33
@@ +32,3 @@
+  Mark a type's typeinfo and vtable as having default visibility.
+  `_LIBCPP_TYPE_VIS`. This macro has no effect on the visibility of the
+  type's member functions. This attribute cannot be used on class templates.
----------------
The `_LIBCPP_TYPE_VIS` at the start of this line seems out of place?

================
Comment at: include/__config:605
@@ +604,3 @@
+#  if __has_attribute(__type_visibility__)
+#    define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __attribute__ ((__visibility__("default")))
+#  else
----------------
Do you think it's worth adding a comment in the code to this effect, or even just a comment pointing to the visibility macros design doc? It's a bit confusing. Alternatively, maybe define a `_LIBCPP_OVERRIDE_TYPE_VIS` inside the `__has_attribute(__type_visibility__)` case of `_LIBCPP_TYPE_VIS` and use that macro here instead of repeating the type visibility attribute check, to make this self documenting.


https://reviews.llvm.org/D24602





More information about the cfe-commits mailing list