[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gcc-3.1.1
gcc-3.1.1 が出たようなので試してみました。
やっぱり tcp がダメだったので今度はちょっと追ってみました。
以下のようなコードで -O1 と -O2 で結果が違います。
(その結果 in4_cksum が正しく動かない)
# だれかバグレポートしておいてもらえるとうれしい。:-)
in_cksum.o だけ -O1 でつくればとりあえずカーネルは動くみたい
です。そんなの不安でつかえないけど…。
#include <stdio.h>
struct buf {
int data;
};
bug(m)
struct buf *m;
{
int sum = 0;
struct buf tmp;
unsigned short *w = (void *)&tmp;
bzero(&tmp, sizeof tmp);
tmp.data = m->data;
//asm volatile ("" ::: "memory");
sum += w[0];
sum += w[1];
printf("sum = 0x%x\n", sum);
return 0;
}
main()
{
struct buf m;
m.data = 0x12345678;
bug(&m);
}