[clang] [clang][CodeGen] `used` globals && the payloads for global ctors & dtors are globals (PR #93601)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Tue May 28 12:42:58 PDT 2024


================
@@ -2047,9 +2047,9 @@ void CodeGenModule::EmitCtorList(CtorList &Fns, const char *GlobalName) {
   llvm::Type *CtorPFTy = llvm::PointerType::get(CtorFTy,
       TheModule.getDataLayout().getProgramAddressSpace());
 
-  // Get the type of a ctor entry, { i32, void ()*, i8* }.
+  // Get the type of a ctor entry, { i32, program void ()*, global i8* }.
   llvm::StructType *CtorStructTy = llvm::StructType::get(
-      Int32Ty, CtorPFTy, VoidPtrTy);
+      Int32Ty, CtorPFTy, GlobalsInt8PtrTy);
----------------
arsenm wrote:

What compatibility is broken here? Just bitcode loading? Do we just need to implement an autoupgrade for this? 

https://github.com/llvm/llvm-project/pull/93601


More information about the cfe-commits mailing list