PR26415 UBSAN: vms-misc.c:636 left shift cannot be represented
Alan Modra
amodra@gmail.com
Wed Aug 26 13:45:05 GMT 2020
An unsigned short value is promoted to int, thus triggering UB on a
left shift of a positive value that results in a negative int.
PR 26415
* vms-misc.c (vms_time_t_to_vms_time): Don't use unsigned short vars.
diff --git a/bfd/vms-misc.c b/bfd/vms-misc.c
index d040c79de1..0826456ef0 100644
--- a/bfd/vms-misc.c
+++ b/bfd/vms-misc.c
@@ -592,8 +592,8 @@ vms_time_to_time_t (unsigned int hi, unsigned int lo)
void
vms_time_t_to_vms_time (time_t ut, unsigned int *hi, unsigned int *lo)
{
- unsigned short val[4];
- unsigned short tmp[4];
+ unsigned int val[4];
+ unsigned int tmp[4];
unsigned int carry;
int i;
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list