blob: 87868ebe0efbe9251b11c74d326a07ece477251f [file] [log] [blame]
Stephen Hines651f13c2014-04-23 16:59:28 -07001// RUN: %clang_cc1 -emit-llvm -g -triple x86_64-apple-darwin %s -o - | FileCheck %s
2//
3// Test that indirect field decls are handled gracefully.
4// rdar://problem/16348575
5//
6template <class T, int T::*ptr> class Foo { };
7
8struct Bar {
9 int i1;
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070010 // CHECK: ![[INT:[0-9]+]] = !MDBasicType(name: "int"
11 // CHECK: !MDDerivedType(tag: DW_TAG_member, scope:
12 // CHECK-SAME: line: [[@LINE+3]]
13 // CHECK-SAME: baseType: !"_ZTSN3BarUt_E"
14 // CHECK-SAME: size: 32, align: 32, offset: 32
Stephen Hines651f13c2014-04-23 16:59:28 -070015 union {
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070016 // CHECK: !MDDerivedType(tag: DW_TAG_member, name: "i2",
17 // CHECK-SAME: line: [[@LINE+5]]
18 // CHECK-SAME: baseType: ![[INT]]
19 // CHECK-SAME: size: 32, align: 32
20 // CHECK-NOT: offset:
21 // CHECK-SAME: ){{$}}
Stephen Hines651f13c2014-04-23 16:59:28 -070022 int i2;
23 };
24};
25
26Foo<Bar, &Bar::i2> the_foo;