This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: lint kills _Noreturn

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);


A traditional lint program may not support the new C11 keywords, but
will define the 'lint' symbol. See, e.g.

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 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.


Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]