From 4fc2cd7c8e30fde56ab46d2b945615617b45e0f7 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 9 May 2022 19:45:06 +0200 Subject: [PATCH] MINOR: compiler: add a new macro to set an attribute on an enum when possible Gcc 6 and above support placing an attribute on an enum's value. This is convenient for marking some values as deprecated. We just need the macro because older versions fail to parse __attribute__() there. --- include/haproxy/compiler.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/haproxy/compiler.h b/include/haproxy/compiler.h index a23e62a21..49356daab 100644 --- a/include/haproxy/compiler.h +++ b/include/haproxy/compiler.h @@ -207,6 +207,14 @@ }) #endif + +/* From gcc 6 and above, enum values may have attributes */ +#if __GNUC_PREREQ__(6, 0) +#define ENUM_ATTRIBUTE(x) __attribute__(x) +#else +#define ENUM_ATTRIBUTE(x) +#endif + /* Some architectures have a double-word CAS, sometimes even dual-8 bytes. * Some architectures support unaligned accesses, others are fine with them * but only for non-atomic operations. Also mention those supporting unaligned