diff options
Diffstat (limited to 'test/CodeGenObjC/link-errors.m')
-rw-r--r-- | test/CodeGenObjC/link-errors.m | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/CodeGenObjC/link-errors.m b/test/CodeGenObjC/link-errors.m new file mode 100644 index 0000000..b50d939 --- /dev/null +++ b/test/CodeGenObjC/link-errors.m @@ -0,0 +1,39 @@ +// RUN: clang-cc -triple i386-apple-darwin9 -fnext-runtime -emit-llvm -o %t %s && +// RUN: grep '.lazy_reference .objc_class_name_A' %t | count 1 && +// RUN: grep '.lazy_reference .objc_class_name_Unknown' %t | count 1 && +// RUN: grep '.lazy_reference .objc_class_name_Protocol' %t | count 1 && +// RUN: clang-cc -triple i386-apple-darwin9 -DWITH_IMPL -fnext-runtime -emit-llvm -o %t %s && +// RUN: grep '.lazy_reference .objc_class_name_Root' %t | count 1 + +@interface Root +-(id) alloc; +-(id) init; +@end + +@protocol P; + +@interface A : Root +@end + +@interface A (Category) ++(void) foo; +@end + +#ifdef WITH_IMPL +@implementation A +@end +#endif + +@interface Unknown ++test; +@end + + +int main() { + id x = @protocol(P); + [ A alloc ]; + [ A foo ]; + [ Unknown test ]; + return 0; +} + |