From d5f5392294a4408c3e572026f98a5b0f844c2871 Mon Sep 17 00:00:00 2001
From: Akash Kothari <akashk4@tyler.cs.illinois.edu>
Date: Tue, 14 Jan 2020 10:43:14 -0600
Subject: [PATCH] Fixed incorrect implementation of UpdateTag routine in
 VISCUtils.h

---
 hpvm/include/SupportVISC/VISCUtils.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/hpvm/include/SupportVISC/VISCUtils.h b/hpvm/include/SupportVISC/VISCUtils.h
index 9b9f813e95..2b6575fbcb 100644
--- a/hpvm/include/SupportVISC/VISCUtils.h
+++ b/hpvm/include/SupportVISC/VISCUtils.h
@@ -419,46 +419,45 @@ visc::Target getUpdatedTag(visc::Target Tag, visc::Target T) {
     case visc::CPU_TARGET:
       assert((T != visc::CUDNN_TARGET) && (T != visc::PROMISE_TARGET) &&
              "Unsupported target combination\n");
-      break;
       if (T == visc::CPU_TARGET)
         return visc::CPU_TARGET;
       if (T == visc::GPU_TARGET)
         return visc::CPU_OR_GPU_TARGET;
       if (T == visc::SPIR_TARGET)
         return visc::CPU_OR_SPIR_TARGET;
+      return T;
     case visc::GPU_TARGET:
       assert((T != visc::SPIR_TARGET) && "Unsupported target combination\n");
       assert((T != visc::CUDNN_TARGET) && (T != visc::PROMISE_TARGET) &&
              "Unsupported target combination\n");
-      break;
       if (T == visc::CPU_TARGET)
         return visc::CPU_OR_GPU_TARGET;
       if (T == visc::GPU_TARGET)
         return visc::GPU_TARGET;
+      return T;
     case visc::SPIR_TARGET:
       assert((T != visc::GPU_TARGET) && "Unsupported target combination\n");
       assert((T != visc::CUDNN_TARGET) && (T != visc::PROMISE_TARGET) &&
              "Unsupported target combination\n");
-      break;
       if (T == visc::CPU_TARGET)
         return visc::CPU_OR_SPIR_TARGET;
       if (T == visc::SPIR_TARGET)
         return visc::SPIR_TARGET;
+      return T;
     case visc::CPU_OR_GPU_TARGET:
       assert((T != visc::CUDNN_TARGET) && (T != visc::PROMISE_TARGET) &&
              "Unsupported target combination\n");
-      break;
       assert((T != visc::SPIR_TARGET) && "Unsupported target combination\n");
       return visc::CPU_OR_GPU_TARGET;
     case visc::CPU_OR_SPIR_TARGET:
       assert((T != visc::CUDNN_TARGET) && (T != visc::PROMISE_TARGET) &&
              "Unsupported target combination\n");
-      break;
       assert((T != visc::GPU_TARGET) && "Unsupported target combination\n");
       return visc::CPU_OR_SPIR_TARGET;
     default:
       assert(false && "Unknown Target\n");
   }
+  return T;
 }
 
 // This functions add the hint as metadata in visc code
-- 
GitLab