[PD-dev] clang warning fixes, was: Memory leaks?

Tobias Brodel brittlehaus at gmail.com
Sat Mar 26 03:32:06 CET 2016


hi dan, list.

i have some patches i've been meaning to submit relating to the alloca.h 
ifdef hell.

i'm a FreeBSD user and the stddef.h else clause is wrong and actually 
gets patched out downstream. Free/Net/Open and DragonFly BSD all have 
alloca() in stdlib.h.

i'll can review my patches now and upload them but they retain the old 
style, not your proposed changes.

cheers,
t.

On 03/26/16 04:36, Dan Wilcox wrote:
> clang is pretty strict by default and I generally try to fix any 
> warnings it finds, as opposed to overriding them. If you think the 
> requested changes aren’t needed, I’ll go that route. My thought was to 
> lessen the angst for beginners compiling libpd & being put off by a 
> wall of warnings (especially in ofxPd).
>
> I realized I can fix the alloc warning by adding HAVE_ALLOCA_H to the 
> libpd Makefile, so the stdlib.h include is unnecessary. Furthermore, 
> Maybe this define would be unnecessary by using better compile-time 
> system detection. For example, from d_fft_fftsg.c:
>
> #ifdef HAVE_ALLOCA_H        /* ifdef nonsense to find include for 
> alloca() */
> # include <alloca.h>        /* linux, mac, mingw, cygwin */
> #elif defined _MSC_VER
> # include <malloc.h>        /* MSVC */
> #else
> # include <stddef.h>        /* BSDs for example */
> #endif                      /* end alloca() ifdef nonsense */
>
> Could be:
>
> #ifdef _MSC_VER
> #include <malloc.h> /* MSVC */
> #elif defined(__linux__) || defined(__APPLE__) || defined(_WIN32)
> #include <alloca.h> /* linux, mac, mingw, cygwin */
> #else
> #include <stddef.h> /* BSDs for example */
> #endif
>
> I just tried and it compiles said file without the warning on OSX.
>
> References:
> * 
> http://stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor
> * https://sourceforge.net/p/predef/wiki/OperatingSystems/
>
> --------
> Dan Wilcox
> @danomatika <https://twitter.com/danomatika>
> danomatika.com <http://danomatika.com>
> robotcowboy.com <http://robotcowboy.com>
>
>> On Mar 24, 2016, at 10:03 PM, Miller Puckette <msp at ucsd.edu 
>> <mailto:msp at ucsd.edu>> wrote:
>>
>> Sorry, missed this last...  if it's needed I'd prefer to add stdlib.h 
>> to all
>> the files where alloca gets used (so as not to include any more than 
>> necessary
>> in m_pd.h).
>>
>> cheers
>> M
>>
>>
>> On Thu, Mar 24, 2016 at 09:37:33PM -0600, Dan Wilcox wrote:
>>> Whoops. Missed a couple spots. Also, forgot to mention I added 
>>> #include <stdlib.h> to m_pd.h to silence "warning: implicitly 
>>> declaring library function 'alloca' with type 'void *(unsigned 
>>> long)’” in x_array, x_list, etc.
>>>
>>> Here’s a new patch. Disregard the first one.
>>>
>>>
>
>
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> http://lists.puredata.info/listinfo/pd-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20160326/6669b1e0/attachment.html>


More information about the Pd-dev mailing list