From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17307 invoked by alias); 19 Feb 2003 21:26:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 17226 invoked by uid 71); 19 Feb 2003 21:26:00 -0000 Date: Wed, 19 Feb 2003 21:26:00 -0000 Message-ID: <20030219212600.17225.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Neil Booth Subject: Re: c/9762: Address of 'char' is incorrect. Reply-To: Neil Booth X-SW-Source: 2003-02/txt/msg00957.txt.bz2 List-Id: The following reply was made to PR c/9762; it has been noted by GNATS. From: Neil Booth To: stephen.kennedy@havok.com Cc: gcc-gnats@gcc.gnu.org, debian-gcc@lists.debian.org Subject: Re: c/9762: Address of 'char' is incorrect. Date: Wed, 19 Feb 2003 21:23:55 +0000 stephen.kennedy@havok.com wrote:- > In the example below, '&a' is the address of a local copy of 'a' not of 'a'. > if the type of 'a' is changed to int, it works as expected. Works as who expected? Where is the bug? Please quote which part of the C standard is violated. You got an address, why are you unhappy? Neil. > #define TA char > #define TB int > #define TC int > > void foobar(TA a, TB b, TC c); > > int main() > { > foobar(1,2,3); > return 0; > } > > void foobar(TA a, TB b, TC c) > { > printf("a == %i claims %x\n", a, &a); > printf("a == %i really %x\n", (&b)[-1], (&b)-1); > printf("b == %i %x\n", b, &b); > printf("c == %i %x\n", c, &c); > }