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

Reply via email to