diff options
author | H.J. Lu <hjl@lucon.org> | 2008-03-03 15:28:58 +0000 |
---|---|---|
committer | H.J. Lu <hjl@lucon.org> | 2008-03-03 15:28:58 +0000 |
commit | f77561d7e9b270171afbcb60cdab8c902c0fbf4f (patch) | |
tree | dfa513b769e986b2a04ec2d1cde58e84be64ff21 /gas/read.c | |
parent | 131cd434ec81aa23718dca4bd46569ecb3349e84 (diff) | |
download | binutils-redhat-f77561d7e9b270171afbcb60cdab8c902c0fbf4f.tar.gz |
gas/
2008-03-03 Denys Vlasenko <vda.linux@googlemail.com>
H.J. Lu <hongjiu.lu@intel.com>
PR gas/5543
* read.c (pseudo_set): Don't allow global register symbol.
* symbols.c (S_SET_EXTERNAL): Don't allow register symbol
global.
2008-03-03 H.J. Lu <hongjiu.lu@intel.com>
PR gas/5543
* write.c (write_object_file): Don't allow symbols which were
equated to register. Stop if there is an error.
gas/testsuite/
2008-03-03 H.J. Lu <hongjiu.lu@intel.com>
PR gas/5543
* gas/i386/i386.exp: Run inval-equ-1 and inval-equ-2.
* gas/i386/inval-equ-1.l: New.
* gas/i386/inval-equ-1.s: Likewise.
* gas/i386/inval-equ-2.l: Likewise.
* gas/i386/inval-equ-2.s: Likewise.
Diffstat (limited to 'gas/read.c')
-rw-r--r-- | gas/read.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gas/read.c b/gas/read.c index ed3be3743b..8163c5abab 100644 --- a/gas/read.c +++ b/gas/read.c @@ -3604,6 +3604,12 @@ pseudo_set (symbolS *symbolP) break; case O_register: + if (S_IS_EXTERNAL (symbolP)) + { + as_bad ("can't equate global symbol `%s' with register name", + S_GET_NAME (symbolP)); + return; + } S_SET_SEGMENT (symbolP, reg_section); S_SET_VALUE (symbolP, (valueT) exp.X_add_number); set_zero_frag (symbolP); |