From fa19ebb83f29bfc6fa011239d5fff172282bfe55 Mon Sep 17 00:00:00 2001 From: Victor Toso Date: Fri, 14 Aug 2015 18:24:22 +0200 Subject: macros: verify if __alloc_size__ works with clang So we can avoid using using an attribute not supported for the compiler. warning: ../spice-common/common/mem.h:91:80: warning: unknown attribute '__alloc_size__' ignored [-Wunknown-attributes] void *spice_malloc0_n(size_t n_blocks, size_t n_block_bytes) SPICE_GNUC_MALLOC SPICE_GNUC_ALLOC_SIZE2(1,2); ../spice-common/spice-protocol/spice/macros.h:52:52: note: expanded from macro 'SPICE_GNUC_ALLOC_SIZE2' #define SPICE_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) ^ --- spice/macros.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spice/macros.h b/spice/macros.h index 180c2b7..034caf7 100644 --- a/spice/macros.h +++ b/spice/macros.h @@ -47,7 +47,8 @@ #define SPICE_GNUC_NULL_TERMINATED #endif -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +#if (!defined(__clang__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) || \ + (defined(__clang__) && __has_feature(__alloc_size__)) #define SPICE_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) #define SPICE_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) #else -- cgit v1.2.3