Skip to content

Commit 4617d1a

Browse files
committed
i hate this
a lot
1 parent f80d685 commit 4617d1a

File tree

281 files changed

+4637
-113
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

281 files changed

+4637
-113
lines changed

compiler/plc_driver/src/tests/snapshots/plc_driver__tests__multi_files__multiple_files_in_different_locations_with_debug_info.snap

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
source: compiler/plc_driver/./src/tests/multi_files.rs
33
expression: "results.join(\"\\n\")"
4+
snapshot_kind: text
45
---
56
; ModuleID = 'app/file1.st'
67
source_filename = "app/file1.st"
@@ -105,6 +106,13 @@ entry:
105106

106107
declare void @mainProg(%mainProg*)
107108

109+
define void @__user_init_mainProg(%mainProg* %0) {
110+
entry:
111+
%self = alloca %mainProg*, align 8
112+
store %mainProg* %0, %mainProg** %self, align 8
113+
ret void
114+
}
115+
108116
; ModuleID = '__init___TestProject'
109117
source_filename = "__init___TestProject"
110118

@@ -116,9 +124,12 @@ source_filename = "__init___TestProject"
116124
define void @__init___TestProject() {
117125
entry:
118126
call void @__init_mainprog(%mainProg* @mainProg_instance)
127+
call void @__user_init_mainProg(%mainProg* @mainProg_instance)
119128
ret void
120129
}
121130

122131
declare void @__init_mainprog(%mainProg*)
123132

124133
declare void @mainProg(%mainProg*)
134+
135+
declare void @__user_init_mainProg(%mainProg*)

compiler/plc_driver/src/tests/snapshots/plc_driver__tests__multi_files__multiple_files_with_debug_info.snap

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
source: compiler/plc_driver/./src/tests/multi_files.rs
33
expression: "results.join(\"\\n\")"
4+
snapshot_kind: text
45
---
56
; ModuleID = 'file1.st'
67
source_filename = "file1.st"
@@ -105,6 +106,13 @@ entry:
105106

106107
declare void @mainProg(%mainProg*)
107108

109+
define void @__user_init_mainProg(%mainProg* %0) {
110+
entry:
111+
%self = alloca %mainProg*, align 8
112+
store %mainProg* %0, %mainProg** %self, align 8
113+
ret void
114+
}
115+
108116
; ModuleID = '__init___TestProject'
109117
source_filename = "__init___TestProject"
110118

@@ -116,9 +124,12 @@ source_filename = "__init___TestProject"
116124
define void @__init___TestProject() {
117125
entry:
118126
call void @__init_mainprog(%mainProg* @mainProg_instance)
127+
call void @__user_init_mainProg(%mainProg* @mainProg_instance)
119128
ret void
120129
}
121130

122131
declare void @__init_mainprog(%mainProg*)
123132

124133
declare void @mainProg(%mainProg*)
134+
135+
declare void @__user_init_mainProg(%mainProg*)

compiler/plc_driver/src/tests/snapshots/plc_driver__tests__multi_files__multiple_source_files_generated.snap

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
source: compiler/plc_driver/./src/tests/multi_files.rs
33
expression: "results.join(\"\\n\")"
4+
snapshot_kind: text
45
---
56
; ModuleID = 'external_file1.st'
67
source_filename = "external_file1.st"
@@ -48,6 +49,13 @@ entry:
4849

4950
declare void @mainProg(%mainProg*)
5051

52+
define void @__user_init_mainProg(%mainProg* %0) {
53+
entry:
54+
%self = alloca %mainProg*, align 8
55+
store %mainProg* %0, %mainProg** %self, align 8
56+
ret void
57+
}
58+
5159
; ModuleID = '__init___TestProject'
5260
source_filename = "__init___TestProject"
5361

@@ -59,9 +67,12 @@ source_filename = "__init___TestProject"
5967
define void @__init___TestProject() {
6068
entry:
6169
call void @__init_mainprog(%mainProg* @mainProg_instance)
70+
call void @__user_init_mainProg(%mainProg* @mainProg_instance)
6271
ret void
6372
}
6473

6574
declare void @__init_mainprog(%mainProg*)
6675

6776
declare void @mainProg(%mainProg*)
77+
78+
declare void @__user_init_mainProg(%mainProg*)

compiler/plc_lowering/src/inheritance.rs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1792,7 +1792,7 @@ mod units_tests {
17921792

17931793
let (_, project) = parse_and_annotate("test", vec![src]).unwrap();
17941794
let unit = &project.units[0].get_unit().implementations[3];
1795-
assert_debug_snapshot!(unit, @r###"
1795+
assert_debug_snapshot!(unit, @r#"
17961796
Implementation {
17971797
name: "main",
17981798
type_name: "main",
@@ -1819,6 +1819,26 @@ mod units_tests {
18191819
},
18201820
),
18211821
},
1822+
CallStatement {
1823+
operator: ReferenceExpr {
1824+
kind: Member(
1825+
Identifier {
1826+
name: "__user_init_child",
1827+
},
1828+
),
1829+
base: None,
1830+
},
1831+
parameters: Some(
1832+
ReferenceExpr {
1833+
kind: Member(
1834+
Identifier {
1835+
name: "fb",
1836+
},
1837+
),
1838+
base: None,
1839+
},
1840+
),
1841+
},
18221842
Assignment {
18231843
left: ReferenceExpr {
18241844
kind: Deref,
@@ -1980,7 +2000,7 @@ mod units_tests {
19802000
generic: false,
19812001
access: None,
19822002
}
1983-
"###)
2003+
"#)
19842004
}
19852005

19862006
#[test]

src/codegen/tests/address_tests.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,13 @@ fn address_variable_used_with_symbolic_name() {
118118
}
119119
120120
declare void @mainProg(%mainProg*)
121+
122+
define void @__user_init_mainProg(%mainProg* %0) {
123+
entry:
124+
%self = alloca %mainProg*, align 8
125+
store %mainProg* %0, %mainProg** %self, align 8
126+
ret void
127+
}
121128
; ModuleID = '__init___testproject'
122129
source_filename = "__init___testproject"
123130
@@ -134,12 +141,15 @@ fn address_variable_used_with_symbolic_name() {
134141
store i8* @__PI_1_2_3_4, i8** @foo, align 8
135142
store i8* @__PI_1_2_3_4, i8** @baz, align 8
136143
call void @__init_mainprog(%mainProg* @mainProg_instance)
144+
call void @__user_init_mainProg(%mainProg* @mainProg_instance)
137145
ret void
138146
}
139147
140148
declare void @__init_mainprog(%mainProg*)
141149
142150
declare void @mainProg(%mainProg*)
151+
152+
declare void @__user_init_mainProg(%mainProg*)
143153
"#);
144154
}
145155

@@ -195,6 +205,13 @@ fn address_used_in_body() {
195205
}
196206
197207
declare void @mainProg(%mainProg*)
208+
209+
define void @__user_init_mainProg(%mainProg* %0) {
210+
entry:
211+
%self = alloca %mainProg*, align 8
212+
store %mainProg* %0, %mainProg** %self, align 8
213+
ret void
214+
}
198215
; ModuleID = '__init___testproject'
199216
source_filename = "__init___testproject"
200217
@@ -212,11 +229,14 @@ fn address_used_in_body() {
212229
store i8* @__PI_1_2_3_4, i8** @foo, align 8
213230
store i8* @__PI_1_2_3_5, i8** @baz, align 8
214231
call void @__init_mainprog(%mainProg* @mainProg_instance)
232+
call void @__user_init_mainProg(%mainProg* @mainProg_instance)
215233
ret void
216234
}
217235
218236
declare void @__init_mainprog(%mainProg*)
219237
220238
declare void @mainProg(%mainProg*)
239+
240+
declare void @__user_init_mainProg(%mainProg*)
221241
"#);
222242
}

src/codegen/tests/code_gen_tests.rs

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,13 +1145,16 @@ fn fb_method_called_locally() {
11451145
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %0, i8* align 1 bitcast (%foo* @__foo__init to i8*), i64 ptrtoint (%foo* getelementptr (%foo, %foo* null, i32 1) to i64), i1 false)
11461146
store i32 0, i32* %x, align 4
11471147
call void @__init_foo(%foo* %fb)
1148+
call void @__user_init_foo(%foo* %fb)
11481149
%call = call i32 @foo.addToBar(%foo* %fb, i16 3)
11491150
store i32 %call, i32* %x, align 4
11501151
ret void
11511152
}
11521153
11531154
declare void @__init_foo(%foo*)
11541155
1156+
declare void @__user_init_foo(%foo*)
1157+
11551158
; Function Attrs: argmemonly nofree nounwind willreturn
11561159
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #0
11571160
@@ -1171,6 +1174,13 @@ fn fb_method_called_locally() {
11711174
}
11721175
11731176
declare void @foo(%foo*)
1177+
1178+
define void @__user_init_foo(%foo* %0) {
1179+
entry:
1180+
%self = alloca %foo*, align 8
1181+
store %foo* %0, %foo** %self, align 8
1182+
ret void
1183+
}
11741184
; ModuleID = '__init___testproject'
11751185
source_filename = "__init___testproject"
11761186
@@ -1257,13 +1267,16 @@ fn fb_local_method_var_shadows_parent_var() {
12571267
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %0, i8* align 1 bitcast (%foo* @__foo__init to i8*), i64 ptrtoint (%foo* getelementptr (%foo, %foo* null, i32 1) to i64), i1 false)
12581268
store i32 0, i32* %x, align 4
12591269
call void @__init_foo(%foo* %fb)
1270+
call void @__user_init_foo(%foo* %fb)
12601271
%call = call i32 @foo.addToBar(%foo* %fb, i16 3)
12611272
store i32 %call, i32* %x, align 4
12621273
ret void
12631274
}
12641275
12651276
declare void @__init_foo(%foo*)
12661277
1278+
declare void @__user_init_foo(%foo*)
1279+
12671280
; Function Attrs: argmemonly nofree nounwind willreturn
12681281
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #0
12691282
@@ -1283,6 +1296,13 @@ fn fb_local_method_var_shadows_parent_var() {
12831296
}
12841297
12851298
declare void @foo(%foo*)
1299+
1300+
define void @__user_init_foo(%foo* %0) {
1301+
entry:
1302+
%self = alloca %foo*, align 8
1303+
store %foo* %0, %foo** %self, align 8
1304+
ret void
1305+
}
12861306
; ModuleID = '__init___testproject'
12871307
source_filename = "__init___testproject"
12881308
@@ -1379,6 +1399,13 @@ fn prog_method_called_locally() {
13791399
}
13801400
13811401
declare void @foo(%foo*)
1402+
1403+
define void @__user_init_foo(%foo* %0) {
1404+
entry:
1405+
%self = alloca %foo*, align 8
1406+
store %foo* %0, %foo** %self, align 8
1407+
ret void
1408+
}
13821409
; ModuleID = '__init___testproject'
13831410
source_filename = "__init___testproject"
13841411
@@ -1390,12 +1417,15 @@ fn prog_method_called_locally() {
13901417
define void @__init___testproject() {
13911418
entry:
13921419
call void @__init_foo(%foo* @foo_instance)
1420+
call void @__user_init_foo(%foo* @foo_instance)
13931421
ret void
13941422
}
13951423
13961424
declare void @__init_foo(%foo*)
13971425
13981426
declare void @foo(%foo*)
1427+
1428+
declare void @__user_init_foo(%foo*)
13991429
"#)
14001430
}
14011431

@@ -1487,6 +1517,13 @@ fn prog_local_method_var_shadows_parent_var() {
14871517
}
14881518
14891519
declare void @foo(%foo*)
1520+
1521+
define void @__user_init_foo(%foo* %0) {
1522+
entry:
1523+
%self = alloca %foo*, align 8
1524+
store %foo* %0, %foo** %self, align 8
1525+
ret void
1526+
}
14901527
; ModuleID = '__init___testproject'
14911528
source_filename = "__init___testproject"
14921529
@@ -1498,12 +1535,15 @@ fn prog_local_method_var_shadows_parent_var() {
14981535
define void @__init___testproject() {
14991536
entry:
15001537
call void @__init_foo(%foo* @foo_instance)
1538+
call void @__user_init_foo(%foo* @foo_instance)
15011539
ret void
15021540
}
15031541
15041542
declare void @__init_foo(%foo*)
15051543
15061544
declare void @foo(%foo*)
1545+
1546+
declare void @__user_init_foo(%foo*)
15071547
"#)
15081548
}
15091549

@@ -1780,6 +1820,13 @@ fn for_statement_with_binary_expressions() {
17801820
}
17811821
17821822
declare void @prg(%prg*)
1823+
1824+
define void @__user_init_prg(%prg* %0) {
1825+
entry:
1826+
%self = alloca %prg*, align 8
1827+
store %prg* %0, %prg** %self, align 8
1828+
ret void
1829+
}
17831830
; ModuleID = '__init___testproject'
17841831
source_filename = "__init___testproject"
17851832
@@ -1791,12 +1838,15 @@ fn for_statement_with_binary_expressions() {
17911838
define void @__init___testproject() {
17921839
entry:
17931840
call void @__init_prg(%prg* @prg_instance)
1841+
call void @__user_init_prg(%prg* @prg_instance)
17941842
ret void
17951843
}
17961844
17971845
declare void @__init_prg(%prg*)
17981846
17991847
declare void @prg(%prg*)
1848+
1849+
declare void @__user_init_prg(%prg*)
18001850
"#);
18011851
}
18021852

@@ -4177,6 +4227,20 @@ fn variables_in_var_external_block_are_not_generated() {
41774227
}
41784228
41794229
declare void @qux(%qux*)
4230+
4231+
define void @__user_init_bar(%bar* %0) {
4232+
entry:
4233+
%self = alloca %bar*, align 8
4234+
store %bar* %0, %bar** %self, align 8
4235+
ret void
4236+
}
4237+
4238+
define void @__user_init_baz(%baz* %0) {
4239+
entry:
4240+
%self = alloca %baz*, align 8
4241+
store %baz* %0, %baz** %self, align 8
4242+
ret void
4243+
}
41804244
; ModuleID = '__init___testproject'
41814245
source_filename = "__init___testproject"
41824246
@@ -4188,12 +4252,15 @@ fn variables_in_var_external_block_are_not_generated() {
41884252
define void @__init___testproject() {
41894253
entry:
41904254
call void @__init_baz(%baz* @baz_instance)
4255+
call void @__user_init_baz(%baz* @baz_instance)
41914256
ret void
41924257
}
41934258
41944259
declare void @__init_baz(%baz*)
41954260
41964261
declare void @baz(%baz*)
4262+
4263+
declare void @__user_init_baz(%baz*)
41974264
"#);
41984265
}
41994266

0 commit comments

Comments
 (0)