diff options
author | Alan Modra <amodra@gmail.com> | 2014-10-18 11:10:53 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-10-18 23:07:07 +1030 |
commit | a841bdf5d3bfb9c687f938be7388597db2e461de (patch) | |
tree | ba4ba9cdd89482aca8ebe6eab8569f35763bcc16 /gas/write.c | |
parent | 998a69f46a3770d0f26aec080fcac4865c689739 (diff) | |
download | gdb-a841bdf5d3bfb9c687f938be7388597db2e461de.zip gdb-a841bdf5d3bfb9c687f938be7388597db2e461de.tar.gz gdb-a841bdf5d3bfb9c687f938be7388597db2e461de.tar.bz2 |
Fix PR17493, attempted output of *GAS `reg' section* symbol
The write.c change is to make gas report an error if reg_section
symbols should leak in future. The tc-i386.c change is the real fix.
Note that the error isn't the most helpful, "redefined symbol cannot
be used on reloc", but I'm not inclined to improve what is really an
internal gas error. reg_section symbols shouldn't leak..
gas/
PR 17493
* write.c (adjust_reloc_syms): Don't allow symbols in reg_section
to be reduced to reg_section section symbol.
* gas/config/tc-i386.c (i386_finalize_immediate): Reject all
reg_section immediates.
gas/testsuite/
* gas/i386/inval-equ-2.l: Adjust.
Diffstat (limited to 'gas/write.c')
-rw-r--r-- | gas/write.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gas/write.c b/gas/write.c index 263b002..0f82d47 100644 --- a/gas/write.c +++ b/gas/write.c @@ -836,7 +836,8 @@ adjust_reloc_syms (bfd *abfd ATTRIBUTE_UNUSED, if (symsec == NULL) abort (); - if (bfd_is_abs_section (symsec)) + if (bfd_is_abs_section (symsec) + || symsec == reg_section) { /* The fixup_segment routine normally will not use this symbol in a relocation. */ |