lint kills _Noreturn
Ken Brown
kbrown@cornell.edu
Mon May 30 08:25:00 GMT 2016
On 5/29/2016 3:09 PM, Andy Moreton wrote:
> On Sun 29 May 2016, 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.
>
> Agreed, but that should only affect a lint program that understands C11.
> Any other program should simply not be defining lint in the first place.
>
>>> 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 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.
>
> I saw your report of emacs bug#23640, and followed here. I think the
> real question is why the recent change to emacs configure.ac added a
> definition of lint - that seems wrong.
That was actually added about 4 years ago, in commit b8df54f, when the
--enable-gcc-warnings option was first added. The only thing that
changed recently was that the warnings are enabled by default on a git
checkout of master.
Ken
--
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