public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
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 



      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