On Mon, Sep 28, 2020 at 05:07:55PM -0400, Michael Meissner wrote: > On Mon, Sep 28, 2020 at 04:38:51PM +0000, Joseph Myers wrote: > > On Thu, 24 Sep 2020, Michael Meissner wrote: > > > > > As per the discussion in this thread, I did decide to keep things to two > > > types > > > within the compiler. This means that an explicit __float128 or _Float128 > > > will > > > use the same type node and TFmode as long double uses if the default for > > > long > > > double is IEEE 128-bit. > > > > I'm not sure which patch in the series is supposed to be implementing > > that, but C requires that long double and _Float128 are distinct types (so > > you can use _Generic to choose between them, for example) even if they > > have the same ABI. > > Hmmm, but others said that it would complicate things if __float128 were > different than long double. I've implemented it both ways (I would have to > dig > up the patches to have separate types). > > And doing so might break all of the glibc efforts to provide dual symbols. > > I could obviously use __float128 to be the same as long double, and _Float128 > being a unique type if long double is IEEE. And since C++ doesn't have > _Float128, it would 'work' without introducing a new mangling name.
That seems preferrable to me. Jakub