================ @@ -103,11 +103,15 @@ RawAddress CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, CharUnits Align, if (AllocaAddr) *AllocaAddr = Alloca; llvm::Value *V = Alloca.getPointer(); + assert((!getLangOpts().OpenCL || + CGM.getTarget().getTargetAddressSpace(getASTAllocaAddressSpace()) == + CGM.getTarget().getTargetAddressSpace(LangAS::opencl_private)) && + "For OpenCL allocas must allocate in the private address space!"); // Alloca always returns a pointer in alloca address space, which may // be different from the type defined by the language. For example, // in C++ the auto variables are in the default address space. Therefore // cast alloca to the default address space when necessary. - if (getASTAllocaAddressSpace() != LangAS::Default) { + if (!getLangOpts().OpenCL && getASTAllocaAddressSpace() != LangAS::Default) { ---------------- arsenm wrote:
Ok , this is the version with the cast. I think the naming / default should be inverted, but that's an issue for another day. There still shouldn't be modality here, and at least one other context is using the wrong version https://github.com/llvm/llvm-project/pull/113930 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits