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
-
60
6
// In CodeView, the LF_MFUNCTION entry for "bar()" refers to the forward
61
7
// reference of the unnamed struct. Visual Studio requires a unique
62
8
// identifier to match the LF_STRUCTURE forward reference to the definition.
63
9
//
64
10
struct { void bar () {} } one;
65
11
//
66
12
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "one"
67
- // LINUX-SAME: type: [[TYPE_OF_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:
68
19
// LINUX-SAME: )
69
20
//
70
21
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "one"
71
- // MSVC-SAME: type: [[TYPE_OF_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@"
72
28
// MSVC-SAME: )
73
29
74
30
@@ -80,11 +36,21 @@ int main(int argc, char* argv[], char* arge[]) {
80
36
int decltype (two)::*ptr2unnamed = &decltype (two)::bar;
81
37
//
82
38
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "two"
83
- // LINUX-SAME: type: [[TYPE_OF_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:
84
45
// LINUX-SAME: )
85
46
//
86
47
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "two"
87
- // MSVC-SAME: type: [[TYPE_OF_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@"
88
54
// MSVC-SAME: )
89
55
90
56
@@ -95,11 +61,21 @@ int main(int argc, char* argv[], char* arge[]) {
95
61
struct named { int bar; int named::* p2mem; } three = { 42 , &named::bar };
96
62
//
97
63
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "three"
98
- // LINUX-SAME: type: [[TYPE_OF_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:
99
70
// LINUX-SAME: )
100
71
//
101
72
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "three"
102
- // MSVC-SAME: type: [[TYPE_OF_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@"
103
79
// MSVC-SAME: )
104
80
105
81
@@ -111,11 +87,21 @@ int main(int argc, char* argv[], char* arge[]) {
111
87
auto four = [argc](int i) -> int { return argc == i ? 1 : 0 ; };
112
88
//
113
89
// LINUX: !{{[0-9]+}} = !DILocalVariable(name: "four"
114
- // LINUX-SAME: type: [[TYPE_OF_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:
115
96
// LINUX-SAME: )
116
97
//
117
98
// MSVC: !{{[0-9]+}} = !DILocalVariable(name: "four"
118
- // MSVC-SAME: type: [[TYPE_OF_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@"
119
105
// MSVC-SAME: )
120
106
121
107
return 0 ;
0 commit comments