================ @@ -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); ---------------- arichardson wrote:
The autoupgrade solution might be a bit cleaner since it would remove these address space casts for at least the globals. Function arguments could still require an AS cast, although in the CHERI backend case those are the same and we would be able to avoid all casts. As noted elsewhere the address space is somewhat irrelevant so also fine with keeping it as AS0. https://github.com/llvm/llvm-project/pull/93601 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits