[Openmp-commits] [openmp] b9fd8f3 - [OpenMP][NFC] Add missing virtual destructor to silence warning

Johannes Doerfert via Openmp-commits openmp-commits at lists.llvm.org
Fri Mar 25 14:01:51 PDT 2022


Author: Johannes Doerfert
Date: 2022-03-25T16:00:53-05:00
New Revision: b9fd8f34ae547674ac0b5f5fbc5bb66d2bc0fedb

URL: https://github.com/llvm/llvm-project/commit/b9fd8f34ae547674ac0b5f5fbc5bb66d2bc0fedb
DIFF: https://github.com/llvm/llvm-project/commit/b9fd8f34ae547674ac0b5f5fbc5bb66d2bc0fedb.diff

LOG: [OpenMP][NFC] Add missing virtual destructor to silence warning

Added: 
    

Modified: 
    llvm/unittests/Linker/LinkModulesTest.cpp
    openmp/libomptarget/plugins/cuda/src/rtl.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/unittests/Linker/LinkModulesTest.cpp b/llvm/unittests/Linker/LinkModulesTest.cpp
index 793c744a2df53..7a1217c8edd32 100644
--- a/llvm/unittests/Linker/LinkModulesTest.cpp
+++ b/llvm/unittests/Linker/LinkModulesTest.cpp
@@ -359,4 +359,27 @@ TEST_F(LinkModuleTest, RemangleIntrinsics) {
   ASSERT_EQ(F->getNumUses(), (unsigned)2);
 }
 
+TEST_F(LinkModuleTest, StructTypeReusedMerge) {
+  LLVMContext C;
+  SMDiagnostic Err;
+
+  const char *M1Str = "%t = type {i32}\n"
+                      "%q = type {%t}\n"
+                      "@t1 = weak global %q zeroinitializer\n";
+  std::unique_ptr<Module> M1 = parseAssemblyString(M1Str, Err, C);
+
+  const char *M2Str = "%t = type {i32}\n"
+                      "%q = type {%t}\n"
+                      "@t2 = weak global %q zeroinitializer\n";
+  std::unique_ptr<Module> M2 = parseAssemblyString(M2Str, Err, C);
+
+  Ctx.setDiagnosticHandlerCallBack(expectNoDiags);
+  Linker::linkModules(*M1, std::move(M2));
+
+  EXPECT_EQ(M1->getNamedGlobal("t1")->getType(),
+            M1->getNamedGlobal("t2")->getType());
+  EXPECT_TRUE(llvm::for_each(M1->getIdentifiedStructTypes(), [](const StructType *STy) { return STy->hasName(); }));
+
+}
+
 } // end anonymous namespace

diff  --git a/openmp/libomptarget/plugins/cuda/src/rtl.cpp b/openmp/libomptarget/plugins/cuda/src/rtl.cpp
index 0a6d023a7fc08..e8028855d45d1 100644
--- a/openmp/libomptarget/plugins/cuda/src/rtl.cpp
+++ b/openmp/libomptarget/plugins/cuda/src/rtl.cpp
@@ -168,6 +168,8 @@ struct DeviceDataTy {
 /// accordingly. The implementation should not raise any exception.
 template <typename T> struct AllocatorTy {
   using ElementTy = T;
+  virtual ~AllocatorTy() {}
+
   /// Create a resource and assign to R.
   virtual int create(T &R) noexcept = 0;
   /// Destroy the resource.


        


More information about the Openmp-commits mailing list