[PATCH] D48680: Add missing visibility annotation for __base
Louis Dionne via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 28 13:23:25 PDT 2019
ldionne added a comment.
More specifically, the following program always causes the vtable for `__base<int(float)>` to be internal:
cat <<EOF | clang++ -xc++ - -std=c++11 && nm --demangle a.out
#include <functional>
int go(float) { return 0; }
std::function<int(float)> foo() { return go; }
int main() { foo()(3.3f); }
EOF
That's true with or without this patch, and with or without `-fvisibility=hidden`. We always get:
...
U vtable for __cxxabiv1::__si_class_type_info
0000000100003178 s vtable for std::__1::__function::__base<int (float)>
00000001000030f0 s vtable for std::__1::__function::__func<int (*)(float), std::__1::allocator<int (*)(float)>, int (float)>
0000000100003218 s vtable for std::__1::bad_function_call
...
Repository:
rCXX libc++
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D48680/new/
https://reviews.llvm.org/D48680
More information about the cfe-commits
mailing list