diff options
-rw-r--r-- | include/clang/AST/DeclObjC.h | 1 | ||||
-rw-r--r-- | test/PCH/Inputs/chain-selectors1.h | 4 | ||||
-rw-r--r-- | test/PCH/Inputs/chain-selectors2.h | 4 | ||||
-rw-r--r-- | test/PCH/chain-selectors.m | 16 |
4 files changed, 25 insertions, 0 deletions
diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h index ad26748e13..5dde92eb0b 100644 --- a/include/clang/AST/DeclObjC.h +++ b/include/clang/AST/DeclObjC.h @@ -991,6 +991,7 @@ public: void insertNextClassCategory() { NextClassCategory = ClassInterface->getCategoryList(); ClassInterface->setCategoryList(this); + ClassInterface->setChangedSinceDeserialization(true); } bool IsClassExtension() const { return getIdentifier() == 0; } diff --git a/test/PCH/Inputs/chain-selectors1.h b/test/PCH/Inputs/chain-selectors1.h index 37c1c00b57..b0b68f8332 100644 --- a/test/PCH/Inputs/chain-selectors1.h +++ b/test/PCH/Inputs/chain-selectors1.h @@ -10,3 +10,7 @@ void foo1() { //(void)@selector(x); (void)@selector(f); } + +@interface X (Blah) +- (void)blah_method; +@end diff --git a/test/PCH/Inputs/chain-selectors2.h b/test/PCH/Inputs/chain-selectors2.h index 4d6b556630..973fc107e9 100644 --- a/test/PCH/Inputs/chain-selectors2.h +++ b/test/PCH/Inputs/chain-selectors2.h @@ -9,3 +9,7 @@ void foo2() { //(void)@selector(y); //(void)@selector(e); } + +@interface X (Blarg) +- (void)blarg_method; +@end diff --git a/test/PCH/chain-selectors.m b/test/PCH/chain-selectors.m index 60db3f994b..3b19172799 100644 --- a/test/PCH/chain-selectors.m +++ b/test/PCH/chain-selectors.m @@ -22,3 +22,19 @@ void bar() { (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 |