On 07/11/11 15:15, Bruno Haible wrote: > it looks to me that the ISO C and ISO C++ committees need to > do some more work to align the syntaxes.
This is pretty unlikely. They won't converge here, just as they didn't converge with 'bool'. The _Noreturn / <stdnoreturn.h> part of draft C1X has been present in multiple drafts; I think it's reasonably safe to start tracking it at this point. > And on the gnulib side, either we should wait until the ISO C and ISO C++ > drafts have converged, or we should use _Noreturn everywhere and not > use 'noreturn' (1. because of C++, 2. because of Microsoft's compiler). My patch prefers _Noreturn when it can, for two reasons: * In contexts like lib/stdlib.in.h, it reduces namespace pollution. * It removes a dependency on the stdnoreturn module. > In patches [14] to [18], you use noreturn. > Which seems inconsistent. Yes, this was in contexts like lib/openat.h. Here, I was worried about the case where openat.h is copied elsewhere and is used by a random compiler, not necessarily the compiler that 'configure' was run with. In that case, it's safer for the code to include <stdnoreturn.h>, which should be in the same include path. However, if these files (namely, openat.h, sigpipe-die.h, xalloc.h, xmemdup0.h, xstrtol.h) are not intended to be copied elsewhere, it'd be better to be consistent and to have them use _Noreturn as well; that way, their modules wouldn't need to depend on the stdnoreturn module.