changeset 919c02740209 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=919c02740209
description:
        misc: Fix a number of unitialised variables and members

        Static analysis unearther a bunch of uninitialised variables and
        members, and this patch addresses the problem. In all cases these
        omissions seem benign in the end, but at least fixing them means less
        false positives next time round.

diffstat:

 src/base/cprintf_formats.hh                |   1 +
 src/base/debug.hh                          |   2 +-
 src/base/loader/elf_object.cc              |   3 ++-
 src/base/pollevent.cc                      |   1 +
 src/base/statistics.hh                     |   6 +++---
 src/base/vnc/vncserver.cc                  |   3 ++-
 src/cpu/testers/networktest/networktest.cc |   1 +
 src/cpu/testers/traffic_gen/generators.hh  |   6 +++---
 src/cpu/testers/traffic_gen/traffic_gen.cc |   1 +
 src/mem/cache/base.cc                      |   2 ++
 src/mem/cache/prefetch/base.cc             |   4 +++-
 src/mem/cache/prefetch/base.hh             |   2 +-
 src/mem/cache/tags/base.cc                 |   4 +++-
 src/mem/cache/tags/base_set_assoc.cc       |   1 -
 src/mem/cache/tags/fa_lru.cc               |   3 +--
 src/mem/packet.hh                          |   4 ++--
 src/mem/request.hh                         |  26 ++++++++++++++++++++------
 src/sim/dvfs_handler.hh                    |   3 ++-
 src/sim/eventq.hh                          |   2 +-
 src/sim/system.cc                          |   4 ++--
 20 files changed, 52 insertions(+), 27 deletions(-)

diffs (truncated from 372 to 300 lines):

diff -r 1e2f39859382 -r 919c02740209 src/base/cprintf_formats.hh
--- a/src/base/cprintf_formats.hh       Wed Sep 03 07:43:06 2014 -0400
+++ b/src/base/cprintf_formats.hh       Tue Sep 09 04:36:31 2014 -0400
@@ -65,6 +65,7 @@
         uppercase = false;
         base = dec;
         format = none;
+        float_format = best;
         precision = -1;
         width = 0;
         get_precision = false;
diff -r 1e2f39859382 -r 919c02740209 src/base/debug.hh
--- a/src/base/debug.hh Wed Sep 03 07:43:06 2014 -0400
+++ b/src/base/debug.hh Tue Sep 09 04:36:31 2014 -0400
@@ -66,7 +66,7 @@
 
   public:
     SimpleFlag(const char *name, const char *desc)
-        : Flag(name, desc)
+        : Flag(name, desc), _status(false)
     { }
 
     bool status() const { return _status; }
diff -r 1e2f39859382 -r 919c02740209 src/base/loader/elf_object.cc
--- a/src/base/loader/elf_object.cc     Wed Sep 03 07:43:06 2014 -0400
+++ b/src/base/loader/elf_object.cc     Tue Sep 09 04:36:31 2014 -0400
@@ -239,7 +239,8 @@
 ElfObject::ElfObject(const string &_filename, int _fd,
                      size_t _len, uint8_t *_data,
                      Arch _arch, OpSys _opSys)
-    : ObjectFile(_filename, _fd, _len, _data, _arch, _opSys)
+    : ObjectFile(_filename, _fd, _len, _data, _arch, _opSys),
+      _programHeaderTable(0), _programHeaderSize(0), _programHeaderCount(0)
 
 {
     Elf *elf;
diff -r 1e2f39859382 -r 919c02740209 src/base/pollevent.cc
--- a/src/base/pollevent.cc     Wed Sep 03 07:43:06 2014 -0400
+++ b/src/base/pollevent.cc     Tue Sep 09 04:36:31 2014 -0400
@@ -57,6 +57,7 @@
 {
     pfd.fd = _fd;
     pfd.events = _events;
+    pfd.revents = 0;
 }
 
 PollEvent::~PollEvent()
diff -r 1e2f39859382 -r 919c02740209 src/base/statistics.hh
--- a/src/base/statistics.hh    Wed Sep 03 07:43:06 2014 -0400
+++ b/src/base/statistics.hh    Tue Sep 09 04:36:31 2014 -0400
@@ -1092,7 +1092,7 @@
 
   public:
     VectorBase()
-        : storage(NULL)
+        : storage(nullptr), _size(0)
     {}
 
     ~VectorBase()
@@ -1232,7 +1232,7 @@
 
   public:
     Vector2dBase()
-        : storage(NULL)
+        : x(0), y(0), _size(0), storage(nullptr)
     {}
 
     ~Vector2dBase()
@@ -1505,7 +1505,7 @@
         /** The number of buckets.. */
         size_type buckets;
 
-        Params() : DistParams(Hist) {}
+        Params() : DistParams(Hist), buckets(0) {}
     };
 
   private:
diff -r 1e2f39859382 -r 919c02740209 src/base/vnc/vncserver.cc
--- a/src/base/vnc/vncserver.cc Wed Sep 03 07:43:06 2014 -0400
+++ b/src/base/vnc/vncserver.cc Tue Sep 09 04:36:31 2014 -0400
@@ -106,7 +106,8 @@
  */
 VncServer::VncServer(const Params *p)
     : VncInput(p), listenEvent(NULL), dataEvent(NULL), number(p->number),
-      dataFd(-1), sendUpdate(false)
+      dataFd(-1), sendUpdate(false),
+      supportsRawEnc(false), supportsResizeEnc(false)
 {
     if (p->port)
         listen(p->port);
diff -r 1e2f39859382 -r 919c02740209 src/cpu/testers/networktest/networktest.cc
--- a/src/cpu/testers/networktest/networktest.cc        Wed Sep 03 07:43:06 
2014 -0400
+++ b/src/cpu/testers/networktest/networktest.cc        Tue Sep 09 04:36:31 
2014 -0400
@@ -84,6 +84,7 @@
       simCycles(p->sim_cycles),
       fixedPkts(p->fixed_pkts),
       maxPackets(p->max_packets),
+      numPacketsSent(0),
       trafficType(p->traffic_type),
       injRate(p->inj_rate),
       precision(p->precision),
diff -r 1e2f39859382 -r 919c02740209 src/cpu/testers/traffic_gen/generators.hh
--- a/src/cpu/testers/traffic_gen/generators.hh Wed Sep 03 07:43:06 2014 -0400
+++ b/src/cpu/testers/traffic_gen/generators.hh Tue Sep 09 04:36:31 2014 -0400
@@ -190,7 +190,7 @@
           startAddr(start_addr), endAddr(end_addr),
           blocksize(_blocksize), minPeriod(min_period),
           maxPeriod(max_period), readPercent(read_percent),
-          dataLimit(data_limit)
+          dataLimit(data_limit), nextAddr(startAddr), dataManipulated(0)
     { }
 
     void enter();
@@ -267,7 +267,7 @@
           startAddr(start_addr), endAddr(end_addr),
           blocksize(_blocksize), minPeriod(min_period),
           maxPeriod(max_period), readPercent(read_percent),
-          dataLimit(data_limit)
+          dataLimit(data_limit), dataManipulated(0)
     { }
 
     void enter();
@@ -348,7 +348,7 @@
             unsigned int addr_mapping)
         : RandomGen(_name, master_id, _duration, start_addr, end_addr,
           _blocksize, min_period, max_period, read_percent, data_limit),
-          numSeqPkts(num_seq_pkts), countNumSeqPkts(0),
+          numSeqPkts(num_seq_pkts), countNumSeqPkts(0), addr(0),
           isRead(true), pageSize(page_size),
           pageBits(floorLog2(page_size / _blocksize)),
           bankBits(floorLog2(nbr_of_banks_DRAM)),
diff -r 1e2f39859382 -r 919c02740209 src/cpu/testers/traffic_gen/traffic_gen.cc
--- a/src/cpu/testers/traffic_gen/traffic_gen.cc        Wed Sep 03 07:43:06 
2014 -0400
+++ b/src/cpu/testers/traffic_gen/traffic_gen.cc        Tue Sep 09 04:36:31 
2014 -0400
@@ -59,6 +59,7 @@
       elasticReq(p->elastic_req),
       nextTransitionTick(0),
       nextPacketTick(0),
+      currState(0),
       port(name() + ".port", *this),
       retryPkt(NULL),
       retryPktTick(0),
diff -r 1e2f39859382 -r 919c02740209 src/mem/cache/base.cc
--- a/src/mem/cache/base.cc     Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/cache/base.cc     Tue Sep 09 04:36:31 2014 -0400
@@ -67,6 +67,7 @@
 
 BaseCache::BaseCache(const Params *p)
     : MemObject(p),
+      cpuSidePort(nullptr), memSidePort(nullptr),
       mshrQueue("MSHRs", p->mshrs, 4, MSHRQueue_MSHRs),
       writeBuffer("write buffer", p->write_buffers, p->mshrs+1000,
                   MSHRQueue_WriteBuffer),
@@ -77,6 +78,7 @@
       forwardSnoops(p->forward_snoops),
       isTopLevel(p->is_top_level),
       blocked(0),
+      order(0),
       noTargetMSHR(NULL),
       missCount(p->max_miss_count),
       addrRanges(p->addr_ranges.begin(), p->addr_ranges.end()),
diff -r 1e2f39859382 -r 919c02740209 src/mem/cache/prefetch/base.cc
--- a/src/mem/cache/prefetch/base.cc    Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/cache/prefetch/base.cc    Tue Sep 09 04:36:31 2014 -0400
@@ -57,7 +57,8 @@
 #include "sim/system.hh"
 
 BasePrefetcher::BasePrefetcher(const Params *p)
-    : ClockedObject(p), size(p->size), latency(p->latency), degree(p->degree),
+    : ClockedObject(p), size(p->size), cache(nullptr), blkSize(0),
+      latency(p->latency), degree(p->degree),
       useMasterId(p->use_master_id), pageStop(!p->cross_pages),
       serialSquash(p->serial_squash), onlyData(p->data_accesses_only),
       onMissOnly(p->on_miss_only), onReadOnly(p->on_read_only),
@@ -69,6 +70,7 @@
 void
 BasePrefetcher::setCache(BaseCache *_cache)
 {
+    assert(!cache);
     cache = _cache;
     blkSize = cache->getBlockSize();
 }
diff -r 1e2f39859382 -r 919c02740209 src/mem/cache/prefetch/base.hh
--- a/src/mem/cache/prefetch/base.hh    Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/cache/prefetch/base.hh    Tue Sep 09 04:36:31 2014 -0400
@@ -83,7 +83,7 @@
     BaseCache* cache;
 
     /** The block size of the parent cache. */
-    int blkSize;
+    unsigned blkSize;
 
     /** The latency before a prefetch is issued */
     const Cycles latency;
diff -r 1e2f39859382 -r 919c02740209 src/mem/cache/tags/base.cc
--- a/src/mem/cache/tags/base.cc        Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/cache/tags/base.cc        Tue Sep 09 04:36:31 2014 -0400
@@ -56,13 +56,15 @@
 
 BaseTags::BaseTags(const Params *p)
     : ClockedObject(p), blkSize(p->block_size), size(p->size),
-      hitLatency(p->hit_latency)
+      hitLatency(p->hit_latency), cache(nullptr), warmupBound(0),
+      warmedUp(false), numBlocks(0)
 {
 }
 
 void
 BaseTags::setCache(BaseCache *_cache)
 {
+    assert(!cache);
     cache = _cache;
 }
 
diff -r 1e2f39859382 -r 919c02740209 src/mem/cache/tags/base_set_assoc.cc
--- a/src/mem/cache/tags/base_set_assoc.cc      Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/cache/tags/base_set_assoc.cc      Tue Sep 09 04:36:31 2014 -0400
@@ -76,7 +76,6 @@
     setShift = floorLog2(blkSize);
     setMask = numSets - 1;
     tagShift = setShift + floorLog2(numSets);
-    warmedUp = false;
     /** @todo Make warmup percentage a parameter. */
     warmupBound = numSets * assoc;
 
diff -r 1e2f39859382 -r 919c02740209 src/mem/cache/tags/fa_lru.cc
--- a/src/mem/cache/tags/fa_lru.cc      Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/cache/tags/fa_lru.cc      Tue Sep 09 04:36:31 2014 -0400
@@ -55,7 +55,7 @@
 using namespace std;
 
 FALRU::FALRU(const Params *p)
-    : BaseTags(p)
+    : BaseTags(p), cacheBoundaries(nullptr)
 {
     if (!isPowerOf2(blkSize))
         fatal("cache block size (in bytes) `%d' must be a power of two",
@@ -74,7 +74,6 @@
         cacheMask = 0;
     }
 
-    warmedUp = false;
     warmupBound = size/blkSize;
     numBlocks = size/blkSize;
 
diff -r 1e2f39859382 -r 919c02740209 src/mem/packet.hh
--- a/src/mem/packet.hh Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/packet.hh Tue Sep 09 04:36:31 2014 -0400
@@ -601,7 +601,7 @@
      * not be valid. The command must be supplied.
      */
     Packet(Request *_req, MemCmd _cmd)
-        :  cmd(_cmd), req(_req), data(NULL),
+        :  cmd(_cmd), req(_req), data(nullptr), addr(0), _isSecure(false),
            src(InvalidPortID), dest(InvalidPortID),
            bytesValidStart(0), bytesValidEnd(0),
            busFirstWordDelay(0), busLastWordDelay(0),
@@ -624,7 +624,7 @@
      * req.  this allows for overriding the size/addr of the req.
      */
     Packet(Request *_req, MemCmd _cmd, int _blkSize)
-        :  cmd(_cmd), req(_req), data(NULL),
+        :  cmd(_cmd), req(_req), data(nullptr), addr(0), _isSecure(false),
            src(InvalidPortID), dest(InvalidPortID),
            bytesValidStart(0), bytesValidEnd(0),
            busFirstWordDelay(0), busLastWordDelay(0),
diff -r 1e2f39859382 -r 919c02740209 src/mem/request.hh
--- a/src/mem/request.hh        Wed Sep 03 07:43:06 2014 -0400
+++ b/src/mem/request.hh        Tue Sep 09 04:36:31 2014 -0400
@@ -259,8 +259,10 @@
      *  default constructor.)
      */
     Request()
-        : _taskId(ContextSwitchTaskId::Unknown),
-        translateDelta(0), accessDelta(0), depth(0)
+        : _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
+          _taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
+          _extraData(0), _contextId(0), _threadId(0), _pc(0),
+          translateDelta(0), accessDelta(0), depth(0)
     {}
 
     /**
@@ -269,19 +271,28 @@
      * These fields are adequate to perform a request. 
      */
     Request(Addr paddr, int size, Flags flags, MasterID mid)
-        : _taskId(ContextSwitchTaskId::Unknown)
+        : _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
+          _taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
+          _extraData(0), _contextId(0), _threadId(0), _pc(0),
+          translateDelta(0), accessDelta(0), depth(0)
     {
         setPhys(paddr, size, flags, mid);
     }
 
     Request(Addr paddr, int size, Flags flags, MasterID mid, Tick time)
-        : _taskId(ContextSwitchTaskId::Unknown)
+        : _paddr(0), _size(0), _masterId(invldMasterId), _time(0),
+          _taskId(ContextSwitchTaskId::Unknown), _asid(0), _vaddr(0),
+          _extraData(0), _contextId(0), _threadId(0), _pc(0),
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to