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;
|
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 true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -80,3 +80,12 @@ void testObjCBridgeId() {
|
||||||
ref = (__bridge_retained CFAnnotatedObjectRef) CreateSomething();
|
ref = (__bridge_retained CFAnnotatedObjectRef) CreateSomething();
|
||||||
ref = (__bridge_retained CFAnnotatedObjectRef) CreateNSString();
|
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