On Thu, Mar 20, 2025 at 10:32:17AM +0100, Jakub Jelinek wrote: > And more importantly, _Float128 and __int128 are only available on small > subsets of hosts. Many of the __int128 uses in the COBOL FE are just > wrong because they lose the upper 64 bits when turning it into a tree, > so just using wide_int there designed for arbitrary precision arithmetics > at compile time fixes that.
Also note that uses of _Float128 in the FE require pretty recent GCC (>= 13) and clang doesn't support it in C++ at all even in trunk. Currently, we try hard to make the compiler buildable with GCC as old as 5.4, so the _Float128 uses would mean --enable-languages=c,c++,cobol --disable-bootstrap configured compiler doesn't build. And the uses of *f128 APIs in the FE mean also a dependency on fairly recent host glibc, many people use new gcc on long term supported distros with much older glibc. While on the libgcobol side (like other target libraries) we know they are built with the new gcc and so can assume features that gcc provides and for stuff like lack of *f128 APIs in glibc there are libgcobol patches to make it work with *l APIs when long double is IEEE quad or with *q APIs from libquadmath, in a GCC FE we certainly don't want to depend on libquadmath and make stuff conditionally relying on *l or *q or *f128 APIs. Jakub