From da7c2ed8b0feda0afb136caa0ff04233859c9baa Mon Sep 17 00:00:00 2001 From: norayr Date: Wed, 20 May 2015 18:40:48 +0400 Subject: [PATCH] added struct stat size check to Unix.Mod, will test it on different platforms. Former-commit-id: 15274cbfb0993a00982f1b923489a9a8f9860987 --- src/lib/system/darwin/clang/x86_64/Unix.Mod | 22 ++++++++++++++++++ src/lib/system/freebsd/clang/x86_64/Unix.Mod | 22 ++++++++++++++++++ .../system/linux/clang/armv6j_hardfp/Unix.Mod | 23 +++++++++++++++++++ src/lib/system/linux/clang/powerpc/Unix.Mod | 23 +++++++++++++++++++ src/lib/system/linux/clang/x86/Unix.Mod | 23 +++++++++++++++++++ src/lib/system/linux/clang/x86_64/Unix.Mod | 22 ++++++++++++++++++ .../system/linux/gcc/armv6j_hardfp/Unix.Mod | 23 +++++++++++++++++++ src/lib/system/linux/gcc/powerpc/Unix.Mod | 23 +++++++++++++++++++ src/lib/system/linux/gcc/x86/Unix.Mod | 23 +++++++++++++++++++ src/lib/system/linux/gcc/x86_64/Unix.Mod | 22 ++++++++++++++++++ vocstatic.linux.gcc.x86_64.REMOVED.git-id | 2 +- 11 files changed, 227 insertions(+), 1 deletion(-) diff --git a/src/lib/system/darwin/clang/x86_64/Unix.Mod b/src/lib/system/darwin/clang/x86_64/Unix.Mod index 635aacef..08fc1864 100644 --- a/src/lib/system/darwin/clang/x86_64/Unix.Mod +++ b/src/lib/system/darwin/clang/x86_64/Unix.Mod @@ -536,6 +536,28 @@ from man gettimeofday RETURN r 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. diff --git a/src/lib/system/freebsd/clang/x86_64/Unix.Mod b/src/lib/system/freebsd/clang/x86_64/Unix.Mod index 48e60a99..8d728be2 100644 --- a/src/lib/system/freebsd/clang/x86_64/Unix.Mod +++ b/src/lib/system/freebsd/clang/x86_64/Unix.Mod @@ -557,6 +557,28 @@ from man gettimeofday RETURN r 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. diff --git a/src/lib/system/linux/clang/armv6j_hardfp/Unix.Mod b/src/lib/system/linux/clang/armv6j_hardfp/Unix.Mod index e4837302..a882720a 100644 --- a/src/lib/system/linux/clang/armv6j_hardfp/Unix.Mod +++ b/src/lib/system/linux/clang/armv6j_hardfp/Unix.Mod @@ -456,4 +456,27 @@ TYPE RETURN r 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. diff --git a/src/lib/system/linux/clang/powerpc/Unix.Mod b/src/lib/system/linux/clang/powerpc/Unix.Mod index aa6fdd7d..99c35a64 100644 --- a/src/lib/system/linux/clang/powerpc/Unix.Mod +++ b/src/lib/system/linux/clang/powerpc/Unix.Mod @@ -439,4 +439,27 @@ TYPE RETURN r 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. diff --git a/src/lib/system/linux/clang/x86/Unix.Mod b/src/lib/system/linux/clang/x86/Unix.Mod index 6ba884e5..a77bccae 100644 --- a/src/lib/system/linux/clang/x86/Unix.Mod +++ b/src/lib/system/linux/clang/x86/Unix.Mod @@ -439,4 +439,27 @@ TYPE RETURN r 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. diff --git a/src/lib/system/linux/clang/x86_64/Unix.Mod b/src/lib/system/linux/clang/x86_64/Unix.Mod index 7cb5da8e..151541ad 100644 --- a/src/lib/system/linux/clang/x86_64/Unix.Mod +++ b/src/lib/system/linux/clang/x86_64/Unix.Mod @@ -492,6 +492,28 @@ from man gettimeofday RETURN r 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. diff --git a/src/lib/system/linux/gcc/armv6j_hardfp/Unix.Mod b/src/lib/system/linux/gcc/armv6j_hardfp/Unix.Mod index e4837302..a882720a 100644 --- a/src/lib/system/linux/gcc/armv6j_hardfp/Unix.Mod +++ b/src/lib/system/linux/gcc/armv6j_hardfp/Unix.Mod @@ -456,4 +456,27 @@ TYPE RETURN r 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. diff --git a/src/lib/system/linux/gcc/powerpc/Unix.Mod b/src/lib/system/linux/gcc/powerpc/Unix.Mod index aa6fdd7d..99c35a64 100644 --- a/src/lib/system/linux/gcc/powerpc/Unix.Mod +++ b/src/lib/system/linux/gcc/powerpc/Unix.Mod @@ -439,4 +439,27 @@ TYPE RETURN r 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. diff --git a/src/lib/system/linux/gcc/x86/Unix.Mod b/src/lib/system/linux/gcc/x86/Unix.Mod index 6ba884e5..a77bccae 100644 --- a/src/lib/system/linux/gcc/x86/Unix.Mod +++ b/src/lib/system/linux/gcc/x86/Unix.Mod @@ -439,4 +439,27 @@ TYPE RETURN r 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. diff --git a/src/lib/system/linux/gcc/x86_64/Unix.Mod b/src/lib/system/linux/gcc/x86_64/Unix.Mod index 7cb5da8e..151541ad 100644 --- a/src/lib/system/linux/gcc/x86_64/Unix.Mod +++ b/src/lib/system/linux/gcc/x86_64/Unix.Mod @@ -492,6 +492,28 @@ from man gettimeofday RETURN r 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. diff --git a/vocstatic.linux.gcc.x86_64.REMOVED.git-id b/vocstatic.linux.gcc.x86_64.REMOVED.git-id index 68e5e95a..e1cf150c 100644 --- a/vocstatic.linux.gcc.x86_64.REMOVED.git-id +++ b/vocstatic.linux.gcc.x86_64.REMOVED.git-id @@ -1 +1 @@ -82105aa4959ab990f96645db6fee788397ea97e2 \ No newline at end of file +7db4dcd699d480d460219139ee1d2cc1f7c9ec19 \ No newline at end of file