Closed
Description
Cannot compile Catch2 with Intel ICC. Compile errors below. I am able to use the single header in my project but I cannot compile the SelfTests.
I'm trying to open a bug report from a different project that crashes the compiler, but that project's Unit Tests require Catch2 and it can't compile in their codebase in order for me to point Intel at a reproducible bug. Appreciate any help.
icc version 19.0.4.243 (gcc version 8.3.0 compatibility)
icpc version 19.0.4.243 (gcc version 8.3.0 compatibility)
4.14.61-gentoo x86_64 Intel(R) Core(TM) i7-8700K
Glibc 2.29
Scanning dependencies of target SelfTest
[ 0%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/TestMain.cpp.o
[ 1%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/CmdLine.tests.cpp.o
[ 2%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/Details.tests.cpp.o
[ 3%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp.o
[ 4%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/InternalBenchmark.tests.cpp.o
[ 5%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/PartTracker.tests.cpp.o
[ 6%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/Tag.tests.cpp.o
[ 7%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/String.tests.cpp.o
[ 7%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/StringManip.tests.cpp.o
[ 8%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/Xml.tests.cpp.o
[ 9%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/IntrospectiveTests/ToString.tests.cpp.o
[ 10%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/UsageTests/Approx.tests.cpp.o
[ 11%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/UsageTests/BDD.tests.cpp.o
[ 12%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/UsageTests/Benchmark.tests.cpp.o
[ 13%] Building CXX object projects/CMakeFiles/SelfTest.dir/SelfTest/UsageTests/Class.tests.cpp.o
/home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp(96): error: no instance of overloaded function "<unnamed>::ClassTests::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____13::create" matches the argument list
argument types are: (<unnamed>::ClassTests::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____13::TypeList<<unnamed>::ClassTests::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____13::Nttp<int, 2UL>, <unnamed>::ClassTests::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____13::Nttp<float, 6UL>>)
TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(Template_Fixture_2, "A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds", "[class][template][product][nttp]", ((typename T, size_t S), T, S),(std::array, Template_Foo_2), ((int,2), (float,6)))
^
/home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp(96): note: this candidate was rejected because there is a type mismatch after argument substitution
TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(Template_Fixture_2, "A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds", "[class][template][product][nttp]", ((typename T, size_t S), T, S),(std::array, Template_Foo_2), ((int,2), (float,6)))
^
/home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp(96): note: this candidate was rejected because there is a type mismatch after argument substitution
TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(Template_Fixture_2, "A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that succeeds", "[class][template][product][nttp]", ((typename T, size_t S), T, S),(std::array, Template_Foo_2), ((int,2), (float,6)))
^
/home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp(129): error: no instance of overloaded function "<unnamed>::ClassTests::Inner::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____30::create" matches the argument list
argument types are: (<unnamed>::ClassTests::Inner::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____30::TypeList<<unnamed>::ClassTests::Inner::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____30::Nttp<int, 2UL>, <unnamed>::ClassTests::Inner::<unnamed>::ns_____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____30::Nttp<float, 6UL>>)
TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(Template_Fixture_2, "A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails", "[.][class][template][product][nttp][failing]", ((typename T, size_t S), T, S), (std::array, Template_Foo_2), ((int, 2), (float, 6)))
^
/home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp(129): note: this candidate was rejected because there is a type mismatch after argument substitution
TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(Template_Fixture_2, "A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails", "[.][class][template][product][nttp][failing]", ((typename T, size_t S), T, S), (std::array, Template_Foo_2), ((int, 2), (float, 6)))
^
/home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp(129): note: this candidate was rejected because there is a type mismatch after argument substitution
TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG(Template_Fixture_2, "A TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG based test run that fails", "[.][class][template][product][nttp][failing]", ((typename T, size_t S), T, S), (std::array, Template_Foo_2), ((int, 2), (float, 6)))
^
compilation aborted for /home/arkk/code/Catch2/projects/SelfTest/UsageTests/Class.tests.cpp (code 2)
make[2]: *** [projects/CMakeFiles/SelfTest.dir/build.make:245: projects/CMakeFiles/SelfTest.dir/SelfTest/UsageTests/Class.tests.cpp.o] Error 2
make[1]: *** [CMakeFiles/Makefile2:987: projects/CMakeFiles/SelfTest.dir/all] Error 2
make: *** [Makefile:163: all] Error 2