[PATCH v3 12/13] RISC-V/bfd: warn about non-boolean unaligned-access attribute
Jan Beulich
jbeulich@suse.com
Fri Jun 19 11:52:40 GMT 2026
The attribute being a boolean one, incoming values should be solely 0 or
1. Convert other non-zero values to 1.
---
v3: New.
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -3777,6 +3777,23 @@ riscv_merge_attributes (bfd *ibfd, struc
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;
}
@@ -3865,7 +3882,12 @@ riscv_merge_attributes (bfd *ibfd, struc
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
mailing list