From 6ae002f1ae94cb88bec69f960594828840fd4244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ayd=C4=B1n=20Mercan?= Date: Mon, 28 Jul 2025 13:19:41 +0000 Subject: [PATCH] Use a proper compiler test for constexpr support After GCC 15, C23 became the default version. [1] Add a proper compiler test for constexpr support to ensure that GCC 15+ invoked with `c_std` set to `none` does not erroneously use the constexpr shim. This change does not affect the build in its default configuration (which uses GNU C11); it is only meant to prepare the build system for adding C23 elements to the code. [1]: https://gcc.gnu.org/gcc-15/changes.html --- meson.build | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 25e5388e7e..a2377345f6 100644 --- a/meson.build +++ b/meson.build @@ -293,9 +293,14 @@ config.set_quoted('NAMED_CONFFILE', sysconfdir / 'named.conf') config.set_quoted('CACHEDB_DEFAULT', get_option('cachedb')) config.set_quoted('ZONEDB_DEFAULT', get_option('zonedb')) -# Shim constexpr for pre-C23 -# "ne" => "none" -if c_std.substring(-2) in ['ne', '89', '99', '11', '17', '18'] +constexpr_test = ''' +static constexpr int r = 0; + +int main(void) { + return r; +} +''' +if not cc.compiles(constexpr_test, name: 'usage of constexpr') config.set('constexpr', 'static const') endif