From 0c252fa8b751be50f8b53ffdc6563dca609870fc Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Thu, 13 Dec 2012 00:42:06 +0000 Subject: [PATCH] objc: DOn't complain if a (SEL) expression is typecast to (SEL). Fixes // rdar://12859590 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170058 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaCast.cpp | 2 ++ test/SemaObjC/warn-cast-of-sel-expr.m | 3 +++ 2 files changed, 5 insertions(+) diff --git a/lib/Sema/SemaCast.cpp b/lib/Sema/SemaCast.cpp index 6f3937353c..28b58279a5 100644 --- a/lib/Sema/SemaCast.cpp +++ b/lib/Sema/SemaCast.cpp @@ -1479,6 +1479,8 @@ void Sema::CheckCompatibleReinterpretCast(QualType SrcType, QualType DestType, static void DiagnoseCastOfObjCSEL(Sema &Self, const ExprResult &SrcExpr, QualType DestType) { QualType SrcType = SrcExpr.get()->getType(); + if (Self.Context.hasSameType(SrcType, DestType)) + return; if (const PointerType *SrcPtrTy = SrcType->getAs()) if (SrcPtrTy->isObjCSelType()) { QualType DT = DestType; diff --git a/test/SemaObjC/warn-cast-of-sel-expr.m b/test/SemaObjC/warn-cast-of-sel-expr.m index 97915a0094..1253db95d5 100644 --- a/test/SemaObjC/warn-cast-of-sel-expr.m +++ b/test/SemaObjC/warn-cast-of-sel-expr.m @@ -18,4 +18,7 @@ int main() { (void *const)s; // ok (const void *const)s; // ok + +// rdar://12859590 +(SEL)sel_registerName("foo"); // ok } -- 2.50.1