unsigned long long da; da = ( 1234567ULL << 32 ) | ( 362436069ULL );
unsigned int a; a = da; I would expect a warning on the assignment of a lower precision data type to a higher precision data type with no cast. gcc V4.4.1-ubuntu with -Wall gives no warning on the above code. The behaviour is that the compiler sets a to 362436069. Matt -- Summary: -Wall gives no warning Product: gcc Version: 4.4.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: spolematt at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43235