On Mon, 5 Jun 2023, Roberto Bagnara wrote:
> > > Here is a list of extensions that are documented in the GCC manual:
> > 
> > I suppose that this list wasn't meant to be complete? The most
> > prominent example is probably asm().
> 
> As far as I can tell the list was almost complete (I realize now
> that the use of the keyword __signed__ was omitted because
> investigation was not completed).  But I am probably misunderstanding
> you.

We also make use of the following extensions (please correct me if I am
wrong and these are not extensions):

xen/include/xen/compiler.h:#define always_inline __inline__ __attribute__ 
((__always_inline__))
xen/include/xen/compiler.h:#define gnu_inline    __inline__ __attribute__ 
((__gnu_inline__))
xen/include/xen/compiler.h:#define noinline      __attribute__((__noinline__))
xen/include/xen/compiler.h:#define noreturn      __attribute__((__noreturn__))
xen/include/xen/compiler.h:#define __packed      __attribute__((__packed__))
xen/include/xen/compiler.h:#define __weak        __attribute__((__weak__))
xen/include/xen/compiler.h:# define nocall       
__attribute__((__error__("Nonstandard ABI")))
xen/include/xen/compiler.h:# define cf_check     __attribute__((__cf_check__))
xen/include/xen/compiler.h:# define fallthrough        
__attribute__((__fallthrough__))
xen/include/xen/compiler.h:#define __aligned(a) __attribute__((__aligned__(a)))
xen/include/xen/compiler.h:#define __attribute_pure__  __attribute__((__pure__))
xen/include/xen/compiler.h:#define __attribute_const__ 
__attribute__((__const__))
xen/include/xen/compiler.h:#define __transparent__     
__attribute__((__transparent_union__))
xen/include/xen/compiler.h:#define __used         __attribute__((__used__))
xen/include/xen/compiler.h:#define __maybe_unused __attribute__((__unused__))
xen/include/xen/compiler.h:#define __must_check 
__attribute__((__warn_unused_result__))
xen/include/xen/compiler.h:#define __nonnull(...) 
__attribute__((__nonnull__(__VA_ARGS__)))

It is possible that some of these don't show up in any of the relevant
code build as part of the minimal configuration for safety so you won't
see any errors/warnings in Eclair.

Also, some of these extensions are probably no longer necessary, such as
__gnu_inline__.

Reply via email to