arch,base,cpu: Add some default constructors/operators explicitly.
authorGabe Black <gabeblack@google.com>
Thu, 30 Jan 2020 07:49:32 +0000 (23:49 -0800)
committerGabe Black <gabeblack@google.com>
Sat, 1 Feb 2020 09:25:30 +0000 (09:25 +0000)
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>
src/arch/alpha/pagetable.hh
src/arch/generic/vec_pred_reg.hh
src/arch/generic/vec_reg.hh
src/base/bitunion.hh
src/cpu/inst_res.hh

index dc13d37904c4b93d44032a9b3c4c5b08ca1b5dfa..e94aa4648126cfc42c37ec2c7eef17638c5d0acd 100644 (file)
@@ -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)
index 9ff9915ef2f0b06bc6927ac6a195cc61bd5b1e44..2f51d186b150d8e8f518e0ef522d1a451281ddac 100644 (file)
@@ -248,6 +248,7 @@ class VecPredRegContainer
 
   public:
     VecPredRegContainer() {}
+    VecPredRegContainer(const VecPredRegContainer &) = default;
 
     MyClass&
     operator=(const MyClass& that)
index aab307b42fca0ec942295e861f9e31a064fba0b4..948fec9045a78c9a88b674240acce0f93fdc9bfc 100644 (file)
@@ -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)
     {
index 1a32991a8a6f101c56686275e71b20ef2c5bbb60..1eec1e2a8e56b8825862ea0d012171300c35feb6 100644 (file)
@@ -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
index bf9c649effe15e190375d121f3601b391e76badf..d2ac3025ed12cf773d6d6509091566fb0f843c4d 100644 (file)
@@ -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) {