On Tue, 18 Jan 2022, Patrick Palka wrote:

> On Tue, Jan 18, 2022 at 5:12 AM Jonathan Wakely <jwak...@redhat.com> wrote:
> >
> > Tested x86_64-linux, pushed to trunk.
> >
> >
> > Instead of hardcoded preprocessor conditionals with explicit target
> > checks, just rely on the fact that __BYTE_ORDER__ is always defined by
> > GCC.
> 
> Thanks a lot for fixing these!  I apparently missed removing this
> batch of #includes from the amalgamation in r12-6647.  For
> completeness I suppose we should remove these #includes too.   I
> wonder if we can rely on __BYTE_ORDER__ being defined by other
> compilers?

(N.B. not just for completeness but potentially also for correctness,
since floating_from_chars.cc #includes "fast_float/fast_float.h" into an
anonymous namespace, and we probably shouldn't be #including system
headers into an anonymous namespace..)

> 
> >
> > libstdc++-v3/ChangeLog:
> >
> >         PR libstdc++/104080
> >         * src/c++17/fast_float/LOCAL_PATCHES: Update.
> >         * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
> >         Define in terms of __BYTE_ORDER__.
> > ---
> >  libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES | 1 +
> >  libstdc++-v3/src/c++17/fast_float/fast_float.h  | 4 +++-
> >  2 files changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES 
> > b/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
> > index 447c7ed2cdb..5bb42933398 100644
> > --- a/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
> > +++ b/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES
> > @@ -1,3 +1,4 @@
> >  r12-6647
> >  r12-6648
> >  r12-6664
> > +r12-6665
> > diff --git a/libstdc++-v3/src/c++17/fast_float/fast_float.h 
> > b/libstdc++-v3/src/c++17/fast_float/fast_float.h
> > index ee129309ba3..31fb88b8aba 100644
> > --- a/libstdc++-v3/src/c++17/fast_float/fast_float.h
> > +++ b/libstdc++-v3/src/c++17/fast_float/fast_float.h
> > @@ -128,7 +128,9 @@ from_chars_result from_chars_advanced(const char 
> > *first, const char *last,
> >  #define FASTFLOAT_VISUAL_STUDIO 1
> >  #endif
> >
> > -#ifdef _WIN32
> > +#ifdef __BYTE_ORDER__
> > +#define FASTFLOAT_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
> > +#elif defined _WIN32
> >  #define FASTFLOAT_IS_BIG_ENDIAN 0
> >  #else
> >  #if defined(__APPLE__) || defined(__FreeBSD__)
> > --
> > 2.31.1
> >
> 

Reply via email to