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?

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

Reply via email to