On Wed, Aug 14, 2013 at 4:05 PM, Gabriel Dos Reis <g...@integrable-solutions.net> wrote: > I agree 'const void*' is preferable, and all the places you mention should > be covered too.
I already installed my original patch, so attached incremental patch implements preferred solution. 2013-08-14 Uros Bizjak <ubiz...@gmail.com> * src/c++98/compatibility.cc (_ZTIe): Use (const cast *) to avoid -Wcast-qual warnings. (_ZTIPe): Ditto. (ZTIPKe): Ditto. Tested on alphaev68-pc-linux-gnu and installed on mainline SVN. Is this solution also OK for other release branches? Uros.
Index: src/c++98/compatibility.cc =================================================================== --- src/c++98/compatibility.cc (revision 201723) +++ src/c++98/compatibility.cc (working copy) @@ -516,18 +516,17 @@ extern __attribute__((used, weak)) const char _ZTSe[2] = "e"; extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe"; extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe"; -// const_casts are used to avoid -Wcast-qual warnings extern __attribute__((used, weak)) const void * const _ZTIe[2] - = { (void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2], - const_cast<char*>(_ZTSe) }; + = { (const void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2], + (const void *) _ZTSe }; extern __attribute__((used, weak)) const void * const _ZTIPe[4] - = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2], - const_cast<char*>(_ZTSPe), (void *) 0L, - const_cast<void* const*>(_ZTIe) }; + = { (const void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2], + (const void *) _ZTSPe, (const void *) 0L, + (const void *) _ZTIe }; extern __attribute__((used, weak)) const void * const _ZTIPKe[4] - = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2], - const_cast<char*>(_ZTSPKe), (void *) 1L, - const_cast<void* const*>(_ZTIe) }; + = { (const void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2], + (const void *) _ZTSPKe, (const void *) 1L, + (const void *) _ZTIe }; #endif // _GLIBCXX_LONG_DOUBLE_COMPAT #ifdef _GLIBCXX_SYMVER_DARWIN