mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-23 14:30:01 +08:00
cpptrad.c (skip_macro_block_comment): New.
* cpptrad.c (skip_macro_block_comment): New. (copy_comment): Use it if appropriate. From-SVN: r68641
This commit is contained in:
parent
735e8085f7
commit
debdeb5d70
@ -1,3 +1,8 @@
|
||||
2003-06-28 Neil Booth <neil@daikokuya.co.uk>
|
||||
|
||||
* cpptrad.c (skip_macro_block_comment): New.
|
||||
(copy_comment): Use it if appropriate.
|
||||
|
||||
2003-06-28 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* gcse.c (compute_ld_motion_mems): Use INSN_P instead of its
|
||||
|
@ -116,6 +116,25 @@ check_output_buffer (cpp_reader *pfile, size_t n)
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip a C-style block comment in a macro as a result of -CC.
|
||||
Buffer->cur points to the initial asterisk of the comment. */
|
||||
static void
|
||||
skip_macro_block_comment (cpp_reader *pfile)
|
||||
{
|
||||
const uchar *cur = pfile->buffer->cur;
|
||||
|
||||
cur++;
|
||||
if (*cur == '/')
|
||||
cur++;
|
||||
|
||||
/* People like decorating comments with '*', so check for '/'
|
||||
instead for efficiency. */
|
||||
while(! (*cur++ == '/' && cur[-2] == '*') )
|
||||
;
|
||||
|
||||
pfile->buffer->cur = cur;
|
||||
}
|
||||
|
||||
/* CUR points to the asterisk introducing a comment in the current
|
||||
context. IN_DEFINE is true if we are in the replacement text of a
|
||||
macro.
|
||||
@ -136,7 +155,11 @@ copy_comment (cpp_reader *pfile, const uchar *cur, int in_define)
|
||||
cpp_buffer *buffer = pfile->buffer;
|
||||
|
||||
buffer->cur = cur;
|
||||
unterminated = _cpp_skip_block_comment (pfile);
|
||||
if (pfile->context->prev)
|
||||
unterminated = false, skip_macro_block_comment (pfile);
|
||||
else
|
||||
unterminated = _cpp_skip_block_comment (pfile);
|
||||
|
||||
if (unterminated)
|
||||
cpp_error_with_line (pfile, DL_ERROR, from_line, 0,
|
||||
"unterminated comment");
|
||||
|
Loading…
Reference in New Issue
Block a user