Zoltan2_MapSimulater unit test fails to build with intel 17 (gcc 6.1.0 headers)
Created by: jjellio
I am building under the Cray environment, with Intel 17 compilers. These compilers seem to use GCC 6.1.0 stl headers, so this is likely reproducible using gcc 6.1.0 on another machine.
The build script is a bit complicated (I can post if you are currious)
This is an OpenMP build with the TPLs HDF5, Netcdf, Pnetcdf, LAPACK and BLAS
All unit tests and examples enabled, and all optimization flags turned on (Release, AVX512 or AVX2)
[ 80%] Building CXX object packages/zoltan2/test/partition/CMakeFiles/Zoltan2_MapSimulater.dir/TaskMappingSimulate.cpp.o
Warning:
Headers from cray-libsci/16.07.1 will be ignored because they conflict with -mkl.
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2978): error #100: duplicate parameter name
int (machine_coords[1][origin_rank]),
^
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2979): error #100: duplicate parameter name
int (machine_coords[2][origin_rank]),
^
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2980): error #100: duplicate parameter name
int (machine_coords[0][neighbor_rank]),
^
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2981): error #100: duplicate parameter name
int (machine_coords[1][neighbor_rank]),
^
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2982): error #100: duplicate parameter name
int (machine_coords[2][neighbor_rank]));
^
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2985): error: no instance of overloaded function "std::set<_Key, _Compare, _Alloc>::find [with _Key=std::tuple<int, int, int, int, int, int>, _Compare=std::less<std::tuple<int, int, int, int, int, int>>, _Alloc=std::allocator<std::tuple<int, int, int, int, int, int>>]" matches the argument list
argument types are: (std::tuple<int, int, int, int, int, int> (int (*)[*], int (*)[*], int (*)[*], int (*)[*], int (*)[*], int (*)[*]))
object type is: std::set<std::tuple<int, int, int, int, int, int>, std::less<std::tuple<int, int, int, int, int, int>>, std::allocator<std::tuple<int, int, int, int, int, int>>>
if (differentnode && my_arrows.find(foo) == my_arrows.end()){
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(696): note: this candidate was rejected because arguments do not match
find(const key_type& __x) const
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(692): note: this candidate was rejected because arguments do not match
find(const key_type& __x)
^
/home/jjellio/src/Trilinos-jjellio/packages/zoltan2/src/algorithms/partition/Zoltan2_TaskMapping.hpp(2986): error: no instance of overloaded function "std::set<_Key, _Compare, _Alloc>::insert [with _Key=std::tuple<int, int, int, int, int, int>, _Compare=std::less<std::tuple<int, int, int, int, int, int>>, _Alloc=std::allocator<std::tuple<int, int, int, int, int, int>>]" matches the argument list
argument types are: (std::tuple<int, int, int, int, int, int> (int (*)[*], int (*)[*], int (*)[*], int (*)[*], int (*)[*], int (*)[*]))
object type is: std::set<std::tuple<int, int, int, int, int, int>, std::less<std::tuple<int, int, int, int, int, int>>, std::allocator<std::tuple<int, int, int, int, int, int>>>
my_arrows.insert(foo);
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(549): note: this candidate was rejected because arguments do not match
insert(initializer_list<value_type> __l)
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(537): note: this candidate was rejected because mismatch in count of arguments
insert(_InputIterator __first, _InputIterator __last)
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(522): note: this candidate was rejected because mismatch in count of arguments
insert(const_iterator __position, value_type&& __x)
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(517): note: this candidate was rejected because mismatch in count of arguments
insert(const_iterator __position, const value_type& __x)
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(489): note: this candidate was rejected because arguments do not match
insert(value_type&& __x)
^
/opt/gcc/6.1.0/snos/include/g++/bits/stl_set.h(480): note: this candidate was rejected because arguments do not match
insert(const value_type& __x)
^
compilation aborted for /home/jjellio/src/Trilinos-jjellio/packages/zoltan2/test/partition/TaskMappingSimulate.cpp (code 2)
packages/zoltan2/test/partition/CMakeFiles/Zoltan2_MapSimulater.dir/build.make:62: recipe for target 'packages/zoltan2/test/partition/CMakeFiles/Zoltan2_MapSimulater.dir/TaskMappingSimulate.cpp.o' failed
make[2]: *** [packages/zoltan2/test/partition/CMakeFiles/Zoltan2_MapSimulater.dir/TaskMappingSimulate.cpp.o] Error 2
CMakeFiles/Makefile2:53471: recipe for target 'packages/zoltan2/test/partition/CMakeFiles/Zoltan2_MapSimulater.dir/all' failed
make[1]: *** [packages/zoltan2/test/partition/CMakeFiles/Zoltan2_MapSimulater.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
@mndevec @trilinos/zoltan2