From: Dan Pop <Dan.Pop@cern.ch>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] ia-64 cast warning??
Date: Wed, 14 Nov 2001 19:03:08 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590698805516@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590698805513@msgid-missing>
On Wed, 14 Nov 2001, Pereira, D LailaX E wrote:
> Consider the following macro : executing in a program , on linux ia-64
> machine:
> ifdef CIRC_DEBUG
> #define CBUFSIZE 32768
> #define CHECK_CIRC_ALIGNMENT( A ) \
> if (((unsigned int)(circbuff + A))%sizeof(caddr_t)) { A += (sizeof(caddr_t)
> - (((unsigned int)(circbuff + A))%sizeof(caddr_t)))/sizeof(unsigned short);
> }
>
> #define CIRCADDR( A ) \
> CHECK_CIRC_ALIGNMENT(CBptr) \
> *(caddr_t *)(circbuff + CBptr) = A; \
> CBptr = (CBptr + sizeof(caddr_t)/sizeof(short)) % CBUFSIZE;
>
> #endif
>
>
> int main(){
> unsigned int volatile* mask;
> unsigned short circbuff[CBUFSIZE];
> unsigned int CBptr;
> unsigned int current;
> .....
> CHECK_CIRC_ALIGNMENT(current);
> .....
> }
>
> I always get the warning :
> warning : cast from pointer to integer of different size on the line
> CHECK_CIRC_ALIGNMENT(current);
>
> when I compile the above program.I want to get rid of the warning.I am not
> able to figure out why I get this warning.??
The reason of the warning is OBVIOUS: you are converting a pointer
value (circbuff + current), which is a 64-bit value, to unsigned int,
which is a 32-bit type. The compiler is warning you that you may lose
significant bits in this conversion, and this is the case, indeed, on
Linux-ia64.
As you have already been told, if you need to make such conversions,
use the type uintptr_t, defined in <stdint.h>, instead of some
arbitrary, hard coded integer type.
Dan
prev parent reply other threads:[~2001-11-14 19:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-14 18:16 [Linux-ia64] ia-64 cast warning?? Pereira, D LailaX E
2001-11-14 18:26 ` Randolph Chung
2001-11-14 19:03 ` Dan Pop [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590698805516@msgid-missing \
--to=dan.pop@cern.ch \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox