// RUN: %clang_cc1 -fobjc-arc -fobjc-runtime-has-weak -triple x86_64-apple-darwin -O0 -S %s -o %t-64.s
// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s
// rdar://8991729

@interface NSObject {
  id isa;
}
@end

@interface AllPointers : NSObject {
    id foo;
    id __strong bar;    
    NSObject *bletch;
}
@end

@implementation AllPointers
@end
// CHECK-LP64: L_OBJC_CLASS_NAME_1:
// CHECK-LP64-NEXT: .asciz	"\003"

@class NSString, NSNumber;
@interface A : NSObject {
   NSString *foo;
   NSNumber *bar;
   unsigned int bletch;
   __weak id delegate;
}
@end

@interface B : A {
  unsigned int x;
  NSString *y;
  NSString *z;
}
@end

@implementation A @end

@implementation B @end

// CHECK-LP64: L_OBJC_CLASS_NAME_15:
// CHECK-LP64-NEXT: .asciz	"\022"

@interface UnsafePerson {
@public
    __unsafe_unretained id name;
    __unsafe_unretained id age;
    id value;
}
@end

@implementation UnsafePerson @end
// CHECK-LP64: L_OBJC_CLASS_NAME_20:
// CHECK-LP64-NEXT: .asciz      "!"
