From 29dec576e62fe3e108474fd7a155ecd4ee49c8ff Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Mon, 9 Mar 2015 20:39:51 +0000 Subject: [PATCH Sema Objective-C]. Patch to warn on missing designated initializer override where at least a declaration of a designated initializer is in a super class and not necessarily in the current class. rdar://19653785. llvm-svn: 231700 --- clang/lib/AST/DeclObjC.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'clang/lib/AST') diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp index 77995b5261f..abd9b33f5db 100644 --- a/clang/lib/AST/DeclObjC.cpp +++ b/clang/lib/AST/DeclObjC.cpp @@ -1213,6 +1213,16 @@ bool ObjCInterfaceDecl::hasDesignatedInitializers() const { return data().HasDesignatedInitializers; } +bool ObjCInterfaceDecl::hasDesignatedInitializersInSuperClass() const { + ObjCInterfaceDecl *OSC = getSuperClass(); + while (OSC) { + if (OSC->hasDesignatedInitializers()) + return true; + OSC = OSC->getSuperClass(); + } + return false; +} + StringRef ObjCInterfaceDecl::getObjCRuntimeNameAsString() const { if (ObjCRuntimeNameAttr *ObjCRTName = getAttr()) -- cgit v1.2.3