Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile warnings/errors under Apple clang 12.0.5 #1887

Closed
JaySon-Huang opened this issue May 11, 2021 · 0 comments · Fixed by #2058
Closed

Compile warnings/errors under Apple clang 12.0.5 #1887

JaySon-Huang opened this issue May 11, 2021 · 0 comments · Fixed by #2058
Labels
type/testing Issue or PR for testing

Comments

@JaySon-Huang
Copy link
Contributor

I update my macOS to the latest version and find that it can not compile TiFlash

macOS Big Sur
Version 11.3.1 (20E241)

>  uname -a
Darwin JaySon-Pro.local 20.4.0 Darwin Kernel Version 20.4.0: Thu Apr 22 21:46:47 PDT 2021; root:xnu-7195.101.2~1/RELEASE_X86_64 x86_64

>  clang++ --version
Apple clang version 12.0.5 (clang-1205.0.22.9)
Target: x86_64-apple-darwin20.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/IO/CompressionSettings.cpp:1:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Interpreters/Settings.h:4:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/Field.h:8:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Common/Decimal.h:6:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/Types.h:33:
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multiprecision/cpp_int.hpp:498:41: error: definition of implicit copy assignment operator for 'cpp_int_base<256, 256, boost::multiprecision::signed_magnitude, boost::multiprecision::checked, void, false>' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
   BOOST_MP_FORCEINLINE BOOST_CONSTEXPR cpp_int_base(const cpp_int_base& o)BOOST_NOEXCEPT
                                        ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multiprecision/cpp_int.hpp:1179:38: note: in implicit copy assignment operator for 'boost::multiprecision::backends::cpp_int_base<256, 256, boost::multiprecision::signed_magnitude, boost::multiprecision::checked, void, false>' first required here
      *static_cast<base_type*>(this) = static_cast<base_type&&>(o);
                                     ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multiprecision/number.hpp:209:17: note: in instantiation of member function 'boost::multiprecision::backends::cpp_int_backend<256, 256, boost::multiprecision::signed_magnitude, boost::multiprecision::checked, void>::operator=' requested here
      m_backend = static_cast<Backend&&>(r.m_backend);
                ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Common/Decimal.h:205:23: note: in instantiation of member function 'boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, boost::multiprecision::signed_magnitude, boost::multiprecision::checked, void>, boost::multiprecision::et_off>::operator=' requested here
            number[i] = number[i-1] * 10 + 9;
                      ^
1 error generated.
make[3]: *** [dbms/CMakeFiles/clickhouse_common_io.dir/src/IO/CompressionSettings.cpp.o] Error 1
make[2]: *** [dbms/CMakeFiles/clickhouse_common_io.dir/all] Error 2
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Flash/BatchCoprocessorHandler.cpp:6:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/StorageMergeTree.h:9:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/MergeTree/MergeTreeData.h:20:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multi_index_container.hpp:20:
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/detail/allocator_utilities.hpp:125:11: error: 'rebind<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' is deprecated [-Werror,-Wdeprecated-declarations]
          rebind<Type>::other other;
          ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/detail/allocator_utilities.hpp:133:7: note: in instantiation of template class 'boost::detail::allocator::rebinder<std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>::result<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' requested here
      BOOST_NESTED_TEMPLATE result<Type>::other type;
      ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/config/detail/suffix.hpp:437:33: note: expanded from macro 'BOOST_NESTED_TEMPLATE'
#  define BOOST_NESTED_TEMPLATE template
                                ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/mpl/eval_if.hpp:60:22: note: in instantiation of template class 'boost::detail::allocator::compliant_allocator_rebind_to<std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' requested here
    typedef typename f_::type type;
                     ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/detail/allocator_utilities.hpp:140:3: note: in instantiation of template class 'boost::mpl::eval_if_c<false, boost::detail::allocator::partial_std_allocator_rebind_to<std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>, boost::detail::allocator::compliant_allocator_rebind_to<std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>>' requested here
  mpl::eval_if_c<
  ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multi_index_container.hpp:86:40: note: in instantiation of template class 'boost::detail::allocator::rebind_to<std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' requested here
    typename boost::detail::allocator::rebind_to<
                                       ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/MergeTree/MergeTreeData.h:612:22: note: in instantiation of template class 'boost::multi_index::multi_index_container<std::__1::shared_ptr<const DB::MergeTreeDataPart>, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByInfo>, boost::multi_index::global_fun<const std::__1::shared_ptr<const DB::MergeTreeDataPart> &, const DB::MergeTreePartInfo &, &DB::MergeTreeData::dataPartPtrToInfo>>, boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByStateAndInfo>, boost::multi_index::global_fun<const std::__1::shared_ptr<const DB::MergeTreeDataPart> &, DB::MergeTreeData::DataPartStateAndInfo, &DB::MergeTreeData::dataPartPtrToStateAndInfo>, DB::MergeTreeData::LessStateDataPart>>>' requested here
    DataPartsIndexes data_parts_indexes;
                     ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1764:33: note: 'rebind<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' has been explicitly marked deprecated here
    template <class _Up> struct _LIBCPP_DEPRECATED_IN_CXX17 rebind {typedef allocator<_Up> other;};
                                ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:1057:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
#  define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED
                                      ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:1034:48: note: expanded from macro '_LIBCPP_DEPRECATED'
#    define _LIBCPP_DEPRECATED __attribute__ ((deprecated))
                                               ^
In file included from In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Flash/BatchCoprocessorHandler.cpp/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Flash/CoprocessorHandler.cpp::68:
:
In file included from In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/StorageMergeTree.h/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/StorageMergeTree.h::99:
:
In file included from In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/MergeTree/MergeTreeData.h/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/MergeTree/MergeTreeData.h::2222:
:
In file included from In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multi_index_container.hpp/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/multi_index_container.hpp::2020:
:
/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/detail/allocator_utilities.hpp/Users/jayson/Projects/pingcap/tiflash/storage/ch/contrib/boost/boost/detail/allocator_utilities.hpp:125::11:125 :11: error: 'rebind<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' is deprecated [-Werror,-Wdeprecated-declarations]error: 
'rebind<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<const DB::MergeTreeDataPart>, std::__1::allocator<std::__1::shared_ptr<const DB::MergeTreeDataPart>>>>>>' is deprecated [-Werror,-Wdeprecated-declarations]
          rebind<Type>::other other;
          ^
          rebind<Type>::other other;
          ^
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/DataStreams/RangesFilterBlockInputStream.cpp:4:
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/DataStreams/PKColumnIterator.hpp:15:24: error: definition of implicit copy constructor for 'PKColumnIterator' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy]
    PKColumnIterator & operator=(const PKColumnIterator & itr)
                       ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:4226:37: note: in implicit copy constructor for 'DB::PKColumnIterator' first required here
    return __lower_bound<_Comp_ref>(__first, __last, __value_, __comp);
                                    ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/DataStreams/RangesFilterBlockInputStream.cpp:44:35: note: in instantiation of function template specialization 'std::__1::lower_bound<DB::PKColumnIterator, DB::TiKVHandle::Handle<long long>, bool (*)(const unsigned long long &, const DB::TiKVHandle::Handle<long long> &)>' requested here
                size_t pos = std::lower_bound(PKColumnIterator(0, column), PKColumnIterator(rows, column), ranges.second, func_cmp).pos;
                                  ^
1 error generated.
make[3]: *** [dbms/CMakeFiles/dbms.dir/src/DataStreams/RangesFilterBlockInputStream.cpp.o] Error 1
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/MinMaxIndex.cpp:9:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/DeltaMergeHelpers.h:12:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Functions/FunctionsConversion.h:34:
In file included from /Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Common/FieldVisitors.h:4:
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:265:12: error: no matching function for call to 'equalsOpTmpl'
    return equalsOpTmpl(a, b);
           ^~~~~~~~~~~~
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:445:53: note: in instantiation of function template specialization 'accurate::equalsOp<DB::UInt128, unsigned char>' requested here
    static UInt8 apply(A a, B b) { return accurate::equalsOp(a, b); }
                                                    ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/ValueComparison.h:199:32: note: in instantiation of member function 'DB::EqualsOp<DB::UInt128, unsigned char>::apply' requested here
        res = Op<Left, Right>::apply(left, right);
                               ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/ValueComparison.h:130:22: note: in instantiation of function template specialization 'DB::DM::ValueComparision<EqualsOp>::compareNumberLeftType<DB::Field::Types::UInt128, DB::UInt128, unsigned char>' requested here
                  || compareNumberLeftType<Field::Types::Which::UInt128, UInt128>(left_field, right, res)
                     ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/ValueComparison.h:56:18: note: in instantiation of function template specialization 'DB::DM::ValueComparision<EqualsOp>::compare<DB::DM::ValueComparision<EqualsOp>::Number, unsigned char, DB::DM::ValueComparision<EqualsOp>::Number>' requested here
            ok = compare<Number, Right>(left_field, right_type, right, res);
                 ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/RoughCheck.h:33:10: note: in instantiation of function template specialization 'DB::DM::ValueComparision<EqualsOp>::compare<unsigned char>' requested here
    if (!IS_LEGAL(v, min))
         ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/RoughCheck.h:22:58: note: expanded from macro 'IS_LEGAL'
#define IS_LEGAL(lef_field, right_value) (Cmp<EqualsOp>::compare(lef_field, type, right_value) != FAILED)
                                                         ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Storages/DeltaMerge/Index/MinMaxIndex.cpp:132:23: note: in instantiation of function template specialization 'DB::DM::RoughCheck::checkEqual<unsigned char>' requested here
    FOR_NUMERIC_TYPES(DISPATCH)
                      ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:79:46: note: candidate template ignored: requirement 'is_le_int_vs_uint<DB::UInt128, unsigned char>' was not satisfied [with TInt = DB::UInt128, TUInt = unsigned char]
inline bool_if_le_int_vs_uint_t<TInt, TUInt> equalsOpTmpl(TInt a, TUInt b)
                                             ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:85:46: note: candidate template ignored: requirement 'is_le_int_vs_uint<unsigned char, DB::UInt128>' was not satisfied [with TUInt = DB::UInt128, TInt = unsigned char]
inline bool_if_le_int_vs_uint_t<TInt, TUInt> equalsOpTmpl(TUInt a, TInt b)
                                             ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:111:44: note: candidate template ignored: requirement 'is_gt_int_vs_uint<DB::UInt128, unsigned char>' was not satisfied [with TInt = DB::UInt128, TUInt = unsigned char]
inline bool_if_gt_int_vs_uint<TInt, TUInt> equalsOpTmpl(TInt a, TUInt b)
                                           ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:117:44: note: candidate template ignored: requirement 'is_gt_int_vs_uint<unsigned char, DB::UInt128>' was not satisfied [with TInt = unsigned char, TUInt = DB::UInt128]
inline bool_if_gt_int_vs_uint<TInt, TUInt> equalsOpTmpl(TUInt a, TInt b)
                                           ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:142:51: note: candidate template ignored: requirement 'std::is_integral_v<DB::UInt128>' was not satisfied [with TAInt = DB::UInt128, TAFloat = unsigned char]
inline bool_if_double_can_be_used<TAInt, TAFloat> equalsOpTmpl(TAInt a, TAFloat b)
                                                  ^
/Users/jayson/Projects/pingcap/tiflash/storage/ch/dbms/src/Core/AccurateComparison.h:148:51: note: candidate template ignored: requirement 'std::is_floating_point_v<DB::UInt128>' was not satisfied [with TAInt = unsigned char, TAFloat = DB::UInt128]
inline bool_if_double_can_be_used<TAInt, TAFloat> equalsOpTmpl(TAFloat a, TAInt b)
                                                  ^
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/testing Issue or PR for testing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant