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