Here is the relevant part of the standard (6.3.1.5.2 Real floating types) of C99 :
When a double is demoted to float, a long double is demoted to double