From 29275d71aa1ff93e6244f9e5e09e317f9a4d809e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20M=2E=20L=C3=B3pez=20Mu=C3=B1oz?= Date: Wed, 25 May 2005 13:43:12 +0000 Subject: [PATCH] added workaround for duplicate comdat errors in MSVC++ 6.0 [SVN r29186] --- integer_traits_test.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/integer_traits_test.cpp b/integer_traits_test.cpp index 15b454a..e3de239 100644 --- a/integer_traits_test.cpp +++ b/integer_traits_test.cpp @@ -54,7 +54,15 @@ void runtest(const char * type, T) << ", max is " << make_char_numeric_for_streaming((traits::max)()) << std::endl; BOOST_CHECK(traits::is_specialized); +#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200) + // MSVC++ 6.0 issues a LNK1179 error (duplicate comdat) when the compiler + // generates different symbol names with a very long common prefix: + // the dummy "&& true" disambiguates between the symbols generated by this + // BOOST_CHECK instantiation and the preceding one. + BOOST_CHECK(traits::is_integer && true); +#else BOOST_CHECK(traits::is_integer); +#endif BOOST_CHECK(traits::is_integral == true); BOOST_CHECK(traits::const_min == (traits::min)()); BOOST_CHECK(traits::const_max == (traits::max)());