You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2014/07/25 23:32:38 UTC
[jira] [Commented] (TS-2959) Compiler warnings from gcc 4.9.1
[ https://issues.apache.org/jira/browse/TS-2959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14074961#comment-14074961 ]
Leif Hedstrom commented on TS-2959:
-----------------------------------
Adding an assert, like e.g.
{code}
--- a/iocore/hostdb/P_MultiCache.h
+++ b/iocore/hostdb/P_MultiCache.h
@@ -464,6 +464,8 @@ template<class C> inline int MultiCache<C>::level_of_block(C * b)
template<class C> inline C * MultiCache<C>::cache_bucket(uint64_t folded_md5, int level)
{
+ ink_release_assert(level < MULTI_CACHE_MAX_LEVELS);
+
int bucket = (int) (folded_md5 % buckets);
char *offset = data + level_offset[level] + bucketsize[level] * bucket;
return (C *) offset;
{code}
helps. I also noticed this anomaly, which is merely ugly:
{code}
--- a/iocore/hostdb/MultiCache.cc
+++ b/iocore/hostdb/MultiCache.cc
@@ -110,7 +110,7 @@ MultiCacheBase::initialize(Store *astore, char *afilename,
int64_t size = 0;
Debug("multicache", "initializing %s with %d elements, %d buckets and %d levels", afilename, aelements, abuckets, alevels);
- ink_assert(alevels < 4);
+ ink_release_assert(alevels <= MULTI_CACHE_MAX_LEVELS);
levels = alevels;
elementsize = get_elementsize();
totalelements = 0;
{code}
> 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
> Fix For: 5.1.0
>
>
> 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.2#6252)