feature or a bug with long double (quad-precision) in gcc (6.2.1)
Mason
slash.tmp@free.fr
Thu Dec 8 09:28:00 GMT 2016
On 06/12/2016 12:39, Vincent Lefevre wrote:
> So, in C, long double = x86 extended precision (80 bits + padding).
That statement is incorrect.
> [C99] 6.2.5 Types
> 10) There are three real floating types, designated as float, double,
> and long double. The set of values of the type float is a subset of
> the set of values of the type double; the set of values of the type
> double is a subset of the set of values of the type long double.
More specifically,
[C99] 5.2.4.2.2 Characteristics of floating types <float.h>
Smallest valid values for
DBL_DIG = LDBL_DIG = 10
DBL_MAX = LDBL_MAX = 1E+37
DBL_EPSILON = LDBL_EPSILON = 1E-9
In other words, the C standard allows "long double" to be strictly
equivalent to "double". (I don't think that changed in C11.)
Regards.
More information about the Gcc-help
mailing list