mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 08:42:24 +00:00
JmpBufCheck added to Kernel.Mod as in ofront; -- noch
This commit is contained in:
parent
ab26b2c518
commit
337f7d754a
8 changed files with 176 additions and 8 deletions
|
|
@ -156,6 +156,26 @@ MODULE Kernel;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -163,5 +183,6 @@ BEGIN
|
||||||
getcwd(CWD);
|
getcwd(CWD);
|
||||||
Args.GetEnv("OBERON", OBERON);
|
Args.GetEnv("OBERON", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel.
|
END Kernel.
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,26 @@ MODULE Kernel0;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -175,5 +195,6 @@ BEGIN
|
||||||
Strings.Append(version.prefix, OBERON);
|
Strings.Append(version.prefix, OBERON);
|
||||||
Strings.Append("/lib/voc/sym:", OBERON);
|
Strings.Append("/lib/voc/sym:", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel0.
|
END Kernel0.
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,26 @@ MODULE Kernel;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -163,5 +183,6 @@ BEGIN
|
||||||
getcwd(CWD);
|
getcwd(CWD);
|
||||||
Args.GetEnv("OBERON", OBERON);
|
Args.GetEnv("OBERON", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel.
|
END Kernel.
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,26 @@ MODULE Kernel0;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -175,5 +195,6 @@ BEGIN
|
||||||
Strings.Append(version.prefix, OBERON);
|
Strings.Append(version.prefix, OBERON);
|
||||||
Strings.Append("/lib/voc/sym:", OBERON);
|
Strings.Append("/lib/voc/sym:", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel0.
|
END Kernel0.
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,26 @@ MODULE Kernel;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -163,5 +183,6 @@ BEGIN
|
||||||
getcwd(CWD);
|
getcwd(CWD);
|
||||||
Args.GetEnv("OBERON", OBERON);
|
Args.GetEnv("OBERON", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel.
|
END Kernel.
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,26 @@ MODULE Kernel0;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -175,5 +195,6 @@ BEGIN
|
||||||
Strings.Append(version.prefix, OBERON);
|
Strings.Append(version.prefix, OBERON);
|
||||||
Strings.Append("/lib/voc/sym:", OBERON);
|
Strings.Append("/lib/voc/sym:", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel0.
|
END Kernel0.
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,26 @@ MODULE Kernel;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -163,5 +183,6 @@ BEGIN
|
||||||
getcwd(CWD);
|
getcwd(CWD);
|
||||||
Args.GetEnv("OBERON", OBERON);
|
Args.GetEnv("OBERON", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel.
|
END Kernel.
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,26 @@ MODULE Kernel0;
|
||||||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||||
END EndianTest;
|
END EndianTest;
|
||||||
|
|
||||||
|
PROCEDURE -SizeofUnixJmpBuf(): INTEGER
|
||||||
|
"sizeof(Unix_JmpBuf)";
|
||||||
|
|
||||||
|
PROCEDURE -SizeofSigJmpBuf(): INTEGER
|
||||||
|
"sizeof(sigjmp_buf)";
|
||||||
|
|
||||||
|
PROCEDURE -Error(msg: ARRAY OF CHAR; len: INTEGER)
|
||||||
|
"write(1/*stdout*/, msg, len); char ch = 0xa; write(1, &ch, 1)";
|
||||||
|
|
||||||
|
PROCEDURE JmpBufCheck; (* check for inconsistent usage of sigjmp_buf *)
|
||||||
|
VAR x, y: LONGINT;
|
||||||
|
BEGIN
|
||||||
|
x := SizeofUnixJmpBuf();
|
||||||
|
y := SizeofSigJmpBuf();
|
||||||
|
IF x < y THEN
|
||||||
|
Error("Kernel.JmpBufCheck: inconsistent usage of sigjmp_buf", 52);
|
||||||
|
Exit(1);
|
||||||
|
END
|
||||||
|
END JmpBufCheck;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
EndianTest();
|
EndianTest();
|
||||||
SetHalt(Halt);
|
SetHalt(Halt);
|
||||||
|
|
@ -175,5 +195,6 @@ BEGIN
|
||||||
Strings.Append(version.prefix, OBERON);
|
Strings.Append(version.prefix, OBERON);
|
||||||
Strings.Append("/lib/voc/sym:", OBERON);
|
Strings.Append("/lib/voc/sym:", OBERON);
|
||||||
Args.GetEnv("OBERON_LIB", LIB);
|
Args.GetEnv("OBERON_LIB", LIB);
|
||||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||||
|
JmpBufCheck()
|
||||||
END Kernel0.
|
END Kernel0.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue