diff options
Diffstat (limited to 'clang/test/Modules')
-rw-r--r-- | clang/test/Modules/Inputs/category_other.h | 6 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/category_top.h | 8 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/module.map | 1 | ||||
-rw-r--r-- | clang/test/Modules/objc-categories.m | 13 |
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]; +} |