mem_t: Throw an error if zero-sized memory is requested (#168)
[riscv-isa-sim.git] / riscv / devices.h
index e4df6c9858862a3f7421e0162e5538dfa009e925..4e4d27ff609409a285cb2b60805f262a318186bc 100644 (file)
@@ -41,6 +41,8 @@ class rom_device_t : public abstract_device_t {
 class mem_t : public abstract_device_t {
  public:
   mem_t(size_t size) : len(size) {
+    if (!size)
+      throw std::runtime_error("zero bytes of target memory requested");
     data = (char*)calloc(1, size);
     if (!data)
       throw std::runtime_error("couldn't allocate " + std::to_string(size) + " bytes of target memory");