mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
a68: testsuite: execution tests 2/2
Signed-off-by: Jose E. Marchesi <jemarch@gnu.org> gcc/testsuite/ChangeLog * algol68/execute/loop-7.a68: New file. * algol68/execute/loop-8.a68: Likewise. * algol68/execute/loop-9.a68: Likewise. * algol68/execute/loop-overflow-underflow.a68: Likewise. * algol68/execute/lt-int-1.a68: Likewise. * algol68/execute/lt-string-stride-1.a68: Likewise. * algol68/execute/lwb-1.a68: Likewise. * algol68/execute/minus-int-1.a68: Likewise. * algol68/execute/minusab-1.a68: Likewise. * algol68/execute/minusab-2.a68: Likewise. * algol68/execute/minusab-3.a68: Likewise. * algol68/execute/minusab-4.a68: Likewise. * algol68/execute/mod-int-1.a68: Likewise. * algol68/execute/modab-1.a68: Likewise. * algol68/execute/modab-2.a68: Likewise. * algol68/execute/mode-indication-1.a68: Likewise. * algol68/execute/mult-char-1.a68: Likewise. * algol68/execute/mult-int-1.a68: Likewise. * algol68/execute/mult-string-1.a68: Likewise. * algol68/execute/mult-string-2.a68: Likewise. * algol68/execute/mult-string-3.a68: Likewise. * algol68/execute/mult-string-4.a68: Likewise. * algol68/execute/multab-1.a68: Likewise. * algol68/execute/multab-2.a68: Likewise. * algol68/execute/multab-3.a68: Likewise. * algol68/execute/mutual-recursion-1.a68: Likewise. * algol68/execute/ne-bits-1.a68: Likewise. * algol68/execute/ne-char-char-1.a68: Likewise. * algol68/execute/ne-int-1.a68: Likewise. * algol68/execute/ne-string-1.a68: Likewise. * algol68/execute/neg-int-1.a68: Likewise. * algol68/execute/not-bits-1.a68: Likewise. * algol68/execute/odd-1.a68: Likewise. * algol68/execute/op-1.a68: Likewise. * algol68/execute/op-2.a68: Likewise. * algol68/execute/op-3.a68: Likewise. * algol68/execute/operator-declaration-1.a68: Likewise. * algol68/execute/or-bits-1.a68: Likewise. * algol68/execute/orf-1.a68: Likewise. * algol68/execute/over-int-1.a68: Likewise. * algol68/execute/overab-1.a68: Likewise. * algol68/execute/overab-2.a68: Likewise. * algol68/execute/particular-program-1.a68: Likewise. * algol68/execute/plus-char-1.a68: Likewise. * algol68/execute/plus-int-1.a68: Likewise. * algol68/execute/plus-string-1.a68: Likewise. * algol68/execute/plus-string-2.a68: Likewise. * algol68/execute/plus-string-stride-1.a68: Likewise. * algol68/execute/plusab-1.a68: Likewise. * algol68/execute/plusab-2.a68: Likewise. * algol68/execute/plusab-3.a68: Likewise. * algol68/execute/plusab-4.a68: Likewise. * algol68/execute/plusab-string-1.a68: Likewise. * algol68/execute/plusto-char-1.a68: Likewise. * algol68/execute/plusto-string-1.a68: Likewise. * algol68/execute/posix-argc-argv-1.a68: Likewise. * algol68/execute/posix-fopen-1.a68: Likewise. * algol68/execute/posix-fputc-fputs-1.a68: Likewise. * algol68/execute/posix-getenv-1.a68: Likewise. * algol68/execute/posix-perror-1.a68: Likewise. * algol68/execute/posix-putchar-1.a68: Likewise. * algol68/execute/posix-stdinouterr-1.a68: Likewise. * algol68/execute/posix-strerror-1.a68: Likewise. * algol68/execute/posix-stride-1.a68: Likewise. * algol68/execute/pow-int-1.a68: Likewise. * algol68/execute/pow-real-1.a68: Likewise. * algol68/execute/proc-1.a68: Likewise. * algol68/execute/proc-10.a68: Likewise. * algol68/execute/proc-12.a68: Likewise. * algol68/execute/proc-13.a68: Likewise. * algol68/execute/proc-14.a68: Likewise. * algol68/execute/proc-15.a68: Likewise. * algol68/execute/proc-16.a68: Likewise. * algol68/execute/proc-17.a68: Likewise. * algol68/execute/proc-18.a68: Likewise. * algol68/execute/proc-19.a68: Likewise. * algol68/execute/proc-2.a68: Likewise. * algol68/execute/proc-20.a68: Likewise. * algol68/execute/proc-21.a68: Likewise. * algol68/execute/proc-22.a68: Likewise. * algol68/execute/proc-23.a68: Likewise. * algol68/execute/proc-25.a68: Likewise. * algol68/execute/proc-26.a68: Likewise. * algol68/execute/proc-27.a68: Likewise. * algol68/execute/proc-28.a68: Likewise. * algol68/execute/proc-29.a68: Likewise. * algol68/execute/proc-3.a68: Likewise. * algol68/execute/proc-4.a68: Likewise. * algol68/execute/proc-5.a68: Likewise. * algol68/execute/proc-6.a68: Likewise. * algol68/execute/proc-7.a68: Likewise. * algol68/execute/proc-8.a68: Likewise. * algol68/execute/procedured-goto-1.a68: Likewise. * algol68/execute/quine.a68: Likewise. * algol68/execute/random-1.a68: Likewise. * algol68/execute/re-im-1.a68: Likewise. * algol68/execute/rela-string-1.a68: Likewise. * algol68/execute/repr-1.a68: Likewise. * algol68/execute/round-1.a68: Likewise. * algol68/execute/row-display-1.a68: Likewise. * algol68/execute/row-display-2.a68: Likewise. * algol68/execute/row-display-3.a68: Likewise. * algol68/execute/row-display-4.a68: Likewise. * algol68/execute/row-display-5.a68: Likewise. * algol68/execute/rowing-1.a68: Likewise. * algol68/execute/rowing-10.a68: Likewise. * algol68/execute/rowing-11.a68: Likewise. * algol68/execute/rowing-12.a68: Likewise. * algol68/execute/rowing-13.a68: Likewise. * algol68/execute/rowing-2.a68: Likewise. * algol68/execute/rowing-3.a68: Likewise. * algol68/execute/rowing-4.a68: Likewise. * algol68/execute/rowing-5.a68: Likewise. * algol68/execute/rowing-6.a68: Likewise. * algol68/execute/rowing-7.a68: Likewise. * algol68/execute/rowing-8.a68: Likewise. * algol68/execute/rowing-9.a68: Likewise. * algol68/execute/selection-1.a68: Likewise. * algol68/execute/selection-2.a68: Likewise. * algol68/execute/selection-3.a68: Likewise. * algol68/execute/selection-4.a68: Likewise. * algol68/execute/selection-5.a68: Likewise. * algol68/execute/selection-multiple-1.a68: Likewise. * algol68/execute/selection-multiple-2.a68: Likewise. * algol68/execute/serial-clause-1.a68: Likewise. * algol68/execute/serial-clause-10.a68: Likewise. * algol68/execute/serial-clause-2.a68: Likewise. * algol68/execute/serial-clause-3.a68: Likewise. * algol68/execute/serial-clause-4.a68: Likewise. * algol68/execute/serial-clause-5.a68: Likewise. * algol68/execute/serial-clause-6.a68: Likewise. * algol68/execute/serial-clause-7.a68: Likewise. * algol68/execute/serial-clause-8.a68: Likewise. * algol68/execute/serial-clause-9.a68: Likewise. * algol68/execute/serial-dsa-1.a68: Likewise. * algol68/execute/serial-dsa-2.a68: Likewise. * algol68/execute/serial-dsa-3.a68: Likewise. * algol68/execute/serial-dsa-4.a68: Likewise. * algol68/execute/serial-dsa-5.a68: Likewise. * algol68/execute/serial-dsa-6.a68: Likewise. * algol68/execute/sign-int-1.a68: Likewise. * algol68/execute/sign-real-1.a68: Likewise. * algol68/execute/sin-1.a68: Likewise. * algol68/execute/skip-1.a68: Likewise. * algol68/execute/skip-2.a68: Likewise. * algol68/execute/skip-struct-1.a68: Likewise. * algol68/execute/slice-indexing-1.a68: Likewise. * algol68/execute/slice-indexing-2.a68: Likewise. * algol68/execute/slice-indexing-3.a68: Likewise. * algol68/execute/slice-indexing-4.a68: Likewise. * algol68/execute/slice-indexing-5.a68: Likewise. * algol68/execute/slice-indexing-6.a68: Likewise. * algol68/execute/slice-indexing-7.a68: Likewise. * algol68/execute/sqrt-1.a68: Likewise. * algol68/execute/string-1.a68: Likewise. * algol68/execute/string-2.a68: Likewise. * algol68/execute/string-4.a68: Likewise. * algol68/execute/string-break-1.a68: Likewise. * algol68/execute/struct-self-1.a68: Likewise. * algol68/execute/struct-self-2.a68: Likewise. * algol68/execute/struct-self-3.a68: Likewise. * algol68/execute/structure-display-1.a68: Likewise. * algol68/execute/structure-display-2.a68: Likewise. * algol68/execute/structure-display-3.a68: Likewise. * algol68/execute/structure-display-4.a68: Likewise. * algol68/execute/structure-display-5.a68: Likewise. * algol68/execute/tan-1.a68: Likewise. * algol68/execute/timesab-string-1.a68: Likewise. * algol68/execute/trimmer-1.a68: Likewise. * algol68/execute/trimmer-10.a68: Likewise. * algol68/execute/trimmer-2.a68: Likewise. * algol68/execute/trimmer-3.a68: Likewise. * algol68/execute/trimmer-4.a68: Likewise. * algol68/execute/trimmer-5.a68: Likewise. * algol68/execute/trimmer-6.a68: Likewise. * algol68/execute/trimmer-7.a68: Likewise. * algol68/execute/trimmer-8.a68: Likewise. * algol68/execute/trimmer-9.a68: Likewise. * algol68/execute/trimmer-matrix-1.a68: Likewise. * algol68/execute/trimmer-matrix-2.a68: Likewise. * algol68/execute/trimmer-matrix-3.a68: Likewise. * algol68/execute/trimmer-matrix-4.a68: Likewise. * algol68/execute/trimmer-matrix-5.a68: Likewise. * algol68/execute/trimmer-matrix-6.a68: Likewise. * algol68/execute/trimmer-name-1.a68: Likewise. * algol68/execute/undefined-1.a68: Likewise. * algol68/execute/undefined-2.a68: Likewise. * algol68/execute/undefined-3.a68: Likewise. * algol68/execute/undefined-4.a68: Likewise. * algol68/execute/undefined-5.a68: Likewise. * algol68/execute/uniting-1.a68: Likewise. * algol68/execute/uniting-2.a68: Likewise. * algol68/execute/uniting-3.a68: Likewise. * algol68/execute/uniting-4.a68: Likewise. * algol68/execute/up-down-bits-1.a68: Likewise. * algol68/execute/upb-1.a68: Likewise. * algol68/execute/vacuum-1.a68: Likewise. * algol68/execute/variable-declaration-1.a68: Likewise. * algol68/execute/variable-declaration-2.a68: Likewise. * algol68/execute/variable-declaration-3.a68: Likewise. * algol68/execute/variable-declaration-4.a68: Likewise. * algol68/execute/variable-declaration-5.a68: Likewise. * algol68/execute/variable-declaration-6.a68: Likewise. * algol68/execute/variable-declaration-heap-1.a68: Likewise. * algol68/execute/variable-declaration-heap-2.a68: Likewise. * algol68/execute/variable-declaration-multiple-1.a68: Likewise. * algol68/execute/variable-declaration-multiple-2.a68: Likewise. * algol68/execute/variable-declaration-multiple-3.a68: Likewise. * algol68/execute/variable-declaration-multiple-4.a68: Likewise. * algol68/execute/variable-declaration-multiple-5.a68: Likewise. * algol68/execute/variable-declaration-multiple-6.a68: Likewise. * algol68/execute/variable-declaration-multiple-7.a68: Likewise. * algol68/execute/variable-declaration-multiple-8.a68: Likewise. * algol68/execute/variable-declaration-multiple-9.a68: Likewise. * algol68/execute/voiding-1.a68: Likewise. * algol68/execute/widening-1.a68: Likewise. * algol68/execute/widening-2.a68: Likewise. * algol68/execute/widening-bits-1.a68: Likewise. * algol68/execute/widening-bits-2.a68: Likewise. * algol68/execute/widening-bits-3.a68: Likewise. * algol68/execute/xor-bits-1.a68: Likewise. * algol68/execute/environment-enquiries-8.a68: Likewise.
This commit is contained in:
@@ -2,5 +2,5 @@
|
||||
BEGIN ASSERT (flip = "T");
|
||||
ASSERT (flop = "F");
|
||||
ASSERT (error char = "*");
|
||||
ASSERT (ABS invalid char = ABS 16rfffd)
|
||||
ASSERT (ABS replacement char = ABS 16rfffd)
|
||||
END
|
||||
|
||||
5
gcc/testsuite/algol68/execute/loop-7.a68
Normal file
5
gcc/testsuite/algol68/execute/loop-7.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i := 0, n := 5;
|
||||
TO n + 1 DO i +:= 1 OD;
|
||||
ASSERT (i = 6)
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/loop-8.a68
Normal file
5
gcc/testsuite/algol68/execute/loop-8.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i := 0, n := 2;
|
||||
FOR a TO n + 1 DO i +:= a OD;
|
||||
ASSERT (i = 1 + 2 + 3)
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/loop-9.a68
Normal file
5
gcc/testsuite/algol68/execute/loop-9.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i := 0, n := 2;
|
||||
FOR a FROM n TO n + 2 DO i +:= a OD;
|
||||
ASSERT (i = 2 + 3 + 4)
|
||||
END
|
||||
55
gcc/testsuite/algol68/execute/loop-overflow-underflow.a68
Normal file
55
gcc/testsuite/algol68/execute/loop-overflow-underflow.a68
Normal file
@@ -0,0 +1,55 @@
|
||||
{ Test for overflow/underflow in loops with implicit and explicit
|
||||
iterators. }
|
||||
|
||||
begin int count;
|
||||
|
||||
{ Overflow. }
|
||||
count := 0;
|
||||
by 1 while true do count +:= 1 od;
|
||||
assert (count = max_int);
|
||||
|
||||
count := 0;
|
||||
from max_int do count +:= 1 od;
|
||||
assert (count = 1);
|
||||
count := 0;
|
||||
|
||||
by max_int do count +:= 1 od;
|
||||
assert (count = 1);
|
||||
|
||||
count := 0;
|
||||
for i by max_int do count +:= 1 od;
|
||||
assert (count = 1);
|
||||
|
||||
count := 0;
|
||||
by max_int % 2 do count +:= 1 od;
|
||||
assert (count = 3);
|
||||
|
||||
count := 0;
|
||||
by max_int - 1 do count +:= 1 od;
|
||||
assert (count = 2);
|
||||
|
||||
{ Underflow. }
|
||||
count := 0;
|
||||
by -1 while true do count +:= 1 od;
|
||||
assert (count = -min_int + 2);
|
||||
|
||||
count := 0;
|
||||
from min_int by -1 do count +:= 1 od;
|
||||
assert (count = 1);
|
||||
count := 0;
|
||||
|
||||
by min_int do count +:= 1 od;
|
||||
assert (count = 2);
|
||||
|
||||
count := 0;
|
||||
for i by min_int do count +:= 1 od;
|
||||
assert (count = 2);
|
||||
|
||||
count := 0;
|
||||
by min_int % 2 do count +:= 1 od;
|
||||
assert (count = 3);
|
||||
|
||||
count := 0;
|
||||
by min_int + 1 do count +:= 1 od;
|
||||
assert (count = 2)
|
||||
end
|
||||
10
gcc/testsuite/algol68/execute/lt-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/lt-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 12;
|
||||
LONG INT ii = LONG 12, LONG LONG INT iii = LONG LONG 12;
|
||||
SHORT INT s = SHORT 12, SHORT SHORT INT ss = SHORT SHORT 12;
|
||||
ASSERT (i < 13);
|
||||
ASSERT (ii LT LONG 13);
|
||||
ASSERT (iii < LONG LONG 13);
|
||||
ASSERT (s < SHORT 13);
|
||||
ASSERT (ss < SHORT SHORT 13)
|
||||
END
|
||||
7
gcc/testsuite/algol68/execute/lt-string-stride-1.a68
Normal file
7
gcc/testsuite/algol68/execute/lt-string-stride-1.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN [,]CHAR matrix = (("1", "Z", "1"),
|
||||
("4", "Y", "4"),
|
||||
("7", "X", "9"));
|
||||
ASSERT (matrix[1:3,1] < matrix[1:3,3]);
|
||||
ASSERT (("1","4","0") < matrix[1:3,3])
|
||||
END
|
||||
6
gcc/testsuite/algol68/execute/lwb-1.a68
Normal file
6
gcc/testsuite/algol68/execute/lwb-1.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT (LWB "foo" = 1);
|
||||
ASSERT (LWB "" = 1);
|
||||
ASSERT (1 LWB "foo" = 1);
|
||||
ASSERT (1 LWB "" = 1)
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/minus-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/minus-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 10;
|
||||
LONG INT ii = LONG 10, LONG LONG INT iii = LONG LONG 10;
|
||||
SHORT INT ss = SHORT 10, SHORT SHORT INT sss = SHORT SHORT 10;
|
||||
ASSERT (i - 2 = 8);
|
||||
ASSERT (ii - LONG 2 = LONG 8);
|
||||
ASSERT (iii - LONG LONG 2 = LONG LONG 8);
|
||||
ASSERT (ss - SHORT 2 = SHORT 8);
|
||||
ASSERT (sss - SHORT SHORT 2 = SHORT SHORT 8)
|
||||
END
|
||||
32
gcc/testsuite/algol68/execute/minusab-1.a68
Normal file
32
gcc/testsuite/algol68/execute/minusab-1.a68
Normal file
@@ -0,0 +1,32 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN BEGIN INT i := 10;
|
||||
i -:= 2;
|
||||
ASSERT (i = 8);
|
||||
i MINUSAB 2;
|
||||
ASSERT (i = 6)
|
||||
END;
|
||||
BEGIN LONG INT i := LONG 1000;
|
||||
i -:= LONG 100;
|
||||
ASSERT (i = LONG 900);
|
||||
i MINUSAB LONG 100;
|
||||
ASSERT (i = LONG 800)
|
||||
END;
|
||||
BEGIN LONG LONG INT i := LONG LONG 10000;
|
||||
i -:= LONG LONG 1000;
|
||||
ASSERT (i = LONG LONG 9000);
|
||||
i MINUSAB LONG LONG 1000;
|
||||
ASSERT (i = LONG LONG 8000)
|
||||
END;
|
||||
BEGIN SHORT INT i := SHORT 100;
|
||||
i -:= SHORT 10;
|
||||
ASSERT (i = SHORT 90);
|
||||
i MINUSAB SHORT 10;
|
||||
ASSERT (i = SHORT 80)
|
||||
END;
|
||||
BEGIN SHORT SHORT INT i := SHORT SHORT 10;
|
||||
i -:= SHORT SHORT 1;
|
||||
ASSERT (i = SHORT SHORT 9);
|
||||
i MINUSAB SHORT SHORT 2;
|
||||
ASSERT (i = SHORT SHORT 7)
|
||||
END
|
||||
END
|
||||
20
gcc/testsuite/algol68/execute/minusab-2.a68
Normal file
20
gcc/testsuite/algol68/execute/minusab-2.a68
Normal file
@@ -0,0 +1,20 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN BEGIN REAL i := 10.0;
|
||||
i -:= 2.0;
|
||||
ASSERT (i = 8.0);
|
||||
i MINUSAB 2.0;
|
||||
ASSERT (i = 6.0)
|
||||
END;
|
||||
BEGIN LONG REAL i := LONG 1000.0;
|
||||
i -:= LONG 100.0;
|
||||
ASSERT (i = LONG 900.0);
|
||||
i MINUSAB LONG 100.0;
|
||||
ASSERT (i = LONG 800.0)
|
||||
END;
|
||||
BEGIN LONG LONG REAL i := LONG LONG 10000.0;
|
||||
i -:= LONG LONG 1000.0;
|
||||
ASSERT (i = LONG LONG 9000.0);
|
||||
i MINUSAB LONG LONG 1000.0;
|
||||
ASSERT (i = LONG LONG 8000.0)
|
||||
END
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/minusab-3.a68
Normal file
5
gcc/testsuite/algol68/execute/minusab-3.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT n := 10;
|
||||
(((n -:= 1))) := 5;
|
||||
ASSERT (n = 5)
|
||||
END
|
||||
6
gcc/testsuite/algol68/execute/minusab-4.a68
Normal file
6
gcc/testsuite/algol68/execute/minusab-4.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT num ints := 10;
|
||||
num ints -:= 1;
|
||||
ASSERT (num ints = 9);
|
||||
ASSERT ((LOC INT -:= 12) = -12)
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/mod-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/mod-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 10;
|
||||
LONG INT ii = LONG 10, LONG LONG INT iii = LONG LONG 10;
|
||||
SHORT INT ss = SHORT 10, SHORT SHORT INT sss = SHORT SHORT 10;
|
||||
ASSERT (i %* 3 = 1);
|
||||
ASSERT (ii %* LONG 3 = LONG 1);
|
||||
ASSERT (iii %* LONG LONG 3 = LONG LONG 1);
|
||||
ASSERT (ss %* SHORT 3 = SHORT 1);
|
||||
ASSERT (sss MOD SHORT SHORT 3 = SHORT SHORT 1)
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/modab-1.a68
Normal file
10
gcc/testsuite/algol68/execute/modab-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN (SHORT SHORT INT i := SHORT SHORT 11; i MODAB SHORT SHORT 2; ASSERT (i = SHORT SHORT 1));
|
||||
(SHORT INT i := SHORT 11; i MODAB SHORT 2; ASSERT (i = SHORT 1));
|
||||
(INT i := 11; i MODAB 2; ASSERT (i = 1));
|
||||
(INT i := 11; i %*:= 2; ASSERT (i = 1));
|
||||
(LONG INT i := LONG 11; i MODAB LONG 2; ASSERT (i = LONG 1));
|
||||
(LONG INT i := LONG 11; i %*:= LONG 2; ASSERT (i = LONG 1));
|
||||
(LONG LONG INT i := LONG LONG 11; i MODAB LONG LONG 2; ASSERT (i = LONG LONG 1));
|
||||
(LONG LONG INT i := LONG LONG 11; i %*:= LONG LONG 2; ASSERT (i = LONG LONG 1))
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/modab-2.a68
Normal file
5
gcc/testsuite/algol68/execute/modab-2.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT n := 10;
|
||||
(((n MODAB 1))) := 5;
|
||||
ASSERT (n = 5)
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/mode-indication-1.a68
Normal file
10
gcc/testsuite/algol68/execute/mode-indication-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT j; REAL y;
|
||||
MODE R = REAL;
|
||||
BEGIN MODE R = INT;
|
||||
R i := j;
|
||||
SKIP
|
||||
END;
|
||||
R x := y;
|
||||
SKIP
|
||||
END
|
||||
7
gcc/testsuite/algol68/execute/modules/README
Normal file
7
gcc/testsuite/algol68/execute/modules/README
Normal file
@@ -0,0 +1,7 @@
|
||||
This directory contains tests that require using several packets.
|
||||
|
||||
Files named module*.a68 contain prelude packets, i.e. the definitions
|
||||
of one or more modules. These are to be referred within test programs
|
||||
using dg-modules.
|
||||
|
||||
Each program*.a68 file is a testcase.
|
||||
42
gcc/testsuite/algol68/execute/modules/execute.exp
Normal file
42
gcc/testsuite/algol68/execute/modules/execute.exp
Normal file
@@ -0,0 +1,42 @@
|
||||
# Copyright (C) 2024 Free Software Foundation, Inc.
|
||||
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GCC; see the file COPYING3. If not see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Execute tests, torture testing.
|
||||
|
||||
if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
load_lib algol68-torture.exp
|
||||
load_lib torture-options.exp
|
||||
|
||||
torture-init
|
||||
set-torture-options $TORTURE_OPTIONS
|
||||
|
||||
# The programs need to be able to find the built modules, which are
|
||||
# left in objdir.
|
||||
global BUILT_MODULES_DIR
|
||||
set BUILT_MODULES_DIR "$objdir"
|
||||
|
||||
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/program-*.a68]] {
|
||||
# If we're only testing specific files and this isn't one of them, skip it.
|
||||
if ![runtest_file_p $runtests $testcase] then {
|
||||
continue
|
||||
}
|
||||
algol68-torture-execute $testcase
|
||||
set algol68_compile_args ""
|
||||
}
|
||||
|
||||
torture-finish
|
||||
9
gcc/testsuite/algol68/execute/modules/module1.a68
Normal file
9
gcc/testsuite/algol68/execute/modules/module1.a68
Normal file
@@ -0,0 +1,9 @@
|
||||
module Module1 =
|
||||
def
|
||||
pub mode MyInt = int;
|
||||
pub int beast_number := 666;
|
||||
pub string who = "jemarch";
|
||||
puts ("Hello from module'n")
|
||||
postlude
|
||||
puts ("Bye from module'n")
|
||||
fed
|
||||
7
gcc/testsuite/algol68/execute/modules/module10.a68
Normal file
7
gcc/testsuite/algol68/execute/modules/module10.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
module Module10 =
|
||||
access Module9, Module3
|
||||
def int je = foo;
|
||||
prio QUUX = 9;
|
||||
pub Lala bar = (bump; getcounter); {11}
|
||||
skip
|
||||
fed
|
||||
11
gcc/testsuite/algol68/execute/modules/module11.a68
Normal file
11
gcc/testsuite/algol68/execute/modules/module11.a68
Normal file
@@ -0,0 +1,11 @@
|
||||
{ Mixing module texts with revelations and without revelations. }
|
||||
|
||||
module Module11 =
|
||||
access Module1, Module3
|
||||
def pub proc someproc = (int a, b) int: a + b;
|
||||
skip
|
||||
postlude
|
||||
skip
|
||||
fed,
|
||||
Foo = def skip postlude skip fed,
|
||||
Bar = def skip fed
|
||||
5
gcc/testsuite/algol68/execute/modules/module12.a68
Normal file
5
gcc/testsuite/algol68/execute/modules/module12.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
module Module_12 =
|
||||
def pub proc foo = (proc(int,string)void cb, int a) void: cb (a, "Foo");
|
||||
pub proc bar = (real r) void: skip;
|
||||
skip
|
||||
fed
|
||||
5
gcc/testsuite/algol68/execute/modules/module13.a68
Normal file
5
gcc/testsuite/algol68/execute/modules/module13.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
module Module_13 =
|
||||
def
|
||||
pub mode JSON_Val = struct (int i);
|
||||
skip
|
||||
fed
|
||||
5
gcc/testsuite/algol68/execute/modules/module14.a68
Normal file
5
gcc/testsuite/algol68/execute/modules/module14.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
module Module14 =
|
||||
access Module13
|
||||
def pub proc getval = JSON_Val: skip;
|
||||
skip
|
||||
fed
|
||||
8
gcc/testsuite/algol68/execute/modules/module15.a68
Normal file
8
gcc/testsuite/algol68/execute/modules/module15.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
module Module15 =
|
||||
access Module13, Module14
|
||||
def pub proc foo = int:
|
||||
begin JSON_Val val = getval;
|
||||
i of val
|
||||
end;
|
||||
skip
|
||||
fed
|
||||
8
gcc/testsuite/algol68/execute/modules/module16.a68
Normal file
8
gcc/testsuite/algol68/execute/modules/module16.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
module Module_16 =
|
||||
def
|
||||
pub int counter;
|
||||
skip
|
||||
postlude
|
||||
assert (counter = 666);
|
||||
skip
|
||||
fed
|
||||
13
gcc/testsuite/algol68/execute/modules/module17.a68
Normal file
13
gcc/testsuite/algol68/execute/modules/module17.a68
Normal file
@@ -0,0 +1,13 @@
|
||||
module Module =
|
||||
def
|
||||
pub int ce_port;
|
||||
pub string ce_host;
|
||||
|
||||
pub proc ce_connect = void:
|
||||
myconnect (ce_host, ce_port);
|
||||
|
||||
proc myconnect = (string host, int port) void:
|
||||
skip;
|
||||
|
||||
skip
|
||||
fed
|
||||
11
gcc/testsuite/algol68/execute/modules/module3.a68
Normal file
11
gcc/testsuite/algol68/execute/modules/module3.a68
Normal file
@@ -0,0 +1,11 @@
|
||||
module Module_3 =
|
||||
def
|
||||
{ variable = 0 in_proc = 1 } pub proc bump = void: counter +:= 1;
|
||||
{ variable = 0 in_proc = 1 } pub proc bumptimes = (int n) void: to n do bump od;
|
||||
{ variable = 1 in_proc = 0 } pub proc vbump := void: counter +:= 1;
|
||||
{ variable = 1 in_proc = 0 } pub proc vbumptimes := (int n) void: to n do vbump od;
|
||||
{ variable = 0 in_proc = 1 } pub proc getcounter = int: counter;
|
||||
{ variable = 0 in_proc = 0 } pub proc int anothergetcounter = getcounter;
|
||||
int counter := 10;
|
||||
skip
|
||||
fed
|
||||
4
gcc/testsuite/algol68/execute/modules/module4.a68
Normal file
4
gcc/testsuite/algol68/execute/modules/module4.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
module Module_4 =
|
||||
def pub int ten = 10;
|
||||
skip
|
||||
fed
|
||||
7
gcc/testsuite/algol68/execute/modules/module5.a68
Normal file
7
gcc/testsuite/algol68/execute/modules/module5.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
module Module_5 =
|
||||
def pub prio // = 9;
|
||||
pub op // = (int a, b) int: a + b;
|
||||
pub prio LALA = 9;
|
||||
pub op LALA = (int a, b) int: a - b;
|
||||
skip
|
||||
fed
|
||||
5
gcc/testsuite/algol68/execute/modules/module6.a68
Normal file
5
gcc/testsuite/algol68/execute/modules/module6.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
module Module_6 =
|
||||
def prio // = 9; { Note priority is not publicized. }
|
||||
pub op // = (int a, b) int: a + b;
|
||||
skip
|
||||
fed
|
||||
10
gcc/testsuite/algol68/execute/modules/module7.a68
Normal file
10
gcc/testsuite/algol68/execute/modules/module7.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
{ This module exports an operator defined in a non-brief operator
|
||||
declaration. This means the exported symbol is a pointer to a
|
||||
function and shall be indirected on the accessing side. }
|
||||
|
||||
module Module_7 =
|
||||
def pub prio MINUS = 9;
|
||||
pub op (int,int)int MINUS = minus;
|
||||
proc minus = (int a, b) int: a - b;
|
||||
skip
|
||||
fed
|
||||
9
gcc/testsuite/algol68/execute/modules/module8.a68
Normal file
9
gcc/testsuite/algol68/execute/modules/module8.a68
Normal file
@@ -0,0 +1,9 @@
|
||||
module Module_8 =
|
||||
access Module_1, Module_4
|
||||
def
|
||||
pub proc checks = void:
|
||||
begin assert (ten = 10);
|
||||
assert (beast_number = 666)
|
||||
end;
|
||||
skip
|
||||
fed
|
||||
8
gcc/testsuite/algol68/execute/modules/module9.a68
Normal file
8
gcc/testsuite/algol68/execute/modules/module9.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
module Module9 =
|
||||
def pub int foo = 10;
|
||||
pub prio // = 9;
|
||||
pub op QUUX = (int a, b) int: a + b;
|
||||
prio QUUX = 9;
|
||||
pub mode Lala = int;
|
||||
skip
|
||||
fed
|
||||
20
gcc/testsuite/algol68/execute/modules/program-1.a68
Normal file
20
gcc/testsuite/algol68/execute/modules/program-1.a68
Normal file
@@ -0,0 +1,20 @@
|
||||
{ dg-modules "module1" }
|
||||
|
||||
begin string je = access Module1 begin who end;
|
||||
string ju = access Module1 ( who );
|
||||
string ji = access Module1 if true then who else who fi;
|
||||
string ja = access Module1 (true | who | who);
|
||||
string aa = access Module1 case 1 in who, "no" esac;
|
||||
mode United = union (void,int);
|
||||
string bb = access Module1 case United (10) in (int): who esac;
|
||||
string cc = access Module1 (1 | who, "no");
|
||||
assert (je = "jemarch");
|
||||
assert (ju = "jemarch");
|
||||
assert (ji = "jemarch");
|
||||
assert (ja = "jemarch");
|
||||
assert (aa = "jemarch");
|
||||
assert (bb = "jemarch");
|
||||
assert (cc = "jemarch");
|
||||
access Module1 to 1 do assert (who = "jemarch") od;
|
||||
access Module1 (assert (beast_number = 666))
|
||||
end
|
||||
6
gcc/testsuite/algol68/execute/modules/program-10.a68
Normal file
6
gcc/testsuite/algol68/execute/modules/program-10.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
{ dg-modules "module3 module9 module10" }
|
||||
|
||||
access Module10
|
||||
begin int x = 11;
|
||||
assert (x = bar)
|
||||
end
|
||||
3
gcc/testsuite/algol68/execute/modules/program-11.a68
Normal file
3
gcc/testsuite/algol68/execute/modules/program-11.a68
Normal file
@@ -0,0 +1,3 @@
|
||||
{ dg-modules "module1 module3 module11" }
|
||||
|
||||
access Module11 ( assert (someproc (2, 3) = 5))
|
||||
6
gcc/testsuite/algol68/execute/modules/program-12.a68
Normal file
6
gcc/testsuite/algol68/execute/modules/program-12.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
{ dg-modules "module12" }
|
||||
|
||||
access Module_12
|
||||
begin proc lala = (int n, string s) void: skip;
|
||||
foo (lala, 10)
|
||||
end
|
||||
3
gcc/testsuite/algol68/execute/modules/program-15.a68
Normal file
3
gcc/testsuite/algol68/execute/modules/program-15.a68
Normal file
@@ -0,0 +1,3 @@
|
||||
{ dg-modules "module13 module14 module15" }
|
||||
|
||||
access Module15 (assert (foo = 0))
|
||||
8
gcc/testsuite/algol68/execute/modules/program-16.a68
Normal file
8
gcc/testsuite/algol68/execute/modules/program-16.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
{ dg-modules module16 }
|
||||
|
||||
access Module_16
|
||||
begin assert (counter = 0);
|
||||
counter := 20;
|
||||
access Module_16 (assert (counter = 20));
|
||||
counter := 666
|
||||
end
|
||||
7
gcc/testsuite/algol68/execute/modules/program-17.a68
Normal file
7
gcc/testsuite/algol68/execute/modules/program-17.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
{ dg-modules module17 }
|
||||
|
||||
access Module17
|
||||
begin ce_port := 8888;
|
||||
ce_host := "localhost";
|
||||
ce_connect
|
||||
end
|
||||
15
gcc/testsuite/algol68/execute/modules/program-2.a68
Normal file
15
gcc/testsuite/algol68/execute/modules/program-2.a68
Normal file
@@ -0,0 +1,15 @@
|
||||
{ dg-modules "module1" }
|
||||
|
||||
begin int x = 1 + access Module1 ( beast_number);
|
||||
int i = access Module1 ( beast_number ) + 1;
|
||||
int z = 1 + access Module1 if true then beast_number fi;
|
||||
int v = access Module1 if true then beast_number fi + 1;
|
||||
int w = access Module1 if true then beast_number fi
|
||||
+ access Module1 if true then beast_number fi;
|
||||
assert (i = 667);
|
||||
assert (x = 667);
|
||||
assert (z = 667);
|
||||
assert (v = 667);
|
||||
assert (w = 666 * 2);
|
||||
skip
|
||||
end
|
||||
16
gcc/testsuite/algol68/execute/modules/program-3.a68
Normal file
16
gcc/testsuite/algol68/execute/modules/program-3.a68
Normal file
@@ -0,0 +1,16 @@
|
||||
{ dg-modules "module3" }
|
||||
|
||||
access Module_3
|
||||
begin assert (getcounter = 10);
|
||||
bump;
|
||||
assert (getcounter = 11);
|
||||
bumptimes (3);
|
||||
assert (getcounter = 14)
|
||||
{ vbump and vbumptimes are set to non-publicized routines
|
||||
that are local to the module, so it is a scope violation
|
||||
to call them. }
|
||||
{ vbump;
|
||||
assert (getcounter = 15);
|
||||
vbumptimes (10);
|
||||
assert (anothergetcounter = 25) }
|
||||
end
|
||||
7
gcc/testsuite/algol68/execute/modules/program-4.a68
Normal file
7
gcc/testsuite/algol68/execute/modules/program-4.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
{ dg-modules "module4" }
|
||||
|
||||
{ The widening coercion "jumps" inside the controlled xclause. }
|
||||
|
||||
begin real realten = access Module_4 (ten);
|
||||
skip
|
||||
end
|
||||
7
gcc/testsuite/algol68/execute/modules/program-5.a68
Normal file
7
gcc/testsuite/algol68/execute/modules/program-5.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
{ dg-modules "module5" }
|
||||
|
||||
access Module_5
|
||||
begin assert (2 // 3 = 5);
|
||||
assert (2 LALA 3 = -1);
|
||||
skip
|
||||
end
|
||||
9
gcc/testsuite/algol68/execute/modules/program-6.a68
Normal file
9
gcc/testsuite/algol68/execute/modules/program-6.a68
Normal file
@@ -0,0 +1,9 @@
|
||||
{ dg-modules "module6" }
|
||||
|
||||
{ New priority is given to an importe operator. }
|
||||
|
||||
access Module_6
|
||||
begin assert (2 // 3 = 5);
|
||||
prio // = 9;
|
||||
skip
|
||||
end
|
||||
3
gcc/testsuite/algol68/execute/modules/program-7.a68
Normal file
3
gcc/testsuite/algol68/execute/modules/program-7.a68
Normal file
@@ -0,0 +1,3 @@
|
||||
{ dg-modules "module7" }
|
||||
|
||||
access Module_7 ( assert (2 MINUS 3 = -1) )
|
||||
3
gcc/testsuite/algol68/execute/modules/program-8.a68
Normal file
3
gcc/testsuite/algol68/execute/modules/program-8.a68
Normal file
@@ -0,0 +1,3 @@
|
||||
{ dg-modules "module1 module4 module8" }
|
||||
|
||||
access Module_8 (checks)
|
||||
5
gcc/testsuite/algol68/execute/mult-char-1.a68
Normal file
5
gcc/testsuite/algol68/execute/mult-char-1.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT ("a" * 3 = "aaa");
|
||||
ASSERT ("" * 1 = "");
|
||||
ASSERT ("x" * 0 = "x")
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/mult-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/mult-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 10;
|
||||
LONG INT ii = LONG 10, LONG LONG INT iii = LONG LONG 10;
|
||||
SHORT INT ss = SHORT 10, SHORT SHORT INT sss = SHORT SHORT 10;
|
||||
ASSERT (i * 2 = 20);
|
||||
ASSERT (ii * LONG 2 = LONG 20);
|
||||
ASSERT (iii * LONG LONG 2 = LONG LONG 20);
|
||||
ASSERT (ss * SHORT 2 = SHORT 20);
|
||||
ASSERT (sss * SHORT SHORT 2 = SHORT SHORT 20)
|
||||
END
|
||||
13
gcc/testsuite/algol68/execute/mult-string-1.a68
Normal file
13
gcc/testsuite/algol68/execute/mult-string-1.a68
Normal file
@@ -0,0 +1,13 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN STRING foo = "foo";
|
||||
ASSERT (foo * -10 = "foo");
|
||||
ASSERT (-10 * foo = "foo");
|
||||
ASSERT (foo * 0 = "foo");
|
||||
ASSERT (0 * foo = "foo");
|
||||
ASSERT (foo * 1 = "foo");
|
||||
ASSERT (1 * foo = "foo");
|
||||
ASSERT (foo * 2 = "foofoo");
|
||||
ASSERT (2 * foo = "foofoo");
|
||||
ASSERT (foo * 3 = "foofoofoo");
|
||||
ASSERT (3 * foo = "foofoofoo")
|
||||
END
|
||||
13
gcc/testsuite/algol68/execute/mult-string-2.a68
Normal file
13
gcc/testsuite/algol68/execute/mult-string-2.a68
Normal file
@@ -0,0 +1,13 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN []CHAR foo = ("f","o","o");
|
||||
ASSERT (foo * -10 = "foo");
|
||||
ASSERT (-10 * foo = "foo");
|
||||
ASSERT (foo * 0 = "foo");
|
||||
ASSERT (0 * foo = "foo");
|
||||
ASSERT (foo * 1 = "foo");
|
||||
ASSERT (1 * foo = "foo");
|
||||
ASSERT (foo * 2 = "foofoo");
|
||||
ASSERT (2 * foo = "foofoo");
|
||||
ASSERT (foo * 3 = "foofoofoo");
|
||||
ASSERT (3 * foo = "foofoofoo")
|
||||
END
|
||||
13
gcc/testsuite/algol68/execute/mult-string-3.a68
Normal file
13
gcc/testsuite/algol68/execute/mult-string-3.a68
Normal file
@@ -0,0 +1,13 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN FLEX[3]CHAR foo := ("f","o","o");
|
||||
ASSERT (foo * -10 = "foo");
|
||||
ASSERT (-10 * foo = "foo");
|
||||
ASSERT (foo * 0 = "foo");
|
||||
ASSERT (0 * foo = "foo");
|
||||
ASSERT (foo * 1 = "foo");
|
||||
ASSERT (1 * foo = "foo");
|
||||
ASSERT (foo * 2 = "foofoo");
|
||||
ASSERT (2 * foo = "foofoo");
|
||||
ASSERT (foo * 3 = "foofoofoo");
|
||||
ASSERT (3 * foo = "foofoofoo")
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/mult-string-4.a68
Normal file
4
gcc/testsuite/algol68/execute/mult-string-4.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN STRING foo = "abc";
|
||||
ASSERT (foo[] * 2 = "abcabc")
|
||||
END
|
||||
31
gcc/testsuite/algol68/execute/multab-1.a68
Normal file
31
gcc/testsuite/algol68/execute/multab-1.a68
Normal file
@@ -0,0 +1,31 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i := 2;
|
||||
i *:= 2;
|
||||
ASSERT (i = 4);
|
||||
i *:= 2;
|
||||
ASSERT (i = 8);
|
||||
|
||||
SHORT INT s := SHORT 2;
|
||||
s *:= SHORT 2;
|
||||
ASSERT (s = SHORT 4);
|
||||
s *:= SHORT 3;
|
||||
ASSERT (s = SHORT 12);
|
||||
|
||||
SHORT SHORT INT ss := SHORT SHORT 2;
|
||||
ss *:= SHORT SHORT 2;
|
||||
ASSERT (ss = SHORT SHORT 4);
|
||||
ss *:= SHORT SHORT 3;
|
||||
ASSERT (ss = SHORT SHORT 12);
|
||||
|
||||
REF LONG INT ii = HEAP LONG INT := LONG 2;
|
||||
ii *:= LONG 2;
|
||||
ASSERT (ii = LONG 4);
|
||||
ii *:= LONG 2;
|
||||
ASSERT (ii = LONG 8);
|
||||
|
||||
LONG LONG INT iii := LONG LONG 2;
|
||||
iii *:= LONG LONG 2;
|
||||
ASSERT (iii = LONG LONG 4);
|
||||
iii *:= LONG LONG 2;
|
||||
ASSERT (iii = LONG LONG 8)
|
||||
END
|
||||
31
gcc/testsuite/algol68/execute/multab-2.a68
Normal file
31
gcc/testsuite/algol68/execute/multab-2.a68
Normal file
@@ -0,0 +1,31 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i := 2;
|
||||
i TIMESAB 2;
|
||||
ASSERT (i = 4);
|
||||
i TIMESAB 2;
|
||||
ASSERT (i = 8);
|
||||
|
||||
REF SHORT INT ss = HEAP SHORT INT := SHORT 2;
|
||||
ss TIMESAB SHORT 2;
|
||||
ASSERT (ss = SHORT 4);
|
||||
ss TIMESAB SHORT 2;
|
||||
ASSERT (ss = SHORT 8);
|
||||
|
||||
SHORT SHORT INT sss := SHORT SHORT 2;
|
||||
sss TIMESAB SHORT SHORT 2;
|
||||
ASSERT (sss = SHORT SHORT 4);
|
||||
sss TIMESAB SHORT SHORT 2;
|
||||
ASSERT (sss = SHORT SHORT 8);
|
||||
|
||||
REF LONG INT ii = HEAP LONG INT := LONG 2;
|
||||
ii TIMESAB LONG 2;
|
||||
ASSERT (ii = LONG 4);
|
||||
ii TIMESAB LONG 2;
|
||||
ASSERT (ii = LONG 8);
|
||||
|
||||
LONG LONG INT iii := LONG LONG 2;
|
||||
iii TIMESAB LONG LONG 2;
|
||||
ASSERT (iii = LONG LONG 4);
|
||||
iii TIMESAB LONG LONG 2;
|
||||
ASSERT (iii = LONG LONG 8)
|
||||
END
|
||||
6
gcc/testsuite/algol68/execute/multab-3.a68
Normal file
6
gcc/testsuite/algol68/execute/multab-3.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT num ints := 10;
|
||||
num ints *:= 2;
|
||||
ASSERT (num ints = 20);
|
||||
ASSERT ((LOC INT *:= 12) = 0)
|
||||
END
|
||||
6
gcc/testsuite/algol68/execute/mutual-recursion-1.a68
Normal file
6
gcc/testsuite/algol68/execute/mutual-recursion-1.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN PROC is even = (INT n) BOOL: (n = 0 | TRUE | is odd (n - 1));
|
||||
PROC is odd = (INT n) BOOL: (n = 0 | FALSE | is even (n - 1));
|
||||
ASSERT (is even (20));
|
||||
ASSERT (is odd (13))
|
||||
END
|
||||
9
gcc/testsuite/algol68/execute/ne-bits-1.a68
Normal file
9
gcc/testsuite/algol68/execute/ne-bits-1.a68
Normal file
@@ -0,0 +1,9 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN BITS b, LONG BITS bb = LONG 16rff, LONG LONG BITS bbb;
|
||||
SHORT BITS ss = SHORT 16rff, SHORT SHORT BITS sss;
|
||||
ASSERT (b /= 2r1);
|
||||
ASSERT (bb NE LONG 8r477);
|
||||
ASSERT (bbb /= LONG LONG 8r2);
|
||||
ASSERT (ss NE SHORT 8r477);
|
||||
ASSERT (sss /= SHORT SHORT 8r2)
|
||||
END
|
||||
3
gcc/testsuite/algol68/execute/ne-char-char-1.a68
Normal file
3
gcc/testsuite/algol68/execute/ne-char-char-1.a68
Normal file
@@ -0,0 +1,3 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT ("x" /= "a")
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/ne-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/ne-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 12;
|
||||
LONG INT ii = LONG 12, LONG LONG INT iii = LONG LONG 12;
|
||||
SHORT INT s = SHORT 12, SHORT SHORT INT ss = SHORT SHORT 12;
|
||||
ASSERT (13 /= i);
|
||||
ASSERT (ii NE LONG 13);
|
||||
ASSERT (iii /= LONG LONG 13);
|
||||
ASSERT (s /= SHORT 13);
|
||||
ASSERT (ss /= SHORT SHORT 13)
|
||||
END
|
||||
15
gcc/testsuite/algol68/execute/ne-string-1.a68
Normal file
15
gcc/testsuite/algol68/execute/ne-string-1.a68
Normal file
@@ -0,0 +1,15 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN STRING foo = "foo", bar = "bar", quux = "quux";
|
||||
# /= #
|
||||
ASSERT (NOT ("" /= ""));
|
||||
ASSERT (NOT ("foo" /= foo));
|
||||
ASSERT (foo /= bar);
|
||||
ASSERT (foo /= quux);
|
||||
ASSERT (quux /= foo);
|
||||
# NE #
|
||||
ASSERT (NOT ("" NE ""));
|
||||
ASSERT (NOT ("foo" NE foo));
|
||||
ASSERT (foo NE bar);
|
||||
ASSERT (foo NE quux);
|
||||
ASSERT (quux NE foo)
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/neg-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/neg-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 10;
|
||||
LONG INT ii = LONG 10, LONG LONG INT iii = LONG LONG 10;
|
||||
SHORT INT ss = SHORT 10, SHORT SHORT INT sss = SHORT SHORT 10;
|
||||
ASSERT (-i = -10);
|
||||
ASSERT (-ii = - LONG 10);
|
||||
ASSERT (-iii = - LONG LONG 10);
|
||||
ASSERT (-ss = - SHORT 10);
|
||||
ASSERT (-sss = - SHORT SHORT 10)
|
||||
END
|
||||
13
gcc/testsuite/algol68/execute/not-bits-1.a68
Normal file
13
gcc/testsuite/algol68/execute/not-bits-1.a68
Normal file
@@ -0,0 +1,13 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
# NOT for SIZETY BITS. #
|
||||
BEGIN BITS b = 16rf0f0;
|
||||
ASSERT ((NOT b AND 16rffff) = 16r0f0f);
|
||||
LONG BITS bb = LONG 16rf0f0;
|
||||
ASSERT ((NOT bb AND LONG 16rffff) = LONG 16r0f0f);
|
||||
LONG LONG BITS bbb = LONG LONG 16rf0f0;
|
||||
ASSERT ((NOT bbb AND LONG LONG 16rffff) = LONG LONG 16r0f0f);
|
||||
SHORT BITS ss = SHORT 16rf0f0;
|
||||
ASSERT ((NOT ss AND SHORT 16rffff) = SHORT 16r0f0f);
|
||||
SHORT SHORT BITS sss = SHORT SHORT 16rf0f0;
|
||||
ASSERT ((NOT sss AND SHORT SHORT 16rffff) = SHORT SHORT 16r0f0f)
|
||||
END
|
||||
8
gcc/testsuite/algol68/execute/odd-1.a68
Normal file
8
gcc/testsuite/algol68/execute/odd-1.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT a = 1;
|
||||
ASSERT (ODD a);
|
||||
ASSERT (ODD LONG 3);
|
||||
ASSERT (NOT ODD LONG LONG 4);
|
||||
ASSERT (ODD SHORT 3);
|
||||
ASSERT (NOT ODD SHORT SHORT 4)
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/op-1.a68
Normal file
5
gcc/testsuite/algol68/execute/op-1.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN OP ONEOVER = (REAL a) REAL: 1/a;
|
||||
REAL x;
|
||||
x := ONEOVER 3.14
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/op-2.a68
Normal file
4
gcc/testsuite/algol68/execute/op-2.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN OP + = (INT a, b) INT: a - -b;
|
||||
ASSERT (10 + 30 = 40)
|
||||
END
|
||||
9
gcc/testsuite/algol68/execute/op-3.a68
Normal file
9
gcc/testsuite/algol68/execute/op-3.a68
Normal file
@@ -0,0 +1,9 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN OP MIN = (REAL a, b) REAL: (a < b | a | b),
|
||||
MIN = (INT a, REAL b) REAL: (a < b | a | b),
|
||||
MIN = (REAL a, INT b) REAL: a MIN REAL (b);
|
||||
PRIO MIN = 6;
|
||||
ASSERT (10.0 MIN 20.0 > 9.9 AND 10.0 MIN 20.0 < 10.1);
|
||||
ASSERT (10.0 MIN 100 > 9.9 AND 10.0 MIN 100 < 10.1);
|
||||
ASSERT (100.0 MIN 10 > 9.9 AND 100.0 MIN 10 < 10.1)
|
||||
END
|
||||
13
gcc/testsuite/algol68/execute/operator-declaration-1.a68
Normal file
13
gcc/testsuite/algol68/execute/operator-declaration-1.a68
Normal file
@@ -0,0 +1,13 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT n = 10;
|
||||
# Note that the priority for the monadic operators gets ignored. #
|
||||
PRIO JORL = 6, JURL = 6, XXX = 6, YYY = 6;
|
||||
OP(INT)INT JORL = (n > 10 | (INT a) INT: a + 1 | (INT a) INT: a - 1),
|
||||
JURL = (n <= 10 | (INT a) INT: a + 1 | (INT a) INT: a - 1);
|
||||
OP(INT,INT)INT XXX = (INT a, b) INT: a + b,
|
||||
YYY = (n > 10 | (INT a,b) INT: a * b | (INT a,b) INT: a - b);
|
||||
ASSERT (JORL 10 = 9);
|
||||
ASSERT (JURL 10 = 11);
|
||||
ASSERT (2 XXX 3 = 5);
|
||||
ASSERT (2 YYY 3 = -1);
|
||||
END
|
||||
18
gcc/testsuite/algol68/execute/or-bits-1.a68
Normal file
18
gcc/testsuite/algol68/execute/or-bits-1.a68
Normal file
@@ -0,0 +1,18 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
# OR for SIZETY BITS. #
|
||||
BEGIN BITS b = 16rf0f0;
|
||||
ASSERT ((b OR 16r0f0f) = 16rffff);
|
||||
ASSERT ((b OR 16r00ff) = 16rf0ff);
|
||||
LONG BITS bb = LONG 16rf0f0;
|
||||
ASSERT ((bb OR LONG 16r0f0f) = LONG 16rffff);
|
||||
ASSERT ((bb OR LONG 16r00ff) = LONG 16rf0ff);
|
||||
LONG LONG BITS bbb = LONG LONG 16rf0f0;
|
||||
ASSERT ((bbb OR LONG LONG 16r0f0f) = LONG LONG 16rffff);
|
||||
ASSERT ((bbb OR LONG LONG 16r00ff) = LONG LONG 16rf0ff);
|
||||
SHORT BITS ss = SHORT 16rf0f0;
|
||||
ASSERT ((ss OR SHORT 16r0f0f) = SHORT 16rffff);
|
||||
ASSERT ((ss OR SHORT 16r00ff) = SHORT 16rf0ff);
|
||||
SHORT SHORT BITS sss = SHORT SHORT 16rf0f0;
|
||||
ASSERT ((sss OR SHORT SHORT 16r0f0f) = SHORT SHORT 16rffff);
|
||||
ASSERT ((sss OR SHORT SHORT 16r00ff) = SHORT SHORT 16rf0ff)
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/orf-1.a68
Normal file
4
gcc/testsuite/algol68/execute/orf-1.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i := 10;
|
||||
ASSERT (i = 0 OREL i = 10)
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/over-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/over-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 10;
|
||||
LONG INT ii = LONG 10, LONG LONG INT iii = LONG LONG 10;
|
||||
SHORT INT ss = SHORT 10, SHORT SHORT INT sss = SHORT SHORT 10;
|
||||
ASSERT (i % 2 = 5);
|
||||
ASSERT (ii % LONG 2 = LONG 5);
|
||||
ASSERT (iii % LONG LONG 2 = LONG LONG 5);
|
||||
ASSERT (ss % SHORT 2 = SHORT 5);
|
||||
ASSERT (sss % SHORT SHORT 2 = SHORT SHORT 5)
|
||||
END
|
||||
12
gcc/testsuite/algol68/execute/overab-1.a68
Normal file
12
gcc/testsuite/algol68/execute/overab-1.a68
Normal file
@@ -0,0 +1,12 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN (INT i := 11; i OVERAB 2; ASSERT (i = 5));
|
||||
(INT i := 11; i %:= 2; ASSERT (i = 5));
|
||||
(SHORT INT i := SHORT 11; i OVERAB SHORT 2; ASSERT (i = SHORT 5));
|
||||
(SHORT INT i := SHORT 11; i %:= SHORT 2; ASSERT (i = SHORT 5));
|
||||
(SHORT SHORT INT i := SHORT SHORT 11; i OVERAB SHORT SHORT 2; ASSERT (i = SHORT SHORT 5));
|
||||
(SHORT SHORT INT i := SHORT SHORT 11; i %:= SHORT SHORT 2; ASSERT (i = SHORT SHORT 5));
|
||||
(LONG INT i := LONG 11; i OVERAB LONG 2; ASSERT (i = LONG 5));
|
||||
(LONG INT i := LONG 11; i %:= LONG 2; ASSERT (i = LONG 5));
|
||||
(LONG LONG INT i := LONG LONG 11; i OVERAB LONG LONG 2; ASSERT (i = LONG LONG 5));
|
||||
(LONG LONG INT i := LONG LONG 11; i %:= LONG LONG 2; ASSERT (i = LONG LONG 5))
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/overab-2.a68
Normal file
5
gcc/testsuite/algol68/execute/overab-2.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT n := 10;
|
||||
(((n OVERAB 1))) := 5;
|
||||
ASSERT (n = 5)
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/particular-program-1.a68
Normal file
4
gcc/testsuite/algol68/execute/particular-program-1.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
# Particular program with preceding labels. #
|
||||
jo: ju:
|
||||
BEGIN SKIP END
|
||||
4
gcc/testsuite/algol68/execute/plus-char-1.a68
Normal file
4
gcc/testsuite/algol68/execute/plus-char-1.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT ("a" + "b" = "ab");
|
||||
ASSERT ("" + "x" = "x")
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/plus-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/plus-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 10;
|
||||
LONG INT ii = LONG 10, LONG LONG INT iii = LONG LONG 10;
|
||||
SHORT INT ss = SHORT 10, SHORT SHORT INT sss = SHORT SHORT 10;
|
||||
ASSERT (i + 2 = 12);
|
||||
ASSERT (ii + LONG 2 = LONG 12);
|
||||
ASSERT (iii + LONG LONG 2 = LONG LONG 12);
|
||||
ASSERT (ss + SHORT 2 = SHORT 12);
|
||||
ASSERT (sss + SHORT SHORT 2 = SHORT SHORT 12)
|
||||
END
|
||||
11
gcc/testsuite/algol68/execute/plus-string-1.a68
Normal file
11
gcc/testsuite/algol68/execute/plus-string-1.a68
Normal file
@@ -0,0 +1,11 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN STRING foo = "foo", bar = "bar", quux = "quux";
|
||||
ASSERT ("" + "" = "");
|
||||
ASSERT ("" + foo = "foo");
|
||||
ASSERT (bar + "" = "bar");
|
||||
ASSERT (foo + bar = "foobar");
|
||||
STRING res = foo + bar;
|
||||
ASSERT (LWB res = 1 AND UPB res = 6);
|
||||
STRING empty = "" + "";
|
||||
ASSERT (LWB empty = 1 AND UPB empty = 0)
|
||||
END
|
||||
11
gcc/testsuite/algol68/execute/plus-string-2.a68
Normal file
11
gcc/testsuite/algol68/execute/plus-string-2.a68
Normal file
@@ -0,0 +1,11 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN PROC rec parse comment = VOID:
|
||||
BEGIN STRING content;
|
||||
done;
|
||||
100;
|
||||
done:
|
||||
ASSERT (content + "x" = "x")
|
||||
END;
|
||||
|
||||
rec parse comment
|
||||
END
|
||||
7
gcc/testsuite/algol68/execute/plus-string-stride-1.a68
Normal file
7
gcc/testsuite/algol68/execute/plus-string-stride-1.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN [,]CHAR matrix = (("1","H","3"),
|
||||
("4","O","6"),
|
||||
("7","M","9"),
|
||||
("8","E","2"));
|
||||
ASSERT (matrix[1:2,1] + matrix[3:4,3] = "1492")
|
||||
END
|
||||
34
gcc/testsuite/algol68/execute/plusab-1.a68
Normal file
34
gcc/testsuite/algol68/execute/plusab-1.a68
Normal file
@@ -0,0 +1,34 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN BEGIN INT i := 10;
|
||||
i +:= 2;
|
||||
ASSERT (i = 12);
|
||||
i PLUSAB 2;
|
||||
ASSERT (i = 14)
|
||||
END;
|
||||
|
||||
BEGIN SHORT INT i := SHORT 1000;
|
||||
i +:= SHORT 100;
|
||||
ASSERT (i = SHORT 1100);
|
||||
i PLUSAB SHORT 100;
|
||||
ASSERT (i = SHORT 1200)
|
||||
END;
|
||||
BEGIN SHORT SHORT INT i := SHORT SHORT 10000;
|
||||
i +:= SHORT SHORT 1000;
|
||||
ASSERT (i = SHORT SHORT 11000);
|
||||
i PLUSAB SHORT SHORT 1000;
|
||||
ASSERT (i = SHORT SHORT 12000)
|
||||
END;
|
||||
|
||||
BEGIN LONG INT i := LONG 1000;
|
||||
i +:= LONG 100;
|
||||
ASSERT (i = LONG 1100);
|
||||
i PLUSAB LONG 100;
|
||||
ASSERT (i = LONG 1200)
|
||||
END;
|
||||
BEGIN LONG LONG INT i := LONG LONG 10000;
|
||||
i +:= LONG LONG 1000;
|
||||
ASSERT (i = LONG LONG 11000);
|
||||
i PLUSAB LONG LONG 1000;
|
||||
ASSERT (i = LONG LONG 12000)
|
||||
END
|
||||
END
|
||||
20
gcc/testsuite/algol68/execute/plusab-2.a68
Normal file
20
gcc/testsuite/algol68/execute/plusab-2.a68
Normal file
@@ -0,0 +1,20 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN BEGIN REAL i := 10.0;
|
||||
i +:= 2.0;
|
||||
ASSERT (i > 11.9);
|
||||
i PLUSAB 2.0;
|
||||
ASSERT (i > 13.9)
|
||||
END;
|
||||
BEGIN LONG REAL i := LONG 1000.0;
|
||||
i +:= LONG 100.0;
|
||||
ASSERT (i > LONG 1099.9);
|
||||
i PLUSAB LONG 100.0;
|
||||
ASSERT (i > LONG 1199.9)
|
||||
END;
|
||||
BEGIN LONG LONG REAL i := LONG LONG 10000.0;
|
||||
i +:= LONG LONG 1000.0;
|
||||
ASSERT (i > LONG LONG 10999.9);
|
||||
i PLUSAB LONG LONG 1000.0;
|
||||
ASSERT (i > LONG LONG 11999.9)
|
||||
END
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/plusab-3.a68
Normal file
5
gcc/testsuite/algol68/execute/plusab-3.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT n := 0;
|
||||
(((n +:= 1))) := 5;
|
||||
ASSERT (n = 5)
|
||||
END
|
||||
6
gcc/testsuite/algol68/execute/plusab-4.a68
Normal file
6
gcc/testsuite/algol68/execute/plusab-4.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT num ints := 0;
|
||||
num ints +:= 1;
|
||||
ASSERT (num ints = 1);
|
||||
ASSERT ((LOC INT +:= 12) = 12)
|
||||
END
|
||||
7
gcc/testsuite/algol68/execute/plusab-string-1.a68
Normal file
7
gcc/testsuite/algol68/execute/plusab-string-1.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN STRING foo := "";
|
||||
foo +:= "foo";
|
||||
ASSERT (LWB foo = 1 AND UPB foo = 3 AND foo = "foo");
|
||||
foo PLUSAB "bar";
|
||||
ASSERT (LWB foo = 1 AND UPB foo = 6 AND foo = "foobar")
|
||||
END
|
||||
7
gcc/testsuite/algol68/execute/plusto-char-1.a68
Normal file
7
gcc/testsuite/algol68/execute/plusto-char-1.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
begin string foo := "foo";
|
||||
char c := "x";
|
||||
c PLUSTO foo;
|
||||
assert (foo = "xfoo");
|
||||
c +=: foo;
|
||||
assert (foo = "xxfoo")
|
||||
end
|
||||
6
gcc/testsuite/algol68/execute/plusto-string-1.a68
Normal file
6
gcc/testsuite/algol68/execute/plusto-string-1.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
begin string foo := "foo";
|
||||
"bar" PLUSTO foo;
|
||||
assert (foo = "barfoo");
|
||||
"quux" +=: foo;
|
||||
assert (foo = "quuxbarfoo")
|
||||
end
|
||||
7
gcc/testsuite/algol68/execute/posix-argc-argv-1.a68
Normal file
7
gcc/testsuite/algol68/execute/posix-argc-argv-1.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT (argc >= 1);
|
||||
ASSERT (argv (1000) = "");
|
||||
ASSERT (argv (-1) = "");
|
||||
FOR i TO argc
|
||||
DO puts (argv (i)) OD
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/posix-fopen-1.a68
Normal file
4
gcc/testsuite/algol68/execute/posix-fopen-1.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT fd = fopen ("doesn''t exist", file o default);
|
||||
ASSERT (fd = -1)
|
||||
END
|
||||
8
gcc/testsuite/algol68/execute/posix-fputc-fputs-1.a68
Normal file
8
gcc/testsuite/algol68/execute/posix-fputc-fputs-1.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN fputc (stdout, "X");
|
||||
ASSERT (fputs (stdout, "foo") = 3);
|
||||
fputs (stdout, fputc (stdout, "Y") + "T");
|
||||
fputc (stdout, "Z");
|
||||
ASSERT (fputs (stdout, "") = 0);
|
||||
puts ("")
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/posix-getenv-1.a68
Normal file
4
gcc/testsuite/algol68/execute/posix-getenv-1.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT (getenv ("") = "");
|
||||
ASSERT (getenv ("DOESNT EXIST FOR SURE") = "")
|
||||
END
|
||||
17
gcc/testsuite/algol68/execute/posix-lseek.a68
Normal file
17
gcc/testsuite/algol68/execute/posix-lseek.a68
Normal file
@@ -0,0 +1,17 @@
|
||||
begin int fd = fopen ("../../ga68", file_o_rdonly);
|
||||
assert (fd /= -1);
|
||||
assert (errno = 0);
|
||||
long long int offset;
|
||||
offset := lseek (fd, long long 0, seek_cur);
|
||||
assert (offset = long long 0);
|
||||
assert (errno = 0);
|
||||
offset := lseek (fd, long long 0, seek_set);
|
||||
assert (offset = long long 0);
|
||||
assert (errno = 0);
|
||||
offset := lseek (fd, long long 0, seek_end);
|
||||
long long int offset2 = lseek (fd, offset, seek_set);
|
||||
assert (offset = offset2);
|
||||
long long int file_size = fsize (fd);
|
||||
assert (errno = 0);
|
||||
assert (offset = file_size)
|
||||
end
|
||||
8
gcc/testsuite/algol68/execute/posix-perror-1.a68
Normal file
8
gcc/testsuite/algol68/execute/posix-perror-1.a68
Normal file
@@ -0,0 +1,8 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
# { dg-output "^something unique: " } #
|
||||
BEGIN INT fd = fopen ("doesn''t exist", file o default);
|
||||
IF fd = -1 THEN
|
||||
ASSERT (strerror (errno) /= "");
|
||||
perror ("something unique")
|
||||
FI
|
||||
END
|
||||
6
gcc/testsuite/algol68/execute/posix-putchar-1.a68
Normal file
6
gcc/testsuite/algol68/execute/posix-putchar-1.a68
Normal file
@@ -0,0 +1,6 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN putchar ("X");
|
||||
putchar ("Y");
|
||||
putchar ("Z");
|
||||
puts ("\n")
|
||||
END
|
||||
5
gcc/testsuite/algol68/execute/posix-stdinouterr-1.a68
Normal file
5
gcc/testsuite/algol68/execute/posix-stdinouterr-1.a68
Normal file
@@ -0,0 +1,5 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN ASSERT (stdin = 0);
|
||||
ASSERT (stdout = 1);
|
||||
ASSERT (stderr = 2)
|
||||
END
|
||||
4
gcc/testsuite/algol68/execute/posix-strerror-1.a68
Normal file
4
gcc/testsuite/algol68/execute/posix-strerror-1.a68
Normal file
@@ -0,0 +1,4 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT fd = fopen ("doesn''t exist", file o default);
|
||||
IF fd = -1 THEN ASSERT (strerror (errno) /= "") FI
|
||||
END
|
||||
14
gcc/testsuite/algol68/execute/posix-stride-1.a68
Normal file
14
gcc/testsuite/algol68/execute/posix-stride-1.a68
Normal file
@@ -0,0 +1,14 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN [,]CHAR matrix = (("1","H","3"),
|
||||
("4","O","6"),
|
||||
("7","M","9"),
|
||||
("8","E","0"));
|
||||
[]CHAR column = matrix[1:4,2];
|
||||
puts (column);
|
||||
fputs (stdout, matrix[3,2:3]);
|
||||
puts ("\n");
|
||||
fputs (stdout, matrix[1:3,1]);
|
||||
puts ("\n");
|
||||
puts (getenv (matrix[,2]));
|
||||
perror (matrix[,3])
|
||||
END
|
||||
10
gcc/testsuite/algol68/execute/pow-int-1.a68
Normal file
10
gcc/testsuite/algol68/execute/pow-int-1.a68
Normal file
@@ -0,0 +1,10 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN INT i = 2;
|
||||
LONG INT ii = LONG 2, LONG LONG INT iii = LONG LONG 2;
|
||||
SHORT INT ss = SHORT 2, SHORT SHORT INT sss = SHORT SHORT 2;
|
||||
ASSERT (i ** 2 = 4);
|
||||
ASSERT (ii ** 2 = LONG 4);
|
||||
ASSERT (iii ** 2 = LONG LONG 4);
|
||||
ASSERT (ss ** 2 = SHORT 4);
|
||||
ASSERT (sss ** 2 = SHORT SHORT 4)
|
||||
END
|
||||
7
gcc/testsuite/algol68/execute/pow-real-1.a68
Normal file
7
gcc/testsuite/algol68/execute/pow-real-1.a68
Normal file
@@ -0,0 +1,7 @@
|
||||
# { dg-options "-fstropping=upper" } #
|
||||
BEGIN REAL r0 = 2.0; LONG REAL rr0 = LONG 2.0; LONG LONG REAL rrr0 = LONG LONG 2.0;
|
||||
REAL r1 = r0 ^ 2; REAL r2 = r0 ^ 3.0;
|
||||
LONG REAL rr1 = rr0 ^ LONG 2; LONG REAL rr2 = rr0 ^ LONG 3.0;
|
||||
LONG LONG REAL rrr1 = rrr0 ^ LONG LONG 2; LONG LONG REAL rrr2 = rrr0 ^ LONG LONG 3.0;
|
||||
SKIP
|
||||
END
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user