Report an error on x86 pcrel BFD_RELOC_SIZE64
authorAlan Modra <amodra@gmail.com>
Mon, 16 Jun 2014 01:58:26 +0000 (11:28 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 16 Jun 2014 03:02:56 +0000 (12:32 +0930)
* config/tc-i386.c (reloc): Don't avoid pcrel check for
BFD_RELOC_SIZE64.  Return NO_RELOC on failing pcrel check.

gas/ChangeLog
gas/config/tc-i386.c

index 55a0d00..568df4e 100644 (file)
@@ -1,5 +1,10 @@
 2014-06-16  Alan Modra  <amodra@gmail.com>
 
+       * config/tc-i386.c (reloc): Don't avoid pcrel check for
+       BFD_RELOC_SIZE64.  Return NO_RELOC on failing pcrel check.
+
+2014-06-16  Alan Modra  <amodra@gmail.com>
+
        * config/tc-tic6x.c (s_tic6x_ehtype): Clear after frag_more.
        (tic6x_output_exidx_entry): Likewise.
        (md_apply_fix): Simplify 1 byte md_number_to_chars.
index 341d100..d0d4d6c 100644 (file)
@@ -2846,9 +2846,12 @@ reloc (unsigned int size,
       if (other == BFD_RELOC_SIZE32)
        {
          if (size == 8)
-           return BFD_RELOC_SIZE64;
+           other = BFD_RELOC_SIZE64;
          if (pcrel)
-           as_bad (_("there are no pc-relative size relocations"));
+           {
+             as_bad (_("there are no pc-relative size relocations"));
+             return NO_RELOC;
+           }
        }
 #endif