Description: ============ If I were to assign a size_t to an int, there is a possible data loss (overflow error) because of that conversion, especially if the value of size_t is > INT_MAX (as defined in limits.h ), there would be an overflow error then and the compiler would overflow to given -ve numbers then.
Example - Compilable code fragment: =================================== #include <stdlib.h> #include <limits.h> #include <stdio.h> int main() { size_t ok; int overflow; ok = (size_t)INT_MAX + 1; overflow = ok; /* Well, It would overflow here */ printf("Int: %d , Size_t: %u", overflow, ok ); system("pause"); return EXIT_SUCCESS; } Expected Result: ================ When compiling this code fragment, I am essentially assigning a size_t value to an int (implicitly ). So it would be nice if the compiler flags a warning there, indicating there is possible loss of data or an overflow error or a similar appropriate warning message. Actual Result: ============== Right, now even though I compiled with the highest warning level, it is not flagging a warning. C:\>gcc -W -Wall -ansi -pedantic sizet_int.c C:\>gcc -W -Wall -ansi sizet_int.c System Information: ====================== C:\>gcc -v Reading specs from C:/Programs/MinGW/bin/../lib/gcc/mingw32/3.4.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host= mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable -languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --e nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-ja va-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz ation --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.2 (mingw-special) System Type: Win XP - Service Pack 2 / Pentium 4 . Let me know if I need to provide more information here. -- Summary: assigning size_t to int - warning needs to be flagged . Product: gcc Version: 3.4.2 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kaykaylance at yahoo dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17968