Subject: Numerous unknown attribute '__alloc_size__' warnings when using clang

From: William S Fulton <[email-masked]>
Date: Mon, 13 Oct 2014 21:56:53 +0100

A simple

#include <libguile.h>

generates the numerous warnings given below:

In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:411:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:413:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:418:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:420:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:424:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(2) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:487:46: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
/* 'realloc' attr */ GC_ATTR_ALLOC_SIZE(2);
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:742:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:744:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:757:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:759:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:764:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:766:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:773:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:776:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:778:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:781:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:787:46: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
/* 'realloc' attr */ GC_ATTR_ALLOC_SIZE(2);
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:804:23: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
In file included from example_wrap.c:702:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile.h:37:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/async.h:28:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/threads.h:36:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/pthread-threads.h:33:
In file included from /usr/local/Cellar/guile/2.0.11_1/include/guile/2.0/libguile/bdw-gc.h:47:
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc.h:806:29: warning: unknown attribute '__alloc_size__' ignored [-Wattributes]
GC_API /* 'realloc' attr */ GC_ATTR_ALLOC_SIZE(2) void * GC_CALL
^
/usr/local/Cellar/bdw-gc/7.4.2/include/gc/gc_config_macros.h:249:54: note: expanded from macro 'GC_ATTR_ALLOC_SIZE'
# define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
^
19 warnings generated.

System information:

$ guile --version | head -n 1
guile (GNU Guile) 2.0.11

$ clang --version
Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix

$ xcodebuild -version -sdk | head -n 2
MacOSX10.9.sdk - OS X 10.9 (macosx10.9)
SDKVersion: 10.9

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.5
BuildVersion: 13F34

$ uname -a
Darwin itako16071.miso 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64