From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1512 invoked by alias); 16 Jul 2014 20:15:17 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 1396 invoked by uid 89); 16 Jul 2014 20:15:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: topped-with-meat.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit From: Roland McGrath To: Jim Meyering Cc: libc-alpha@sourceware.org Subject: Re: [PATCH] assert.h: allow gcc to detect assert(a = 1) errors In-Reply-To: Jim Meyering's message of Wednesday, 16 July 2014 12:12:03 -0700 <1405537923-28692-1-git-send-email-jim@meyering.net> References: <1405537923-28692-1-git-send-email-jim@meyering.net> Message-Id: <20140716201505.34FF22C398F@topped-with-meat.com> Date: Wed, 16 Jul 2014 20:15:00 -0000 X-CMAE-Score: 0 X-CMAE-Analysis: v=2.1 cv=SvUDtp+0 c=1 sm=1 tr=0 a=WkljmVdYkabdwxfqvArNOQ==:117 a=14OXPxybAAAA:8 a=lNX467y4k8gA:10 a=Z6MIti7PxpgA:10 a=kj9zAlcOel0A:10 a=hOe2yjtxAAAA:8 a=s6KJxPO_iUsJWKCQ7jUA:9 a=CjuIK1q_8ugA:10 X-SW-Source: 2014-07/txt/msg00395.txt.bz2 This certainly should not go in during the current release freeze. So you might not want to try to get too much discussion going until the floodgates reopen. Also, various key people might be less than usually responsive until after Cauldron (and for me, another week of vacation thereafter). Isn't there an "empty statement" warning that might be on too? We certainly don't want the internals of the macro (the then clause in your new version) to produce warnings of their own with any possible combination of switches. You should be able to use __extension__ for GCC under -ansi. But perhaps that would wrongly allow use of extensions inside the user's expression too. If you're avoiding it for good reason, there should be comments there explaining why. I also wonder how modern GCCs running in integrated preprocessor mode deal with the system header exception and/or __extension__ for this sort of case (since in integrated preprocessor mode it can tell which part came from the system header and which from the user). Any change like this is going to need a lot of detailed reporting about testing with different compilers and option combinations and sorts of expressions (i.e. ones using extensions or not and perhaps various different sorts of extensions). Thanks, Roland