1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li// Make sure we generate debug symbols for ivars added by a class extension. 4*67e74705SXin Li 5*67e74705SXin Li@interface I 6*67e74705SXin Li{ 7*67e74705SXin Li @public int a; 8*67e74705SXin Li} 9*67e74705SXin Li@end 10*67e74705SXin Li 11*67e74705SXin Livoid foo(I* pi) { 12*67e74705SXin Li // poking into pi for primary class ivars. 13*67e74705SXin Li int _a = pi->a; 14*67e74705SXin Li} 15*67e74705SXin Li 16*67e74705SXin Li@interface I() 17*67e74705SXin Li{ 18*67e74705SXin Li @public int b; 19*67e74705SXin Li} 20*67e74705SXin Li@end 21*67e74705SXin Li 22*67e74705SXin Livoid gorf (I* pg) { 23*67e74705SXin Li // poking into pg for ivars for class extension 24*67e74705SXin Li int _b = pg->b; 25*67e74705SXin Li} 26*67e74705SXin Li 27*67e74705SXin Li// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "I" 28*67e74705SXin Li 29*67e74705SXin Li// Check for "a". 30*67e74705SXin Li// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "a" 31*67e74705SXin Li// CHECK-SAME: line: 7 32*67e74705SXin Li// CHECK-SAME: baseType: ![[INT:[0-9]+]] 33*67e74705SXin Li// CHECK-SAME: size: 32, align: 32 34*67e74705SXin Li// CHECK-NOT: offset: 35*67e74705SXin Li// CHECK-SAME: flags: DIFlagPublic 36*67e74705SXin Li// CHECK: ![[INT]] = !DIBasicType(name: "int" 37*67e74705SXin Li 38*67e74705SXin Li// Make sure we don't output the same type twice. 39*67e74705SXin Li// CHECK-NOT: !DICompositeType(tag: DW_TAG_structure_type, name: "I" 40*67e74705SXin Li 41*67e74705SXin Li// Check for "b". 42*67e74705SXin Li// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "b" 43*67e74705SXin Li// CHECK-SAME: line: 18 44*67e74705SXin Li// CHECK-SAME: baseType: ![[INT]] 45*67e74705SXin Li// CHECK-SAME: size: 32, align: 32 46*67e74705SXin Li// CHECK-NOT: offset: 47*67e74705SXin Li// CHECK-SAME: flags: DIFlagPublic 48