From b726f0e9496a6f6566671c43e1108fe10e28dfae Mon Sep 17 00:00:00 2001 From: pensun Date: Thu, 1 Sep 2016 13:06:55 -0500 Subject: [PATCH] Modify hipMalloc to take size of 0 and return NULL pointer for it. Modify hipMemoryAllocate test for this change. Change-Id: I884aee0cd5fe0c60aebb4cb37cdbb4833c5bd0c7 --- src/hip_memory.cpp | 8 +++++++- tests/src/runtimeApi/memory/hipMemoryAllocate.cpp | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/hip_memory.cpp b/src/hip_memory.cpp index a64ad94e81..df1b70a3f8 100644 --- a/src/hip_memory.cpp +++ b/src/hip_memory.cpp @@ -119,7 +119,13 @@ hipError_t hipMalloc(void** ptr, size_t sizeBytes) HIP_INIT_API(ptr, sizeBytes); hipError_t hip_status = hipSuccess; - + // return NULL pointer when malloc size is 0 + if (sizeBytes == 0) + { + *ptr = NULL; + return ihipLogStatus(hip_status); + } + auto ctx = ihipGetTlsDefaultCtx(); if (ctx) { diff --git a/tests/src/runtimeApi/memory/hipMemoryAllocate.cpp b/tests/src/runtimeApi/memory/hipMemoryAllocate.cpp index eeba7fd345..dccc00b0e0 100644 --- a/tests/src/runtimeApi/memory/hipMemoryAllocate.cpp +++ b/tests/src/runtimeApi/memory/hipMemoryAllocate.cpp @@ -21,7 +21,7 @@ THE SOFTWARE. #define SIZE 1024*1024*256 int main(){ - float *Ad, *B, *Bd, *Bm, *C, *Cd; + float *Ad, *B, *Bd, *Bm, *C, *Cd, *ptr_0; B = (float*)malloc(SIZE); hipMalloc((void**)&Ad, SIZE); hipHostMalloc((void**)&B, SIZE); @@ -31,12 +31,15 @@ int main(){ hipHostGetDevicePointer((void**)&Cd, C, 0/*flags*/); + HIPCHECK_API(hipMalloc((void**)&ptr_0,0), hipSuccess); + HIPCHECK_API(hipFree(Ad) , hipSuccess); HIPCHECK_API(hipHostFree(Ad) , hipErrorInvalidValue); HIPCHECK_API(hipFree(B) , hipErrorInvalidDevicePointer); // try to hipFree on malloced memory HIPCHECK_API(hipFree(Bd) , hipErrorInvalidDevicePointer); HIPCHECK_API(hipFree(Bm) , hipErrorInvalidDevicePointer); + HIPCHECK_API(hipFree(ptr_0) , hipSuccess); HIPCHECK_API(hipHostFree(Bd) , hipSuccess); HIPCHECK_API(hipHostFree(Bm) , hipSuccess);