Hi Guys, The code to implement the .nop directive calls the md_assemble() function with an allocated string, rather than input_line_pointer. This is supposed to work, but there are some targets that assume that md_assemble()'s argument is input_line_pointer, and that they are free to update it. Even worse some of them assign input_line_pointer to the string argument and leave it there. So when s_nop() finishes and frees the string pointer, input_line_pointer is left pointing at freed memory. At first I though that it was just the S12Z port that behaved in this way but now I have found that the MN10300 port does too. There may be others as well, since the symptom is hard to trace. So I am applying the attached patch to fix s_nop() so that it explicitly preserves input_line_pointer instead. Cheers Nick gas/ChangeLog 2020-09-15 Nick Clifton * read.c (s_nop): Preserve the input_line_pointer around the call to md_assemble. * config/tc-s12z.c (md_assemble): Revert previous delta.