aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaius Mulley <gaiusmod2@gmail.com>2024-05-03 20:48:01 +0100
committerGaius Mulley <gaiusmod2@gmail.com>2024-05-03 20:48:01 +0100
commitc943d7b5c40f447b12431df9ad27a47dad95026d (patch)
treedfc3723313aab8caa3ab3d428a168a64b92735a2
parentcb5d904c775ed7172f8dd7565ec7f5395503d06f (diff)
downloadgcc-c943d7b5c40f447b12431df9ad27a47dad95026d.zip
gcc-c943d7b5c40f447b12431df9ad27a47dad95026d.tar.gz
gcc-c943d7b5c40f447b12431df9ad27a47dad95026d.tar.bz2
PR modula2/114929 extra for loop iteration count regression tests
This patch introduces three more for loop tests checking the iteration count using the CHAR and enumeration data types. gcc/testsuite/ChangeLog: PR modula2/114929 * gm2/pim/run/pass/testforloopchar.mod: New test. * gm2/pim/run/pass/testforloopchar2.mod: New test. * gm2/pim/run/pass/testforloopenum.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
-rw-r--r--gcc/testsuite/gm2/pim/run/pass/testforloopchar.mod27
-rw-r--r--gcc/testsuite/gm2/pim/run/pass/testforloopchar2.mod27
-rw-r--r--gcc/testsuite/gm2/pim/run/pass/testforloopenum.mod30
3 files changed, 84 insertions, 0 deletions
diff --git a/gcc/testsuite/gm2/pim/run/pass/testforloopchar.mod b/gcc/testsuite/gm2/pim/run/pass/testforloopchar.mod
new file mode 100644
index 0000000..be26ecb
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/run/pass/testforloopchar.mod
@@ -0,0 +1,27 @@
+MODULE testforloopchar ;
+
+FROM libc IMPORT printf, exit ;
+
+PROCEDURE test ;
+VAR
+ ch : CHAR ;
+ count: CARDINAL ;
+BEGIN
+ count := 0 ;
+ FOR ch := 'a' TO 'z' DO
+ INC (count) ;
+ printf ("ch = %c, count = %d\n", ch, count)
+ END ;
+ IF count = 26
+ THEN
+ printf ("passed\n")
+ ELSE
+ printf ("failed\n") ;
+ exit (1)
+ END
+END test ;
+
+
+BEGIN
+ test
+END testforloopchar.
diff --git a/gcc/testsuite/gm2/pim/run/pass/testforloopchar2.mod b/gcc/testsuite/gm2/pim/run/pass/testforloopchar2.mod
new file mode 100644
index 0000000..05478b2
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/run/pass/testforloopchar2.mod
@@ -0,0 +1,27 @@
+MODULE testforloopchar2 ;
+
+FROM libc IMPORT printf, exit ;
+
+PROCEDURE test ;
+VAR
+ ch : CHAR ;
+ count: CARDINAL ;
+BEGIN
+ count := 0 ;
+ FOR ch := 'a' TO 'z' BY CHR (2) DO
+ INC (count) ;
+ printf ("ch = %c, count = %d\n", ch, count)
+ END ;
+ IF count = 13
+ THEN
+ printf ("passed\n")
+ ELSE
+ printf ("failed\n") ;
+ exit (1)
+ END
+END test ;
+
+
+BEGIN
+ test
+END testforloopchar2.
diff --git a/gcc/testsuite/gm2/pim/run/pass/testforloopenum.mod b/gcc/testsuite/gm2/pim/run/pass/testforloopenum.mod
new file mode 100644
index 0000000..3855cae
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/run/pass/testforloopenum.mod
@@ -0,0 +1,30 @@
+MODULE testforloopenum ;
+
+FROM libc IMPORT printf, exit ;
+
+TYPE
+ colour = (red, green, blue, yellow) ;
+
+PROCEDURE test ;
+VAR
+ c : colour ;
+ count: CARDINAL ;
+BEGIN
+ count := 0 ;
+ FOR c := red TO blue BY colour (2) DO
+ INC (count) ;
+ printf ("c = %d, count = %d\n", c, count)
+ END ;
+ IF count = 2
+ THEN
+ printf ("passed\n")
+ ELSE
+ printf ("failed\n") ;
+ exit (1)
+ END
+END test ;
+
+
+BEGIN
+ test
+END testforloopenum.