mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 16:52:25 +00:00
JmpBufCheck added to Kernel.Mod as in ofront; -- noch
Former-commit-id: 337f7d754a
This commit is contained in:
parent
4285c2ee95
commit
5e4ecf9050
8 changed files with 176 additions and 8 deletions
|
|
@ -160,6 +160,26 @@ MODULE Kernel0;
|
|||
SYSTEM.GET(i, littleEndian); (* indirection via i avoids warning on SUN cc -O *)
|
||||
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
|
||||
EndianTest();
|
||||
SetHalt(Halt);
|
||||
|
|
@ -175,5 +195,6 @@ BEGIN
|
|||
Strings.Append(version.prefix, OBERON);
|
||||
Strings.Append("/lib/voc/sym:", OBERON);
|
||||
Args.GetEnv("OBERON_LIB", LIB);
|
||||
TimeUnit := 1000; timeStart := 0; timeStart := Time()
|
||||
TimeUnit := 1000; timeStart := 0; timeStart := Time();
|
||||
JmpBufCheck()
|
||||
END Kernel0.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue