halyavin created this revision.
halyavin added reviewers: cfe-commits, EricWF, mclow.lists.

C-style cast from const pointer to non-const pointer causes -Wcast-qual warning 
in gcc. Fix the problem by casting away const with const_cast. Additionally, 
replace C-style cast with appropriate C++-style cast. 

https://reviews.llvm.org/D23831

Files:
  include/type_traits

Index: include/type_traits
===================================================================
--- include/type_traits
+++ include/type_traits
@@ -443,7 +443,7 @@
 _Tp*
 addressof(_Tp& __x) _NOEXCEPT
 {
-    return (_Tp*)&reinterpret_cast<const volatile char&>(__x);
+    return reinterpret_cast<_Tp*>(const_cast<char*>(&reinterpret_cast<const 
volatile char&>(__x)));
 }
 
 #endif // __has_builtin(__builtin_addressof)


Index: include/type_traits
===================================================================
--- include/type_traits
+++ include/type_traits
@@ -443,7 +443,7 @@
 _Tp*
 addressof(_Tp& __x) _NOEXCEPT
 {
-    return (_Tp*)&reinterpret_cast<const volatile char&>(__x);
+    return reinterpret_cast<_Tp*>(const_cast<char*>(&reinterpret_cast<const volatile char&>(__x)));
 }
 
 #endif // __has_builtin(__builtin_addressof)
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to