http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51784
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-11 08:20:27 UTC --- (In reply to comment #8) > The main difference between r182587 and r182980 with -m32 is > > @@ -50,18 +50,26 @@ L3: > movl 4(%eax), %esp > jmp *%edx > L2: > + leal ___gcov0_y.1704-L00000000001$pb(%ebx), %eax > + movl 28(%eax), %edx > + movl 24(%eax), %eax > + addl $1, %eax > + adcl $0, %edx > + leal ___gcov0_y.1704-L00000000001$pb(%ebx), %esi > + movl %eax, 24(%esi) > + movl %edx, 28(%esi) > movl 8(%ebp), %eax > subl $1, %eax > movl %eax, (%esp) > call _y.1704 > leal ___gcov0_y.1704-L00000000001$pb(%ebx), %eax > - movl 28(%eax), %edx > - movl 24(%eax), %eax > + movl 36(%eax), %edx > + movl 32(%eax), %eax > addl $1, %eax > adcl $0, %edx > leal ___gcov0_y.1704-L00000000001$pb(%ebx), %ecx > - movl %eax, 24(%ecx) > - movl %edx, 28(%ecx) > + movl %eax, 32(%ecx) > + movl %edx, 36(%ecx) > leal -8(%ebp), %esp > popl %ebx > LCFI3: There is no bug in that, we record one more counter starting with 182920, but there is also the additional space reserved for it in the array.