From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Frysinger Date: Thu, 25 Aug 2011 17:58:14 -0400 Subject: [U-Boot] gcc-4.6 warnings In-Reply-To: <4E56C25A.7090909@freescale.com> References: <3AA0E5B6-7E38-4CB0-94E2-F7BBA9A100FA@kernel.crashing.org> <201108251627.26232.vapier@gentoo.org> <4E56C25A.7090909@freescale.com> Message-ID: <201108251758.15310.vapier@gentoo.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thursday, August 25, 2011 17:44:58 Timur Tabi wrote: > Mike Frysinger wrote: > > if we let the optimizer do it instead of the preprocessor, we get better > > code coverage in the face of different config settings. > > Oh, I thought this was some new feature of U-Boot. > > Can you give me an example of where DCE could be used to eliminate an > #ifdef? a change i talked about but havent yet posted would be to fix debug(). currently it looks more or less like: #ifdef DEBUG # define debug(...) printf(...) #else # define debug(...) #endif this causes people to do things like put local variables only used with debug() code behind an #ifdef DEBUG in their code otherwise they get unused variable warnings. if, instead, we did something like: #ifdef DEBUG # define __DEBUG_KNOB 1 #else # define __DEBUG_KNOB 0 #endif #define debug(...) do { if (__DEBUG_KNOB) printf(...); } while (0) the code would always get compiled and checked, but gcc would throw away it at DCE time, and there would be no unused variable warnings. -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. Url : http://lists.denx.de/pipermail/u-boot/attachments/20110825/31d98c01/attachment.pgp