From 0cd8552045aeb0537b4f1ab5d1b30ada8ae50076 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Tue, 16 Dec 2014 19:40:47 +0530 Subject: 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. --- resolv/res_send.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'resolv') diff --git a/resolv/res_send.c b/resolv/res_send.c index 5a9882c..c35fb66 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -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; -- cgit v1.1