------- Comment #6 from rguenth at gcc dot gnu dot org 2009-05-19 12:04 ------- The intel compiler passes I1 by value:
..___tag_value_f1_.1: #1.18 subq $24, %rsp #1.18 ..___tag_value_f1_.3: # lea 12(%rsp), %rcx #15.3 movq %rcx, (%rsp) #15.3 lea 8(%rsp), %rdi #16.8 movl $1, %edx #13.3 xorl %eax, %eax #16.8 movl %edx, 8(%rsp) #13.3 movl %edx, 12(%rsp) #14.3 lea (%rsp), %rsi #16.8 call s_ #16.8 # LOE rbx rbp r12 r13 r14 r15 ..B1.2: # Preds ..B1.1 movq (%rsp), %rdx #17.3 movl 8(%rsp), %eax #20.1 movl $2, (%rdx) #17.3 addq $24, %rsp #20.1 ..___tag_value_f1_.4: # ret #20.1 even though it's code generation is funny at -O2 ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40194