* app.c (do_scrub_next_char): Fix more bugs dealing with
labels without colons (For HPPA and MRI).
This commit is contained in:
parent
4bfe9e81cd
commit
001581c784
2 changed files with 30 additions and 6 deletions
|
@ -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.
|
||||
|
|
31
gas/app.c
31
gas/app.c
|
@ -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++;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue