发现 nios2-elf-gcc 一处 bug

    unsigned long long a=0x11111111;
    unsigned long long b=0x22222222;
    unsigned long long c=0x33333333;

    printf("a=0x%x , b=0x%x , c=0x%x\n", (unsigned)a, (unsigned)b, (unsigned)c);
    printf("a=0x%llx , b=0x%llx , c=0x%llx\n", a, b, c);


实际执行后第二条printf语句生成的可变参数表是错误的,uint32型变量b和c在函数调用时压栈次序或字节长度不对。导致无法打印b的值,并将b值打印到c的位置上

实际执行后输出:

a=0x11111111 , b=0x22222222 , c=0x33333333
a=0x11111111 , b=0x0 , c=0x22222222

你可能感兴趣的:(发现 nios2-elf-gcc 一处 bug)