[Openmp-commits] [PATCH] D51653: [libomptarget] Remove `Devices` from `RTLInfoTy`
Sergey Dmitriev via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Tue Sep 4 13:01:01 PDT 2018
sdmitriev created this revision.
sdmitriev added reviewers: Hahnfeld, grokos.
Herald added a subscriber: openmp-commits.
This patch removes `RTLInfoTy::Devices` to fix a potential problem of using invalid pointers stored in this vector. The problem is described in comments to this patch https://reviews.llvm.org/D51623
Repository:
rOMP OpenMP
https://reviews.llvm.org/D51653
Files:
libomptarget/src/rtl.cpp
libomptarget/src/rtl.h
Index: libomptarget/src/rtl.h
===================================================================
--- libomptarget/src/rtl.h
+++ libomptarget/src/rtl.h
@@ -43,7 +43,6 @@
// i.e. the OpenMP index of the first device
// to be registered with this RTL.
int32_t NumberOfDevices; // Number of devices this RTL deals with.
- std::vector<DeviceTy *> Devices; // one per device (NumberOfDevices in total).
void *LibraryHandler;
@@ -74,7 +73,7 @@
// The existence of the mutex above makes RTLInfoTy non-copyable.
// We need to provide a copy constructor explicitly.
RTLInfoTy()
- : Idx(-1), NumberOfDevices(-1), Devices(), LibraryHandler(0),
+ : Idx(-1), NumberOfDevices(-1), LibraryHandler(0),
#ifdef OMPTARGET_DEBUG
RTLName(),
#endif
@@ -86,7 +85,6 @@
RTLInfoTy(const RTLInfoTy &r) : Mtx() {
Idx = r.Idx;
NumberOfDevices = r.NumberOfDevices;
- Devices = r.Devices;
LibraryHandler = r.LibraryHandler;
#ifdef OMPTARGET_DEBUG
RTLName = r.RTLName;
Index: libomptarget/src/rtl.cpp
===================================================================
--- libomptarget/src/rtl.cpp
+++ libomptarget/src/rtl.cpp
@@ -223,9 +223,6 @@
Devices[start + device_id].DeviceID = start + device_id;
// RTL local device ID
Devices[start + device_id].RTLDeviceID = device_id;
-
- // Save pointer to device in RTL in case we want to unregister the RTL
- R.Devices.push_back(&Devices[start + device_id]);
}
// Initialize the index of this RTL and save it in the used RTLs.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51653.163891.patch
Type: text/x-patch
Size: 1661 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20180904/57c75587/attachment.bin>
More information about the Openmp-commits
mailing list