Add support for clang compiler attributes
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Fri, 11 Jun 2010 22:49:34 +0000 (23:49 +0100)
committerDerrick Brashear <shadow@dementia.org>
Sun, 13 Jun 2010 05:34:14 +0000 (22:34 -0700)
Rearrange the way that we define compiler attributes so that we
can define them for clang, too. Don't assume that clang will support
all of the attributes that gcc does, so split them up into separate
sections.

Change-Id: Ic6233f5c63a07b3ef99a85ae3be9e45e28387127
Reviewed-on: http://gerrit.openafs.org/2135
Reviewed-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/config/stds.h

index fcc1517..eb187b8 100644 (file)
@@ -333,14 +333,18 @@ hdr_static_inline(unsigned long) afs_printable_uint32_lu(afs_uint32 d) { return
 #define afs_int_to_pointer(i)      ((void *)  (i))
 #endif
 
-#if !defined(__GNUC__) || __GNUC__ < 2
-#define AFS_UNUSED
-#define AFS_ATTRIBUTE_FORMAT(style,x,y)
-#define AFS_NORETURN
-#else
+#if defined(__GNUC__) && __GNUC__ > 2
 #define AFS_UNUSED __attribute__((unused))
 #define AFS_ATTRIBUTE_FORMAT(style,x,y) __attribute__((format(style, x, y)))
 #define AFS_NORETURN __attribute__((__noreturn__));
+#elif defined (__clang__)
+#define AFS_UNUSED __attribute__((unused))
+#define AFS_ATTRIBUTE_FORMAT(style,x,y) __attribute__((format(style, x, y)))
+#define AFS_NORETURN __attribute__((__noreturn__));
+#else
+#define AFS_UNUSED
+#define AFS_ATTRIBUTE_FORMAT(style,x,y)
+#define AFS_NORETURN
 #endif
 
 #endif /* OPENAFS_CONFIG_AFS_STDS_H */