DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(chill.info) Conversions

Info Catalog (chill.info) Enhancements (chill.info) Top (chill.info) Separate compilation
 
 Value and location conversions
 ******************************
 
    Value and location conversions are highly dependent on the target
 machine.  They are also very loosely specified in the 1988 standard.
 (The 1992 standard seems an improvement.)
 
    The GNU Chill compiler interprets `MODE(EXP)' as follows:
 
    * If EXP is a referable location, and the size of (the mode of) EXP
      is the same as the size of MODE, a location conversion is used.
      It is implemented exactly as:  `(REFMODE(-> EXP))->', where
      REFMODE is a synmode for `REF MODE'.
 
      The programmer is responsible for making sure that alignment
      restrictions on machine addresses are not violated.
 
      If both MODE and the mode of EXP are discrete modes, alignment
      should not be a problem, and we get the same conversion as a
      standard value conversion.
 
    * If EXP is a constant, and the size of (the mode of) EXP is the
      same as the size of MODE, then a value conversion is performed.
      This conversion is done at compile time, and it has not been
      implemented for all types.  Specifically, converting to or from a
      floating-point type is not implemented.
 
    * If both MODE and the mode of EXP are discrete modes, then a value
      conversion is performed, as described in Z.200.
 
    * If both MODE and the mode of EXP are reference modes, then a value
      conversion is allowed.  The same is true is one mode is a
      reference mode, and the other is an integral mode of the same size.
 
Info Catalog (chill.info) Enhancements (chill.info) Top (chill.info) Separate compilation
automatically generated byinfo2html