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,



  • 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.

Howdy, Stranger!

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


In this Discussion