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 55a0d00f47f0ca5d1d8636c4c1dccb30bbdc7321..568df4eb6c0a5aaead5be151d4edf807dc58a941 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 341d10068e9c784e67e5221428ded255d9b7cac5..d0d4d6c9300b3faae46e2782da49ea94b50a5846 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