/* { dg-options "-O2" } */ /* N1150 5.2 Conversions among decimal floating types and between decimal floating types and generic floating types. C99 6.3.1.5(3) New. */ #include "dfp-dbg.h" extern void link_error (); int main () { _Decimal32 d32; _Decimal64 d64; _Decimal128 d128; /* Conversions to larger types. */ d32 = 123.4df; d64 = d32; if (d64 != 123.4dd) link_error (); d128 = d32; if (d128 != 123.4dl) link_error (); d64 = 345.678dd; d128 = d64; if (d128 != 345.678dl) link_error (); /* Conversions to smaller types for which the value fits. */ d64 = 3456.789dd; d32 = d64; if (d32 != 3456.789df) link_error (); d128 = 123.4567dl; d32 = d128; if (d32 != 123.4567dl) link_error (); d128 = 1234567890.123456dl; d64 = d128; if (d64 != 1234567890.123456dd) link_error (); return 0; }