summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2020-01-29 23:49:32 -0800
committerGabe Black <gabeblack@google.com>2020-02-01 09:25:30 +0000
commit5d3f1bfc48346f671c2b72ad06b3822c64457438 (patch)
tree3c1d6281fecfe5a8e067597be4ab722ddf94f44b
parentf5e95d16e22f809457985318561e58facea7c57a (diff)
downloadgem5-5d3f1bfc48346f671c2b72ad06b3822c64457438.tar.xz
arch,base,cpu: Add some default constructors/operators explicitly.
Having them implicitly is apparently deprecated and throws a warning in gcc 9, breaking the build. Change-Id: Id4e3074966d1ffc6dd1aed9397de5eea84400027 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24926 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com>
-rw-r--r--src/arch/alpha/pagetable.hh4
-rw-r--r--src/arch/generic/vec_pred_reg.hh1
-rw-r--r--src/arch/generic/vec_reg.hh1
-rw-r--r--src/base/bitunion.hh14
-rw-r--r--src/cpu/inst_res.hh1
5 files changed, 21 insertions, 0 deletions
diff --git a/src/arch/alpha/pagetable.hh b/src/arch/alpha/pagetable.hh
index dc13d3790..e94aa4648 100644
--- a/src/arch/alpha/pagetable.hh
+++ b/src/arch/alpha/pagetable.hh
@@ -45,6 +45,7 @@ struct VAddr
Addr addr;
+ VAddr(const VAddr &) = default;
VAddr(Addr a) : addr(a) {}
operator Addr() const { return addr; }
const VAddr &operator=(Addr a) { addr = a; return *this; }
@@ -63,6 +64,7 @@ struct VAddr
struct PageTableEntry
{
+ PageTableEntry(const PageTableEntry &) = default;
PageTableEntry(uint64_t e) : entry(e) {}
uint64_t entry;
operator uint64_t() const { return entry; }
@@ -103,6 +105,8 @@ struct TlbEntry : public Serializable
bool valid; // valid page table entry
+ TlbEntry(const TlbEntry &) = default;
+
//Construct an entry that maps to physical address addr.
TlbEntry(Addr _asn, Addr _vaddr, Addr _paddr,
bool uncacheable, bool read_only)
diff --git a/src/arch/generic/vec_pred_reg.hh b/src/arch/generic/vec_pred_reg.hh
index 9ff9915ef..2f51d186b 100644
--- a/src/arch/generic/vec_pred_reg.hh
+++ b/src/arch/generic/vec_pred_reg.hh
@@ -248,6 +248,7 @@ class VecPredRegContainer
public:
VecPredRegContainer() {}
+ VecPredRegContainer(const VecPredRegContainer &) = default;
MyClass&
operator=(const MyClass& that)
diff --git a/src/arch/generic/vec_reg.hh b/src/arch/generic/vec_reg.hh
index aab307b42..948fec904 100644
--- a/src/arch/generic/vec_reg.hh
+++ b/src/arch/generic/vec_reg.hh
@@ -284,6 +284,7 @@ class VecRegContainer
public:
VecRegContainer() {}
+ VecRegContainer(const VecRegContainer &) = default;
/* This is required for de-serialisation. */
VecRegContainer(const std::vector<uint8_t>& that)
{
diff --git a/src/base/bitunion.hh b/src/base/bitunion.hh
index 1a32991a8..1eec1e2a8 100644
--- a/src/base/bitunion.hh
+++ b/src/base/bitunion.hh
@@ -86,6 +86,9 @@ class BitfieldTypeImpl : public Base
Type getter(const Storage &storage) const = delete;
void setter(Storage &storage, Type val) = delete;
+ BitfieldTypeImpl() = default;
+ BitfieldTypeImpl(const BitfieldTypeImpl &) = default;
+
Storage __storage;
operator Type () const
@@ -116,6 +119,9 @@ class BitfieldType : public BitfieldTypeImpl<Base>
using typename Impl::Type;
public:
+ BitfieldType() = default;
+ BitfieldType(const BitfieldType &) = default;
+
operator Type () const { return Impl::operator Type(); }
Type operator=(const Type val) { return Impl::operator=(val); }
Type
@@ -133,6 +139,9 @@ class BitfieldROType : public BitfieldTypeImpl<Base>
using Impl = BitfieldTypeImpl<Base>;
using typename Impl::Type;
+ BitfieldROType() = default;
+ BitfieldROType(const BitfieldROType &) = default;
+
Type operator=(BitfieldROType<Base> const &other) = delete;
operator Type () const { return Impl::operator Type(); }
};
@@ -146,6 +155,9 @@ class BitfieldWOType : public BitfieldTypeImpl<Base>
using typename Impl::Type;
public:
+ BitfieldWOType() = default;
+ BitfieldWOType(const BitfieldWOType &) = default;
+
Type operator=(const Type val) { return Impl::operator=(val); }
Type
operator=(BitfieldWOType<Base> const & other)
@@ -244,6 +256,8 @@ namespace BitfieldBackend
Base::__storage = val;
}
+ BitUnionOperators(const BitUnionOperators &) = default;
+
BitUnionOperators() {}
operator const typename Base::__StorageType () const
diff --git a/src/cpu/inst_res.hh b/src/cpu/inst_res.hh
index bf9c649ef..d2ac3025e 100644
--- a/src/cpu/inst_res.hh
+++ b/src/cpu/inst_res.hh
@@ -75,6 +75,7 @@ class InstResult {
public:
/** Default constructor creates an invalid result. */
InstResult() : type(ResultType::Invalid) { }
+ InstResult(const InstResult &) = default;
/** Scalar result from scalar. */
template<typename T>
explicit InstResult(T i, const ResultType& t) : type(t) {