Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Jun 2024 18:47:46 +0000 (UTC)
From:      Pedro Giffuni <pfg@freebsd.org>
To:        "src-committers@freebsd.org" <src-committers@freebsd.org>,  "dev-commits-src-all@freebsd.org" <dev-commits-src-all@freebsd.org>,  "dev-commits-src-main@freebsd.org" <dev-commits-src-main@freebsd.org>,  Warner Losh <imp@freebsd.org>
Subject:   Re: git: d5c01e1124ff - main - cdefs.h: Remove pre gcc 5.0  support
Message-ID:  <111875645.165697.1719082066518@mail.yahoo.com>
In-Reply-To: <202406210241.45L2fQZA057110@gitrepo.freebsd.org>
References:  <202406210241.45L2fQZA057110@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_165696_1045442462.1719082066515
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 It was long ago when I last touched this but FWIW ...

clang used to report itself as GCC 4.2 and kept it's GCC extension support =
level consistent with that version so these version numbers were relevant.
Pedro.
    On Thursday, June 20, 2024 at 09:41:34 PM GMT-5, Warner Losh <imp@freeb=
sd.org> wrote: =20
=20
 The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=3Dd5c01e1124ffa4adb2513e7e8d70=
8d7072dbfc75

commit d5c01e1124ffa4adb2513e7e8d708d7072dbfc75
Author:=C2=A0 =C2=A0 Warner Losh <imp@FreeBSD.org>
AuthorDate: 2024-06-20 23:03:15 +0000
Commit:=C2=A0 =C2=A0 Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-06-21 02:41:09 +0000

=C2=A0 =C2=A0 cdefs.h: Remove pre gcc 5.0 support
=C2=A0 =C2=A0=20
=C2=A0 =C2=A0 Reviewed by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 brooks
=C2=A0 =C2=A0 Differential Revision:=C2=A0 https://reviews.freebsd.org/D456=
56
=C2=A0 =C2=A0 Sponsored by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Netflix
---
 sys/sys/cdefs.h | 54 -----------------------------------------------------=
-
 1 file changed, 54 deletions(-)

diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h
index a6ecdca5d8b9..43d179b82020 100644
--- a/sys/sys/cdefs.h
+++ b/sys/sys/cdefs.h
@@ -164,18 +164,9 @@
 #define=C2=A0=C2=A0=C2=A0 __aligned(x)=C2=A0=C2=A0=C2=A0 __attribute__((__=
aligned__(x)))
 #define=C2=A0=C2=A0=C2=A0 __section(x)=C2=A0=C2=A0=C2=A0 __attribute__((__=
section__(x)))
 #define=C2=A0=C2=A0=C2=A0 __writeonly=C2=A0=C2=A0=C2=A0 __unused
-#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__)
 #define=C2=A0=C2=A0=C2=A0 __alloc_size(x)=C2=A0=C2=A0=C2=A0 __attribute__(=
(__alloc_size__(x)))
 #define=C2=A0=C2=A0=C2=A0 __alloc_size2(n, x)=C2=A0=C2=A0=C2=A0 __attribut=
e__((__alloc_size__(n, x)))
-#else
-#define=C2=A0=C2=A0=C2=A0 __alloc_size(x)
-#define=C2=A0=C2=A0=C2=A0 __alloc_size2(n, x)
-#endif
-#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__)
 #define=C2=A0=C2=A0=C2=A0 __alloc_align(x)=C2=A0=C2=A0=C2=A0 __attribute__=
((__alloc_align__(x)))
-#else
-#define=C2=A0=C2=A0=C2=A0 __alloc_align(x)
-#endif
=20
 /*
=C2=A0 * Keywords added in C11.
@@ -199,15 +190,6 @@
 #define=C2=A0=C2=A0=C2=A0 _Alignof(x)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=
 __alignof(x)
 #endif
=20
-#if !defined(__cplusplus) && !__has_extension(c_atomic) && \
-=C2=A0=C2=A0=C2=A0 !__has_extension(cxx_atomic) && !__GNUC_PREREQ__(4, 7)
-/*
- * No native support for _Atomic(). Place object in structure to prevent
- * most forms of direct non-atomic access.
- */
-#define=C2=A0=C2=A0=C2=A0 _Atomic(T)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =
struct { T volatile __val; }
-#endif
-
 #if defined(__cplusplus) && __cplusplus >=3D 201103L
 #define=C2=A0=C2=A0=C2=A0 _Noreturn=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 [=
[noreturn]]
 #else
@@ -218,15 +200,6 @@
 #if (defined(__cplusplus) && __cplusplus >=3D 201103L) || \
=C2=A0 =C2=A0 __has_extension(cxx_static_assert)
 #define=C2=A0=C2=A0=C2=A0 _Static_assert(x, y)=C2=A0=C2=A0=C2=A0 static_as=
sert(x, y)
-#elif __GNUC_PREREQ__(4,6) && !defined(__cplusplus)
-/* Nothing, gcc 4.6 and higher has _Static_assert built-in */
-#elif defined(__COUNTER__)
-#define=C2=A0=C2=A0=C2=A0 _Static_assert(x, y)=C2=A0=C2=A0=C2=A0 __Static_=
assert(x, __COUNTER__)
-#define=C2=A0=C2=A0=C2=A0 __Static_assert(x, y)=C2=A0=C2=A0=C2=A0 ___Stati=
c_assert(x, y)
-#define=C2=A0=C2=A0=C2=A0 ___Static_assert(x, y)=C2=A0=C2=A0=C2=A0 typedef=
 char __assert_ ## y[(x) ? 1 : -1] \
-=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0 __unused
-#else
-#define=C2=A0=C2=A0=C2=A0 _Static_assert(x, y)=C2=A0=C2=A0=C2=A0 struct __=
hack
 #endif
 #endif
=20
@@ -276,7 +249,6 @@
=C2=A0 * void bar(int myArray[__min_size(10)]);
=C2=A0 */
 #if !defined(__cplusplus) && \
-=C2=A0 =C2=A0 (defined(__clang__) || __GNUC_PREREQ__(4, 6)) && \
=C2=A0 =C2=A0 (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >=3D 199901)=
)
 #define __min_size(x)=C2=A0=C2=A0=C2=A0 static (x)
 #else
@@ -302,17 +274,9 @@
 #define=C2=A0=C2=A0=C2=A0 __result_use_or_ignore_check
 #endif /* !__clang__ */
=20
-#if __GNUC_PREREQ__(4, 1)
 #define=C2=A0=C2=A0=C2=A0 __returns_twice=C2=A0=C2=A0=C2=A0 __attribute__(=
(__returns_twice__))
-#else
-#define=C2=A0=C2=A0=C2=A0 __returns_twice
-#endif
=20
-#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable)
 #define=C2=A0=C2=A0=C2=A0 __unreachable()=C2=A0=C2=A0=C2=A0 __builtin_unre=
achable()
-#else
-#define=C2=A0=C2=A0=C2=A0 __unreachable()=C2=A0=C2=A0=C2=A0 ((void)0)
-#endif
=20
 #if !defined(__STRICT_ANSI__) || __STDC_VERSION__ >=3D 199901
 #define=C2=A0=C2=A0=C2=A0 __LONG_LONG_SUPPORTED
@@ -353,33 +317,15 @@
 #define=C2=A0=C2=A0=C2=A0 __predict_true(exp)=C2=A0 =C2=A0 __builtin_expec=
t((exp), 1)
 #define=C2=A0=C2=A0=C2=A0 __predict_false(exp)=C2=A0 =C2=A0 __builtin_expe=
ct((exp), 0)
=20
-#if __GNUC_PREREQ__(4, 0)
 #define=C2=A0=C2=A0=C2=A0 __null_sentinel=C2=A0=C2=A0=C2=A0 __attribute__(=
(__sentinel__))
 #define=C2=A0=C2=A0=C2=A0 __exported=C2=A0=C2=A0=C2=A0 __attribute__((__vi=
sibility__("default")))
 #define=C2=A0=C2=A0=C2=A0 __hidden=C2=A0=C2=A0=C2=A0 __attribute__((__visi=
bility__("hidden")))
-#else
-#define=C2=A0=C2=A0=C2=A0 __null_sentinel
-#define=C2=A0=C2=A0=C2=A0 __exported
-#define=C2=A0=C2=A0=C2=A0 __hidden
-#endif
=20
 /*
=C2=A0 * We define this here since <stddef.h>, <sys/queue.h>, and <sys/type=
s.h>
=C2=A0 * require it.
=C2=A0 */
-#if __GNUC_PREREQ__(4, 1)
 #define=C2=A0=C2=A0=C2=A0 __offsetof(type, field)=C2=A0=C2=A0=C2=A0 __buil=
tin_offsetof(type, field)
-#else
-#ifndef __cplusplus
-#define=C2=A0=C2=A0=C2=A0 __offsetof(type, field) \
-=C2=A0=C2=A0=C2=A0 ((__size_t)(__uintptr_t)((const volatile void *)&((type=
 *)0)->field))
-#else
-#define=C2=A0=C2=A0=C2=A0 __offsetof(type, field)=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 \
-=C2=A0 (__offsetof__ (reinterpret_cast <__size_t>=C2=A0=C2=A0=C2=A0 =C2=A0=
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 \
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (&reinterpret_cast=
 <const volatile char &>=C2=A0=C2=A0=C2=A0 \
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (static_cas=
t<type *> (0)->field))))
-#endif
-#endif
 #define=C2=A0=C2=A0=C2=A0 __rangeof(type, start, end) \
 =C2=A0=C2=A0=C2=A0 (__offsetof(type, end) - __offsetof(type, start))
=20
 =20
------=_Part_165696_1045442462.1719082066515
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body><div class=3D"ydp453a104cyahoo-style-wrap" style=
=3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px=
;"><div></div>
        <div dir=3D"ltr" data-setdir=3D"false">It was long ago when I last =
touched this but FWIW ...<br></div><div dir=3D"ltr" data-setdir=3D"false"><=
br></div><div dir=3D"ltr" data-setdir=3D"false">clang used to report itself=
 as GCC 4.2 and kept it's GCC extension support level consistent with that =
version so these version numbers were relevant.</div><div dir=3D"ltr" data-=
setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false">Pedro.</d=
iv><div><br></div>
       =20
        </div><div id=3D"ydp3058622eyahoo_quoted_9708121018" class=3D"ydp30=
58622eyahoo_quoted">
            <div style=3D"font-family:'Helvetica Neue', Helvetica, Arial, s=
ans-serif;font-size:13px;color:#26282a;">
               =20
                <div>
                        On Thursday, June 20, 2024 at 09:41:34 PM GMT-5, Wa=
rner Losh &lt;imp@freebsd.org&gt; wrote:
                    </div>
                    <div><br></div>
                    <div><br></div>
               =20
               =20
                <div><div dir=3D"ltr">The branch main has been updated by i=
mp:<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">URL: <a href=3D"ht=
tps://cgit.FreeBSD.org/src/commit/?id=3Dd5c01e1124ffa4adb2513e7e8d708d7072d=
bfc75" rel=3D"nofollow" target=3D"_blank">https://cgit.FreeBSD.org/src/comm=
it/?id=3Dd5c01e1124ffa4adb2513e7e8d708d7072dbfc75</a><br></div><div dir=3D"=
ltr"><br></div><div dir=3D"ltr">commit d5c01e1124ffa4adb2513e7e8d708d7072db=
fc75<br></div><div dir=3D"ltr">Author:&nbsp; &nbsp;  Warner Losh &lt;<a hre=
f=3D"mailto:imp@FreeBSD.org" rel=3D"nofollow" target=3D"_blank">imp@FreeBSD=
.org</a>&gt;<br></div><div dir=3D"ltr">AuthorDate: 2024-06-20 23:03:15 +000=
0<br></div><div dir=3D"ltr">Commit:&nbsp; &nbsp;  Warner Losh &lt;<a href=
=3D"mailto:imp@FreeBSD.org" rel=3D"nofollow" target=3D"_blank">imp@FreeBSD.=
org</a>&gt;<br></div><div dir=3D"ltr">CommitDate: 2024-06-21 02:41:09 +0000=
<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">&nbsp; &nbsp; cdefs.h=
: Remove pre gcc 5.0 support<br></div><div dir=3D"ltr">&nbsp; &nbsp; <br></=
div><div dir=3D"ltr">&nbsp; &nbsp; Reviewed by:&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; brooks<br></div><div dir=3D"ltr">&nbsp; &nbsp; Differential R=
evision:&nbsp; <a href=3D"https://reviews.freebsd.org/D45656" rel=3D"nofoll=
ow" target=3D"_blank">https://reviews.freebsd.org/D45656</a><br></div><div =
dir=3D"ltr">&nbsp; &nbsp; Sponsored by:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  =
Netflix<br></div><div dir=3D"ltr">---<br></div><div dir=3D"ltr"> sys/sys/cd=
efs.h | 54 ------------------------------------------------------<br></div>=
<div dir=3D"ltr"> 1 file changed, 54 deletions(-)<br></div><div dir=3D"ltr"=
><br></div><div dir=3D"ltr">diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h<=
br></div><div dir=3D"ltr">index a6ecdca5d8b9..43d179b82020 100644<br></div>=
<div dir=3D"ltr">--- a/sys/sys/cdefs.h<br></div><div dir=3D"ltr">+++ b/sys/=
sys/cdefs.h<br></div><div dir=3D"ltr">@@ -164,18 +164,9 @@<br></div><div di=
r=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __aligned(x)&nbsp;&nbsp;&nbsp; __attri=
bute__((__aligned__(x)))<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbs=
p; __section(x)&nbsp;&nbsp;&nbsp; __attribute__((__section__(x)))<br></div>=
<div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __writeonly&nbsp;&nbsp;&nbsp; _=
_unused<br></div><div dir=3D"ltr">-#if __GNUC_PREREQ__(4, 3) || __has_attri=
bute(__alloc_size__)<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; _=
_alloc_size(x)&nbsp;&nbsp;&nbsp; __attribute__((__alloc_size__(x)))<br></di=
v><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __alloc_size2(n, x)&nbsp;&nbs=
p;&nbsp; __attribute__((__alloc_size__(n, x)))<br></div><div dir=3D"ltr">-#=
else<br></div><div dir=3D"ltr">-#define&nbsp;&nbsp;&nbsp; __alloc_size(x)<b=
r></div><div dir=3D"ltr">-#define&nbsp;&nbsp;&nbsp; __alloc_size2(n, x)<br>=
</div><div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr">-#if __GNUC_PREREQ=
__(4, 9) || __has_attribute(__alloc_align__)<br></div><div dir=3D"ltr"> #de=
fine&nbsp;&nbsp;&nbsp; __alloc_align(x)&nbsp;&nbsp;&nbsp; __attribute__((__=
alloc_align__(x)))<br></div><div dir=3D"ltr">-#else<br></div><div dir=3D"lt=
r">-#define&nbsp;&nbsp;&nbsp; __alloc_align(x)<br></div><div dir=3D"ltr">-#=
endif<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr"> /*<br></div><d=
iv dir=3D"ltr">&nbsp; * Keywords added in C11.<br></div><div dir=3D"ltr">@@=
 -199,15 +190,6 @@<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; _Al=
ignof(x)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; __alignof(x)<br></div><div di=
r=3D"ltr"> #endif<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">-#i=
f !defined(__cplusplus) &amp;&amp; !__has_extension(c_atomic) &amp;&amp; \<=
br></div><div dir=3D"ltr">-&nbsp;&nbsp;&nbsp; !__has_extension(cxx_atomic) =
&amp;&amp; !__GNUC_PREREQ__(4, 7)<br></div><div dir=3D"ltr">-/*<br></div><d=
iv dir=3D"ltr">- * No native support for _Atomic(). Place object in structu=
re to prevent<br></div><div dir=3D"ltr">- * most forms of direct non-atomic=
 access.<br></div><div dir=3D"ltr">- */<br></div><div dir=3D"ltr">-#define&=
nbsp;&nbsp;&nbsp; _Atomic(T)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; struct { =
T volatile __val; }<br></div><div dir=3D"ltr">-#endif<br></div><div dir=3D"=
ltr">-<br></div><div dir=3D"ltr"> #if defined(__cplusplus) &amp;&amp; __cpl=
usplus &gt;=3D 201103L<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp;=
 _Noreturn&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [[noreturn]]<br></div><div =
dir=3D"ltr"> #else<br></div><div dir=3D"ltr">@@ -218,15 +200,6 @@<br></div>=
<div dir=3D"ltr"> #if (defined(__cplusplus) &amp;&amp; __cplusplus &gt;=3D =
201103L) || \<br></div><div dir=3D"ltr">&nbsp; &nbsp;  __has_extension(cxx_=
static_assert)<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; _Static=
_assert(x, y)&nbsp;&nbsp;&nbsp; static_assert(x, y)<br></div><div dir=3D"lt=
r">-#elif __GNUC_PREREQ__(4,6) &amp;&amp; !defined(__cplusplus)<br></div><d=
iv dir=3D"ltr">-/* Nothing, gcc 4.6 and higher has _Static_assert built-in =
*/<br></div><div dir=3D"ltr">-#elif defined(__COUNTER__)<br></div><div dir=
=3D"ltr">-#define&nbsp;&nbsp;&nbsp; _Static_assert(x, y)&nbsp;&nbsp;&nbsp; =
__Static_assert(x, __COUNTER__)<br></div><div dir=3D"ltr">-#define&nbsp;&nb=
sp;&nbsp; __Static_assert(x, y)&nbsp;&nbsp;&nbsp; ___Static_assert(x, y)<br=
></div><div dir=3D"ltr">-#define&nbsp;&nbsp;&nbsp; ___Static_assert(x, y)&n=
bsp;&nbsp;&nbsp; typedef char __assert_ ## y[(x) ? 1 : -1] \<br></div><div =
dir=3D"ltr">-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp; __unused<br></div><div dir=3D"ltr">-#else<br></div><div dir=
=3D"ltr">-#define&nbsp;&nbsp;&nbsp; _Static_assert(x, y)&nbsp;&nbsp;&nbsp; =
struct __hack<br></div><div dir=3D"ltr"> #endif<br></div><div dir=3D"ltr"> =
#endif<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">@@ -276,7 +249=
,6 @@<br></div><div dir=3D"ltr">&nbsp; * void bar(int myArray[__min_size(10=
)]);<br></div><div dir=3D"ltr">&nbsp; */<br></div><div dir=3D"ltr"> #if !de=
fined(__cplusplus) &amp;&amp; \<br></div><div dir=3D"ltr">-&nbsp; &nbsp; (d=
efined(__clang__) || __GNUC_PREREQ__(4, 6)) &amp;&amp; \<br></div><div dir=
=3D"ltr">&nbsp; &nbsp;  (!defined(__STDC_VERSION__) || (__STDC_VERSION__ &g=
t;=3D 199901))<br></div><div dir=3D"ltr"> #define __min_size(x)&nbsp;&nbsp;=
&nbsp; static (x)<br></div><div dir=3D"ltr"> #else<br></div><div dir=3D"ltr=
">@@ -302,17 +274,9 @@<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp;=
 __result_use_or_ignore_check<br></div><div dir=3D"ltr"> #endif /* !__clang=
__ */<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">-#if __GNUC_PRE=
REQ__(4, 1)<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __returns_=
twice&nbsp;&nbsp;&nbsp; __attribute__((__returns_twice__))<br></div><div di=
r=3D"ltr">-#else<br></div><div dir=3D"ltr">-#define&nbsp;&nbsp;&nbsp; __ret=
urns_twice<br></div><div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr"> <br=
></div><div dir=3D"ltr">-#if __GNUC_PREREQ__(4, 6) || __has_builtin(__built=
in_unreachable)<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __unre=
achable()&nbsp;&nbsp;&nbsp; __builtin_unreachable()<br></div><div dir=3D"lt=
r">-#else<br></div><div dir=3D"ltr">-#define&nbsp;&nbsp;&nbsp; __unreachabl=
e()&nbsp;&nbsp;&nbsp; ((void)0)<br></div><div dir=3D"ltr">-#endif<br></div>=
<div dir=3D"ltr"> <br></div><div dir=3D"ltr"> #if !defined(__STRICT_ANSI__)=
 || __STDC_VERSION__ &gt;=3D 199901<br></div><div dir=3D"ltr"> #define&nbsp=
;&nbsp;&nbsp; __LONG_LONG_SUPPORTED<br></div><div dir=3D"ltr">@@ -353,33 +3=
17,15 @@<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __predict_tru=
e(exp)&nbsp; &nbsp;  __builtin_expect((exp), 1)<br></div><div dir=3D"ltr"> =
#define&nbsp;&nbsp;&nbsp; __predict_false(exp)&nbsp; &nbsp; __builtin_expec=
t((exp), 0)<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">-#if __GN=
UC_PREREQ__(4, 0)<br></div><div dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __nu=
ll_sentinel&nbsp;&nbsp;&nbsp; __attribute__((__sentinel__))<br></div><div d=
ir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __exported&nbsp;&nbsp;&nbsp; __attrib=
ute__((__visibility__("default")))<br></div><div dir=3D"ltr"> #define&nbsp;=
&nbsp;&nbsp; __hidden&nbsp;&nbsp;&nbsp; __attribute__((__visibility__("hidd=
en")))<br></div><div dir=3D"ltr">-#else<br></div><div dir=3D"ltr">-#define&=
nbsp;&nbsp;&nbsp; __null_sentinel<br></div><div dir=3D"ltr">-#define&nbsp;&=
nbsp;&nbsp; __exported<br></div><div dir=3D"ltr">-#define&nbsp;&nbsp;&nbsp;=
 __hidden<br></div><div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr"> <br>=
</div><div dir=3D"ltr"> /*<br></div><div dir=3D"ltr">&nbsp; * We define thi=
s here since &lt;stddef.h&gt;, &lt;sys/queue.h&gt;, and &lt;sys/types.h&gt;=
<br></div><div dir=3D"ltr">&nbsp; * require it.<br></div><div dir=3D"ltr">&=
nbsp; */<br></div><div dir=3D"ltr">-#if __GNUC_PREREQ__(4, 1)<br></div><div=
 dir=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __offsetof(type, field)&nbsp;&nbsp;=
&nbsp;  __builtin_offsetof(type, field)<br></div><div dir=3D"ltr">-#else<br=
></div><div dir=3D"ltr">-#ifndef __cplusplus<br></div><div dir=3D"ltr">-#de=
fine&nbsp;&nbsp;&nbsp; __offsetof(type, field) \<br></div><div dir=3D"ltr">=
-&nbsp;&nbsp;&nbsp; ((__size_t)(__uintptr_t)((const volatile void *)&amp;((=
type *)0)-&gt;field))<br></div><div dir=3D"ltr">-#else<br></div><div dir=3D=
"ltr">-#define&nbsp;&nbsp;&nbsp; __offsetof(type, field)&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=
 \<br></div><div dir=3D"ltr">-&nbsp; (__offsetof__ (reinterpret_cast &lt;__=
size_t&gt;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; \<br></d=
iv><div dir=3D"ltr">-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
;  (&amp;reinterpret_cast &lt;const volatile char &amp;&gt;&nbsp;&nbsp;&nbs=
p; \<br></div><div dir=3D"ltr">-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; (static_cast&lt;type *&gt; (0)-&gt;field))))<br></div><=
div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr">-#endif<br></div><div dir=
=3D"ltr"> #define&nbsp;&nbsp;&nbsp; __rangeof(type, start, end) \<br></div>=
<div dir=3D"ltr"> &nbsp;&nbsp;&nbsp; (__offsetof(type, end) - __offsetof(ty=
pe, start))<br></div><div dir=3D"ltr"> <br></div></div>
            </div>
        </div></body></html>
------=_Part_165696_1045442462.1719082066515--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?111875645.165697.1719082066518>