From 869fe6ea8574b6af5e365170b2416cee0dfbfbfe Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 18 Mar 2011 11:21:33 +0000 Subject: [PATCH] * config/obj-elf.c (elf_frob_symbol): Report S_SET_SIZE symbol on .size expression errors rather than symbols in the size expression. --- gas/ChangeLog | 5 +++++ gas/config/obj-elf.c | 45 ++++---------------------------------------- 2 files changed, 9 insertions(+), 41 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 9f65957411a..a2a43cd49d2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2011-03-18 Alan Modra + + * config/obj-elf.c (elf_frob_symbol): Report S_SET_SIZE symbol + on .size expression errors rather than symbols in the size expression. + 2011-03-18 Alan Modra * input-scrub.c (line_numberT): Delete. diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 37a8020c736..afb4811b4c8 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -1896,49 +1896,12 @@ elf_frob_symbol (symbolS *symp, int *puntp) S_SET_SIZE (symp, size->X_add_number); else { - const char *op_name = NULL; - const char *add_name = NULL; - PRINTF_LIKE ((*as_error)); - if (flag_size_check == size_check_error) - as_error = as_bad; + as_bad (_(".size expression for %s " + "does not evaluate to a constant"), S_GET_NAME (symp)); else - as_error = as_warn; - - if (size->X_op == O_subtract) - { - op_name = S_GET_NAME (size->X_op_symbol); - add_name = S_GET_NAME (size->X_add_symbol); - if (strcmp (op_name, FAKE_LABEL_NAME) == 0) - op_name = NULL; - if (strcmp (add_name, FAKE_LABEL_NAME) == 0) - add_name = NULL; - - if (op_name && add_name) - as_error (_(".size expression with symbols `%s' and " - "`%s' does not evaluate to a constant"), - op_name, add_name); - else - { - const char *name; - - if (op_name) - name = op_name; - else if (add_name) - name = add_name; - else - name = NULL; - - if (name) - as_error (_(".size expression with symbol `%s' " - "does not evaluate to a constant"), - name); - } - } - - if (!op_name && !add_name) - as_error (_(".size expression does not evaluate to a " - "constant")); + as_warn (_(".size expression for %s " + "does not evaluate to a constant"), S_GET_NAME (symp)); } free (sy_obj->size); sy_obj->size = NULL; -- 2.30.2