Fix the 'array subscript is above array bounds' warning correctly

Use DIAG_IGNORE_NEEDS_COMMENT instead since the compiler should have
seen that NS never goes beyond MAXNS.
This commit is contained in:
Siddhesh Poyarekar 2014-12-16 19:40:47 +05:30
parent a0d424ef9d
commit 0cd8552045
2 changed files with 10 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2014-12-16 Siddhesh Poyarekar <siddhesh@redhat.com>
* resolv/res_send.c (__libc_res_nsend): Disable warning 'array
subscript above bounds'
* resolv/res_send.c (__libc_res_nsend): Fix check for nsmap
bounds.

View File

@ -429,9 +429,15 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
while (ns < MAXNS
&& EXT(statp).nsmap[ns] != MAXNS)
ns++;
if (ns >= MAXNS)
if (ns == MAXNS)
break;
/* NS never exceeds MAXNS, but gcc 4.9 somehow
does not see this. */
DIAG_PUSH_NEEDS_COMMENT;
DIAG_IGNORE_NEEDS_COMMENT (4.9,
"-Warray-bounds");
EXT(statp).nsmap[ns] = n;
DIAG_POP_NEEDS_COMMENT;
map[n] = ns++;
}
EXT(statp).nscount = n;