blob: 0edd9e899fed8cb333041cfa73efc1a5fa9df63d [file] [log] [blame]
Daniel Dunbar6ab187a2009-04-07 05:48:37 +00001// RUN: clang-cc -triple x86_64-apple-darwin9 -emit-llvm -o %t %s &&
2
3// RUN: grep '@"OBJC_METACLASS_$_A" = global .*section "__DATA, __objc_data", align 8' %t &&
4// RUN: grep '@"OBJC_CLASS_$_A" = global .*section "__DATA, __objc_data", align 8' %t &&
Daniel Dunbar8158a2f2009-04-08 04:21:03 +00005// RUN: grep '@"OBJC_EHTYPE_$_EH1" = weak global .*section "__DATA,__datacoal_nt,coalesced", align 8' %t &&
Daniel Dunbar7e075cb2009-04-07 06:43:45 +00006// RUN: grep '@"OBJC_EHTYPE_$_EH2" = external global' %t &&
Daniel Dunbar8158a2f2009-04-08 04:21:03 +00007// RUN: grep '@"OBJC_EHTYPE_$_EH3" = global .*section "__DATA,__objc_const", align 8' %t &&
8// RUN: grep '@"OBJC_EHTYPE_$_EH3"' %t | count 3 &&
Daniel Dunbar6ab187a2009-04-07 05:48:37 +00009// RUN: grep -F 'define internal void @"\01-[A im0]"' %t &&
10// FIXME: Should include category name.
11// RUN: grep -F 'define internal void @"\01-[A im1]"' %t &&
12
13// RUN: clang-cc -fvisibility=hidden -triple x86_64-apple-darwin9 -emit-llvm -o %t %s &&
14
Fariborz Jahaniancf71dd42009-04-07 20:26:30 +000015// RUN: grep '@"OBJC_METACLASS_$_A" = hidden global .*section "__DATA, __objc_data", align 8' %t &&
16// RUN: grep '@"OBJC_CLASS_$_A" = hidden global .*section "__DATA, __objc_data", align 8' %t &&
Daniel Dunbar7e075cb2009-04-07 06:43:45 +000017// RUN: grep '@"OBJC_EHTYPE_$_EH1" = weak hidden global .*section "__DATA,__datacoal_nt,coalesced"' %t &&
Daniel Dunbar8158a2f2009-04-08 04:21:03 +000018// RUN: grep '@"OBJC_EHTYPE_$_EH2" = external global' %t &&
19// RUN: grep '@"OBJC_EHTYPE_$_EH3" = hidden global .*section "__DATA,__objc_const", align 8' %t &&
Daniel Dunbar6ab187a2009-04-07 05:48:37 +000020// RUN: grep -F 'define internal void @"\01-[A im0]"' %t &&
21// FIXME: Should include category name.
22// RUN: grep -F 'define internal void @"\01-[A im1]"' %t &&
23
24// RUN: true
25
26@interface A
27@end
28
29@implementation A
30-(void) im0 {
31}
32@end
33
34@implementation A (Cat)
35-(void) im1 {
36}
37@end
38
Daniel Dunbar7e075cb2009-04-07 06:43:45 +000039@interface EH1
40@end
41
42__attribute__((__objc_exception__))
43@interface EH2
Daniel Dunbar6ab187a2009-04-07 05:48:37 +000044@end
45
Daniel Dunbar8158a2f2009-04-08 04:21:03 +000046__attribute__((__objc_exception__))
47@interface EH3
48@end
49
Daniel Dunbar6ab187a2009-04-07 05:48:37 +000050void f1();
51
52void f0(id x) {
53 @try {
54 f1();
Daniel Dunbar7e075cb2009-04-07 06:43:45 +000055 } @catch (EH1 *x) {
56 } @catch (EH2 *x) {
Daniel Dunbar8158a2f2009-04-08 04:21:03 +000057 } @catch (EH3 *x) {
Daniel Dunbar6ab187a2009-04-07 05:48:37 +000058 }
59}
Daniel Dunbar8158a2f2009-04-08 04:21:03 +000060
61@implementation EH3
62@end