https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85672
--- Comment #7 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #5) > > - -Wsystem-headers -Wundef will warn > > That's the status quo. It would take a ton of effort to avoid -Wundef > warnings in libstdc++ and that's not something I'm going to work on. I was only listing it as a way to introduce the next point, you can forget it. > > - it still leaves a weird situation where _GLIBCXX_USE_FLOAT128 may be 1, 0 > > or undefined, instead of just 2 choices. > > Ah yes, good point. So we could either change include/Makefile.am to #undef > it instead of setting it to 0, or do: > > --- a/libstdc++-v3/include/bits/c++config > +++ b/libstdc++-v3/include/bits/c++config > @@ -611,7 +611,10 @@ namespace std > > /* Define if __float128 is supported on this host. */ > #define _GLIBCXX_USE_FLOAT128 > -#if !defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__) > +#if _GLIBCXX_USE_FLOAT128 == 0 > +#undef _GLIBCXX_USE_FLOAT128 > +#endif > +#elif !defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__) > #undef _GLIBCXX_USE_FLOAT128 > #endif > > > I think I'd prefer to change include/Makefile.am > > Then no changes to <bits/std_abs.h> and <type_traits> would be needed. Yes, or maybe don't generate #define _GLIBCXX_USE_FLOAT128 0 but instead /* #undef _GLIBCXX_USE_FLOAT128 */ as we used to do and as the rest of the c++config.h file does. Actually, I am not sure why r259813 needed to change so many things...