[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference clt::dec_pascal_bugs

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

835.0. "%descr passes wrong datatype in descriptor" by TLE::REAGAN (All of this chaos makes perfect sense) Fri Mar 21 1997 11:03

          <<< TURRIS::DISK$NOTES_PACK:[NOTES$LIBRARY]PASCAL.NOTE;2 >>>
                             -< DEC Pascal Notes >-
================================================================================
Note 2665.0        %descr passes wrong datatype in descriptor            1 reply
LNZALI::BACHNER "Mouse not found. Click OK to conti" 58 lines  21-MAR-1997 09:27
--------------------------------------------------------------------------------
DEC Pascal V5.5-54
OpenVMS VAX V7.0

When a program passes [byte] -128..127 or [word] -32768..32767 variables by
descriptor, the datatype in the descriptor is always set to longword integer.

The behaviour was correct with V5.1 of the compiler (I could not check other
versions in between yet).

Following are two sample source files which illustrate the problem.

Is it already a known problem or should I IPMT it ?

Thanks for your help,
Hans.

--------------------- sample main program -----------------------
[inherit("sys$library:starlet.pen")]
program siemens_main (output);

TYPE
    $byte = [byte] -128..127;
    $word = [word] -32768..32767;

var
  element : $byte;
  scaling : $word;

PROCEDURE  WRITEATTR ( DSC: DSC1$TYPE ); external;

    begin 
         writeattr ( %descr element );
         writeattr ( %descr scaling );

end.
--------------------- sample subprogram -----------------------
[inherit("sys$library:starlet.pen")]
module siemens_test (output);

TYPE
    $byte = [byte] -128..127;
    $word = [word] -32768..32767;

[GLOBAL]
PROCEDURE  WRITEATTR ( DSC: DSC1$TYPE );

BEGIN
   WITH DSC  DO
           BEGIN
	    writeln (dsc$b_dtype);

           { DSC$B_DTYPE is always 8 (longword integer), but should be
	     6 for the $byte argument and 7 for the $word argument)
           }

	  end{ with };
end;
end.
    
T.RTitleUserPersonal
Name
DateLines
835.1TLE::REAGANAll of this chaos makes perfect senseFri Mar 21 1997 11:165
    It changed sometime between V5.4-46 and V5.5-50.  That narrows it down
    to a couple of months.  I can see the difference in the intermediate
    code...
    
    				-John
835.2TLE::REAGANAll of this chaos makes perfect senseFri Mar 21 1997 12:566
    OK, I found it.  It was a simple error added last February for another
    fix.  This will be in the next kit.  I'd guess the next network kit
    might be in a couple of weeks.  Haven't picked the exact dates for
    the next SSB/cdrom kit yet...
    
    				-John