* app.c (do_scrub_next_char): Fix more bugs dealing with

labels without colons (For HPPA and MRI).
This commit is contained in:
Jeff Law 1993-12-29 19:33:31 +00:00
parent 4bfe9e81cd
commit 001581c784
2 changed files with 30 additions and 6 deletions

View file

@ -1,3 +1,8 @@
Wed Dec 29 11:31:44 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
* app.c (do_scrub_next_char): Fix more bugs dealing with
labels without colons (For HPPA and MRI).
Sun Dec 26 14:31:47 1993 Torbjorn Granlund (tege@adder.cygnus.com)
* tc-hppa.c (pre_defined_registers): Convert to lower case.

View file

@ -310,7 +310,7 @@ do_scrub_next_char (get, unget)
if (ch == '"')
{
(*unget) (ch);
out_string = "\n.appfile ";
out_string = "\n\t.appfile ";
old_state = 7;
state = -1;
return *out_string++;
@ -447,10 +447,6 @@ recycle:
not_cpp_line = 1;
goto recycle;
}
#ifdef MRI
(*unget) (ch); /* Put back */
return ' '; /* Always return one space at start of line */
#endif
/* If we're in state 2, we've seen a non-white
character followed by whitespace. If the next
@ -462,6 +458,29 @@ recycle:
return ch;
}
#if defined (LABELS_WITHOUT_COLONS) || defined (MRI)
/* Like above, but handles case where labels are not
required to have colons (and therefore must be identified
by their *position* in the input stream.) For a testcase
see hppa/more.parse/labelbug.s.
This also has the effect of sometimes leaving a whitespace
before a newline. Instead of trying to rework this horribly
broken and hairy code I'm just going to zap the extra space here. */
if (state == 2 && lex[ch] == LEX_IS_SYMBOL_COMPONENT)
{
(*unget) (ch);
return ' ';
}
/* Don't emit a space before a newline. */
if (state == 2 && lex[ch] == LEX_IS_NEWLINE)
{
state = 0;
return ch;
}
#endif
switch (state)
{
case 0:
@ -640,7 +659,7 @@ recycle:
(*unget) (ch);
old_state = 4;
state = -1;
out_string = ".appline ";
out_string = "\t.appline ";
return *out_string++;
}