From owner-freebsd-hackers@FreeBSD.ORG Tue Feb 1 11:25:01 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id E840C106566C; Tue, 1 Feb 2011 11:25:01 +0000 (UTC) Date: Tue, 1 Feb 2011 11:25:01 +0000 From: Alexander Best To: Roman Divacky Message-ID: <20110201112501.GA99666@freebsd.org> References: <20110130172941.GA10701@freebsd.org> <20110131075439.GA49765@freebsd.org> <20110131095158.GC98011@freebsd.org> <20110201081236.GA63338@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110201081236.GA63338@freebsd.org> Cc: freebsd-hackers@freebsd.org Subject: Re: empty function macros X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Feb 2011 11:25:02 -0000 On Tue Feb 1 11, Roman Divacky wrote: > On Mon, Jan 31, 2011 at 09:51:58AM +0000, Alexander Best wrote: > > On Mon Jan 31 11, Roman Divacky wrote: > > > no problem with this with clang :) > > > > hmmmmm....so compiling the following code > > > > int > > main(int argc, char **argv) > > { > > if (1<2) > > ; > > } > > > > with clang -Werror code.c -o code works for you? > > if (1<2) > ; > > gives a warning (and it should), on the other hand > > #define NOTHING > > if (1<2) > NOTHING; > > does not warn, which is what you want right? actually #define NOTHING int main(int argc, char **argv) { if (1<2) NOTHING; return (0); } *does* warn for me: otaku% clang test.c -o test test.c:7:12: warning: if statement has empty body [-Wempty-body] NOTHING; ^ 1 warning generated. ..gcc on the otherhand will only warn with -Wextra. so the questions still stands: should #define NOTHING be replaced with #define NOTHING do { } while (0) ? cheers. alex -- a13x