blob: 45a93a196dcbd04658eb200b598c975d1c627ca6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -std=c++11 -emit-llvm -o - | FileCheck %s
// CHECK: @"_ZZ11+[A shared]E1a" = internal global
// CHECK: @"_ZZ11-[A(Foo) f]E1a" = internal global
// CHECK: v56@0:8i16i20i24i28i32i36i40i44^i48
@interface A
@end
@implementation A
+ (A *)shared {
static A* a;
return a;
}
@end
@interface A(Foo)
@end
@implementation A(Foo)
- (int)f {
// FIXME: Add a member function to s and make sure that it's mangled correctly.
struct s {
};
static s a;
return 0;
}
@end
// PR6468
@interface Test
- (void) process: (int)r3 :(int)r4 :(int)r5 :(int)r6 :(int)r7 :(int)r8 :(int)r9 :(int)r10 :(int &)i;
@end
@implementation Test
- (void) process: (int)r3 :(int)r4 :(int)r5 :(int)r6 :(int)r7 :(int)r8 :(int)r9 :(int)r10 :(int &)i {
}
@end
// rdar://9566314
@interface NX
- (void)Meth;
@end
@implementation NX
- (void)Meth {
void uiIsVisible();
// CHECK: call void @_Z11uiIsVisiblev
uiIsVisible();
}
@end
// rdar://13434937
//
// Don't crash when mangling an enum whose semantic context
// is a class extension (which looks anonymous in the AST).
// The other tests here are just for coverage.
@interface Test2 @end
@interface Test2 ()
@property (assign) enum { T2x, T2y, T2z } axis;
@end
@interface Test2 (a)
@property (assign) enum { T2i, T2j, T2k } dimension;
@end
@implementation Test2 {
@public
enum { T2a, T2b, T2c } alt_axis;
}
@end
template <class T> struct Test2Template { Test2Template() {} }; // must have a member that we'll instantiate and mangle
void test2(Test2 *t) {
Test2Template<decltype(t.axis)> t0;
Test2Template<decltype(t.dimension)> t1;
Test2Template<decltype(t->alt_axis)> t2;
}
|