aboutsummaryrefslogtreecommitdiff
path: root/tests/sysy_lvX/084_side_effect.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/084_side_effect.sy
downloadrcc-master.tar.gz
rcc-master.tar.xz
Set up a git repoHEADmaster
Diffstat (limited to 'tests/sysy_lvX/084_side_effect.sy')
-rw-r--r--tests/sysy_lvX/084_side_effect.sy29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/sysy_lvX/084_side_effect.sy b/tests/sysy_lvX/084_side_effect.sy
new file mode 100644
index 0000000..064b67e
--- /dev/null
+++ b/tests/sysy_lvX/084_side_effect.sy
@@ -0,0 +1,29 @@
+
+int a = -1, b = 1;
+
+int inc_a()
+{
+ int b = a;
+ b = b + 1;
+ a = b;
+ return a;
+}
+
+int main()
+{
+ int k = 5;
+ while (k >= 0) {
+ if (inc_a() && inc_a() && inc_a()) {
+ putint(a); putch(32); putint(b); putch(10);
+ }
+ if (inc_a() < 14 || inc_a() && inc_a() - inc_a() + 1) {
+ putint(a); putch(10);
+ b = b * 2;
+ } else {
+ inc_a();
+ }
+ k = k - 1;
+ }
+ putint(a); putch(32); putint(b); putch(10);
+ return a;
+}