From 1a59e3657e74326b59c9e71e712e6f1fd3ee1898 Mon Sep 17 00:00:00 2001
From: Yifan Zhao <yifanz16@illinois.edu>
Date: Thu, 23 Jan 2020 19:42:35 -0600
Subject: [PATCH] Use struct for catching output in pipeline

---
 hpvm/test/pipeline/src/main.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/hpvm/test/pipeline/src/main.cc b/hpvm/test/pipeline/src/main.cc
index ef9d8412c7..2a69a75037 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);
-- 
GitLab