> -----Original Message----- > From: Jakub Jelinek <[email protected]> > Sent: 01 July 2026 11:06 > To: [email protected]; Richard Earnshaw <[email protected]>; > Tamar Christina <[email protected]>; Karl Meakin > <[email protected]> > Cc: [email protected] > Subject: [PATCH] aarch64: Fix recent changes to be C++14 compatible > > Hi! > > Last night I've noticed > ../../gcc/config/aarch64/aarch64-neon-builtins-base.h:23:11: warning: > nested namespace definitions only available with -std=c++17 or -std=gnu++17 > [-Wpedantic] > ../../gcc/config/aarch64/aarch64-neon-builtins-shapes.cc:128:11: warning: > nested namespace definitions only available with -std=c++17 or -std=gnu++17 > [-Wpedantic] > ../../gcc/config/aarch64/aarch64-neon-builtins-shapes.h:23:11: warning: > nested namespace definitions only available with -std=c++17 or -std=gnu++17 > [-Wpedantic] > warnings. GCC 17 is still supposed to be buildable by C++14 compilers > (including GCC 5.4). > The following patch fixes that to use what the backend uses elsewhere. > > Ok for trunk?
Ok. And thanks, Tamar > > 2026-07-01 Jakub Jelinek <[email protected]> > > * config/aarch64/aarch64-neon-builtins-base.h: Use > namespace aarch64_acle { namespace functions { ... } } instead of > C++17 namespace aarch64_acle::functions { ... }. > * config/aarch64/aarch64-neon-builtins-shapes.h: Use > namespace aarch64_acle { namespace shapes { ... } } instead of > C++17 namespace aarch64_acle::shapes { ... }. > * config/aarch64/aarch64-neon-builtins-shapes.cc: Likewise. > > --- gcc/config/aarch64/aarch64-neon-builtins-base.h.jj 2026-07-01 > 11:54:41.859878282 +0200 > +++ gcc/config/aarch64/aarch64-neon-builtins-base.h 2026-07-01 > 11:56:58.024178295 +0200 > @@ -20,10 +20,12 @@ > #ifndef GCC_AARCH64_NEON_BUILTINS_BASE_H > #define GCC_AARCH64_NEON_BUILTINS_BASE_H > > -namespace aarch64_acle::functions { > +namespace aarch64_acle { > + namespace functions { > #define DEF_NEON_FUNCTION(NAME, ...) \ > - extern const aarch64_acle::function_base *const NAME; > + extern const aarch64_acle::function_base *const NAME; > #include "aarch64-neon-builtins.def" > + } > } > > #endif > --- gcc/config/aarch64/aarch64-neon-builtins-shapes.h.jj 2026-07-01 > 11:54:41.859878282 +0200 > +++ gcc/config/aarch64/aarch64-neon-builtins-shapes.h 2026-07-01 > 11:56:17.710681601 +0200 > @@ -20,10 +20,12 @@ > #ifndef GCC_AARCH64_NEON_BUILTINS_SHAPES_H > #define GCC_AARCH64_NEON_BUILTINS_SHAPES_H > > -namespace aarch64_acle::shapes { > +namespace aarch64_acle { > + namespace shapes { > #define DEF_NEON_FUNCTION(NAME, TYPES, SHAPE_ARGS) \ > - extern const aarch64_acle::function_shape *const SHAPE_NAME (NAME, > TYPES); > + extern const aarch64_acle::function_shape *const SHAPE_NAME (NAME, > TYPES); > #include "aarch64-neon-builtins.def" > + } > } > > #endif > --- gcc/config/aarch64/aarch64-neon-builtins-shapes.cc.jj 2026-07-01 > 11:54:41.859878282 +0200 > +++ gcc/config/aarch64/aarch64-neon-builtins-shapes.cc 2026-07-01 > 11:56:45.224338097 +0200 > @@ -125,10 +125,12 @@ struct neon_shape : public function_shap > tree resolve (function_resolver &) const override { gcc_unreachable (); } > }; > > -namespace aarch64_acle::shapes { > +namespace aarch64_acle { > + namespace shapes { > #define DEF_NEON_FUNCTION(NAME, TYPES, SHAPE_ARGS) > \ > - static constexpr const neon_shape OBJ_NAME (NAME, TYPES) > SHAPE_ARGS; \ > - const aarch64_acle::function_shape *SHAPE_NAME (NAME, TYPES) > \ > - = &OBJ_NAME (NAME, TYPES); > + static constexpr const neon_shape OBJ_NAME (NAME, TYPES) > SHAPE_ARGS;\ > + const aarch64_acle::function_shape *SHAPE_NAME (NAME, TYPES) \ > + = &OBJ_NAME (NAME, TYPES); > #include "aarch64-neon-builtins.def" > + } > } > > Jakub
