struct zz1s{ int a; int b; int c; int d; }; long var1 = 0; zz1s zz1[50]; int main() { zz1s *a = zz1; a[var1].a = 0; a[var1+1].a = 0; a[var1+2].a = 0; a[var1+3].a = 0; a[var1+4].a = 0; a[var1+5].a = 0; a[var1+6].a = 0; a[var1+7].a = 0; return 0; } /* (gdb) disas main Dump of assembler code for function main: 0x00000000004003c0 <+0>: mov 0x200899(%rip),%rax # 0x600c60 0x00000000004003c7 <+7>: shl $0x4,%rax 0x00000000004003cb <+11>: movl $0x0,0x600940(%rax) 0x00000000004003d5 <+21>: movl $0x0,0x600950(%rax) 0x00000000004003df <+31>: movl $0x0,0x600960(%rax) 0x00000000004003e9 <+41>: movl $0x0,0x600970(%rax) 0x00000000004003f3 <+51>: movl $0x0,0x600980(%rax) 0x00000000004003fd <+61>: movl $0x0,0x600990(%rax) 0x0000000000400407 <+71>: movl $0x0,0x6009a0(%rax) 0x0000000000400411 <+81>: movl $0x0,0x6009b0(%rax) 0x000000000040041b <+91>: xor %eax,%eax 0x000000000040041d <+93>: retq End of assembler dump. */