Dear All,

Could anybody provide me information on how to get 64 bit specific warnings on SUSE Linux 64 bit machine. I am trying to port 32 bit code to 64 bit machine. I am using gcc to build my code. On Solaris Platform doing "CC +w2 -xarch=v9" gives the desired warnings. Could anybody provide me similar things for Linux as the above mentioned flag for solaris are not working with gcc on Linux.

I have already tried -Wall -Wextra -Wmissing-prototypes -Wconversion -Wformat-Wshorten-64-to-32 and -pedantic, but none of these helped.

To check the appropriate flags for desired warnings I wrote a sample code which is as follows:

#include <iostream>

using namespace std;

int main()
unsigned long ul = -1UL;
unsigned int i = 20,j;
unsigned int *ip = &i;
i = ul;
j = (unsigned int) ip;
return 1;

If I build the code on 64 bit machine I should get warnings for the following two lines:
i = ul;
j = (int) ip;
But when i copiled it with "gcc -c -m64 -Wall -Wmissing-prototypes" I am getting only one warning i.e. "warnings.cpp:11: warning: cast from pointer to integer of different size". I am not getting warning for long to int assignement for the line "i = ul;".

Could anybody suggest me something on this.

Thank you in advance.