On Tue, Nov 06, 2018 at 11:15:11PM +0300, Valery Ushakov wrote: > On Tue, Nov 06, 2018 at 16:26:44 +0000, Maya Rashish wrote: > > > Module Name: src > > Committed By: maya > > Date: Tue Nov 6 16:26:44 UTC 2018 > > > > Modified Files: > > src/sys/sys: stdint.h types.h > > > > Log Message: > > Guard from type redefinition (needed by pre-C11 C) in a safer way. > > > > The existing way causes problems like: > > https://mail-index.netbsd.org/tech-pkg/2018/10/25/msg020395.html > > https://mail-index.netbsd.org/tech-userlevel/2018/09/08/msg011381.html > > I would argue that the first example is, if not outright wrong, then > at the very minimum unhygienic, as it doesn't use the same > preprocessor nesting for the definition of the name and the use of the > name, i.e. it incorrectly assumes that the function will be named > "something_uint32_t". > > Also your change breaks redefining intN_t types with the preprocessor. > E.g. > > #define uint32_t unsigned long long > #include <stdint.h> > > is now broken with your change. > > -uwe
This fails with glibc too. I don't expect to find real users for that behaviour...