Casting Bug in GCC 2.95.2
Andrew Pinski
pinskia@physics.uc.edu
Thu Jun 27 15:25:00 GMT 2002
What do you mean by not working?
On ia32 and most other platforms int and long are both 32-bit long.
Thanks,
Andrew Pinski
On Thursday, June 27, 2002, at 05:58 , dtrel wrote:
>
>
> Casting from char* to: int* or long* generate the same coding.
> The int* isn't working in ver 2.95.
>
> Is there a workaround for this or does ver 3.1 solve the problem?
>
> TIA D'Trel
>
> *------------------------------------------------------------------------*
> #include <iostream>
>
> int main () {
> int x;
> char * cptr;
> int * i_ptr;
> long * l_ptr;
>
> cptr = new char[256];
> // casting char* to: int* and long*
> i_ptr =(int *) cptr; //same results as: l_ptr=(long*)cptr;
> l_ptr =(long *) cptr;
>
> // with int * < ERROR >
> for (x = 0; x <256; x++) cptr[x] = 0;
> i_ptr[0] = 1;
> i_ptr[1] = 2;
> i_ptr[2] = 3;
> cout<<endl<<"With int * = ";
> for (x = 0; x < 16; x++) cout<< (int) cptr[x] <<" ";
>
>
> // with long * < OK >
> for (x = 0; x <256; x++) cptr[x] = 0;
> l_ptr[0] = 1;
> l_ptr[1] = 2;
> l_ptr[2] = 3;
> cout<<endl<<"With long * = ";
> for (x = 0; x < 16; x++) cout<< (int) cptr[x] <<" ";
>
> return 0;
> }
>
> *------------------------------------------------------------------------*
>
>
More information about the Gcc-bugs
mailing list