--- Comment #6 from matz at suse dot de 2005-11-21 14:25 ---
Something is fishy. Iff registers are used for passing then it would have to
be %rdi and %rsi (not %rax)! So the high part of this struct (where the
bitfield lies) is not passed at all here. Per ABI this whole struct
should
--- Comment #5 from rguenth at gcc dot gnu dot org 2005-11-21 14:06 ---
Disassembly with the first two checks removed (only the third aborts):
foo:
.LFB2:
subq$24, %rsp #,
.LCFI0:
movlx+8(%rip), %eax #, tmp62
movl16(%rsp), %edx #, tmp60
--- Comment #4 from rguenth at gcc dot gnu dot org 2005-11-21 13:40 ---
Old value = 0
New value = 1
check2495 (arg0={a = 27121, b = {c = {d = true, e = 359101392}}},
arg1=0x5019ec, arg2={a = 30216, b = {c = {d = true, e = 1}}})
at t026_y.min.i:71
71 if (arg2.b.c.e != a2495