summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Modules/Inputs/category_other.h6
-rw-r--r--clang/test/Modules/Inputs/category_top.h8
-rw-r--r--clang/test/Modules/Inputs/module.map1
-rw-r--r--clang/test/Modules/objc-categories.m13
4 files changed, 28 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/category_other.h b/clang/test/Modules/Inputs/category_other.h
new file mode 100644
index 00000000000..2c3f4794c2a
--- /dev/null
+++ b/clang/test/Modules/Inputs/category_other.h
@@ -0,0 +1,6 @@
+@import category_top;
+
+@interface Foo(Other)
+-(void)other;
+@end
+
diff --git a/clang/test/Modules/Inputs/category_top.h b/clang/test/Modules/Inputs/category_top.h
index df6a6d33686..c9558b6c295 100644
--- a/clang/test/Modules/Inputs/category_top.h
+++ b/clang/test/Modules/Inputs/category_top.h
@@ -4,3 +4,11 @@
@interface Foo(Top)
-(void)top;
@end
+
+@interface Foo(Top2)
+-(void)top2;
+@end
+
+@interface Foo(Top3)
+-(void)top3;
+@end
diff --git a/clang/test/Modules/Inputs/module.map b/clang/test/Modules/Inputs/module.map
index e09073f818c..58dafca0977 100644
--- a/clang/test/Modules/Inputs/module.map
+++ b/clang/test/Modules/Inputs/module.map
@@ -33,6 +33,7 @@ module category_bottom {
export category_left
export category_right
}
+module category_other { header "category_other.h" }
module redeclarations_left { header "redeclarations_left.h" }
module redeclarations_right { header "redeclarations_right.h" }
module load_failure { header "load_failure.h" }
diff --git a/clang/test/Modules/objc-categories.m b/clang/test/Modules/objc-categories.m
index 2bb07aadc4c..a8f8fb3d049 100644
--- a/clang/test/Modules/objc-categories.m
+++ b/clang/test/Modules/objc-categories.m
@@ -3,11 +3,14 @@
// RUN: %clang_cc1 -fmodules -fmodule-cache-path %t -x objective-c -fmodule-name=category_left -emit-module %S/Inputs/module.map
// RUN: %clang_cc1 -fmodules -fmodule-cache-path %t -x objective-c -fmodule-name=category_right -emit-module %S/Inputs/module.map
// RUN: %clang_cc1 -fmodules -fmodule-cache-path %t -x objective-c -fmodule-name=category_bottom -emit-module %S/Inputs/module.map
+// RUN: %clang_cc1 -fmodules -fmodule-cache-path %t -x objective-c -fmodule-name=category_other -emit-module %S/Inputs/module.map
// RUN: %clang_cc1 -fmodules -fmodule-cache-path %t %s -verify
@import category_bottom;
+
+
// in category_left.h: expected-note {{previous definition}}
@interface Foo(Source)
@@ -21,7 +24,17 @@ void test(Foo *foo, LeftFoo *leftFoo) {
[foo right1];
[foo right2];
[foo top];
+ [foo top2];
+ [foo top3];
[leftFoo left];
[leftFoo bottom];
}
+
+// Load another module that also adds categories to Foo, verify that
+// we see those categories.
+@import category_other;
+
+void test_other(Foo *foo) {
+ [foo other];
+}
OpenPOWER on IntegriCloud