| 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 | 
    A customer with a problem ran fine in VAX and was ported to Alpha. They
    have DEC Pascal V5.4 and this version returned error when they
    tried to
    use ADD_INTERLOCK. Then they upgrade their DEC Pascal to V5.5-55.
    This version gives another problem when they tried to use packed record.
    During compilation, a warning was prompted with command:
    
    $PASCAL/CHECK/OBJ=ABS$OBJ:ETSMAIN.OBJ ABS$SRC:ETSMAIN.PAS
    
    ADDRESS(DEUNA_setchar_buff.nma$c_pcli_bus_id);
    ...........................................^
    %PASCAL-W-PACKSTRUCT, Component of a PACKED structured type
    -PASCAL-I-NOTBEADDR,    - may not be parameter to ADDRESS at line
    number 2090 in file ABS$DEV:[ABS.SRC]ETSMAIN.PAS;2
    
    They ignored this warning and ran the program. The problem gave the
    error:
    
    %SYSTEM-F-BADPARAM, bad parameter value
    %SYSTEM-F-BADPARAM, bad parameter value
    
    when they were doing a QIO.
    
    Anyone seen similar case before?
    
    Regards,
    Mickwid.
| T.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 822.1 | TLE::REAGAN | All of this chaos makes perfect sense | Fri Jan 24 1997 08:47 | 19 | |
|     On VAX, the default alignment is "byte alignment".  Ie, fields in
    records are positioned on the next available byte unless otherwise
    specified.  On Alpha, the default alignment is "natural alignment".
    Ie, fields in records are positioned on a boundary that is based
    on the size of the field.
    
    Also, on VAX, BOOLEAN and enumerated types are a single byte big (
    larger enumerateds are a word big).  On Alpha, BOOLEANs and
    enumerated types are longword in size.
    
    You probably have a record that didn't lay out like you wanted.
    
    You can use the /ALIGN=VAX/ENUM=BYTE on the command line to get
    back to the VAX behavior.
    
    Have you look at the "Migrating from OpenVMS VAX to OpenVMS Alpha"
    in the Pascal manuals?
    
    				-John
 | |||||