This avoids an unhelpful warning from a system header. Users can't
change the code to avoid the warning, and we don't want to change it
(because it needs to work for C++98 as well as later versions).

        PR c++/82039
        * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
        Adjust null pointer constant to avoid warning

Tested powerpc64le-linux, committed to trunk.

commit 84cedda4ddf90070f8b5d9132be1bf401183cf1c
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu Aug 31 12:25:34 2017 +0100

    PR c++/82039 suppress -Wzero-as-null-pointer-constant warning
    
            PR c++/82039
            * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
            Adjust null pointer constant to avoid warning.

diff --git a/libstdc++-v3/include/ext/new_allocator.h 
b/libstdc++-v3/include/ext/new_allocator.h
index ee64b9c6447..e1e152c4bf0 100644
--- a/libstdc++-v3/include/ext/new_allocator.h
+++ b/libstdc++-v3/include/ext/new_allocator.h
@@ -96,7 +96,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       // NB: __n is permitted to be 0.  The C++ standard says nothing
       // about what the return value is when __n == 0.
       pointer
-      allocate(size_type __n, const void* = 0)
+      allocate(size_type __n, const void* = static_cast<const void*>(0))
       {
        if (__n > this->max_size())
          std::__throw_bad_alloc();

Reply via email to