base: Fix uninitialized variable in Flag
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Fri, 25 Dec 2020 20:43:11 +0000 (17:43 -0300)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Wed, 13 Jan 2021 11:15:18 +0000 (11:15 +0000)
This was uninitialized, and was breaking expected values
under certain situations.

Change-Id: If51ab6ae038c7c397bc83de1c73af348c1db4ef8
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/38707
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
src/base/debug.cc
src/base/debug.hh

index 45d9f9d59c7038cf21ea0aca87c7fdadb47314fc..9cfd45ec4dbaf5ebc78071d00a435cff9733e387 100644 (file)
@@ -100,6 +100,8 @@ Flag::Flag(const char *name, const char *desc)
         panic("Flag %s already defined!", name);
 
     ++allFlagsVersion;
+
+    sync();
 }
 
 Flag::~Flag()
index 7cc71375b10b628d6707421e74fab2f010ca1639..6006b14b91aac1c943b3203d29e2f21a75e8d986 100644 (file)
@@ -82,15 +82,13 @@ class Flag
 class SimpleFlag : public Flag
 {
   protected:
-    bool _tracing; // tracing is enabled and flag is on
-    bool _status;  // flag status
+    bool _tracing = false; // tracing is enabled and flag is on
+    bool _status = false;  // flag status
 
     void sync() override { _tracing = _globalEnable && _status; }
 
   public:
-    SimpleFlag(const char *name, const char *desc)
-        : Flag(name, desc), _status(false)
-    { }
+    SimpleFlag(const char *name, const char *desc) : Flag(name, desc) {}
 
     bool status() const override { return _tracing; }