[OpenMP][NFC] Add missing virtual destructor to silence warning
authorJohannes Doerfert <johannes@jdoerfert.de>
Fri, 25 Mar 2022 19:53:38 +0000 (14:53 -0500)
committerJohannes Doerfert <johannes@jdoerfert.de>
Fri, 25 Mar 2022 21:00:53 +0000 (16:00 -0500)
llvm/unittests/Linker/LinkModulesTest.cpp
openmp/libomptarget/plugins/cuda/src/rtl.cpp

index 793c744..7a1217c 100644 (file)
@@ -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
index 0a6d023..e802885 100644 (file)
@@ -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.