cccp.c (handle_directive): Handle backslash-newlines in quoted strings correctly.
* cccp.c (handle_directive): Handle backslash-newlines in quoted strings correctly. From-SVN: r27279
This commit is contained in:
parent
305423e8d8
commit
2f0a2a5b4a
@ -1,3 +1,8 @@
|
|||||||
|
Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* cccp.c (handle_directive): Handle backslash-newlines in quoted
|
||||||
|
strings correctly.
|
||||||
|
|
||||||
Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
|
Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
|
||||||
|
|
||||||
* rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
|
* rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
|
||||||
|
28
gcc/cccp.c
28
gcc/cccp.c
@ -3981,11 +3981,33 @@ handle_directive (ip, op)
|
|||||||
case '\'':
|
case '\'':
|
||||||
case '\"':
|
case '\"':
|
||||||
{
|
{
|
||||||
|
int backslash_newlines_p;
|
||||||
|
|
||||||
register U_CHAR *bp1
|
register U_CHAR *bp1
|
||||||
= skip_quoted_string (xp - 1, bp, ip->lineno,
|
= skip_quoted_string (xp - 1, bp, ip->lineno,
|
||||||
NULL_PTR, NULL_PTR, NULL_PTR);
|
NULL_PTR, &backslash_newlines_p,
|
||||||
while (xp != bp1)
|
NULL_PTR);
|
||||||
*cp++ = *xp++;
|
if (backslash_newlines_p)
|
||||||
|
while (xp != bp1)
|
||||||
|
{
|
||||||
|
/* With something like:
|
||||||
|
|
||||||
|
#define X "a\
|
||||||
|
b"
|
||||||
|
|
||||||
|
we should still remove the backslash-newline
|
||||||
|
pair as part of phase two. */
|
||||||
|
if (xp[0] == '\\' && xp[1] == '\n')
|
||||||
|
xp += 2;
|
||||||
|
else
|
||||||
|
*cp++ = *xp++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
/* This is the same as the loop above, but taking
|
||||||
|
advantage of the fact that we know there are no
|
||||||
|
backslash-newline pairs. */
|
||||||
|
while (xp != bp1)
|
||||||
|
*cp++ = *xp++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user