Re: Using clang-analyzer with PHP: experiences?

From: Date: Tue, 25 May 2021 22:43:10 +0000
Subject: Re: Using clang-analyzer with PHP: experiences?
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-114604@lists.php.net to get a copy of this message
On Tue, 25 May 2021 at 21:10, Calvin Buckley <calvin@cmpct.info> wrote: > I did some additional research and seemed to have decent luck with > slamming a construct like this after the includes: > > #define emalloc malloc > #define erealloc realloc > #define ecalloc calloc > #define estrdup strdup > #define estrndup strndup > #define efree free > > One could wrap it around __clang_analyzer__ or such. > Unfortunately, this > is kinda ugly; it emits compiler warnings, but I suspect this probably > belongs in PHP itself or perhaps in some kind of clang-analyzer addon that > handles the e* allocation functions as well as things like mismatching them. > Isn't this handled by the GCC 11? The existing malloc > > <https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute> > attribute has been extended so that it can be used to identify > allocator/deallocator API pairs. A pair of new -Wmismatched-dealloc > > <https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmismatched-dealloc> > and -Wmismatched-new-delete > > <https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete> > warnings will complain about mismatched calls, and -Wfree-nonheap-object > > <https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wfree-nonheap-object> > about deallocation calls with pointers not obtained from allocation > functions. Additionally, the static analyzer will use these attributes when > checking for leaks, double-frees, use-after-frees, and similar issues. > From: https://gcc.gnu.org/gcc-11/changes.html Best regards, George P. Banyard

« previous php.internals (#114604) next »