X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=BDYNpt+KIqf3OQpX zdjlZFuvd6y7w7Kni3Kh0wMeS8a6rvdqRV2gQCaYARi8TKkQ5wS3GkP9N4CaPonr aWiEsX2YmMiDIb21INAj0SsA+SKrY2qIxQJiNFGXW32axnJd6ZzFDjJIPyrdWldp /pz2DF4tBhUZWIIeaSfEwu6w1aY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=hVnq8jiOJNAXZtF/Ww3qoc zENeo=; b=kU/pvZzYlKn9rkqcRPqWm1jWRs5U7vwzuujyGpPNNhcJGF7lu0Bc2V 4LaEQK7WHTaSQYf2O49ZZkD2H1kTaS1+lVI7a7jfCP5GXGBr1mPH2L5v/cuGCXwb IgAK6BIrcjwx4n+A44QwpyM94Z87F2xp/3+pM3vR6X/SkMM7/Ns1Y= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.0 required=5.0 tests=AWL,BAYES_20,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=30052016, 30.05.2016, buried, everybody X-HELO: mailout07.t-online.de Subject: Re: lint kills _Noreturn To: cygwin AT cygwin DOT com References: <6fef0097-c076-2691-c4f9-2af5a050a17e AT cornell DOT edu> <86fut07qha DOT fsf AT gmail DOT com> <9c66686a-0af8-dbfe-7804-797df8aad7c6 AT cornell DOT edu> <20160530084454 DOT GF12694 AT calimero DOT vinschen DOT de> From: =?UTF-8?Q?Hans-Bernhard_Br=c3=b6ker?= Message-ID: <69fb49df-0c48-408e-b21b-924a3217becc@t-online.de> Date: Mon, 30 May 2016 18:51:03 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <20160530084454.GF12694@calimero.vinschen.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Am 30.05.2016 um 10:44 schrieb Corinna Vinschen: > Our cdefs.h is taken almost verbatim from FreeBSD, and FreeBSD's > cdefs.h uses the exact same expressions chcking for lint. That means almost nothing. The BSD guy might have a good, platform-specific reason to assign a specific meaning to the macro "lint" that's buried in their history, and doesn't even apply to Cygwin. And of course like everybody else, they could simply have got it wrong. > Don't set lint. It's not that simple. On the one hand the global name "lint" is clearly in the user's name space. If an implementation wants to use a macro that means something special, and which user code is not supposed to meddle with, that's what the language has reserved name space patterns for (it should then be __lint or __LINT). OTOH the original lint, although it's a tool that's used to check for violations of such rules among others, unfortunately used to violate those same rules by predefining a global macro "lint", and existing code still relies on that property to hide non-standard constructs like that _Noreturn from lint. Disappointingly the more modern implementations of lint still get this wrong, or at least not quite right, in different ways: splint documents "S_SPLINT_S", which at least looks like a macro, but is still in user namespace. Gimpel's ones have "_lint", which is better than "lint", but should really be "__lint". -- 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