ubsan: alpha-vms: shift exponent 536874240 is too large
authorAlan Modra <amodra@gmail.com>
Wed, 24 Jun 2020 00:54:32 +0000 (10:24 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 24 Jun 2020 01:18:15 +0000 (10:48 +0930)
commitf8b1e5f6fcdb27c7ea520643880a208578d42d0e
tree429b4a7bb209434c48541f9744761370ba3de3de
parentd5722d3be21d05f8735da36bfa3d03f8bad06079
ubsan: alpha-vms: shift exponent 536874240 is too large

C_OPR_ASH is supposed to be an arithmetic shift.  By the look of it,
this operator implemented logical shifts since the original binutils
support was added.  This patch corrects that and avoids some nonsense
ubsan complaints.  I chose to implement infinite precision shifts
rather than masking shift counts to the word size as the spec I had is
silent on what is supposed to happen with overlarge shift counts.

* vms-alpha.c (_bfd_vms_slurp_etir <ETIR__C_OPR_ASH>): Implement
shifts without undefined behaviour.
bfd/ChangeLog
bfd/vms-alpha.c