ebevhan added a comment.

I know this is some really late feedback on this patch. I struck upon some 
issues with while rebasing D62574 <https://reviews.llvm.org/D62574>.



================
Comment at: clang/lib/Sema/SemaExprCXX.cpp:4106
+      NewToType = Context.getAddrSpaceQualType(NewToType,
+                                               FromPteeType.getAddressSpace());
+      if (ToType->isObjCObjectPointerType())
----------------
I don't think this will manage to properly repack the type if it's hidden 
behind enough sugar. When I enable C++ address space conversions in a 
non-OpenCL context, this breaks the derived-to-base example in 
CodeGenCXX/address-space-cast.cpp.

IsPointerConversion doesn't have an issue with this since it reconstructs the 
destination type with the appropriate qualifiers through 
BuildSimilarlyQualifiedPointerType.

Wouldn't it make more sense to have *PointerConversion only handle the 
derived-to-base and leave the address space conversion to 
*QualificationConversion?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70605/new/

https://reviews.llvm.org/D70605



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D70605: [OpenCL... Bevin Hansson via Phabricator via cfe-commits

Reply via email to