lint kills _Noreturn

Ken Brown kbrown@cornell.edu
Sun May 29 22:51:00 GMT 2016


On 5/29/2016 1:21 PM, Ken Brown wrote:
> On 5/29/2016 12:56 PM, Andy Moreton wrote:
>> On Sun 29 May 2016, Ken Brown wrote:
>>
>>> If lint is defined, then /usr/include/sys/cdefs.h defines _Noreturn
>>> as a macro
>>> that expands to nothing.  Is this intentional?
>>>
>>> Simple test case:
>>>
>>> $ cat test.h
>>> #define lint 1
>>> #include <sys/cdefs.h>
>>> _Noreturn void foo (void);
>>>
>>> $ gcc -E test.h | grep foo
>>>          void foo (void);
>>>
>>>
>>> Ken
>>
>> A traditional lint program may not support the new C11 keywords, but
>> will define the 'lint' symbol. See, e.g.
>>      http://www.unix.com/man-page/FreeBSD/1/lint
>
> But in the present context (see my second message), we're redefining C11
> keywords even though __STDC_VERSION__ >= 201112L.
>
>> Surely the real problem here is a program which is not a lint executable
>> defining 'lint' ?
>
> The program is emacs built from a git checkout of the master branch.  By
> default the configure option --enable-gcc-checking is used, and this

I meant --enable-gcc-warnings.

> causes lint to be defined in src/config.h.  It doesn't seem to be a
> problem on platforms other than Cygwin; or at least it hasn't been
> reported.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list