diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-12-07 00:34:23 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-12-07 00:34:23 +0000 |
commit | 1f0b3bfd75029463625643b1650e097afe227b5c (patch) | |
tree | 455bc593d9918c54c6c7575676f74a8180802490 /clang/lib/Sema/SemaExpr.cpp | |
parent | 32c3f17d3655fa97817c697e8e2456e9283567ae (diff) | |
download | bcm5719-llvm-1f0b3bfd75029463625643b1650e097afe227b5c.tar.gz bcm5719-llvm-1f0b3bfd75029463625643b1650e097afe227b5c.zip |
ObjectiveC. Continuing implementation of objc_bridge_related
attribute in sema and issuing a variety of diagnostics lazily
for misuse of this attribute (and what to do) when converting
from CF types to ObjectiveC types (and vice versa).
// rdar://15499111
llvm-svn: 196629
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 3db3e383482..8efdffaf090 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -10639,6 +10639,9 @@ bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, MayHaveConvFixit = true; break; case IncompatiblePointer: + if (getLangOpts().ObjC1 && + CheckObjCBridgeRelatedConversions(Loc, DstType, SrcType)) + return false; MakeObjCStringLiteralFixItHint(*this, DstType, SrcExpr, Hint, IsNSString); DiagKind = (Action == AA_Passing_CFAudited ? @@ -10718,6 +10721,9 @@ bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, DiagKind = diag::err_arc_weak_unavailable_assign; break; case Incompatible: + if (getLangOpts().ObjC1 && + CheckObjCBridgeRelatedConversions(Loc, DstType, SrcType)) + return true; DiagKind = diag::err_typecheck_convert_incompatible; ConvHints.tryToFixConversion(SrcExpr, SrcType, DstType, *this); MayHaveConvFixit = true; |