These synthetic providers use expression evaluation and fail in some cases.
Examples:
llvm::PointerIntPair<llvm::PointerUnion<const Type *, const ExtQuals *>, Qualifiers::FastWidth> Value;
and
typedef llvm::PointerUnion<const ValueDecl *, const Expr *, TypeInfoLValue, DynamicAllocLValue> PtrTy;
Original contribution: D117779
rdar://110791233
rdar://112195543