Why does compiling the minimal test case C code below using gcc5 (5.3.0) generate a [-Wincompatible-pointer-types] warning for the warning() function call that has a const argument and casts that argument using the ConstMyDouble typedef, but not for the nowarning() call that does not use the ConstMyDouble cast, nor for the noconst() call that uses the non-const typedef MyDouble, and how can it be fixed?Why does compiling the minimal test case C code