ubsan: obj-macho.c:503 left shift cannot be represented
authorAlan Modra <amodra@gmail.com>
Wed, 2 Sep 2020 00:40:45 +0000 (10:10 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 2 Sep 2020 07:00:43 +0000 (16:30 +0930)
* config/obj-macho.c (obj_mach_o_zerofill): Correct type of
constant shifted left.

gas/ChangeLog
gas/config/obj-macho.c

index bcc56ca3b25ad3ada65b045f413ee1a9f479cf3b..3d1fdb2ae0d7eedde94fa47e14f04f4d5a0186d0 100644 (file)
@@ -1,3 +1,8 @@
+2020-09-02  Alan Modra  <amodra@gmail.com>
+
+       * config/obj-macho.c (obj_mach_o_zerofill): Correct type of
+       constant shifted left.
+
 2020-09-02  Alan Modra  <amodra@gmail.com>
 
        * config/bfin-lex.l: Use an unsigned type for "value".
index 4b54a667a0381cc081c288d27a2097254572acdf..c3ce9993b3d273ca87a01866e91104ace0e1fa53 100644 (file)
@@ -500,7 +500,7 @@ obj_mach_o_zerofill (int ignore ATTRIBUTE_UNUSED)
        }
 
       size = exp.X_add_number;
-      size &= ((offsetT) 2 << (stdoutput->arch_info->bits_per_address - 1)) - 1;
+      size &= ((valueT) 2 << (stdoutput->arch_info->bits_per_address - 1)) - 1;
       if (exp.X_add_number != size || !exp.X_unsigned)
        {
          as_warn (_("size (%ld) out of range, ignored"),