Author: fjahanian
Date: Mon Nov 24 16:16:00 2008
New Revision: 59988
URL: http://llvm.org/viewvc/llvm-project?rev=59988&view=rev
Log:
Patch to remove bogus waring when a property declaration
is imported from a protocol into the implementation.
Added:
cfe/trunk/test/SemaObjC/property-noprotocol-warning.m
Modified:
cfe/trunk/lib/Sema/SemaDeclObjC.cpp
Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=59988&r1=59987&r2=59988&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Mon Nov 24 16:16:00 2008
@@ -610,7 +610,7 @@
E = PDecl->instmeth_end(); I != E; ++I) {
ObjCMethodDecl *method = *I;
if (method->getImplementationControl() != ObjCMethodDecl::Optional &&
- !InsMap.count(method->getSelector()) &&
+ !method->isSynthesized() && !InsMap.count(method->getSelector()) &&
(!Super || !Super->lookupInstanceMethod(method->getSelector())))
WarnUndefinedMethod(ImpLoc, method, IncompleteImpl);
}
Added: cfe/trunk/test/SemaObjC/property-noprotocol-warning.m
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/property-noprotocol-warning.m?rev=59988&view=auto
==============================================================================
--- cfe/trunk/test/SemaObjC/property-noprotocol-warning.m (added)
+++ cfe/trunk/test/SemaObjC/property-noprotocol-warning.m Mon Nov 24 16:16:00
2008
@@ -0,0 +1,36 @@
+// RUN: clang -fsyntax-only -verify %s
+
+
[EMAIL PROTECTED] Object
+- (id) new;
[EMAIL PROTECTED]
+
[EMAIL PROTECTED] GCObject
[EMAIL PROTECTED] int class;
[EMAIL PROTECTED]
+
[EMAIL PROTECTED] DerivedGCObject <GCObject>
[EMAIL PROTECTED] int Dclass;
[EMAIL PROTECTED]
+
[EMAIL PROTECTED] GCObject : Object <DerivedGCObject> {
+ int ifield;
+ int iOwnClass;
+ int iDclass;
+}
[EMAIL PROTECTED] int OwnClass;
[EMAIL PROTECTED]
+
[EMAIL PROTECTED] GCObject : Object
[EMAIL PROTECTED] class=ifield;
[EMAIL PROTECTED] Dclass=iDclass;
[EMAIL PROTECTED] OwnClass=iOwnClass;
[EMAIL PROTECTED]
+
+int main(int argc, char **argv) {
+ GCObject *f = [GCObject new];
+ f.class = 5;
+ f.Dclass = 1;
+ f.OwnClass = 3;
+ return f.class + f.Dclass + f.OwnClass - 9;
+}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits