From ee9c53d27106689daf9f9f26354bead6ccad4ef1 Mon Sep 17 00:00:00 2001 From: Ron Lieberman Date: Fri, 24 Apr 2020 15:33:37 -0500 Subject: [PATCH] [libomptarget] Initialize reference parameter IsNew within Device::getOrAllocTgtPtr The two locals IsNew and Pointer_IsNew were uninitialized at declaration, and then passed by reference to Device.getOrAllocTgtPtr which in turn did not assign on all paths within the function. This resulted in occasional runtime failures in one application. Device::getOrAllocTgtPtr will now initialize IsNew to false on entry to function. Differential Revision: https://reviews.llvm.org/D78744 --- openmp/libomptarget/src/device.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/openmp/libomptarget/src/device.cpp b/openmp/libomptarget/src/device.cpp index 765dd54..b613cd2 100644 --- a/openmp/libomptarget/src/device.cpp +++ b/openmp/libomptarget/src/device.cpp @@ -157,6 +157,7 @@ void *DeviceTy::getOrAllocTgtPtr(void *HstPtrBegin, void *HstPtrBase, bool UpdateRefCount, bool HasCloseModifier) { void *rc = NULL; IsHostPtr = false; + IsNew = false; DataMapMtx.lock(); LookupResult lr = lookupMapping(HstPtrBegin, Size); -- 2.7.4