llvm-project/clang/test/CodeGenObjCXX/encode.mm

53 lines
898 B
Plaintext

// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
// CHECK: v17@0:8{vector<float, float, float>=}16
// CHECK: {vector<float, float, float>=}
// CHECK: v24@0:816
template <typename T1, typename T2, typename T3> struct vector {
vector();
vector(T1,T2,T3);
};
typedef vector< float, float, float > vector3f;
@interface SceneNode
{
vector3f position;
}
@property (assign, nonatomic) vector3f position;
@end
@interface MyOpenGLView
{
@public
vector3f position;
}
@property vector3f position;
@end
@implementation MyOpenGLView
@synthesize position;
-(void)awakeFromNib {
SceneNode *sn;
vector3f VF3(1.0, 1.0, 1.0);
[sn setPosition:VF3];
}
@end
class Int3 { int x, y, z; };
// Enforce @encoding for member pointers.
@interface MemPtr {}
- (void) foo: (int (Int3::*)) member;
@end
@implementation MemPtr
- (void) foo: (int (Int3::*)) member {
}
@end