arch: Use shared_ptr for all Faults
This patch takes quite a large step in transitioning from the ad-hoc
RefCountingPtr to the c++11 shared_ptr by adopting its use for all
Faults. There are no changes in behaviour, and the code modifications
are mostly just replacing "new" with "make_shared".
diff --git a/src/base/types.hh b/src/base/types.hh
index 9ef362f..c4cb4d9 100644
--- a/src/base/types.hh
+++ b/src/base/types.hh
@@ -40,6 +40,7 @@
#include <inttypes.h>
#include <cassert>
+#include <memory>
#include <ostream>
#include "base/refcnt.hh"
@@ -179,6 +180,12 @@
const PortID InvalidPortID = (PortID)-1;
class FaultBase;
-typedef RefCountingPtr<FaultBase> Fault;
+typedef std::shared_ptr<FaultBase> Fault;
+
+#ifndef SWIG // Swig gets really confused by decltype
+// Rather than creating a shared_ptr instance and assigning it nullptr,
+// we just create an alias.
+constexpr decltype(nullptr) NoFault = nullptr;
+#endif
#endif // __BASE_TYPES_HH__