jdoerfert added inline comments.
================ Comment at: clang/lib/CodeGen/CGDecl.cpp:2618 +void CodeGenModule::EmitOMPAllocateDecl(const OMPAllocateDecl *D) { + for (Expr *E : const_cast<OMPAllocateDecl *>(D)->varlists()) { + auto *DE = cast<DeclRefExpr>(E); ---------------- ABataev wrote: > jdoerfert wrote: > > ABataev wrote: > > > Why need to remove constantness here? > > The problem is that the declaration, which might have been already > > generated in IR or not, had no address space attached before. Now we want > > to do that after the fact, potentially *way later*. To reuse the general > > codegen mechanism I modify the VarDecl (temporarily) by attaching the new > > address space and calling codegen again. If you have a better idea, I'm > > happy to change this. > Why not just create it manually rather than rely on `GetOrCreateLLVMGlobal`? I'm not sure I follow. Creating a global is complicated, need to make sure all the linkage, visibility, address space stuff is set up, mangling, etc. Why would we duplicate all that code and risk messing things up now or in the future? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101030/new/ https://reviews.llvm.org/D101030 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits