forked from OSchip/llvm-project
[Objective-C Sema] It is permissable to bridge cast to 'id'
of a CFType bridged to some unknown Objective-C type. rdar://20113785 llvm-svn: 234545
This commit is contained in:
parent
85be49d26d
commit
696c88753f
|
@ -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