From d0548f348f221abbc1241e30f3e346b2c96cc8ad Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 3 Mar 2008 15:28:58 +0000 Subject: gas/ 2008-03-03 Denys Vlasenko H.J. Lu 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 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 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. --- gas/read.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gas/read.c') diff --git a/gas/read.c b/gas/read.c index ed3be37..8163c5a 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); -- cgit v1.1