aboutsummaryrefslogtreecommitdiff
path: root/gas/read.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2015-08-27 22:50:38 +0930
committerAlan Modra <amodra@gmail.com>2015-08-27 23:19:59 +0930
commit2e57ce7b1422a025a65ad4ef0b1f2f4c214b9eec (patch)
tree88373fbff0acc2f1684da6efa238d2f5332c41aa /gas/read.c
parentf5cdf4989e5daff1ca8a500d22cbf2eb0692616e (diff)
downloadbinutils-2e57ce7b1422a025a65ad4ef0b1f2f4c214b9eec.zip
binutils-2e57ce7b1422a025a65ad4ef0b1f2f4c214b9eec.tar.gz
binutils-2e57ce7b1422a025a65ad4ef0b1f2f4c214b9eec.tar.bz2
More fallout from "Allow symbol and label names to be enclosed in double quotes"
Some of the TC_START_LABEL implementations need to adjust the end of the symbol, when a colon doesn't mean a label definition. That means they need access to nul_char both the restore the NUL location (it may be a quote rather than a colon) and to store the new nul_char. Others need adjusting to step over a potential trailing quote. PR gas/18581 * config/tc-aarch64.h (TC_START_LABEL): Redefine. * config/tc-arm.c (tc_start_label_without_colon): Delete params. Use input_line_pointer directly. * config/tc-arm.h (TC_START_LABEL): Redefine. (TC_START_LABEL_WITHOUT_COLON): Redefine. (tc_start_label_without_colon): Update prototype. * config/tc-bfin.c (bfin_start_label): Delete ptr param. Check for NUL instead. * config/tc-bfin.h (bfin_start_label): Update prototype. (TC_START_LABEL): Redefine. * config/tc-d30v.h (TC_START_LABEL): Redefine. * config/tc-fr30.c (restore_colon): Rewrite. (fr30_is_colon_insn): Add nul_char param. Return int. Bump i_l_p over quote. Update restore_colon calls. * config/tc-fr30.h (TC_START_LABEL): Redefine. (fr30_is_colon_insn): Update prototype. * config/tc-m32c.c (restore_colon, m32c_is_colon_insn): As above. * config/tc-m32c.h (TC_START_LABEL): Redefine. (m32c_is_colon_insn): Update prototype. * config/tc-m32r.h (TC_START_LABEL): Redefine. * config/tc-mep.h (TC_START_LABEL): Redefine. * config/tc-nds32.h (TC_START_LABEL): Redefine. * config/tc-tic54x.c (tic54x_start_label): Replace params with nul_char and next_char. Step over trailing quote. * config/tc-tic54x.h (TC_START_LABEL_WITHOUT_COLON): Redefine. (tic54x_start_label): Update prototype. * read.c (TC_START_LABEL): Redefine. Update invocation. (TC_START_LABEL_WITHOUT_COLON): Update invocation. * config/tc-nios2.c (s_nios2_set): Save initial input_line_pointer and restore if calling s_set. Don't restore delim again.
Diffstat (limited to 'gas/read.c')
-rw-r--r--gas/read.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gas/read.c b/gas/read.c
index 978cd3e..a3e83c3 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -41,7 +41,7 @@
#include "wchar.h"
#ifndef TC_START_LABEL
-#define TC_START_LABEL(x,y,z) (x == ':')
+#define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR) (NEXT_CHAR == ':')
#endif
/* Set by the object-format or the target. */
@@ -874,8 +874,7 @@ read_a_source_file (char *name)
symbol in the symbol table. */
if (!mri_line_macro
#ifdef TC_START_LABEL_WITHOUT_COLON
- && TC_START_LABEL_WITHOUT_COLON (next_char,
- input_line_pointer)
+ && TC_START_LABEL_WITHOUT_COLON (nul_char, next_char)
#endif
)
line_label = colon (line_start);
@@ -923,7 +922,7 @@ read_a_source_file (char *name)
S points to the beginning of the symbol.
[In case of pseudo-op, s->'.'.]
Input_line_pointer->'\0' where NUL_CHAR was. */
- if (TC_START_LABEL (next_char, s, input_line_pointer))
+ if (TC_START_LABEL (s, nul_char, next_char))
{
if (flag_m68k_mri)
{