This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 9/5/2014 4:33 PM, Andreas Schwab wrote:
Chris Metcalf <cmetcalf@tilera.com> writes:@@ -686,13 +686,17 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, tile_bundle_bits *p = (tile_bundle_bits *) reloc_addr; tile_bundle_bits bits = *p;-#define MUNGE(func) do { \+#define MUNGE_SIGNED(func, length) do { \ bits = ((bits & ~create_##func (-1)) | create_##func (value)); \ - if (get_##func (bits) != value) \ + ElfW(Addr) result = (long) get_##func (bits) \ + << (__WORDSIZE - length) >> (__WORDSIZE - length); \Left shifting a negative value has undefined value.
The shift is always a non-negative value less than __WORDSIZE here, by intention. Are you seeing something I'm missing? -- Chris Metcalf, Tilera Corp. http://www.tilera.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |