Author: dgregor
Date: Sat Oct  2 16:06:43 2010
New Revision: 115421

URL: http://llvm.org/viewvc/llvm-project?rev=115421&view=rev
Log:
When we insert a category (or class extension) into an interface, mark
the interface as having changed since it was originally
serialized. This ensures that we see class extensions/categories in
chained PCH files.

Modified:
    cfe/trunk/include/clang/AST/DeclObjC.h
    cfe/trunk/test/PCH/Inputs/chain-selectors1.h
    cfe/trunk/test/PCH/Inputs/chain-selectors2.h
    cfe/trunk/test/PCH/chain-selectors.m

Modified: cfe/trunk/include/clang/AST/DeclObjC.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclObjC.h?rev=115421&r1=115420&r2=115421&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/DeclObjC.h (original)
+++ cfe/trunk/include/clang/AST/DeclObjC.h Sat Oct  2 16:06:43 2010
@@ -991,6 +991,7 @@
   void insertNextClassCategory() {
     NextClassCategory = ClassInterface->getCategoryList();
     ClassInterface->setCategoryList(this);
+    ClassInterface->setChangedSinceDeserialization(true);
   }
 
   bool IsClassExtension() const { return getIdentifier() == 0; }

Modified: cfe/trunk/test/PCH/Inputs/chain-selectors1.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/Inputs/chain-selectors1.h?rev=115421&r1=115420&r2=115421&view=diff
==============================================================================
--- cfe/trunk/test/PCH/Inputs/chain-selectors1.h (original)
+++ cfe/trunk/test/PCH/Inputs/chain-selectors1.h Sat Oct  2 16:06:43 2010
@@ -10,3 +10,7 @@
   //(void)@selector(x);
   (void)@selector(f);
 }
+
+...@interface X (Blah)
+- (void)blah_method;
+...@end

Modified: cfe/trunk/test/PCH/Inputs/chain-selectors2.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/Inputs/chain-selectors2.h?rev=115421&r1=115420&r2=115421&view=diff
==============================================================================
--- cfe/trunk/test/PCH/Inputs/chain-selectors2.h (original)
+++ cfe/trunk/test/PCH/Inputs/chain-selectors2.h Sat Oct  2 16:06:43 2010
@@ -9,3 +9,7 @@
   //(void)@selector(y);
   //(void)@selector(e);
 }
+
+...@interface X (Blarg)
+- (void)blarg_method;
+...@end

Modified: cfe/trunk/test/PCH/chain-selectors.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-selectors.m?rev=115421&r1=115420&r2=115421&view=diff
==============================================================================
--- cfe/trunk/test/PCH/chain-selectors.m (original)
+++ cfe/trunk/test/PCH/chain-selectors.m Sat Oct  2 16:06:43 2010
@@ -22,3 +22,19 @@
   (void)@selector(y); // expected-warning {{unimplemented selector}}
   (void)@selector(e); // expected-warning {{unimplemented selector}}
 }
+
+...@implementation X (Blah)
+- (void)test_Blah {
+  [self blah_method];
+}
+
+- (void)blah_method { }
+...@end
+
+...@implementation X (Blarg)
+- (void)test_Blarg {
+  [self blarg_method];
+}
+
+- (void)blarg_method { }
+...@end


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to