mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 06:22:25 +00:00
added struct stat size check to Unix.Mod, will test it on different
platforms.
This commit is contained in:
parent
6b4e51db23
commit
15274cbfb0
11 changed files with 226 additions and 0 deletions
|
|
@ -536,6 +536,28 @@ from man gettimeofday
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
|
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -557,6 +557,28 @@ from man gettimeofday
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
|
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -456,4 +456,27 @@ TYPE
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -439,4 +439,27 @@ TYPE
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -439,4 +439,27 @@ TYPE
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -492,6 +492,28 @@ from man gettimeofday
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
|
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -456,4 +456,27 @@ TYPE
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -439,4 +439,27 @@ TYPE
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -439,4 +439,27 @@ TYPE
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
|
|
@ -492,6 +492,28 @@ from man gettimeofday
|
||||||
RETURN r
|
RETURN r
|
||||||
END System;
|
END System;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixStat(): INTEGER
|
||||||
|
"sizeof(Unix_Status)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofStat(): INTEGER
|
||||||
|
"sizeof(struct stat)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE StatCheck;
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixStat();
|
||||||
|
y := SizeofStat();
|
||||||
|
IF x # y THEN
|
||||||
|
Error("Unix.StatCheck: inconsistent usage of struct stat", 49);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END StatCheck;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
StatCheck();
|
||||||
|
|
||||||
END Unix.
|
END Unix.
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue