| 12345678910111213141516171819202122232425262728293031 |
- MODULE TRcmp;
- (* Real comparison regression test: < > <= >= must emit D5
- (0D5H); they once emitted bare stack juggling, leaving operand
- bits as the boolean (negative-vs-zero failures). ExitCode = 31:
- bits 0-4 for the five true comparisons, none of the 64..4096
- false-positive bits. *)
- VAR ExitCode : INTEGER;
- a, b, c, d, e, f, g, h, i, j, k, l : REAL;
- BEGIN
- a := -1.0; b := 0.0;
- c := 0.0; d := -1.0;
- e := -1.0; f := -1.0;
- g := 0.0; h := 0.0;
- i := -1.0; j := 0.0;
- k := i * j;
- l := 0.0;
- ExitCode := 0;
- IF a < b THEN ExitCode := ExitCode + 1 END;
- IF c > d THEN ExitCode := ExitCode + 2 END;
- IF e = f THEN ExitCode := ExitCode + 4 END;
- IF g = h THEN ExitCode := ExitCode + 8 END;
- IF k = l THEN ExitCode := ExitCode + 16 END;
- IF a > b THEN ExitCode := ExitCode + 32 END;
- IF a = b THEN ExitCode := ExitCode + 64 END;
- IF c < d THEN ExitCode := ExitCode + 128 END;
- IF c = d THEN ExitCode := ExitCode + 256 END;
- IF e < f THEN ExitCode := ExitCode + 512 END;
- IF e > f THEN ExitCode := ExitCode + 1024 END;
- IF k < l THEN ExitCode := ExitCode + 2048 END;
- IF k > l THEN ExitCode := ExitCode + 4096 END
- END TRcmp.
|