aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-06-16 11:28:26 +0930
committerAlan Modra <amodra@gmail.com>2014-06-16 12:32:56 +0930
commit1ab668bf2a42ad6c9ef2f691257118faba65bfe9 (patch)
treef19b60d720e215009f91655719f489f8e52c93c4 /gas
parent7e9def1e93c408b5df80ed67b79ef7ac9d5c9289 (diff)
downloadgdb-1ab668bf2a42ad6c9ef2f691257118faba65bfe9.zip
gdb-1ab668bf2a42ad6c9ef2f691257118faba65bfe9.tar.gz
gdb-1ab668bf2a42ad6c9ef2f691257118faba65bfe9.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 55a0d00..568df4e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 341d100..d0d4d6c 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