[ 
https://issues.apache.org/jira/browse/TS-2959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14202649#comment-14202649
 ] 

Susan Hinrichs edited comment on TS-2959 at 11/7/14 8:55 PM:
-------------------------------------------------------------

I was wrong, 4.9.2 produces the warning for me as well.  I was just looking at 
the wrong place in the build.  I think it is erroneous analysis on the part of 
the compiler.  I was able to fix it by adding a comparison to the 
MULTI_CACHE_MAX_LEVELS constant.  The original comparison to the levels 
variable should have been sufficient based on my looking at things.  The patch 
has this fix.

Once this patch is committed, we should reactivate Jenkin's Debian build.


was (Author: shinrich):
I was wrong, 4.9.2 produces the warning for me as well.  I was just looking at 
the wrong place in the build.  I think it is erroneous analysis on the part of 
the compiler.  I was able to fix it by adding a comparison to the 
MULTI_CACHE_MAX_LEVELS constant.  The original comparison to the levels 
variable should have been sufficient based on my looking at things.  The patch 
has this fix.

> Compiler warnings from gcc 4.9.1
> --------------------------------
>
>                 Key: TS-2959
>                 URL: https://issues.apache.org/jira/browse/TS-2959
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core, DNS
>            Reporter: Leif Hedstrom
>            Assignee: Susan Hinrichs
>             Fix For: 5.2.0
>
>         Attachments: ts-2959.patch
>
>
> We get:
> {code}
> In file included from ../../iocore/hostdb/P_HostDB.h:47:0,
>                  from ../../proxy/Main.cc:63:
> ../../iocore/hostdb/P_MultiCache.h: In member function ‘void 
> MultiCache<C>::rebuild_element(int, char*, RebuildMC&) [with C = HostDBInfo]’:
> ../../iocore/hostdb/P_MultiCache.h:468:23: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>    char *offset = data + level_offset[level] + bucketsize[level] * bucket;
>                        ^
> ../../iocore/hostdb/P_MultiCache.h:468:65: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>    char *offset = data + level_offset[level] + bucketsize[level] * bucket;
>                                                                  ^
> ../../iocore/hostdb/P_MultiCache.h:487:29: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>    for (block = b; block < b + elements[level]; block++) {
>                              ^
> ../../iocore/hostdb/P_MultiCache.h:509:39: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>        if (hits > ((max_hits / 2) + 1) * elements[level])
>                                        ^
> ../../iocore/hostdb/P_MultiCache.h:511:33: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>        for (block = b; block < b + elements[level]; block++) {
>                                  ^
> ../../iocore/hostdb/P_MultiCache.h:468:23: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>    char *offset = data + level_offset[level] + bucketsize[level] * bucket;
>                        ^
> ../../iocore/hostdb/P_MultiCache.h:468:65: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>    char *offset = data + level_offset[level] + bucketsize[level] * bucket;
>                                                                  ^
> ../../iocore/hostdb/P_MultiCache.h:487:29: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>    for (block = b; block < b + elements[level]; block++) {
>                              ^
> ../../iocore/hostdb/P_MultiCache.h:509:39: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>        if (hits > ((max_hits / 2) + 1) * elements[level])
>                                        ^
> ../../iocore/hostdb/P_MultiCache.h:511:33: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>        for (block = b; block < b + elements[level]; block++) {
>                                  ^
> ../../iocore/hostdb/P_MultiCache.h:552:31: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>      for (block = b; block < b + elements[level]; block++) {
>                                ^
> ../../iocore/hostdb/P_MultiCache.h:558:31: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>      for (block = b; block < b + elements[level]; block++)
>                                ^
> ../../iocore/hostdb/P_MultiCache.h:552:31: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>      for (block = b; block < b + elements[level]; block++) {
>                                ^
> ../../iocore/hostdb/P_MultiCache.h:558:31: error: array subscript is above 
> array bounds [-Werror=array-bounds]
>      for (block = b; block < b + elements[level]; block++)
>                                ^
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to