From owner-freebsd-hackers@FreeBSD.ORG Tue Feb 10 02:48:42 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BB8BD16A4CE for ; Tue, 10 Feb 2004 02:48:42 -0800 (PST) Received: from relay.mortal.ru (unknown [62.16.86.250]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE1C543D46 for ; Tue, 10 Feb 2004 02:48:41 -0800 (PST) (envelope-from zevlg@yandex.ru) Received: from us.dmz.local (wus000.dmz.local [10.32.1.6]) by relay.mortal.ru (8.11.6/8.11.6) with ESMTP id i1AAlEJ30681; Tue, 10 Feb 2004 13:47:14 +0300 Received: from us.dmz.local (localhost.dmz.local [127.0.0.1]) by us.dmz.local (8.12.3/8.12.3) with ESMTP id i1AApLwC002495; Tue, 10 Feb 2004 13:51:21 +0300 (MSK) (envelope-from zevlg@yandex.ru) Received: (from wtc05@localhost) by us.dmz.local (8.12.3/8.12.3/Submit) id i1AApLQ2002494; Tue, 10 Feb 2004 13:51:21 +0300 (MSK) X-Authentication-Warning: us.dmz.local: wtc05 set sender to zevlg@yandex.ru using -f To: Zajcev Evgeny References: <82fzdjb49t.fsf@us.dmz.local> From: Zajcev Evgeny Date: Tue, 10 Feb 2004 13:51:21 +0300 In-Reply-To: <82fzdjb49t.fsf@us.dmz.local> (Zajcev Evgeny's message of "Tue, 10 Feb 2004 13:46:54 +0300") Message-ID: <821xp3b42e.fsf@us.dmz.local> User-Agent: Gnus/5.1002 (Gnus v5.10.2) XEmacs/21.5 (cabbage, berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: Dag-Erling Smørgrav cc: hackers@freebsd.org Subject: Re: how to fool gcc? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2004 10:48:42 -0000 Zajcev Evgeny writes: > > Maybe just have copy of `s' inside while statement? Something like: > >> #define RETURNS(s) do { \ >> if ((s) == NULL) \ >> openpam_log(PAM_LOG_DEBUG, "returning NULL"); \ >> else \ >> openpam_log(PAM_LOG_DEBUG, "returning '%s'", (s)); \ >> return (s); \ >> } while (0) err, I mean #define RETURNS(s) do { \ char *scpy = s; \ if ((s) == NULL) \ openpam_log(PAM_LOG_DEBUG, "returning NULL"); \ else \ openpam_log(PAM_LOG_DEBUG, "returning '%s'", (scpy)); \ return (s); \ } while (0) -- lg