From ed9376bd95c52ba00aa37b224b4407030a00d184 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 5 Dec 2017 16:15:08 -0500 Subject: [PATCH] Redefine gdb_static_assert as static_assert Since we use C++11, we can use static_assert instead doing the trick that makes a negative-sized array if the expression is false. static_assert is built in the language and gives clearer error messages. To avoid modifying the usages of gdb_static_assert, redefine gdb_static_assert in terms of static_assert, passing an empty message. If we want to add an assert with a message, it's always possible to use static_assert directly. gdb/ChangeLog: * common/gdb_assert.h (gdb_static_assert): Redefine using static_assert. --- gdb/ChangeLog | 5 +++++ gdb/common/gdb_assert.h | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 524eef3f5e5..ef0c4bdf463 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-12-05 Simon Marchi + + * common/gdb_assert.h (gdb_static_assert): Redefine using + static_assert. + 2017-12-05 Simon Marchi * ada-lang.c (ada_collect_symbol_completion_matches): Remove diff --git a/gdb/common/gdb_assert.h b/gdb/common/gdb_assert.h index 5de9d3f6706..20825c82b00 100644 --- a/gdb/common/gdb_assert.h +++ b/gdb/common/gdb_assert.h @@ -22,8 +22,7 @@ /* A static assertion. This will cause a compile-time error if EXPR, which must be a compile-time constant, is false. */ -#define gdb_static_assert(expr) \ - extern int never_defined_just_used_for_checking[(expr) ? 1 : -1] +#define gdb_static_assert(expr) static_assert (expr, "") /* PRAGMATICS: "gdb_assert.h":gdb_assert() is a lower case (rather than upper case) macro since that provides the closest fit to the -- 2.30.2