Warning 2259 in TBB range definitions

Warning 2259 in TBB range definitions

 

Hello all, 

In In my code I get warning 2259 for tbb::interface9::internal::depth_t={unsigned char}" (see bellow). According to forum posts from 2014 this problem supposed to be fixed in icpc 15.+ version of compiler. I wonder is it safe just suppress this warning and assume false positive by compiler?    

/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/partitioner.h(188): warning #2259: non-pointer conversion from "int" to "tbb::interface9::internal::depth_t={unsigned char}" may lose significant bits

          my_head = (my_head + MaxCapacity - 1) % MaxCapacity;

                  ^

          detected during:

            instantiation of "tbb::interface9::internal::range_vector<T, MaxCapacity>::~range_vector() [with T=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, MaxCapacity=(tbb::interface9::internal::depth_t={unsigned char})'\b']" at line 432

            instantiation of "void tbb::interface9::internal::balancing_partition_type<Mode>::work_balance(StartType &, Range &) [with Mode=tbb::interface9::internal::adaptive_mode<tbb::interface9::internal::auto_partition_type>, StartType=tbb::interface9::internal::start_for<tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, const tbb::auto_partitioner>,

                      Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>]" at line 255

            instantiation of "void tbb::interface9::internal::partition_type_base<Partition>::execute(StartType &, Range &) [with Partition=tbb::interface9::internal::auto_partition_type, StartType=tbb::interface9::internal::start_for<tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, const tbb::auto_partitioner>,

                      Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>]" at line 127 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for.h"

            instantiation of "tbb::task *tbb::interface9::internal::start_for<Range, Body, Partitioner>::execute() [with Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, Body=tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, Partitioner=const tbb::auto_partitioner]" at line 60 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for.h"

            implicit generation of "tbb::interface9::internal::start_for<Range, Body, Partitioner>::~start_for() [with Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, Body=tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, Partitioner=const tbb::auto_partitioner]" at line 60 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for.h"

            instantiation of class "tbb::interface9::internal::start_for<Range, Body, Partitioner> [with Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, Body=tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, Partitioner=const tbb::auto_partitioner]" at line 60 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for.h"

            instantiation of "tbb::interface9::internal::start_for<Range, Body, Partitioner>::start_for(const Range &, const Body &, Partitioner &) [with Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, Body=tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, Partitioner=const tbb::auto_partitioner]" at line 88 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for.h"

            instantiation of "void tbb::interface9::internal::start_for<Range, Body, Partitioner>::run(const Range &, const Body &, Partitioner &) [with Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, Body=tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>, Partitioner=const tbb::auto_partitioner]" at line 186 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for.h"

            instantiation of "void tbb::parallel_for(const Range &, const Body &) [with Range=tbb::blocked_range<std::__1::__wrap_iter<COneIntsBlock *>>, Body=tbb::internal::parallel_for_each_body_for<lambda [](COneIntsBlock &)->void, std::__1::__wrap_iter<COneIntsBlock *>>]" at line 83 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for_each.h"

            instantiation of "void tbb::internal::parallel_for_each_impl<Iterator, Function, std::__1::random_access_iterator_tag>::doit(Iterator, Iterator, const Function &) [with Iterator=std::__1::__wrap_iter<COneIntsBlock *>, Function=lambda [](COneIntsBlock &)->void]" at line 118 of "/opt/intel//compilers_and_libraries_2017.4.181/mac/tbb/include/tbb/parallel_for_each.h"

            instantiation of "void tbb::parallel_for_each(Iterator, Iterator, const Function &) [with Iterator=std::__1::__wrap_iter<COneIntsBlock *>, Function=lambda [](COneIntsBlock &)->void]" at line 48 of

 

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi,

The warning looks like a false positive because all values in the expression are always positive. Unfortunately, I do not know what versions of compiler issue this warning.

Regards,
Alex

Leave a Comment

Please sign in to add a comment. Not a member? Join today