[gdal-dev] Mass-conversion from NULL to nullptr ready to land

Even Rouault even.rouault at spatialys.com
Sun Dec 10 05:52:24 PST 2017


Hi,

With the assistance of clang-tidy (*) and a bit of manual editing, I've replaced most uses of 
NULL with nullptr in .cpp files, and got to the point where all our CI targets are happy with -
Wzero-as-null-pointer-constant, which warns about most uses of NULL or 0 or FALSE instead 
of nullptr.

Consequently, I've also removed the Travis-CI target that had a #define NULL nullptr hack, 
and enabled -Wzero-as-null-pointer-constant in configure when supported by the compiler 
(at least gcc >= 4.8 and clang >= 5.0).

There are still remaining occurences of NULL that could be replaced (in #ifdef branch not 
tested, in macros, in function calls that take variadic arguments, etc....) , but that can be done 
later.

As this is a rather painful exercice (1146 files changed) which is very fragile to concurrent 
changes, I'd like to drop this in trunk ASAP if there's no opposition.

The branch with the work is at (be warned, among the most boring ever):
https://github.com/OSGeo/gdal/compare/trunk...rouault:convert_to_nullptr

Even

(*) sed "s/NULL/nullptr/g" is not an option, as there is a significant number of occurences of 
NULL being in a string (think to SQL statements).
clang-tidy works great, but as it does a true parsing of the code, you need to pass it the same 
-D and -I switches as the compiler would take. I guess there would perhaps be a way of 
creating a CXX script that could be used as a fake compiler and would redirect to clang-tidy.

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20171210/32b7da82/attachment.html>


More information about the gdal-dev mailing list