mem_t: Throw an error if zero-sized memory is requested (#168)
[riscv-isa-sim.git] / spike_main / spike.cc
index 1205965f81e4b9eb661d7ea5816f35e30c00d4d4..d3caa2251e3c7a2282afaa015064927fe475aac3 100644 (file)
@@ -47,6 +47,8 @@ static std::vector<std::pair<reg_t, mem_t*>> make_mems(const char* arg)
   auto mb = strtoull(arg, &p, 0);
   if (*p == 0) {
     reg_t size = reg_t(mb) << 20;
+    if (size != (size_t)size)
+      throw std::runtime_error("Size would overflow size_t");
     return std::vector<std::pair<reg_t, mem_t*>>(1, std::make_pair(reg_t(DRAM_BASE), new mem_t(size)));
   }