Boost logo

Boost :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2005-05-25 04:46:01


There's currently a test case for Boost.Integer failing in
MSVC ++ 6.0 with a LNK1179 error:

http://tinyurl.com/8rpuu

This bug in MSVC++ 6.0 shows when the compiler emits
different symbol names with a very long common prefix: in this
particular case, the offending symbol names are generated by a
couple of BOOST_CHECK instantiations.
The proposed patch works around the problem and only
affects to the test code, not the library, so I guess it's safe enough.
OK to commit?

Joaquín M López Muñoz
Telefóinca, Investigación y Desarrollo

56a57,63
> #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
57a65
> #endif


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk