Files
clang-p2996/clang/test/CodeGenObjC/complex-property.m
Rafael Espindola 5179a4ea28 Use private linkage for globals we already name with \01L and \01l.
In llvm the only semantic difference between internal and private is that llvm
tries to hide private globals my mangling them with a private prefix. Since
the globals changed by this patch already had the magic don't mangle marker,
there should be no change in the generated assembly.

A followup patch should then be able to drop the \01L and \01l prefixes and let
llvm mangle as appropriate.

llvm-svn: 202419
2014-02-27 19:01:11 +00:00

33 lines
683 B
Objective-C

// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck -check-prefix CHECK-LP64 %s
// rdar: // 7351147
@interface A
@property __complex int COMPLEX_PROP;
- (__complex int)y;
- (void) setY : (__complex int)rhs;
@end
void f0(A *a) {
_Complex int a1 = 25 + 10i;
a.COMPLEX_PROP += a1;
a.y += a1;
}
// CHECK-LP64: private global [13 x i8] c"COMPLEX_PROP
// CHECK-LP64: private global [17 x i8] c"setCOMPLEX_PROP
// rdar: // 7351147
@interface B
@property (assign) _Complex float f_complex_ivar;
@end
@implementation B
@synthesize f_complex_ivar = _f_complex_ivar;
-(void) unary_f_complex: (_Complex float) a0 {
self.f_complex_ivar = a0;
}
@end