Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Not getting 64 bit specific truncation warnings.

Dear All,

I am porting my C/C++ project (currently functioning on 32 bit machine) into 64 bit SUSUE linux machine
uname -a
Linux msglxd03 2.6.5-7.97-smp #1 SMP Fri Jul 2 14:21:59 UTC 2004 x86_64 x86_64 x86_64 GNU/Linux

I am trying to get the warning Specific to long to int and pointer to int assignments.

Written warnings2.c file which conatin :

int main()
unsigned int i;
unsigned long z = -1L;

printf("size of unsigned is %d bytes!
", sizeof(z));
printf("size of int is %d bytes!
", sizeof(i));

i = z;
i is = %d",i);
i = &z;
i is = %d",i);
return 1;
After compiling (either with gcc or cc)

$ gcc -m64 -Wall -march=x86-64 -o war2.o warnings2.c

it gave me following warning:

warnings2.c: In function main:
warnings2.c:9: warning: format %d expects type int, but argument 2 has type long unsigned int
warnings2.c:10: warning: format %d expects type int, but argument 2 has type long unsigned int
warnings2.c:14: warning: assignment makes integer from pointer without a cast

There isn't any warning for long to int assignment(truncation) @ line 12.

On sparcv9 it is giving warnings when used >> CC +w2 -xarch=v9
"warnings2.cpp", line 12: Warning: Conversion of 64 bit type value to "int" causes truncation.
1 Warning(s) detected.

Could anybody please tell me how could we get the similar warnings on Linux?
Which all options are need with gcc to get the truncation warnings on 64-bit linux machine?
We have already tried -m64 -Wall -mcpu=x86-64 -Wconversion -pedantic and -Wshorten-64-to-32, but didn't get truncation warnings ?

Thanks in advance,



  • Karpov2007Karpov2007 Member Posts: 3
    You can try C++Test:

    WARNING: 3264bit_ImplicitTruncation (port-06)
    int iVal = 72;
    long lVal = 6;
    iVal = lVal; -ERR

    And/Or :)

    You can come to us -
    We concern of subjects porting code to 64-bit systems. We plan to let out a specialised product Viva64 for check 64-bit programs for Linux. I suggest to communicate. Write to me if it is interesting to you.

    See also:
    Comparison of analyzers
Sign In or Register to comment.