[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