1*0a6a1f1dSLionel Sambuc// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -g %s -o - | FileCheck %s 2*0a6a1f1dSLionel Sambuc// rdar://problem/9468526 3*0a6a1f1dSLionel Sambuc// 4*0a6a1f1dSLionel Sambuc// Setting a breakpoint on a property should create breakpoints in 5*0a6a1f1dSLionel Sambuc// synthesized getters/setters. 6*0a6a1f1dSLionel Sambuc// 7f4a2713aSLionel Sambuc@interface I { 8f4a2713aSLionel Sambuc int _p1; 9f4a2713aSLionel Sambuc} 10*0a6a1f1dSLionel Sambuc// Test that the linetable entries for the synthesized getter and 11*0a6a1f1dSLionel Sambuc// setter are correct. 12*0a6a1f1dSLionel Sambuc// 13*0a6a1f1dSLionel Sambuc// CHECK: define {{.*}}[I p1] 14*0a6a1f1dSLionel Sambuc// CHECK-NOT: ret 15*0a6a1f1dSLionel Sambuc// CHECK: load {{.*}}, !dbg ![[DBG1:[0-9]+]] 16*0a6a1f1dSLionel Sambuc// 17*0a6a1f1dSLionel Sambuc// CHECK: define {{.*}}[I setP1:] 18*0a6a1f1dSLionel Sambuc// CHECK-NOT: ret 19*0a6a1f1dSLionel Sambuc// CHECK: load {{.*}}, !dbg ![[DBG2:[0-9]+]] 20*0a6a1f1dSLionel Sambuc// 21*0a6a1f1dSLionel Sambuc// CHECK: [ DW_TAG_subprogram ] [line [[@LINE+4]]] [local] [def] [-[I p1]] 22*0a6a1f1dSLionel Sambuc// CHECK: [ DW_TAG_subprogram ] [line [[@LINE+3]]] [local] [def] [-[I setP1:]] 23*0a6a1f1dSLionel Sambuc// CHECK: ![[DBG1]] = !MDLocation(line: [[@LINE+2]], 24*0a6a1f1dSLionel Sambuc// CHECK: ![[DBG2]] = !MDLocation(line: [[@LINE+1]], 25f4a2713aSLionel Sambuc@property int p1; 26f4a2713aSLionel Sambuc@end 27f4a2713aSLionel Sambuc 28f4a2713aSLionel Sambuc@implementation I 29f4a2713aSLionel Sambuc@synthesize p1 = _p1; 30f4a2713aSLionel Sambuc@end 31f4a2713aSLionel Sambuc 32f4a2713aSLionel Sambucint main() { 33f4a2713aSLionel Sambuc I *myi; 34f4a2713aSLionel Sambuc myi.p1 = 2; 35*0a6a1f1dSLionel Sambuc return myi.p1; 36f4a2713aSLionel Sambuc} 37