mirror of https://github.com/microsoft/clang.git
[Objective-C Sema] It is permissable to bridge cast to 'id'
of a CFType bridged to some unknown Objective-C type. rdar://20113785 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@234545 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6af26232ba
commit
7e9f4eeaf9
|
@ -3380,12 +3380,13 @@ static bool CheckObjCBridgeNSCast(Sema &S, QualType castType, Expr *castExpr,
|
|||
return false;
|
||||
}
|
||||
}
|
||||
} else if (!castType->isObjCIdType()) {
|
||||
S.Diag(castExpr->getLocStart(), diag::err_objc_cf_bridged_not_interface)
|
||||
<< castExpr->getType() << Parm;
|
||||
S.Diag(TDNDecl->getLocStart(), diag::note_declared_at);
|
||||
if (Target)
|
||||
S.Diag(Target->getLocStart(), diag::note_declared_at);
|
||||
}
|
||||
S.Diag(castExpr->getLocStart(), diag::err_objc_cf_bridged_not_interface)
|
||||
<< castExpr->getType() << Parm;
|
||||
S.Diag(TDNDecl->getLocStart(), diag::note_declared_at);
|
||||
if (Target)
|
||||
S.Diag(Target->getLocStart(), diag::note_declared_at);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -80,3 +80,12 @@ void testObjCBridgeId() {
|
|||
ref = (__bridge_retained CFAnnotatedObjectRef) CreateSomething();
|
||||
ref = (__bridge_retained CFAnnotatedObjectRef) CreateNSString();
|
||||
}
|
||||
|
||||
// rdar://20113785
|
||||
typedef const struct __attribute__((objc_bridge(UIFont))) __CTFont * CTFontRef;
|
||||
|
||||
id testObjCBridgeUnknownTypeToId(CTFontRef font) {
|
||||
id x = (__bridge id)font;
|
||||
return x;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue