diff --git a/hercules_cg/src/rt.rs b/hercules_cg/src/rt.rs
index 24401c0664592b479c1d281ec9c644ae8e590bb9..9112e1307f7ff634444d11ed37bbfdfa5a445af5 100644
--- a/hercules_cg/src/rt.rs
+++ b/hercules_cg/src/rt.rs
@@ -1364,12 +1364,18 @@ impl<'a> RTContext<'a> {
             write!(w, ", dc_p{}: u64", idx)?;
         }
         write!(w, ") -> usize {{")?;
+        let mut written = false;
         for (device, (total, _)) in self.backing_allocations[&self.func_id].iter() {
             if *device == Device::LLVM {
                 self.codegen_dynamic_constant(*total, w)?;
                 write!(w, "as usize")?;
             }
+            written = true;
         }
+        if !written {
+            write!(w, "0 as usize")?;
+        }
+
         write!(w, "}}")?;
 
         write!(w, "async fn run<'runner:")?;