diff options
author | Tom Tromey <tromey@redhat.com> | 2011-11-22 21:18:38 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2011-11-22 21:18:38 +0000 |
commit | f5afdc187dae0c7472d001381b579348b5d36316 (patch) | |
tree | 35b11836bce8a2e5e9cb56a255464ca80cd79c03 /gdb | |
parent | fc87b9e82571ba0015d5d3802cf714ae7c666ee6 (diff) | |
download | gdb-f5afdc187dae0c7472d001381b579348b5d36316.zip gdb-f5afdc187dae0c7472d001381b579348b5d36316.tar.gz gdb-f5afdc187dae0c7472d001381b579348b5d36316.tar.bz2 |
* mi/mi-common.c (_initialize_gdb_mi_common): Remove.
Use static_assert to check the size of
async_reason_string_lookup.
* common/gdb_assert.h (static_assert): New macro.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/common/gdb_assert.h | 6 | ||||
-rw-r--r-- | gdb/mi/mi-common.c | 14 |
3 files changed, 16 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d94e506..f748f76 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2011-11-22 Tom Tromey <tromey@redhat.com> + + * mi/mi-common.c (_initialize_gdb_mi_common): Remove. + Use static_assert to check the size of + async_reason_string_lookup. + * common/gdb_assert.h (static_assert): New macro. + 2011-11-22 Alan Modra <amodra@gmail.com> * rs6000-tdep.c (ppc_deal_with_atomic_sequence): Correct branch diff --git a/gdb/common/gdb_assert.h b/gdb/common/gdb_assert.h index 634049e..de1a1c9 100644 --- a/gdb/common/gdb_assert.h +++ b/gdb/common/gdb_assert.h @@ -20,6 +20,12 @@ #ifndef GDB_ASSERT_H #define GDB_ASSERT_H +/* A static assertion. This will cause a compile-time error if EXPR, + which must be a compile-time constant, is false. */ + +#define static_assert(expr) \ + extern int never_defined_just_used_for_checking[(expr) ? 1 : -1] + /* PRAGMATICS: "gdb_assert.h":gdb_assert() is a lower case (rather than upper case) macro since that provides the closest fit to the existing lower case macro <assert.h>:assert() that it is diff --git a/gdb/mi/mi-common.c b/gdb/mi/mi-common.c index ab126f6..e7dd3c4 100644 --- a/gdb/mi/mi-common.c +++ b/gdb/mi/mi-common.c @@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "defs.h" +#include "gdb_assert.h" #include "mi-common.h" static const char * const async_reason_string_lookup[] = @@ -37,19 +38,10 @@ static const char * const async_reason_string_lookup[] = NULL }; +static_assert (ARRAY_SIZE (async_reason_string_lookup) == EXEC_ASYNC_LAST + 1); + const char * async_reason_lookup (enum async_reply_reason reason) { return async_reason_string_lookup[reason]; } - -/* Provide a prototype to silence -Wmissing-prototypes. */ -extern initialize_file_ftype _initialize_gdb_mi_common; - -void -_initialize_gdb_mi_common (void) -{ - if (ARRAY_SIZE (async_reason_string_lookup) != EXEC_ASYNC_LAST + 1) - internal_error (__FILE__, __LINE__, - _("async_reason_string_lookup is inconsistent")); -} |