rsmith added inline comments. ================ Comment at: lib/Sema/Sema.cpp:366 @@ +365,3 @@ + // In the event an address space cast is requested, the kind passed from the + // caller should no be CK_NoOp. + assert((Kind != CK_NoOp || ---------------- Typo "no" -> "not" ================ Comment at: lib/Sema/SemaCast.cpp:2106-2113 @@ -2105,1 +2105,10 @@ + // If we are casting pointers, we need to check whether this refers to an + // address cast. + if (DestType->isPointerType() && SrcExpr.get()->getType()->isPointerType() && + DestType->getPointeeType().getAddressSpace() != + SrcExpr.get()->getType().getAddressSpace()) { + Kind = CK_AddressSpaceConversion; + return; + } + ---------------- Looks like this would allow casting between any pointer type and any other pointer type with a different address space, independent of the pointee type. That's not right; we should still diagnose casts between pointer-to-object and pointer-to-function types and the like. Also, `reinterpret_cast`s will still fail with this check. This check should go at the end of `TryReinterpretCast` rather than here. http://reviews.llvm.org/D7606 _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits