3
3
4
4
int main (int argc, char * argv[], char * arge[]) {
5
5
//
6
+ // LINUX: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType(
7
+ // LINUX-SAME: tag: DW_TAG_structure_type
8
+ // LINUX-NOT: name:
9
+ // LINUX-NOT: identifier:
10
+ // LINUX-SAME: )
11
+ //
12
+ // MSVC: [[TYPE_OF_ONE:![0-9]+]] = distinct !DICompositeType
13
+ // MSVC-SAME: tag: DW_TAG_structure_type
14
+ // MSVC-SAME: name: "<unnamed-type-one>"
15
+ // MSVC-SAME: identifier: ".?AU<unnamed-type-one>@?1??main@@9@"
16
+ // MSVC-SAME: )
17
+
18
+
19
+ //
20
+ // LINUX: [[TYPE_OF_TWO:![0-9]+]] = distinct !DICompositeType(
21
+ // LINUX-SAME: tag: DW_TAG_structure_type
22
+ // LINUX-NOT: name:
23
+ // LINUX-NOT: identifier:
24
+ // LINUX-SAME: )
25
+ //
26
+ // MSVC: [[TYPE_OF_TWO:![0-9]+]] = distinct !DICompositeType
27
+ // MSVC-SAME: tag: DW_TAG_structure_type
28
+ // MSVC-SAME: name: "<unnamed-type-two>"
29
+ // MSVC-SAME: identifier: ".?AU<unnamed-type-two>@?2??main@@9@"
30
+ // MSVC-SAME: )
31
+
32
+
33
+ //
34
+ // LINUX: [[TYPE_OF_THREE:![0-9]+]] = distinct !DICompositeType(
35
+ // LINUX-SAME: tag: DW_TAG_structure_type
36
+ // LINUX-SAME: name: "named"
37
+ // LINUX-NOT: identifier:
38
+ // LINUX-SAME: )
39
+ //
40
+ // MSVC: [[TYPE_OF_THREE:![0-9]+]] = distinct !DICompositeType
41
+ // MSVC-SAME: tag: DW_TAG_structure_type
42
+ // MSVC-SAME: name: "named"
43
+ // MSVC-SAME: identifier: ".?AUnamed@?1??main@@9@"
44
+ // MSVC-SAME: )
45
+
46
+ //
47
+ // LINUX: [[TYPE_OF_FOUR:![0-9]+]] = distinct !DICompositeType(
48
+ // LINUX-SAME: tag: DW_TAG_class_type
49
+ // LINUX-NOT: name:
50
+ // LINUX-NOT: identifier:
51
+ // LINUX-SAME: )
52
+ //
53
+ // MSVC: [[TYPE_OF_FOUR:![0-9]+]] = distinct !DICompositeType
54
+ // MSVC-SAME: tag: DW_TAG_class_type
55
+ // MSVC-SAME: name: "<lambda_0>"
56
+ // MSVC-SAME: identifier: ".?AV<lambda_0>@?0??main@@9@"
57
+ // MSVC-SAME: )
58
+
59
+
6
60
// In CodeView, the LF_MFUNCTION entry for "bar()" refers to the forward
7
61
// reference of the unnamed struct. Visual Studio requires a unique
8
62
// identifier to match the LF_STRUCTURE forward reference to the definition.
9
63
//
10
64
struct { void bar () {} } one;
11
65
//
12
66
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "one"
13
- // LINUX-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
14
- // LINUX-SAME: )
15
- // LINUX: [[TYPE_OF_ONE]] = distinct !DICompositeType(
16
- // LINUX-SAME: tag: DW_TAG_structure_type
17
- // LINUX-NOT: name:
18
- // LINUX-NOT: identifier:
67
+ // LINUX-SAME: type: [[TYPE_OF_ONE]]
19
68
// LINUX-SAME: )
20
69
//
21
70
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "one"
22
- // MSVC-SAME: type: [[TYPE_OF_ONE:![0-9]+]]
23
- // MSVC-SAME: )
24
- // MSVC: [[TYPE_OF_ONE]] = distinct !DICompositeType
25
- // MSVC-SAME: tag: DW_TAG_structure_type
26
- // MSVC-SAME: name: "<unnamed-type-one>"
27
- // MSVC-SAME: identifier: ".?AU<unnamed-type-one>@?1??main@@9@"
71
+ // MSVC-SAME: type: [[TYPE_OF_ONE]]
28
72
// MSVC-SAME: )
29
73
30
74
@@ -36,21 +80,11 @@ int main(int argc, char* argv[], char* arge[]) {
36
80
int decltype (two)::*ptr2unnamed = &decltype (two)::bar;
37
81
//
38
82
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "two"
39
- // LINUX-SAME: type: [[TYPE_OF_TWO:![0-9]+]]
40
- // LINUX-SAME: )
41
- // LINUX: [[TYPE_OF_TWO]] = distinct !DICompositeType(
42
- // LINUX-SAME: tag: DW_TAG_structure_type
43
- // LINUX-NOT: name:
44
- // LINUX-NOT: identifier:
83
+ // LINUX-SAME: type: [[TYPE_OF_TWO]]
45
84
// LINUX-SAME: )
46
85
//
47
86
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "two"
48
- // MSVC-SAME: type: [[TYPE_OF_TWO:![0-9]+]]
49
- // MSVC-SAME: )
50
- // MSVC: [[TYPE_OF_TWO]] = distinct !DICompositeType
51
- // MSVC-SAME: tag: DW_TAG_structure_type
52
- // MSVC-SAME: name: "<unnamed-type-two>"
53
- // MSVC-SAME: identifier: ".?AU<unnamed-type-two>@?2??main@@9@"
87
+ // MSVC-SAME: type: [[TYPE_OF_TWO]]
54
88
// MSVC-SAME: )
55
89
56
90
@@ -61,21 +95,11 @@ int main(int argc, char* argv[], char* arge[]) {
61
95
struct named { int bar; int named::* p2mem; } three = { 42 , &named::bar };
62
96
//
63
97
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "three"
64
- // LINUX-SAME: type: [[TYPE_OF_THREE:![0-9]+]]
65
- // LINUX-SAME: )
66
- // LINUX: [[TYPE_OF_THREE]] = distinct !DICompositeType(
67
- // LINUX-SAME: tag: DW_TAG_structure_type
68
- // LINUX-SAME: name: "named"
69
- // LINUX-NOT: identifier:
98
+ // LINUX-SAME: type: [[TYPE_OF_THREE]]
70
99
// LINUX-SAME: )
71
100
//
72
101
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "three"
73
- // MSVC-SAME: type: [[TYPE_OF_THREE:![0-9]+]]
74
- // MSVC-SAME: )
75
- // MSVC: [[TYPE_OF_THREE]] = distinct !DICompositeType
76
- // MSVC-SAME: tag: DW_TAG_structure_type
77
- // MSVC-SAME: name: "named"
78
- // MSVC-SAME: identifier: ".?AUnamed@?1??main@@9@"
102
+ // MSVC-SAME: type: [[TYPE_OF_THREE]]
79
103
// MSVC-SAME: )
80
104
81
105
@@ -87,21 +111,11 @@ int main(int argc, char* argv[], char* arge[]) {
87
111
auto four = [argc](int i) -> int { return argc == i ? 1 : 0 ; };
88
112
//
89
113
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "four"
90
- // LINUX-SAME: type: [[TYPE_OF_FOUR:![0-9]+]]
91
- // LINUX-SAME: )
92
- // LINUX: [[TYPE_OF_FOUR]] = distinct !DICompositeType(
93
- // LINUX-SAME: tag: DW_TAG_class_type
94
- // LINUX-NOT: name:
95
- // LINUX-NOT: identifier:
114
+ // LINUX-SAME: type: [[TYPE_OF_FOUR]]
96
115
// LINUX-SAME: )
97
116
//
98
117
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "four"
99
- // MSVC-SAME: type: [[TYPE_OF_FOUR:![0-9]+]]
100
- // MSVC-SAME: )
101
- // MSVC: [[TYPE_OF_FOUR]] = distinct !DICompositeType
102
- // MSVC-SAME: tag: DW_TAG_class_type
103
- // MSVC-SAME: name: "<lambda_0>"
104
- // MSVC-SAME: identifier: ".?AV<lambda_0>@?0??main@@9@"
118
+ // MSVC-SAME: type: [[TYPE_OF_FOUR]]
105
119
// MSVC-SAME: )
106
120
107
121
return 0 ;
0 commit comments