diff --git a/hpvm/test/pipeline/src/main.cc b/hpvm/test/pipeline/src/main.cc
index ef9d8412c70813fcae123b0ef84de1850fa6b28c..2a69a75037f622d5fffcdaeda8dc67f5cbdaf81d 100644
--- a/hpvm/test/pipeline/src/main.cc
+++ b/hpvm/test/pipeline/src/main.cc
@@ -66,6 +66,10 @@ std::string output_window = "GPU Pipeline - Edge Mapping";
 
 extern "C" {
 
+struct __attribute__((__packed__)) OutStruct {
+  size_t ret;
+};
+
 struct __attribute__((__packed__)) InStruct {
   float *I;
   size_t bytesI;
@@ -869,8 +873,8 @@ int main(int argc, char *argv[]) {
 
         __hpvm__push(DFG, args);
         void *ret = __hpvm__pop(DFG);
-        std::cout << "Returned size: " << *(size_t *)ret << " expected " << I_sz
-                  << '\n';
+        std::cout << "Returned size: " << ((OutStruct *)ret)->ret
+                  << " expected " << I_sz << '\n';
 
         llvm_hpvm_request_mem(maxG, bytesMaxG);
         llvm_hpvm_request_mem(E.data, I_sz);