Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jun 2015 18:24:28 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Pedro Giffuni <pfg@freebsd.org>
Cc:        David Chisnall <theraven@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r268137 - head/sys/sys
Message-ID:  <D58BE060-870A-4D5E-AE46-D915D9CD6A0C@FreeBSD.org>
In-Reply-To: <55842F16.5040608@FreeBSD.org>
References:  <201407020845.s628jRG5031824@svn.freebsd.org> <5BE3492F-86A0-4CE3-A27C-8DB5EB662C64@FreeBSD.org> <55842F16.5040608@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_7CDE3707-9B66-4E2F-AEF3-D6C1201C1118
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

On 19 Jun 2015, at 17:02, Pedro Giffuni <pfg@freebsd.org> wrote:
>=20
>> On 19/06/2015 05:16 a.m., David Chisnall wrote:
>>> I only just caught this (having seen the fallout from NetBSD doing =
the same thing in a shipping release and the pain that it=E2=80=99s =
caused):
>>>=20
>>> __weak is a reserved keyword in Objective-C, please pick another =
name for this.  This in cdefs.h makes it impossible to include any =
FreeBSD standard headers in Objective-C programs (of which we have a =
couple of hundred in ports) if they use any of the modern Objective-C =
language modes.
...
> Closely related to this, we are redefining _Noreturn, which is a =
reserved keyword in C11.

No, sys/cdefs.h has:

   254  /*
   255   * Keywords added in C11.
   256   */
   257
   258  #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L || =
defined(lint)
[...]
   284  #if defined(__cplusplus) && __cplusplus >=3D 201103L
   285  #define _Noreturn               [[noreturn]]
   286  #else
   287  #define _Noreturn               __dead2
   288  #endif
[...]
   320  #endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */

So the whole block redefining all the _Xxx identifiers is skipped for
C11 and higher.

E.g.:

$ cpp -std=3Dc99
#include <sys/cdefs.h>
_Noreturn void foo(void);
^D
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 306 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 2 "<stdin>" 2
__attribute__((__noreturn__)) void foo(void);

$ cpp -std=3Dc11
#include <sys/cdefs.h>
_Noreturn void foo(void);
^D
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 306 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 2 "<stdin>" 2
_Noreturn void foo(void);

-Dimitry


--Apple-Mail=_7CDE3707-9B66-4E2F-AEF3-D6C1201C1118
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.27

iEYEARECAAYFAlWEQkcACgkQsF6jCi4glqOLEwCgm0iYzbR1RXTBj9C1aKoAwc7v
/mQAn05toJtilS594omNeeYlgl+tfHH1
=Lgl0
-----END PGP SIGNATURE-----

--Apple-Mail=_7CDE3707-9B66-4E2F-AEF3-D6C1201C1118--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D58BE060-870A-4D5E-AE46-D915D9CD6A0C>