From 1ab668bf2a42ad6c9ef2f691257118faba65bfe9 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 16 Jun 2014 11:28:26 +0930 Subject: [PATCH] Report an error on x86 pcrel BFD_RELOC_SIZE64 * config/tc-i386.c (reloc): Don't avoid pcrel check for BFD_RELOC_SIZE64. Return NO_RELOC on failing pcrel check. --- gas/ChangeLog | 5 +++++ gas/config/tc-i386.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 55a0d00f47f..568df4eb6c0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2014-06-16 Alan Modra + + * 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 * config/tc-tic6x.c (s_tic6x_ehtype): Clear after frag_more. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 341d10068e9..d0d4d6c9300 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -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 -- 2.30.2