From: Junio C Hamano Date: Tue, 01 Mar 2016 19:44:24 GMT Subject: Re: [PATCH v2] Mark win32's pthread_exit() as NORETURN Message-ID: In-Reply-To: <56D5EEE2.3080100@kdbg.org> Johannes Sixt writes: > Am 01.03.2016 um 15:13 schrieb Johannes Schindelin: >> The pthread_exit() function is not expected to return. Ever. On Windows, >> we call ExitThread() whose documentation claims: "This function does not >> return a value.": >> >> https://msdn.microsoft.com/en-us/library/windows/desktop/ms682659 > > This is misleading: MSDN marks all functions declared void as "does > not return a value," for example, look at EnterCriticalSection: > > https://msdn.microsoft.com/en-us/library/windows/desktop/ms682608 > > For this reason, I actually prefer your version 1 patch without the > explanation. ;-) >> -static inline int pthread_exit(void *ret) >> +static inline int NORETURN pthread_exit(void *ret) > > I would have written it as > > #ifdef __GNUC__ > __attribute__((__noreturn__)) > #endif > static inline int pthread_exit(void *ret) ... > > but I can live with your version as long as it compiles. Either way, let's make sure that the final version returns "void", cf. http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_exit.html Thanks.