// RUN: %clang_cc1 -emit-llvm -x objective-c -debug-info-kind=limited -triple x86_64-apple-macosx10.8.0 %s -o - | FileCheck %s
//
// rdar://problem/14035789
//
// Ensure we emit the names of explicit/renamed accessors even if they
// are defined later in the implementation section.
//
// CHECK:  !DIObjCProperty(name: "blah"
// CHECK-SAME:             getter: "isBlah"

@class NSString;
extern void NSLog(NSString *format, ...);
typedef signed char BOOL;

#define YES             ((BOOL)1)
#define NO              ((BOOL)0)

typedef unsigned int NSUInteger;

@protocol NSObject
@end

@interface NSObject <NSObject>
- (id)init;
+ (id)alloc;
@end

@interface Bar : NSObject
@property int normal_property;
@property (getter=isBlah, setter=setBlah:) BOOL blah;
@end

@implementation Bar
@synthesize normal_property;

- (BOOL) isBlah
{
  return YES;
}
- (void) setBlah: (BOOL) newBlah
{
  NSLog (@"Speak up, I didn't catch that.");
}
@end

int
main ()
{
  Bar *my_bar = [[Bar alloc] init];

  if (my_bar.blah)
    NSLog (@"It was true!!!");

  my_bar.blah = NO;

  return 0;
}
