diff mbox

xen/common: Uniformally use __ varients for attribute names

Message ID 1455220302-32685-1-git-send-email-andrew.cooper3@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andrew Cooper Feb. 11, 2016, 7:51 p.m. UTC
Otherwise, debug code such as "void __attribute__((noreturn)) foobar()" fails
to compile when the noreturn itself gets expanded, resulting in
__attribute__((__attribute__((noreturn)))).

No function change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Tim Deegan <tim@xen.org>
CC: Ian Campbell <Ian.Campbell@citrix.com>
---
 xen/include/xen/compiler.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Jan Beulich Feb. 12, 2016, 9:16 a.m. UTC | #1
>>> On 11.02.16 at 20:51, <andrew.cooper3@citrix.com> wrote:
> Otherwise, debug code such as "void __attribute__((noreturn)) foobar()" fails
> to compile when the noreturn itself gets expanded, resulting in
> __attribute__((__attribute__((noreturn)))).

Well, why would the debugging code not use plain "noreturn" then,
instead of open coding its expansion? That notwithstanding the
patch is fine of course.

Jan
Andrew Cooper Feb. 12, 2016, 9:56 a.m. UTC | #2
On 12/02/16 09:16, Jan Beulich wrote:
>>>> On 11.02.16 at 20:51, <andrew.cooper3@citrix.com> wrote:
>> Otherwise, debug code such as "void __attribute__((noreturn)) foobar()" fails
>> to compile when the noreturn itself gets expanded, resulting in
>> __attribute__((__attribute__((noreturn)))).
> Well, why would the debugging code not use plain "noreturn" then,
> instead of open coding its expansion? That notwithstanding the
> patch is fine of course.

Which one works depends on whether <xen/compiler.h> has been included. 
There are some translation units in Xen where this is not the case.

~Andrew
diff mbox

Patch

diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index 4b3472d..892455b 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -11,12 +11,12 @@ 
 #define unlikely(x)   __builtin_expect(!!(x),0)
 
 #define inline        __inline__
-#define always_inline __inline__ __attribute__ ((always_inline))
-#define noinline      __attribute__((noinline))
+#define always_inline __inline__ __attribute__ ((__always_inline__))
+#define noinline      __attribute__((__noinline__))
 
-#define noreturn      __attribute__((noreturn))
+#define noreturn      __attribute__((__noreturn__))
 
-#define __packed      __attribute__((packed))
+#define __packed      __attribute__((__packed__))
 
 #if (!defined(__clang__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5))
 #define unreachable() do {} while (1)
@@ -43,7 +43,7 @@ 
 #define __inline__ __inline__ __init
 #endif
 
-#define __attribute_pure__  __attribute__((pure))
+#define __attribute_pure__  __attribute__((__pure__))
 #define __attribute_const__ __attribute__((__const__))
 
 /*
@@ -60,7 +60,7 @@ 
 #define __used         __attribute__((__used__))
 #define __maybe_unused __attribute__((__unused__))
 
-#define __must_check __attribute__((warn_unused_result))
+#define __must_check __attribute__((__warn_unused_result__))
 
 #define offsetof(a,b) __builtin_offsetof(a,b)