| Title: | DEC Pascal Bug Reports |
| Notice: | New kit announcement in TURRIS::Pascal conference |
| Moderator: | TLE::GARRISON |
| Created: | Wed Sep 09 1992 |
| Last Modified: | Fri May 30 1997 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 838 |
| Total number of notes: | 3659 |
Hi!
We have got compiler problems on an ALPHA (i don't think it's a
compiler compatibility problem)
Configuration:
VMS Version: V 6.2-1H3
Pascal Version: V 5.5 ECO 2
The following code compiles on a VAX without problems but accvios on
the mentioned ALPHA:
------------------------------------------------------------------------------
[INHERIT ('sys$share:starlet')]
PROGRAM module_a(output);
[EXTERNAL]
PROCEDURE ExecuteWrite (%REF [ASYNCHRONOUS] PROCEDURE fp;
str: VARYING[v] OF CHAR); EXTERN;
FUNCTION CLG$InternalWrite(str: VARYING[v] OF CHAR): INTEGER;
BEGIN
WRITELN(str);
CLG$InternalWrite := SS$_NORMAL;
END;
VAR
f_ptr : [STATIC, VOLATILE] ARRAY [0..4] OF INTEGER;
ste : VARYING[80] OF CHAR;
BEGIN
f_ptr[0]:=IADDRESS(CLG$InternalWrite);
ste := 'This is a test message !';
ExecuteWrite(%REF f_ptr[0],ste);
END.
------------------------------------------------------------------------------
[INHERIT ('sys$share:starlet')]
MODULE module_b;
[GLOBAL]
EDURE ExecuteWrite (PROCEDURE UserWrite(str: VARYING[v] OF CHAR);
str: VARYING[v] OF CHAR);
BEGIN
UserWrite(str);
END;
END.
------------------------------------------------------------------------------
PROC%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual
address=00000000
, PC
=00000000, PS=0000001B
%TRACE-F-TRACEBACK, symbolic stack dump follows
image module routine line rel PC abs
PC
0 0000000000000000
0000000000000000
MODULE_A MODULE_B EXECUTEWRITE 10 0000000000000108
00000000000202F8
MODULE_A MODULE_A MODULE_A 24 00000000000001C8
00000000000201C8
0 FFFFFFFF851EC170
FFFFFFFF851EC170
--------------------------------------
Is this a known 5.5 BUG ?
Will it be fixed in the upcomming ECO ?
thanks
Michael
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 836.1 | WIBBIN::NOYCE | Pulling weeds, pickin' stones | Fri Apr 18 1997 08:41 | 6 | |
Whne you play games like pretending that an integer is actually the address of a procedure, you are getting into low-level programming that needs to be aware of how parameters are passed in the system you're using. On VAX, procedure parameters are indeed passed by reference, as your code does. But on Alpha, they are passed by value. I suspect that if you change the %ref to %val your code will work on Alpha. | |||||
| 836.2 | TLE::REAGAN | All of this chaos makes perfect sense | Mon Apr 21 1997 09:32 | 4 | |
There is a section on this in the "Migrating from OpenVMS VAX to
OpenVMS Alpha" in the DEC Pascal User Manual.
-John
| |||||
| 836.3 | Thanks !! | ATZIS1::KARTNER_M | HOUSTON, we have a problem | Tue Apr 22 1997 07:49 | 5 |
Hi!
Thanks for your replys
Michael
| |||||