summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2015-07-30 03:41:22 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2015-07-30 03:41:22 -0400
commit85a44e24dcca5282e68935f5804781e5ae312558 (patch)
tree96910a94f3961312da4ef0aae147895ee84dc91a
parentaafa5c3f86ea54f5e6e88009be656aeec12eef5f (diff)
downloadgem5-85a44e24dcca5282e68935f5804781e5ae312558.tar.xz
cpu: Fix issue identified by UBSan
-rw-r--r--src/cpu/func_unit.cc2
-rw-r--r--src/cpu/func_unit.hh5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/cpu/func_unit.cc b/src/cpu/func_unit.cc
index 6d009a440..3c2f1049d 100644
--- a/src/cpu/func_unit.cc
+++ b/src/cpu/func_unit.cc
@@ -42,6 +42,8 @@ using namespace std;
//
FuncUnit::FuncUnit()
{
+ opLatencies.fill(0);
+ pipelined.fill(false);
capabilityList.reset();
}
diff --git a/src/cpu/func_unit.hh b/src/cpu/func_unit.hh
index 721a69df1..638195509 100644
--- a/src/cpu/func_unit.hh
+++ b/src/cpu/func_unit.hh
@@ -31,6 +31,7 @@
#ifndef __CPU_FUNC_UNIT_HH__
#define __CPU_FUNC_UNIT_HH__
+#include <array>
#include <bitset>
#include <string>
#include <vector>
@@ -84,8 +85,8 @@ typedef std::vector<FUDesc *>::const_iterator FUDDiterator;
class FuncUnit
{
private:
- unsigned opLatencies[Num_OpClasses];
- bool pipelined[Num_OpClasses];
+ std::array<unsigned, Num_OpClasses> opLatencies;
+ std::array<bool, Num_OpClasses> pipelined;
std::bitset<Num_OpClasses> capabilityList;
public: