rjmccall added inline comments.
================ Comment at: lib/CodeGen/CGClass.cpp:2025 + ThisPtr = + Builder.CreatePointerBitCastOrAddrSpaceCast(This.getPointer(), NewType); } ---------------- Anastasia wrote: > I am a bit unsure if `performAddrSpaceCast` should be used, but considering > that we know that we are not casting a constant it should be fine? > > If not any suggestions how to propagate `LangAS` of 'this' here. Some > thoughts I have are: > - Try to list the conversion up in the call stack > - Pass `LangAS` all the way to here I feel like `This` should just be in the right address space for the constructor at the point `EmitCXXConstructorCall` is called. We don't expect this function to do any other semantic conversions. Or is this necessary to handle special-case use of things like trivial default / copy constructors? ================ Comment at: lib/Sema/SemaInit.cpp:7325 + CastKind CK = (!(VK == VK_RValue && Ty->getPointeeType().isNull()) && + Ty.getAddressSpace() != E->getType().getAddressSpace()) ? CK_AddressSpaceConversion ---------------- If this function is being used to do pointee qualification conversions on pointer r-values, I think you need to look at whether the pointee address spaces are different, right? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59988/new/ https://reviews.llvm.org/D59988 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits