blob: 103a40241bef9603992a8cb95838471b9b3fe583 [file] [log] [blame]
Stephen Hines651f13c2014-04-23 16:59:28 -07001// RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -std=c++11 -g %s -o - | FileCheck %s
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -07002// CHECK: !MDCompositeType(tag: DW_TAG_class_type, name: "A",{{.*}} identifier: "_ZTS1A")
3// CHECK: !MDSubprogram(name: "foo", linkageName: "_ZN1A3fooEiS_3$_0"
4// CHECK-SAME: DIFlagProtected
5// CHECK: ![[THISTYPE:[0-9]+]] = !MDDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS1A"
6// CHECK-SAME: DIFlagArtificial
7// CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type
8// CHECK: !MDDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: ![[MEMFUNTYPE:[0-9]+]]
9// CHECK: ![[MEMFUNTYPE]] = !MDSubroutineType(types: ![[MEMFUNARGS:[0-9]+]])
Stephen Hines0e2c34f2015-03-23 12:09:02 -070010// CHECK: ![[MEMFUNARGS]] = {{.*}}, ![[THISTYPE]],
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070011// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable
12// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable
13// CHECK: !MDLocalVariable(tag: DW_TAG_arg_variable
David Blaikied8180cf2013-01-05 20:03:07 +000014union {
15 int a;
16 float b;
17} u;
18
Devang Patel10a7a6a2010-09-29 21:46:16 +000019class A {
20protected:
David Blaikied8180cf2013-01-05 20:03:07 +000021 void foo(int, A, decltype(u));
Devang Patel10a7a6a2010-09-29 21:46:16 +000022};
David Blaikie436653b2013-01-05 05:58:35 +000023
David Blaikied8180cf2013-01-05 20:03:07 +000024void A::foo(int, A, decltype(u)) {
David Blaikie436653b2013-01-05 05:58:35 +000025}
26
Devang Patel10a7a6a2010-09-29 21:46:16 +000027A a;
David Blaikie0028ee32013-01-07 05:55:03 +000028
29int A::*x = 0;
30int (A::*y)(int) = 0;