VMS Help  —  CC  /PDSC_MASK
     /PDSC_MASK=option

  Forces the compiler to set the PDSC$V_EXCEPTION_MODE field of the
  procedure descriptor for each function in the compilation unit to
  the specified value, regardless of the setting of any other
  qualifiers.

  Ordinarily the PDSC$V_EXCEPTION_MODE field gets set automatically
  by the compiler, depending on which /IEEE mode is specified on the
  command line.  The /PDSC_MASK qualifier overrides the /IEEE_MODE
  qualifer setting of this field.

 NOTE:

      The /PDSC_MASK qualifier is a low-level systems-programming
      feature that is seldom necessary.  Its usage can produce object
      modules that do not conform to the OpenVMS common language
      environment and, within C, it can produce non-standard and
      seemingly incorrect floating-point behaviors at runtime.

  The qualifier option keywords are exactly the allowed values
  defined in the OpenVMS Calling Standard for this field, stripped of
  the PDSC$V_EXCEPTION_MODE prefix (for example, /PDSC_MASK=SIGNAL
  sets the field to PDSC$V_EXCEPTION_MODE_SIGNAL).

  The qualifier options are:

  SIGNAL                Maps to PDSC$K_EXCEPTION_MODE_SIGNAL.  Raise
                        exceptions for all except underflow (which
                        equals 0).

  SIGNAL_ALL            Maps to PDSC$K_EXCEPTION_MODE_SIGNAL_ALL.
                        Raise exceptions for all.

  SILENT                Maps to PDSC$K_EXCEPTION_MODE_SILENT.  Raise
                        no exceptions.  Create only finite values:
                        no infinities, no denorms, no NaNs.  The
                        function result or errno needs to be
                        examined.)

  FULL_IEEE             Maps to PDSC$K_EXCEPTION_MODE_FULL_IEEE.
                        Raise no exceptions except as controlled by
                        separate IEEE exception-enabling bits.
                        Create exceptional values according to the
                        IEEE standard.

  CALLER                Maps to PDSC$K_EXCEPTION_MODE_CALLER.
                        Emulate the same mode as the caller.

  In the absence the /PDSC_MASK qualifier, the compiler sets the
  PDSC$V_EXCEPTION_MODE field automatically, depending on the
  /IEEE_MODE qualifier setting:

   o  If /IEEE_MODE is specified with UNDERFLOW_TO_ZERO,
      DENORM_RESULTS, or INEXACT, then /PDSC_MASK is set to
      FULL_IEEE.

   o  In all other cases, /PDSC_MASK is set to SILENT.  This setting
      differs from the calling-standard-specified default of SIGNAL
      used by Fortran, and is largly responsible for the ANSI C
      conforming behavior of the math library when called from C or
      C++ programs.
Close Help