From 20d79870f35f646e87c43d8c4fee936b4e0ed5a6 Mon Sep 17 00:00:00 2001 From: Kuan-Lin Chen Date: Tue, 27 Jan 2015 11:19:13 +0800 Subject: [PATCH] NDS32/gas: Limit the format of pseudo instruction la. --- gas/ChangeLog | 5 +++++ gas/config/tc-nds32.c | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 6dbdb7927ed..2e7205b3e60 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-01-27 Kuan-Lin Chen + + * config/tc-nds32.c (do_pseudo_la_internal): Limit the second argument + of instruction la to a symbol. + 2015-01-27 Kuan-Lin Chen * config/tc-nds32.c (nds32_parse_name): Ignore when the input is diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c index 28e90aea409..bf537b21681 100644 --- a/gas/config/tc-nds32.c +++ b/gas/config/tc-nds32.c @@ -2311,9 +2311,18 @@ do_pseudo_bral (int argc, char *argv[], int pv ATTRIBUTE_UNUSED) } static void -do_pseudo_la_internal (const char *arg_reg, const char *arg_label, +do_pseudo_la_internal (const char *arg_reg, char *arg_label, const char *line) { + expressionS exp; + + parse_expression (arg_label, &exp); + if (exp.X_op != O_symbol) + { + as_bad (_("la must use with symbol. '%s'"), line); + return; + } + relaxing = TRUE; /* rt, label */ if (!nds32_pic && !strstr(arg_label, "@")) -- 2.30.2