зеркало из https://github.com/microsoft/clang-1.git
objc-arc: Allow unbridged cast of retainable object to
integral as it is not transferring ownership.. // rdar://9619861 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133622 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
d1bd98a2c2
Коммит
8295b7b51b
|
@ -1620,7 +1620,7 @@ Sema::CheckObjCARCConversion(SourceRange castRange, QualType castType,
|
|||
ARCConversionTypeClass exprACTC = classifyTypeForARCConversion(castExprType);
|
||||
ARCConversionTypeClass castACTC = classifyTypeForARCConversion(castType);
|
||||
if (exprACTC == castACTC) return;
|
||||
if (exprACTC && castType->isBooleanType()) return;
|
||||
if (exprACTC && castType->isIntegralType(Context)) return;
|
||||
|
||||
// Allow casts between pointers to lifetime types (e.g., __strong id*)
|
||||
// and pointers to void (e.g., cv void *). Casting from void* to lifetime*
|
||||
|
|
|
@ -563,3 +563,12 @@ id Test32(__weak ITest32 *x) {
|
|||
: (*x).ivar; // expected-error {{dereferencing a __weak pointer is not allowed}}
|
||||
}
|
||||
|
||||
// rdar://9619861
|
||||
extern int printf(const char*, ...);
|
||||
typedef long intptr_t;
|
||||
|
||||
int Test33(id someid) {
|
||||
printf( "Hello%ld", (intptr_t)someid);
|
||||
return (int)someid;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче