aboutsummaryrefslogtreecommitdiff
path: root/tests/sysy_lvX/109_many_params2.sy
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.001@gmail.com>2026-09-15 08:16:43 +0800
committerRichard Qin <richard.qin.001@gmail.com>2026-09-15 08:16:43 +0800
commit4022e5c95210631e4aceb08eaf9d9071aa5aefc4 (patch)
treea5922559836e45fb3459a3d070367912e1035b1a /tests/sysy_lvX/109_many_params2.sy
downloadrcc-master.tar.gz
rcc-master.tar.xz
Set up a git repoHEADmaster
Diffstat (limited to 'tests/sysy_lvX/109_many_params2.sy')
-rw-r--r--tests/sysy_lvX/109_many_params2.sy48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/sysy_lvX/109_many_params2.sy b/tests/sysy_lvX/109_many_params2.sy
new file mode 100644
index 0000000..c108de4
--- /dev/null
+++ b/tests/sysy_lvX/109_many_params2.sy
@@ -0,0 +1,48 @@
+
+int func(int a, int b[][59], int c, int d[], int e, int f, int g[], int h, int i)
+{
+ int index = 0;
+ while (index < 10) {
+ putint(b[a][index]);
+ index = index + 1;
+ }
+ putch(10);
+
+ putint(d[c]);
+ putch(10);
+
+ while (i < 10) {
+ g[i] = h * 128875 % 3724;
+ i = i + 1;
+ h = h + 7;
+ }
+
+ return e + f;
+}
+
+int main()
+{
+ int a[61][67] = {};
+ int b[53][59] = {};
+
+ a[17][1] = 6;
+ a[17][3] = 7;
+ a[17][4] = 4;
+ a[17][7] = 9;
+ a[17][11] = 11;
+
+ b[6][1] = 1;
+ b[6][2] = 2;
+ b[6][3] = 3;
+ b[6][9] = 9;
+
+ int ret;
+ ret = func(a[17][1], b, a[17][3], a[17], b[6][3], b[6][0], b[6], b[34][4], b[51][18]) * 3;
+
+ while (ret >= 0) {
+ putint(b[6][ret]); putch(32);
+ ret = ret - 1;
+ }
+ putch(10);
+ return 0;
+}