summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2015-03-09 20:39:51 +0000
committerFariborz Jahanian <fjahanian@apple.com>2015-03-09 20:39:51 +0000
commit29dec576e62fe3e108474fd7a155ecd4ee49c8ff (patch)
treea8f727beee1e4794747e1c5f2c893fad8646f943 /clang/lib/AST
parent8c4dfaa13bfb33f913c1c81741573813fd79081f (diff)
downloadbcm5719-llvm-29dec576e62fe3e108474fd7a155ecd4ee49c8ff.tar.gz
bcm5719-llvm-29dec576e62fe3e108474fd7a155ecd4ee49c8ff.zip
[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
Diffstat (limited to 'clang/lib/AST')
-rw-r--r--clang/lib/AST/DeclObjC.cpp10
1 files changed, 10 insertions, 0 deletions
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<ObjCRuntimeNameAttr>())
OpenPOWER on IntegriCloud