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
<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/
<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 <[email protected]> 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
[email protected]
http://lists.puredata.info/listinfo/pd-dev