gcc: Decimal Float

1 
1 6.13 Decimal Floating Types
1 ===========================
1 
1 As an extension, GNU C supports decimal floating types as defined in the
1 N1312 draft of ISO/IEC WDTR24732.  Support for decimal floating types in
1 GCC will evolve as the draft technical report changes.  Calling
1 conventions for any target might also change.  Not all targets support
1 decimal floating types.
1 
1  The decimal floating types are '_Decimal32', '_Decimal64', and
1 '_Decimal128'.  They use a radix of ten, unlike the floating types
1 'float', 'double', and 'long double' whose radix is not specified by the
1 C standard but is usually two.
1 
1  Support for decimal floating types includes the arithmetic operators
1 add, subtract, multiply, divide; unary arithmetic operators; relational
1 operators; equality operators; and conversions to and from integer and
1 other floating types.  Use a suffix 'df' or 'DF' in a literal constant
1 of type '_Decimal32', 'dd' or 'DD' for '_Decimal64', and 'dl' or 'DL'
1 for '_Decimal128'.
1 
1  GCC support of decimal float as specified by the draft technical report
1 is incomplete:
1 
1    * When the value of a decimal floating type cannot be represented in
1      the integer type to which it is being converted, the result is
1      undefined rather than the result value specified by the draft
1      technical report.
1 
1    * GCC does not provide the C library functionality associated with
1      'math.h', 'fenv.h', 'stdio.h', 'stdlib.h', and 'wchar.h', which
1      must come from a separate C library implementation.  Because of
1      this the GNU C compiler does not define macro '__STDC_DEC_FP__' to
1      indicate that the implementation conforms to the technical report.
1 
1  Types '_Decimal32', '_Decimal64', and '_Decimal128' are supported by
1 the DWARF debug information format.
1