44
55int main (int argc, char * argv[], char * arge[]) {
66 //
7+ // LINUX: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType(
8+ // LINUX-SAME: tag: DW_TAG_structure_type
9+ // LINUX-NOT: name:
10+ // LINUX-NOT: identifier:
11+ // LINUX-SAME: )
12+ //
13+ // MSVC: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType
14+ // MSVC-SAME: tag: DW_TAG_structure_type
15+ // MSVC-SAME: name: "<unnamed-type-one>"
16+ // MSVC-SAME: identifier: ".?AU<unnamed-type-one>@?1??main@@9@"
17+ // MSVC-SAME: )
18+
19+
20+ //
21+ // LINUX: [[TYPE_OF_TWO:![0-9]+]] = distinct !DICompositeType(
22+ // LINUX-SAME: tag: DW_TAG_structure_type
23+ // LINUX-NOT: name:
24+ // LINUX-NOT: identifier:
25+ // LINUX-SAME: )
26+ //
27+ // MSVC: [[TYPE_OF_TWO:![0-9]+]] = distinct !DICompositeType
28+ // MSVC-SAME: tag: DW_TAG_structure_type
29+ // MSVC-SAME: name: "<unnamed-type-two>"
30+ // MSVC-SAME: identifier: ".?AU<unnamed-type-two>@?2??main@@9@"
31+ // MSVC-SAME: )
32+
33+
34+ //
35+ // LINUX: [[TYPE_OF_THREE:![0-9]+]] = distinct !DICompositeType(
36+ // LINUX-SAME: tag: DW_TAG_structure_type
37+ // LINUX-SAME: name: "named"
38+ // LINUX-NOT: identifier:
39+ // LINUX-SAME: )
40+ //
41+ // MSVC: [[TYPE_OF_THREE:![0-9]+]] = distinct !DICompositeType
42+ // MSVC-SAME: tag: DW_TAG_structure_type
43+ // MSVC-SAME: name: "named"
44+ // MSVC-SAME: identifier: ".?AUnamed@?1??main@@9@"
45+ // MSVC-SAME: )
46+
47+ //
48+ // LINUX: [[TYPE_OF_FOUR:![0-9]+]] = distinct !DICompositeType(
49+ // LINUX-SAME: tag: DW_TAG_class_type
50+ // LINUX-NOT: name:
51+ // LINUX-NOT: identifier:
52+ // LINUX-SAME: )
53+ //
54+ // MSVC: [[TYPE_OF_FOUR:![0-9]+]] = distinct !DICompositeType
55+ // MSVC-SAME: tag: DW_TAG_class_type
56+ // MSVC-SAME: name: "<lambda_0>"
57+ // MSVC-SAME: identifier: ".?AV<lambda_0>@?0??main@@9@"
58+ // MSVC-SAME: )
59+
60+
761 // In CodeView, the LF_MFUNCTION entry for "bar()" refers to the forward
862 // reference of the unnamed struct. Visual Studio requires a unique
963 // identifier to match the LF_STRUCTURE forward reference to the definition.
1064 //
1165 struct { void bar () {} } one;
1266 //
1367 // LINUX: !{{[0-9]+}} = !DILocalVariable(name: "one"
14- // LINUX-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
15- // LINUX-SAME: )
16- // LINUX: [[TYPE_OF_ONE]] = distinct !DICompositeType(
17- // LINUX-SAME: tag: DW_TAG_structure_type
18- // LINUX-NOT: name:
19- // LINUX-NOT: identifier:
68+ // LINUX-SAME: type: [[TYPE_OF_ONE]]
2069 // LINUX-SAME: )
2170 //
2271 // MSVC: !{{[0-9]+}} = !DILocalVariable(name: "one"
23- // MSVC-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
24- // MSVC-SAME: )
25- // MSVC: [[TYPE_OF_ONE]] = distinct !DICompositeType
26- // MSVC-SAME: tag: DW_TAG_structure_type
27- // MSVC-SAME: name: "<unnamed-type-one>"
28- // MSVC-SAME: identifier: ".?AU<unnamed-type-one>@?1??main@@9@"
72+ // MSVC-SAME: type: [[TYPE_OF_ONE]]
2973 // MSVC-SAME: )
3074
3175
@@ -37,21 +81,11 @@ int main(int argc, char* argv[], char* arge[]) {
3781 int decltype (two)::*ptr2unnamed = &decltype (two)::bar;
3882 //
3983 // LINUX: !{{[0-9]+}} = !DILocalVariable(name: "two"
40- // LINUX-SAME: type: [[TYPE_OF_TWO:![0-9]+]]
41- // LINUX-SAME: )
42- // LINUX: [[TYPE_OF_TWO]] = distinct !DICompositeType(
43- // LINUX-SAME: tag: DW_TAG_structure_type
44- // LINUX-NOT: name:
45- // LINUX-NOT: identifier:
84+ // LINUX-SAME: type: [[TYPE_OF_TWO]]
4685 // LINUX-SAME: )
4786 //
4887 // MSVC: !{{[0-9]+}} = !DILocalVariable(name: "two"
49- // MSVC-SAME: type: [[TYPE_OF_TWO:![0-9]+]]
50- // MSVC-SAME: )
51- // MSVC: [[TYPE_OF_TWO]] = distinct !DICompositeType
52- // MSVC-SAME: tag: DW_TAG_structure_type
53- // MSVC-SAME: name: "<unnamed-type-two>"
54- // MSVC-SAME: identifier: ".?AU<unnamed-type-two>@?2??main@@9@"
88+ // MSVC-SAME: type: [[TYPE_OF_TWO]]
5589 // MSVC-SAME: )
5690
5791
@@ -62,21 +96,11 @@ int main(int argc, char* argv[], char* arge[]) {
6296 struct named { int bar; int named::* p2mem; } three = { 42 , &named::bar };
6397 //
6498 // LINUX: !{{[0-9]+}} = !DILocalVariable(name: "three"
65- // LINUX-SAME: type: [[TYPE_OF_THREE:![0-9]+]]
66- // LINUX-SAME: )
67- // LINUX: [[TYPE_OF_THREE]] = distinct !DICompositeType(
68- // LINUX-SAME: tag: DW_TAG_structure_type
69- // LINUX-SAME: name: "named"
70- // LINUX-NOT: identifier:
99+ // LINUX-SAME: type: [[TYPE_OF_THREE]]
71100 // LINUX-SAME: )
72101 //
73102 // MSVC: !{{[0-9]+}} = !DILocalVariable(name: "three"
74- // MSVC-SAME: type: [[TYPE_OF_THREE:![0-9]+]]
75- // MSVC-SAME: )
76- // MSVC: [[TYPE_OF_THREE]] = distinct !DICompositeType
77- // MSVC-SAME: tag: DW_TAG_structure_type
78- // MSVC-SAME: name: "named"
79- // MSVC-SAME: identifier: ".?AUnamed@?1??main@@9@"
103+ // MSVC-SAME: type: [[TYPE_OF_THREE]]
80104 // MSVC-SAME: )
81105
82106
@@ -88,21 +112,11 @@ int main(int argc, char* argv[], char* arge[]) {
88112 auto four = [argc](int i) -> int { return argc == i ? 1 : 0 ; };
89113 //
90114 // LINUX: !{{[0-9]+}} = !DILocalVariable(name: "four"
91- // LINUX-SAME: type: [[TYPE_OF_FOUR:![0-9]+]]
92- // LINUX-SAME: )
93- // LINUX: [[TYPE_OF_FOUR]] = distinct !DICompositeType(
94- // LINUX-SAME: tag: DW_TAG_class_type
95- // LINUX-NOT: name:
96- // LINUX-NOT: identifier:
115+ // LINUX-SAME: type: [[TYPE_OF_FOUR]]
97116 // LINUX-SAME: )
98117 //
99118 // MSVC: !{{[0-9]+}} = !DILocalVariable(name: "four"
100- // MSVC-SAME: type: [[TYPE_OF_FOUR:![0-9]+]]
101- // MSVC-SAME: )
102- // MSVC: [[TYPE_OF_FOUR]] = distinct !DICompositeType
103- // MSVC-SAME: tag: DW_TAG_class_type
104- // MSVC-SAME: name: "<lambda_0>"
105- // MSVC-SAME: identifier: ".?AV<lambda_0>@?0??main@@9@"
119+ // MSVC-SAME: type: [[TYPE_OF_FOUR]]
106120 // MSVC-SAME: )
107121
108122 return 0 ;
0 commit comments