------- Comment #3 from shenrfen at gmail dot com 2009-10-22 09:42 ------- Confused for the result. int main() { struct s t = {1, 2, 3}; printf("0x%llx\n",(t.a-8)); printf("0x%llx\n",(t.b-8)); printf("0x%llx\n",(t.c-8)); } the output is as following 0xfffffff9 (32 bit) 0xfffffffffa (40 bit) 0xfffffffffb (40 bit)
if one operand type is long long bit filed and another is 32-bit int, What is the type conversion rule? Or it is an undefined behavior? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41793