@@ -768,7 +768,7 @@ class __func<_Rp1 (^)(_ArgTypes1...), _Alloc, _Rp(_ArgTypes...)> : public __base
768
768
{
769
769
}
770
770
771
- virtual __base<_Rp(_ArgTypes...)>* __clone () const {
771
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual __base<_Rp(_ArgTypes...)>* __clone () const {
772
772
_LIBCPP_ASSERT_INTERNAL (
773
773
false ,
774
774
" Block pointers are just pointers, so they should always fit into "
@@ -777,34 +777,40 @@ class __func<_Rp1 (^)(_ArgTypes1...), _Alloc, _Rp(_ArgTypes...)> : public __base
777
777
return nullptr ;
778
778
}
779
779
780
- virtual void __clone (__base<_Rp(_ArgTypes...)>* __p) const { ::new ((void *)__p) __func (__f_); }
780
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual void __clone (__base<_Rp(_ArgTypes...)>* __p) const {
781
+ ::new ((void *)__p) __func (__f_);
782
+ }
781
783
782
- virtual void destroy () _NOEXCEPT {
784
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual void destroy () _NOEXCEPT {
783
785
# ifndef _LIBCPP_HAS_OBJC_ARC
784
786
if (__f_)
785
787
_Block_release (__f_);
786
788
# endif
787
789
__f_ = 0 ;
788
790
}
789
791
790
- virtual void destroy_deallocate () _NOEXCEPT {
792
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual void destroy_deallocate () _NOEXCEPT {
791
793
_LIBCPP_ASSERT_INTERNAL (
792
794
false ,
793
795
" Block pointers are just pointers, so they should always fit into "
794
796
" std::function's small buffer optimization. This function should "
795
797
" never be invoked." );
796
798
}
797
799
798
- virtual _Rp operator ()(_ArgTypes&&... __arg) { return std::__invoke (__f_, std::forward<_ArgTypes>(__arg)...); }
800
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual _Rp operator ()(_ArgTypes&&... __arg) {
801
+ return std::__invoke (__f_, std::forward<_ArgTypes>(__arg)...);
802
+ }
799
803
800
804
# ifndef _LIBCPP_HAS_NO_RTTI
801
- virtual const void * target (type_info const & __ti) const _NOEXCEPT {
805
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual const void * target (type_info const & __ti) const _NOEXCEPT {
802
806
if (__ti == typeid (__func::__block_type))
803
807
return &__f_;
804
808
return (const void *)nullptr ;
805
809
}
806
810
807
- virtual const std::type_info& target_type () const _NOEXCEPT { return typeid (__func::__block_type); }
811
+ _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual const std::type_info& target_type () const _NOEXCEPT {
812
+ return typeid (__func::__block_type);
813
+ }
808
814
# endif // _LIBCPP_HAS_NO_RTTI
809
815
};
810
816
0 commit comments