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 09: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 10: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 08:49 | 5 |
Hi! Thanks for your replys Michael |