gas: accept custom ".linefile <n> ."

While .linefile is generally intended for gas internal use only, its use
in a source file would better not result in an internal error. Give use
of it outside of any macro(-like) construct the meaning of restoring the
original (physical) input file name.
This commit is contained in:
Jan Beulich 2022-11-11 09:27:41 +01:00
parent ca4726752f
commit b60f6a6288

View File

@ -469,13 +469,15 @@ new_logical_line_flags (const char *fname, /* DON'T destroy it! We point to it!
/* FIXME: we could check that include nesting is correct. */
break;
case 1 << 3:
if (line_number < 0 || fname != NULL || next_saved_file == NULL)
if (line_number < 0 || fname != NULL)
abort ();
/* PR gas/16908 workaround: Ignore updates when nested inside a macro
expansion. */
if (from_sb_expansion == expanding_nested)
return;
if (next_saved_file->logical_input_file)
if (next_saved_file == NULL)
fname = physical_input_file;
else if (next_saved_file->logical_input_file)
fname = next_saved_file->logical_input_file;
else
fname = next_saved_file->physical_input_file;