— acme/bfd/elf32-pic30.c.orig 2009-05-04 15:39:05.000000000 +0100 +++ acme/bfd/elf32-pic30.c 2009-05-04 15:35:43.000000000 +0100 @@ -1973,7 +1973,7 @@ case R_PIC30_PCREL_BRANCH: case R_PIC30_BRANCH_ABSOLUTE: /* valid range is [-32768..32767] and not [-2, -1, 0] */ - if ((relocation > 0x7FFF) && ~(relocation | 0xC0007FFF)) + if ((relocation > 0x7FFF) && ~(relocation | 0xFFFFFFFFC0007FFFull)) { *error_msg = (char *) malloc(BUFSIZ); sprintf(*error_msg, @@ -1986,7 +1986,7 @@ case R_PIC30_PCREL_DO: case R_PIC30_DO_ABSOLUTE: /* valid range is [-32768..32767] and not [-2, -1, 0] */ - if ((relocation > 0x7FFF) && ~(relocation | 0xC0007FFF)) + if ((relocation > 0x7FFF) && ~(relocation | 0xFFFFFFFFC0007FFFull)) { *error_msg = (char *) malloc(BUFSIZ); sprintf(*error_msg, –