g++ -std=c++17 -Iheader -Wall test.cc data_manager.cc ext_sort.cc timer.cc -O3 -pthread -ltbb -latomic -march=skylake -Dpmdk -Dbandwidth -lpmem -o release data_manager.cc: In function ‘uint64_t nano_time()’: data_manager.cc:95:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ In file included from header/ips4o/include/ips4o/ips4o.hpp:46:0, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/parallel.hpp: In instantiation of ‘void ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’: header/ips4o/include/ips4o/ips4o.hpp:155:15: required from ‘std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> ips4o::parallel::sort(It, It, Comp, ThreadPool&&) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>; ThreadPool = ips4o::StdThreadPool; std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> = void]’ header/ips4o/include/ips4o/ips4o.hpp:170:35: required from ‘void ips4o::parallel::sort(It, It, Comp, int) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ header/ips4o/include/ips4o/ips4o.hpp:178:36: required from ‘void ips4o::parallel::sort(It, It, Comp) [with It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ ext_sort.cc:97:100: required from here header/ips4o/include/ips4o/parallel.hpp:397:15: warning: unused variable ‘shared’ [-Wunused-variable] auto& shared = shared_ptr_.get(); ^~~~~~ header/ips4o/include/ips4o/parallel.hpp: In instantiation of ‘std::pair<std::vector<typename Cfg::difference_type>, bool> ips4o::detail::Sorter<Cfg>::parallelPartitionPrimary(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, int) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’: header/ips4o/include/ips4o/parallel.hpp:240:25: required from ‘ips4o::detail::Sorter<Cfg>::processBigTaskPrimary(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t, int, ips4o::detail::Sorter<Cfg>::BufferStorage&, std::vector<std::shared_ptr<typename Cfg::SubThreadPool> >&)::<lambda(int, int)> [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>]’ header/ips4o/include/ips4o/parallel.hpp:235:46: required from ‘struct ips4o::detail::Sorter<Cfg>::processBigTaskPrimary(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t, int, ips4o::detail::Sorter<Cfg>::BufferStorage&, std::vector<std::shared_ptr<typename Cfg::SubThreadPool> >&) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int; typename Cfg::SubThreadPool = ips4o::ThreadJoiningThreadPool]::<lambda(int, int)>’ header/ips4o/include/ips4o/parallel.hpp:234:5: required from ‘void ips4o::detail::Sorter<Cfg>::processBigTaskPrimary(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t, int, ips4o::detail::Sorter<Cfg>::BufferStorage&, std::vector<std::shared_ptr<typename Cfg::SubThreadPool> >&) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int; typename Cfg::SubThreadPool = ips4o::ThreadJoiningThreadPool]’ header/ips4o/include/ips4o/parallel.hpp:168:34: required from ‘void ips4o::detail::Sorter<Cfg>::processBigTasks(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t, int, ips4o::detail::Sorter<Cfg>::BufferStorage&, std::vector<std::shared_ptr<typename Cfg::SubThreadPool> >&) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int; typename Cfg::SubThreadPool = ips4o::ThreadJoiningThreadPool]’ header/ips4o/include/ips4o/parallel.hpp:340:20: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] header/ips4o/include/ips4o/parallel.hpp:401:31: required from ‘struct ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(int, int)>’ header/ips4o/include/ips4o/parallel.hpp:400:9: required from ‘void ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/ips4o.hpp:155:15: required from ‘std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> ips4o::parallel::sort(It, It, Comp, ThreadPool&&) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>; ThreadPool = ips4o::StdThreadPool; std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> = void]’ header/ips4o/include/ips4o/ips4o.hpp:170:35: required from ‘void ips4o::parallel::sort(It, It, Comp, int) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ header/ips4o/include/ips4o/ips4o.hpp:178:36: required from ‘void ips4o::parallel::sort(It, It, Comp) [with It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ ext_sort.cc:97:100: required from here header/ips4o/include/ips4o/parallel.hpp:283:16: warning: unused variable ‘size’ [-Wunused-variable] const auto size = end - begin; ^~~~ In file included from header/ips4o/include/ips4o/config.hpp:49:0, from header/ips4o/include/ips4o/ips4o_fwd.hpp:43, from header/ips4o/include/ips4o/ips4o.hpp:42, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp: In instantiation of ‘void ips4o::detail::Sorter<Cfg>::Classifier::classifySwitch(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&, std::integer_sequence<int, Args ...>) const [with bool kEqualBuckets = true; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool> >::iterator)>; int ...Args = {0, 1, 2, 3, 4, 5, 6, 7, 8}; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’: header/ips4o/include/ips4o/classifier.hpp:119:36: required from ‘void ips4o::detail::Sorter<Cfg>::Classifier::classify(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&) const [with bool kEqualBuckets = true; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool> >::iterator)>; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:57:5: required from ‘typename Cfg::difference_type ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:131:58: required from ‘void ips4o::detail::Sorter<Cfg>::parallelClassification(bool) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>]’ header/ips4o/include/ips4o/partitioning.hpp:103:31: required from ‘std::pair<int, bool> ips4o::detail::Sorter<Cfg>::partition(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t*, int, int) [with bool kIsParallel = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int]’ header/ips4o/include/ips4o/parallel.hpp:324:37: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] header/ips4o/include/ips4o/parallel.hpp:401:31: required from ‘struct ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(int, int)>’ header/ips4o/include/ips4o/parallel.hpp:400:9: required from ‘void ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/ips4o.hpp:155:15: required from ‘std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> ips4o::parallel::sort(It, It, Comp, ThreadPool&&) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>; ThreadPool = ips4o::StdThreadPool; std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> = void]’ header/ips4o/include/ips4o/ips4o.hpp:170:35: required from ‘void ips4o::parallel::sort(It, It, Comp, int) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ header/ips4o/include/ips4o/ips4o.hpp:178:36: required from ‘void ips4o::parallel::sort(It, It, Comp) [with It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ ext_sort.cc:97:100: required from here header/ips4o/include/ips4o/classifier.hpp:129:58: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] IPS4OML_ASSUME_NOT(log_buckets_ <= 0 && log_buckets_ >= sizeof...(Args)); ~~~~~~~~~~~~~^~~~~~~~~~ header/ips4o/include/ips4o/utils.hpp:40:35: note: in definition of macro ‘IPS4OML_ASSUME_NOT’ #define IPS4OML_ASSUME_NOT(c) if (c) __builtin_unreachable() ^ In file included from header/ips4o/include/ips4o/memory.hpp:53:0, from header/ips4o/include/ips4o/ips4o.hpp:45, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ((Args == log_buckets_ && ~~~~~~~~~~~~~~~~~~~~~~^~ classifyUnrolled<kEqualBuckets, Args>(begin, end, std::forward<Yield>(yield))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] In file included from header/ips4o/include/ips4o/config.hpp:49:0, from header/ips4o/include/ips4o/ips4o_fwd.hpp:43, from header/ips4o/include/ips4o/ips4o.hpp:42, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp: In instantiation of ‘void ips4o::detail::Sorter<Cfg>::Classifier::classifySwitch(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&, std::integer_sequence<int, Args ...>) const [with bool kEqualBuckets = false; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = false; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool> >::iterator)>; int ...Args = {0, 1, 2, 3, 4, 5, 6, 7, 8}; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’: header/ips4o/include/ips4o/classifier.hpp:119:36: required from ‘void ips4o::detail::Sorter<Cfg>::Classifier::classify(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&) const [with bool kEqualBuckets = false; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = false; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool> >::iterator)>; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:57:5: required from ‘typename Cfg::difference_type ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = false; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:132:59: required from ‘void ips4o::detail::Sorter<Cfg>::parallelClassification(bool) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>]’ header/ips4o/include/ips4o/partitioning.hpp:103:31: required from ‘std::pair<int, bool> ips4o::detail::Sorter<Cfg>::partition(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t*, int, int) [with bool kIsParallel = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int]’ header/ips4o/include/ips4o/parallel.hpp:324:37: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] header/ips4o/include/ips4o/parallel.hpp:401:31: required from ‘struct ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(int, int)>’ header/ips4o/include/ips4o/parallel.hpp:400:9: required from ‘void ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/ips4o.hpp:155:15: required from ‘std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> ips4o::parallel::sort(It, It, Comp, ThreadPool&&) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>; ThreadPool = ips4o::StdThreadPool; std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> = void]’ header/ips4o/include/ips4o/ips4o.hpp:170:35: required from ‘void ips4o::parallel::sort(It, It, Comp, int) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ header/ips4o/include/ips4o/ips4o.hpp:178:36: required from ‘void ips4o::parallel::sort(It, It, Comp) [with It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ ext_sort.cc:97:100: required from here header/ips4o/include/ips4o/classifier.hpp:129:58: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] IPS4OML_ASSUME_NOT(log_buckets_ <= 0 && log_buckets_ >= sizeof...(Args)); ~~~~~~~~~~~~~^~~~~~~~~~ header/ips4o/include/ips4o/utils.hpp:40:35: note: in definition of macro ‘IPS4OML_ASSUME_NOT’ #define IPS4OML_ASSUME_NOT(c) if (c) __builtin_unreachable() ^ In file included from header/ips4o/include/ips4o/memory.hpp:53:0, from header/ips4o/include/ips4o/ips4o.hpp:45, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ((Args == log_buckets_ && ~~~~~~~~~~~~~~~~~~~~~~^~ classifyUnrolled<kEqualBuckets, Args>(begin, end, std::forward<Yield>(yield))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] In file included from header/ips4o/include/ips4o/config.hpp:49:0, from header/ips4o/include/ips4o/ips4o_fwd.hpp:43, from header/ips4o/include/ips4o/ips4o.hpp:42, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp: In instantiation of ‘void ips4o::detail::Sorter<Cfg>::Classifier::classifySwitch(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&, std::integer_sequence<int, Args ...>) const [with bool kEqualBuckets = true; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool> >::iterator)>; int ...Args = {0, 1, 2, 3, 4, 5, 6, 7, 8}; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’: header/ips4o/include/ips4o/classifier.hpp:119:36: required from ‘void ips4o::detail::Sorter<Cfg>::Classifier::classify(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&) const [with bool kEqualBuckets = true; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool> >::iterator)>; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:57:5: required from ‘typename Cfg::difference_type ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:131:58: required from ‘void ips4o::detail::Sorter<Cfg>::parallelClassification(bool) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>]’ header/ips4o/include/ips4o/partitioning.hpp:103:31: required from ‘std::pair<int, bool> ips4o::detail::Sorter<Cfg>::partition(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t*, int, int) [with bool kIsParallel = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int]’ header/ips4o/include/ips4o/parallel.hpp:285:37: required from ‘std::pair<std::vector<typename Cfg::difference_type>, bool> ips4o::detail::Sorter<Cfg>::parallelPartitionPrimary(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, int) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/parallel.hpp:240:25: [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] header/ips4o/include/ips4o/parallel.hpp:401:31: required from ‘struct ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(int, int)>’ header/ips4o/include/ips4o/parallel.hpp:400:9: required from ‘void ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/ips4o.hpp:155:15: required from ‘std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> ips4o::parallel::sort(It, It, Comp, ThreadPool&&) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>; ThreadPool = ips4o::StdThreadPool; std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> = void]’ header/ips4o/include/ips4o/ips4o.hpp:170:35: required from ‘void ips4o::parallel::sort(It, It, Comp, int) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ header/ips4o/include/ips4o/ips4o.hpp:178:36: required from ‘void ips4o::parallel::sort(It, It, Comp) [with It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ ext_sort.cc:97:100: required from here header/ips4o/include/ips4o/classifier.hpp:129:58: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] IPS4OML_ASSUME_NOT(log_buckets_ <= 0 && log_buckets_ >= sizeof...(Args)); ~~~~~~~~~~~~~^~~~~~~~~~ header/ips4o/include/ips4o/utils.hpp:40:35: note: in definition of macro ‘IPS4OML_ASSUME_NOT’ #define IPS4OML_ASSUME_NOT(c) if (c) __builtin_unreachable() ^ In file included from header/ips4o/include/ips4o/memory.hpp:53:0, from header/ips4o/include/ips4o/ips4o.hpp:45, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ((Args == log_buckets_ && ~~~~~~~~~~~~~~~~~~~~~~^~ classifyUnrolled<kEqualBuckets, Args>(begin, end, std::forward<Yield>(yield))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] In file included from header/ips4o/include/ips4o/config.hpp:49:0, from header/ips4o/include/ips4o/ips4o_fwd.hpp:43, from header/ips4o/include/ips4o/ips4o.hpp:42, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp: In instantiation of ‘void ips4o::detail::Sorter<Cfg>::Classifier::classifySwitch(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&, std::integer_sequence<int, Args ...>) const [with bool kEqualBuckets = false; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = false; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool> >::iterator)>; int ...Args = {0, 1, 2, 3, 4, 5, 6, 7, 8}; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’: header/ips4o/include/ips4o/classifier.hpp:119:36: required from ‘void ips4o::detail::Sorter<Cfg>::Classifier::classify(ips4o::detail::Sorter<Cfg>::Classifier::iterator, ips4o::detail::Sorter<Cfg>::Classifier::iterator, Yield&&) const [with bool kEqualBuckets = false; Yield = ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = false; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(ips4o::Config<>::bucket_type, ips4o::detail::Sorter<ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool> >::iterator)>; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; ips4o::detail::Sorter<Cfg>::Classifier::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:57:5: required from ‘typename Cfg::difference_type ips4o::detail::Sorter<Cfg>::classifyLocally(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator) [with bool kEqualBuckets = false; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/local_classification.hpp:132:59: required from ‘void ips4o::detail::Sorter<Cfg>::parallelClassification(bool) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>]’ header/ips4o/include/ips4o/partitioning.hpp:103:31: required from ‘std::pair<int, bool> ips4o::detail::Sorter<Cfg>::partition(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::diff_t*, int, int) [with bool kIsParallel = true; Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; ips4o::detail::Sorter<Cfg>::diff_t = long int]’ header/ips4o/include/ips4o/parallel.hpp:285:37: required from ‘std::pair<std::vector<typename Cfg::difference_type>, bool> ips4o::detail::Sorter<Cfg>::parallelPartitionPrimary(ips4o::detail::Sorter<Cfg>::iterator, ips4o::detail::Sorter<Cfg>::iterator, int) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::ThreadJoiningThreadPool>; typename Cfg::difference_type = long int; ips4o::detail::Sorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/parallel.hpp:240:25: [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] header/ips4o/include/ips4o/parallel.hpp:401:31: required from ‘struct ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]::<lambda(int, int)>’ header/ips4o/include/ips4o/parallel.hpp:400:9: required from ‘void ips4o::ParallelSorter<Cfg>::operator()(ips4o::ParallelSorter<Cfg>::iterator, ips4o::ParallelSorter<Cfg>::iterator) [with Cfg = ips4o::ExtendedConfig<__gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >, std::less<void>, ips4o::Config<>, ips4o::StdThreadPool>; ips4o::ParallelSorter<Cfg>::iterator = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >]’ header/ips4o/include/ips4o/ips4o.hpp:155:15: required from ‘std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> ips4o::parallel::sort(It, It, Comp, ThreadPool&&) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>; ThreadPool = ips4o::StdThreadPool; std::enable_if_t<std::is_class<typename std::remove_reference<ThreadPool>::type>::value> = void]’ header/ips4o/include/ips4o/ips4o.hpp:170:35: required from ‘void ips4o::parallel::sort(It, It, Comp, int) [with Cfg = ips4o::Config<>; It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ header/ips4o/include/ips4o/ips4o.hpp:178:36: required from ‘void ips4o::parallel::sort(It, It, Comp) [with It = __gnu_cxx::__normal_iterator<in_record*, std::vector<in_record> >; Comp = std::less<void>]’ ext_sort.cc:97:100: required from here header/ips4o/include/ips4o/classifier.hpp:129:58: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] IPS4OML_ASSUME_NOT(log_buckets_ <= 0 && log_buckets_ >= sizeof...(Args)); ~~~~~~~~~~~~~^~~~~~~~~~ header/ips4o/include/ips4o/utils.hpp:40:35: note: in definition of macro ‘IPS4OML_ASSUME_NOT’ #define IPS4OML_ASSUME_NOT(c) if (c) __builtin_unreachable() ^ In file included from header/ips4o/include/ips4o/memory.hpp:53:0, from header/ips4o/include/ips4o/ips4o.hpp:45, from header/ips4o/include/ips4o.hpp:38, from ext_sort.cc:11: header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ((Args == log_buckets_ && ~~~~~~~~~~~~~~~~~~~~~~^~ classifyUnrolled<kEqualBuckets, Args>(begin, end, std::forward<Yield>(yield))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] header/ips4o/include/ips4o/classifier.hpp:130:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] /tmp/cc770fQy.o: In function `ExtSort::Sort(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)': ext_sort.cc:(.text+0x28a0): undefined reference to `ExtSort::MergeRuns(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' collect2: error: ld returned 1 exit status Makefile:10: recipe for target 'staged-pmdk' failed make: *** [staged-pmdk] Error 1