summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-12-07 00:34:23 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-12-07 00:34:23 +0000
commit1f0b3bfd75029463625643b1650e097afe227b5c (patch)
tree455bc593d9918c54c6c7575676f74a8180802490 /clang/lib/Sema/SemaExpr.cpp
parent32c3f17d3655fa97817c697e8e2456e9283567ae (diff)
downloadbcm5719-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.cpp6
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;
OpenPOWER on IntegriCloud