On Wed, Aug 14, 2013 at 4:36 PM, Uros Bizjak <ubiz...@gmail.com> wrote: > On Wed, Aug 14, 2013 at 4:34 PM, Gabriel Dos Reis > <g...@integrable-solutions.net> wrote: >> On Wed, Aug 14, 2013 at 9:22 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >>> >>> 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. >> >> Sorry, when I said 'const void*' was OK, I implicitly assumed that you would >> use C++-style cast reinterpret_cast<const void*>(_Z….). Same for >> reinterpret_cast<const void*>(1); > > Ah, OK. I'll add this in a moment.
Like the attached patch? Again, build tested on alphaev68-pc-linux-gnu. Uros.
Index: src/c++98/compatibility.cc =================================================================== --- src/c++98/compatibility.cc (revision 201727) +++ src/c++98/compatibility.cc (working copy) @@ -517,16 +517,21 @@ extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe"; extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe"; extern __attribute__((used, weak)) const void * const _ZTIe[2] - = { (const void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2], - (const void *) _ZTSe }; + = { reinterpret_cast<const void *> + (&_ZTVN10__cxxabiv123__fundamental_type_infoE[2]), + reinterpret_cast<const void *>(_ZTSe) }; extern __attribute__((used, weak)) const void * const _ZTIPe[4] - = { (const void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2], - (const void *) _ZTSPe, (const void *) 0L, - (const void *) _ZTIe }; + = { reinterpret_cast<const void *> + (&_ZTVN10__cxxabiv119__pointer_type_infoE[2]), + reinterpret_cast<const void *>(_ZTSPe), + reinterpret_cast<const void *>(0L), + reinterpret_cast<const void *>(_ZTIe) }; extern __attribute__((used, weak)) const void * const _ZTIPKe[4] - = { (const void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2], - (const void *) _ZTSPKe, (const void *) 1L, - (const void *) _ZTIe }; + = { reinterpret_cast<const void *> + (&_ZTVN10__cxxabiv119__pointer_type_infoE[2]), + reinterpret_cast<const void *>(_ZTSPKe), + reinterpret_cast<const void *>(1L), + reinterpret_cast<const void *>(_ZTIe) }; #endif // _GLIBCXX_LONG_DOUBLE_COMPAT #ifdef _GLIBCXX_SYMVER_DARWIN