WiscSort / wiscSort / Delta / make-out
make-out
Raw
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