Re: [PATCH v4 12/12] RISC-V/bfd: warn about non-power-of-2 stack-align attribute
Nelson Chu <[email protected]> Mon, 27 Jul 2026 12:18:05 +0800
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <CAHT-pJwTfq336Gsr-LvwLxgkCmjFz8vd61r4gxKE9eOywN0_bQ@mail.gmail.com> |
LGTM, thanks. Nelson On Fri, Jul 24, 2026 at 6:06 PM Jan Beulich <[email protected]> wrote: > > Only power-of-2 values are sensible for alignment. Reject other values. > > While there also drop a redundant part of a related conditional. > > Reviewed-by: Jiawei [email protected] > --- > v4: Add underscore in diagnostic. > v3: New. > > --- a/bfd/elfxx-riscv.c > +++ b/bfd/elfxx-riscv.c > @@ -3906,6 +3906,17 @@ riscv_merge_attributes (bfd *ibfd, struc > ibfd); > out_attr[i].i = 1; > break; > + > + case Tag_RISCV_stack_align: > + if (!(out_attr[i].i & (out_attr[i].i - 1))) > + break; > + > + _bfd_error_handler > + (_("warning: %pB uses non-power-of-2 `stack_align' attribute; " > + "ignoring"), > + ibfd); > + out_attr[i].i = 0; > + break; > } > } > > @@ -4006,10 +4017,14 @@ riscv_merge_attributes (bfd *ibfd, struc > break; > > case Tag_RISCV_stack_align: > - if (out_attr[i].i == 0) > + if ((in_attr[i].i & (in_attr[i].i - 1)) != 0) > + _bfd_error_handler > + (_("warning: %pB uses non-power-of-2 `stack_align' attribute; " > + "ignoring"), > + ibfd); > + else if (out_attr[i].i == 0) > out_attr[i].i = in_attr[i].i; > else if (in_attr[i].i != 0 > - && out_attr[i].i != 0 > && out_attr[i].i != in_attr[i].i) > { > _bfd_error_handler >