diff options
author | Sam James <sam@gentoo.org> | 2024-11-16 05:03:52 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-11-18 03:09:15 +0000 |
commit | 8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4 (patch) | |
tree | 6cbda27c5e17ea86014cf85b8f7ed5734fe51dc0 | |
parent | 931e4f9b09512bb9012204bb2e4060ab6d9b9b46 (diff) | |
download | binutils-8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4.zip binutils-8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4.tar.gz binutils-8ebe62f3f0d27806b1bf69f301f5e188b4acd2b4.tar.bz2 |
opcodes: fix -std=gnu23 compatibility wrt static_assert
static_assert is declared in C23 so we can't reuse that identifier:
* Define our own static_assert conditionally;
* Rename "static assert" hacks to _N as we do already in some places
to avoid a conflict.
ChangeLog:
PR ld/32372
* i386-gen.c (static_assert): Define conditionally.
* mips-formats.h (MAPPED_INT): Rename identifier.
(MAPPED_REG): Rename identifier.
(OPTIONAL_MAPPED_REG): Rename identifier.
* s390-opc.c (static_assert): Define conditionally.
-rw-r--r-- | opcodes/i386-gen.c | 2 | ||||
-rw-r--r-- | opcodes/mips-formats.h | 6 | ||||
-rw-r--r-- | opcodes/s390-opc.c | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index 053b666..7ee8a30 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -30,7 +30,9 @@ /* Build-time checks are preferrable over runtime ones. Use this construct in preference where possible. */ +#ifndef static_assert #define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); })) +#endif static const char *program_name = NULL; static int debug = 0; diff --git a/opcodes/mips-formats.h b/opcodes/mips-formats.h index 90df710..c4dec63 100644 --- a/opcodes/mips-formats.h +++ b/opcodes/mips-formats.h @@ -49,7 +49,7 @@ #define MAPPED_INT(SIZE, LSB, MAP, PRINT_HEX) \ { \ typedef char ATTRIBUTE_UNUSED \ - static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ + static_assert_3[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ static const struct mips_mapped_int_operand op = { \ { OP_MAPPED_INT, SIZE, LSB }, MAP, PRINT_HEX \ }; \ @@ -83,7 +83,7 @@ #define MAPPED_REG(SIZE, LSB, BANK, MAP) \ { \ typedef char ATTRIBUTE_UNUSED \ - static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ + static_assert_4[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ static const struct mips_reg_operand op = { \ { OP_REG, SIZE, LSB }, OP_REG_##BANK, MAP \ }; \ @@ -93,7 +93,7 @@ #define OPTIONAL_MAPPED_REG(SIZE, LSB, BANK, MAP) \ { \ typedef char ATTRIBUTE_UNUSED \ - static_assert[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ + static_assert_5[(1 << (SIZE)) == ARRAY_SIZE (MAP)]; \ static const struct mips_reg_operand op = { \ { OP_OPTIONAL_REG, SIZE, LSB }, OP_REG_##BANK, MAP \ }; \ diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c index 9d9f097..49efd71 100644 --- a/opcodes/s390-opc.c +++ b/opcodes/s390-opc.c @@ -36,7 +36,9 @@ /* Build-time checks are preferrable over runtime ones. Use this construct in preference where possible. */ +#ifndef static_assert #define static_assert(e) ((void)sizeof (struct { int _:1 - 2 * !(e); })) +#endif #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) |