Commit c449ee3d authored by neil's avatar neil
Browse files

* cpptrad.c (skip_macro_block_comment): New.

	(copy_comment): Use it if appropriate.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68641 138bc75d-0d04-0410-961f-82ee72b054a4
parent 1c0e97a1
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");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment