
On Thu, 22 Feb 2007 18:13:58 -0000, Eric Niebler <eric@boost-consulting.com> wrote:
There are two testers running with intel-linux-9.0. The foreach tests pass on one, and fail on the other. How is that possible? If these are different compilers, their toolsets should have different names. As it is, I don't even know how to mark up this failure.
It's the version of gcc they're using with intel linux. The test passes for gcc-3.3, fails for gcc-3.4, gcc-4.0 and gcc-4.1. So the names could be changed to something like intel-linux-9.0-gcc-3.3 and intel-linux-9.0-gcc-3.4. You can see the version details in http://tinyurl.com/2a45wj and http://tinyurl.com/323fb6 I tried adding some output to the test: int test_main( int, char*[] ) { int counter = 0; BOOST_FOREACH(int i, get_vector()) { std::cout<<i<<"\n"; counter += i; } std::cout<<"Total: "<<counter<<"\n"; BOOST_CHECK(16 == counter); return 0; } And got the following: Intel 9.0, using gcc-3.3: $ /opt/intel/cc/9.0/bin/icpc -I ../../.. rvalue_const.cpp -gcc-version=330 $ ./a.out 4 4 4 4 Total: 16 **** no errors detected Intel 9.0, using gcc-3.3, intel libs: $ /opt/intel/cc/9.0/bin/icpc -I ../../.. rvalue_const.cpp -gcc-version=330 -cxxlib-icc $ ./a.out 4 4 4 4 Total: 16 **** no errors detected Intel 9.0, using gcc-3.4: $ /opt/intel/cc/9.0/bin/icpc -I ../../.. rvalue_const.cpp -gcc-version=340 $ ./a.out 0 4 4 4 Total: 12 rvalue_const.cpp(40): test 16 == counter failed in function: 'int test_main(int, char **)' **** 1 error detected Intel 9.0, using gcc-3.4, intel libs: $ /opt/intel/cc/9.0/bin/icpc -I ../../.. rvalue_const.cpp -gcc-version=340 -cxxlib-icc $ ./a.out Total: 0 rvalue_const.cpp(40): test 16 == counter failed in function: 'int test_main(int, char **)' **** 1 error detected