+2021-08-11 Matt Jacobson <mhjacobson@me.com>
+
+ * config/tc-avr.c (enum options): Add option flag.
+ (struct option): Add option -mno-dollar-line-separator.
+ (md_parse_option): Adjust treatment of $ when option is present.
+ (usage): Mention the new option.
+ * config/tc-avr.h: Use avr_line_separator_chars.
+ * doc/c-avr.texi: Document the new option.
+
2021-08-11 Nick Clifton <nickc@redhat.com>
* config/tc-tic4x.c (tic4x_gen_to_words): Fix typo.
const char comment_chars[] = ";";
const char line_comment_chars[] = "#";
-const char line_separator_chars[] = "$";
+
+const char *avr_line_separator_chars = "$";
+static const char *avr_line_separator_chars_no_dollar = "";
const char *md_shortopts = "m:";
struct mcu_type_s
OPTION_ISA_RMW,
OPTION_LINK_RELAX,
OPTION_NO_LINK_RELAX,
- OPTION_HAVE_GCCISR
+ OPTION_HAVE_GCCISR,
+ OPTION_NO_DOLLAR_LINE_SEPARATOR,
};
struct option md_longopts[] =
{ "mlink-relax", no_argument, NULL, OPTION_LINK_RELAX },
{ "mno-link-relax", no_argument, NULL, OPTION_NO_LINK_RELAX },
{ "mgcc-isr", no_argument, NULL, OPTION_HAVE_GCCISR },
+ { "mno-dollar-line-separator", no_argument, NULL, OPTION_NO_DOLLAR_LINE_SEPARATOR },
{ NULL, no_argument, NULL, 0 }
};
" -mlink-relax generate relocations for linker relaxation (default)\n"
" -mno-link-relax don't generate relocations for linker relaxation.\n"
" -mgcc-isr accept the __gcc_isr pseudo-instruction.\n"
+ " -mno-dollar-line-separator\n"
+ " do not treat the $ character as a line separator.\n"
));
show_mcu_list (stream);
}
case OPTION_HAVE_GCCISR:
avr_opt.have_gccisr = 1;
return 1;
+ case OPTION_NO_DOLLAR_LINE_SEPARATOR:
+ avr_line_separator_chars = avr_line_separator_chars_no_dollar;
+ lex_type['$'] = LEX_NAME | LEX_BEGIN_NAME;
+ return 1;
}
return 0;
would print `12 34 56 78'. The default value is 4. */
#define LISTING_WORD_SIZE 2
-/* AVR port uses `$' as a logical line separator. */
+/* AVR port uses `$' as a logical line separator by default. */
#define LEX_DOLLAR 0
/* An `.lcomm' directive with no explicit alignment parameter will
#define TC_FRAG_TYPE struct avr_frag_data
#define TC_FRAG_INIT(frag, max_bytes) avr_frag_init (frag)
extern void avr_frag_init (fragS *);
+
+#define tc_line_separator_chars avr_line_separator_chars
+extern const char *avr_line_separator_chars;
@item -mgcc-isr
Enable the @code{__gcc_isr} pseudo instruction.
+@cindex @code{-mno-dollar-line-separator} command line option, AVR
+@item -mno-dollar-line-separator
+Do not treat the @code{$} character as a line separator character.
+This is for languages where @code{$} is valid character inside symbol
+names.
+
@end table
@cindex AVR line separator
The @samp{$} character can be used instead of a newline to separate
-statements.
+statements. Note: the @option{-mno-dollar-line-separator} option
+disables this behaviour.
@node AVR-Regs
@subsection Register Names