On Wed, Aug 14, 2013 at 4:05 PM, Gabriel Dos Reis
<[email protected]> 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 <[email protected]>
* 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