[binutils-gdb] RISC-V/bfd: warn about non-boolean unaligned-access attribute
Jan Beulich
jbeulich@sourceware.org
Fri Jul 31 11:54:39 GMT 2026
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=01425f0623b914dffc05a4911513b381494533f6
commit 01425f0623b914dffc05a4911513b381494533f6
Author: Jan Beulich <jbeulich@suse.com>
Date: Fri Jul 31 13:50:44 2026 +0200
RISC-V/bfd: warn about non-boolean unaligned-access attribute
The attribute being a boolean one, incoming values should be solely 0 or
1. Convert other non-zero values to 1.
Reviewed-by: Jiawei jiawei@iscas.ac.cn
Diff:
---
bfd/elfxx-riscv.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index d6442655716..98ea23fda97 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -3892,6 +3892,23 @@ riscv_merge_attributes (bfd *ibfd, struct bfd_link_info *info,
initialized. */
out_attr[0].i = 1;
+ for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
+ {
+ switch (i)
+ {
+ case Tag_RISCV_unaligned_access:
+ if (out_attr[i].i <= 1)
+ break;
+
+ _bfd_error_handler
+ (_("warning: %pB uses non-boolean `unaligned_access' attribute; "
+ "converting to boolean"),
+ ibfd);
+ out_attr[i].i = 1;
+ break;
+ }
+ }
+
return true;
}
@@ -3980,7 +3997,12 @@ riscv_merge_attributes (bfd *ibfd, struct bfd_link_info *info,
break;
case Tag_RISCV_unaligned_access:
- out_attr[i].i |= in_attr[i].i;
+ if (in_attr[i].i > 1)
+ _bfd_error_handler
+ (_("warning: %pB uses non-boolean `unaligned_access' attribute; "
+ "converting to boolean"),
+ ibfd);
+ out_attr[i].i |= !!in_attr[i].i;
break;
case Tag_RISCV_stack_align:
More information about the Binutils-cvs
mailing list