diff --git a/llvm/projects/visc-rt/visc-rt.cpp b/llvm/projects/visc-rt/visc-rt.cpp
index 80bc859e8049b557a2f2f1553b5fda5bc9b1de9e..2d5e07bb2c3b1a5401ebe684a75391c9c03959dd 100644
--- a/llvm/projects/visc-rt/visc-rt.cpp
+++ b/llvm/projects/visc-rt/visc-rt.cpp
@@ -2,6 +2,7 @@
 #include <cstdlib>
 #include <cstdio>
 #include <string>
+#include <assert.h>
 #include <CL/cl.h>
 //#include "visc-rt.h"
 
@@ -95,6 +96,8 @@ void llvm_visc_ptx_argument_scalar(void* graphID, void* input, int arg_index, si
 extern "C"
 void* llvm_visc_ptx_argument_ptr(void* graphID, void* input, int arg_index, size_t size, bool isInput, bool isOutput) {
   printf("Set Pointer Input. Argument Index = %d, Ptr = %p, Size = %lu\n", arg_index, input, size);
+  // Size should be non-zero
+  assert(size != 0);
   printf("\tInput: %d, Output: %d\n", isInput, isOutput);
   DFNodeContext_PTX* Context = (DFNodeContext_PTX*) graphID;
   cl_int errcode;
@@ -104,10 +107,6 @@ void* llvm_visc_ptx_argument_ptr(void* graphID, void* input, int arg_index, size
   else if(isOutput)       clFlags = CL_MEM_READ_WRITE;
   else                    clFlags = CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR;
 
-  if(input == NULL) {
-    printf("Found NULL input value!!");
-    input = NULL;
-  }
   cl_mem d_input = clCreateBuffer(Context->clGPUContext, clFlags, size, input, &errcode);
   checkErr(errcode, CL_SUCCESS, "Failure to allocate memory on device");
   errcode |= clSetKernelArg(Context->clKernel, arg_index, sizeof(cl_mem), (void*)&d_input);