diff options
author | Jan Beulich <jbeulich@suse.com> | 2020-07-20 08:56:23 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2020-07-20 08:56:23 +0200 |
commit | 750e4bf70f2caab39dc5d0a1b2d26c9ca1fbd909 (patch) | |
tree | be3d6d2b89bbb851fb2ba3701cc6814c00e62e18 /gas/app.c | |
parent | 48ef937e913d31bbd24a7ae568d30b499a6b3477 (diff) | |
download | gdb-750e4bf70f2caab39dc5d0a1b2d26c9ca1fbd909.zip gdb-750e4bf70f2caab39dc5d0a1b2d26c9ca1fbd909.tar.gz gdb-750e4bf70f2caab39dc5d0a1b2d26c9ca1fbd909.tar.bz2 |
gas: generalize comment character escaping recognition
PR gas/4572
Generalize what ab1fadc6b2f0 ("PR22714, Assembler preprocessor loses
track of \@") did to always honor escaped comment chars. Use this then
to support escaped /, %, and * operators on x86, when / is a comment
char (to match the Sun assembler's behavior).
Diffstat (limited to 'gas/app.c')
-rw-r--r-- | gas/app.c | 23 |
1 files changed, 5 insertions, 18 deletions
@@ -55,9 +55,8 @@ static const char mri_pseudo[] = ".mri 0"; static const char symver_pseudo[] = ".symver"; static const char * symver_state; #endif -#ifdef TC_ARM + static char last_char; -#endif static char lex[256]; static const char symbol_chars[] = @@ -244,9 +243,7 @@ struct app_save #if defined TC_ARM && defined OBJ_ELF const char * symver_state; #endif -#ifdef TC_ARM - char last_char; -#endif + char last_char; }; char * @@ -276,9 +273,7 @@ app_push (void) #if defined TC_ARM && defined OBJ_ELF saved->symver_state = symver_state; #endif -#ifdef TC_ARM saved->last_char = last_char; -#endif /* do_scrub_begin() is not useful, just wastes time. */ @@ -318,9 +313,7 @@ app_pop (char *arg) #if defined TC_ARM && defined OBJ_ELF symver_state = saved->symver_state; #endif -#ifdef TC_ARM last_char = saved->last_char; -#endif free (arg); } @@ -1289,13 +1282,11 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen) goto de_fault; #endif -#ifdef TC_ARM - /* For the ARM, care is needed not to damage occurrences of \@ - by stripping the @ onwards. Yuck. */ + /* Care is needed not to damage occurrences of \<comment-char> + by stripping the <comment-char> onwards. Yuck. */ if ((to > tostart ? to[-1] : last_char) == '\\') - /* Do not treat the @ as a start-of-comment. */ + /* Do not treat the <comment-char> as a start-of-comment. */ goto de_fault; -#endif #ifdef WARN_COMMENTS if (!found_comment) @@ -1472,10 +1463,8 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen) fromeof: /* We have reached the end of the input. */ -#ifdef TC_ARM if (to > tostart) last_char = to[-1]; -#endif return to - tostart; tofull: @@ -1489,9 +1478,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen) else saved_input = NULL; -#ifdef TC_ARM if (to > tostart) last_char = to[-1]; -#endif return to - tostart; } |